JSON Ledger API OpenAPI definition¶

Below there is copy of OpenAPI specification of JSON Ledger API.

When Canton is started with the JSON Ledger API api enabled, the same specification is available under http://<host>:<port>/docs/openapi. In such case it also reflects node specific customizations (such as endpoints prefix).

This specification covers regular HTTP/S endpoints - for streaming endpoints (websockets) please navigate to JSON Ledger API AsyncAPI definitions (websocket access).

Properties without type or of type: {} (any Json value) are Daml values as defined in the Daml template and formatted according to Daml-LF JSON encoding.

Note

OpenAPI code generators are of various quality. Many code generators (for languages/frameworks) do not fully support OpenAPI 3.0.3 specifications, and those that support often contain bugs. We regularly test:

Note

Due to technical constraints, some fields are incorrectly marked as required, even though they can be omitted in JSON Ledger API. Refer to the component descriptions for accurate details. This will be addressed in a future update.

  openapi: 3.0.3
  info:
    title: JSON Ledger API HTTP endpoints
    version: 3.3.0-SNAPSHOT
  paths:
    /v2/commands/submit-and-wait:
      post:
        description: Submit a batch of commands and wait for the completion details
        operationId: postV2CommandsSubmit-and-wait
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsCommands'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/SubmitAndWaitResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/submit-and-wait-for-transaction:
      post:
        description: Submit a batch of commands and wait for the transaction response
        operationId: postV2CommandsSubmit-and-wait-for-transaction
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsSubmitAndWaitForTransactionRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsSubmitAndWaitForTransactionResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/submit-and-wait-for-reassignment:
      post:
        description: Submit a batch of reassignment commands and wait for the reassignment
          response
        operationId: postV2CommandsSubmit-and-wait-for-reassignment
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmitAndWaitForReassignmentRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsSubmitAndWaitForReassignmentResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/submit-and-wait-for-transaction-tree:
      post:
        description: Submit a batch of commands and wait for the transaction trees response
        operationId: postV2CommandsSubmit-and-wait-for-transaction-tree
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsCommands'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsSubmitAndWaitForTransactionTreeResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/async/submit:
      post:
        description: Submit a command asynchronously
        operationId: postV2CommandsAsyncSubmit
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsCommands'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/SubmitResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/async/submit-reassignment:
      post:
        description: Submit reassignment command asynchronously
        operationId: postV2CommandsAsyncSubmit-reassignment
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmitReassignmentRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/SubmitReassignmentResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/completions:
      post:
        description: Query completions list (blocking call)
        operationId: postV2CommandsCompletions
        parameters:
        - name: limit
          in: query
          description: maximum number of elements to return, this param is ignored if
            is bigger than server setting
          required: false
          schema:
            type: integer
            format: int64
        - name: stream_idle_timeout_ms
          in: query
          description: timeout to complete and send result if no new elements are received
            (for open ended streams)
          required: false
          schema:
            type: integer
            format: int64
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompletionStreamRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  type: array
                  items:
                    $ref: '#/components/schemas/CompletionStreamResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: query parameter
              limit, Invalid value for: query parameter stream_idle_timeout_ms, Invalid
              value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/events/events-by-contract-id:
      post:
        description: Get events by contract Id
        operationId: postV2EventsEvents-by-contract-id
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventsByContractIdRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetEventsByContractIdResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/version:
      get:
        description: Get the version details of the participant node
        operationId: getV2Version
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetLedgerApiVersionResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/packages:
      get:
        description: List all packages uploaded on the participant node
        operationId: getV2Packages
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ListPackagesResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      post:
        description: Upload a DAR to the participant node
        operationId: postV2Packages
        requestBody:
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/UploadDarFileResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/packages/{package-id}:
      get:
        description: Download the package for the requested package-id
        operationId: getV2PackagesPackage-id
        parameters:
        - name: package-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            headers:
              Canton-Package-Hash:
                required: true
                schema:
                  type: string
            content:
              application/octet-stream:
                schema:
                  type: string
                  format: binary
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/packages/{package-id}/status:
      get:
        description: Get package status
        operationId: getV2PackagesPackage-idStatus
        parameters:
        - name: package-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetPackageStatusResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/parties:
      get:
        description: List all known parties.
        operationId: getV2Parties
        parameters:
        - name: pageSize
          in: query
          description: maximum number of elements in a returned page
          required: false
          schema:
            type: integer
            format: int32
        - name: pageToken
          in: query
          description: token - to continue results from a given page, leave empty to
            start from the beginning of the list, obtain token from the result of previous
            page
          required: false
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ListKnownPartiesResponse'
          '400':
            description: 'Invalid value for: query parameter pageSize, Invalid value
              for: query parameter pageToken, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      post:
        description: Allocate a new party to the participant node
        operationId: postV2Parties
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllocatePartyRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/AllocatePartyResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/parties/participant-id:
      get:
        description: Get participant id
        operationId: getV2PartiesParticipant-id
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetParticipantIdResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/parties/{party}:
      get:
        description: Get party details
        operationId: getV2PartiesParty
        parameters:
        - name: party
          in: path
          required: true
          schema:
            type: string
        - name: identity-provider-id
          in: query
          required: false
          schema:
            type: string
        - name: parties
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetPartiesResponse'
          '400':
            description: 'Invalid value for: query parameter identity-provider-id, Invalid
              value for: query parameter parties, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      patch:
        description: Allocate a new party to the participant node
        operationId: patchV2PartiesParty
        parameters:
        - name: party
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdatePartyDetailsRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/UpdatePartyDetailsResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/state/active-contracts:
      post:
        description: Query active contracts list (blocking call)
        operationId: postV2StateActive-contracts
        parameters:
        - name: limit
          in: query
          description: maximum number of elements to return, this param is ignored if
            is bigger than server setting
          required: false
          schema:
            type: integer
            format: int64
        - name: stream_idle_timeout_ms
          in: query
          description: timeout to complete and send result if no new elements are received
            (for open ended streams)
          required: false
          schema:
            type: integer
            format: int64
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetActiveContractsRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  type: array
                  items:
                    $ref: '#/components/schemas/JsGetActiveContractsResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: query parameter
              limit, Invalid value for: query parameter stream_idle_timeout_ms, Invalid
              value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/state/connected-synchronizers:
      get:
        description: Get connected synchronizers
        operationId: getV2StateConnected-synchronizers
        parameters:
        - name: party
          in: query
          required: true
          schema:
            type: string
        - name: participantId
          in: query
          required: false
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetConnectedSynchronizersResponse'
          '400':
            description: 'Invalid value for: query parameter party, Invalid value for:
              query parameter participantId, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/state/ledger-end:
      get:
        description: Get ledger end
        operationId: getV2StateLedger-end
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetLedgerEndResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/state/latest-pruned-offsets:
      get:
        description: Get latest pruned offsets
        operationId: getV2StateLatest-pruned-offsets
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetLatestPrunedOffsetsResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/flats:
      post:
        description: Query flat transactions update list (blocking call)
        operationId: postV2UpdatesFlats
        parameters:
        - name: limit
          in: query
          description: maximum number of elements to return, this param is ignored if
            is bigger than server setting
          required: false
          schema:
            type: integer
            format: int64
        - name: stream_idle_timeout_ms
          in: query
          description: timeout to complete and send result if no new elements are received
            (for open ended streams)
          required: false
          schema:
            type: integer
            format: int64
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUpdatesRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  type: array
                  items:
                    $ref: '#/components/schemas/JsGetUpdatesResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: query parameter
              limit, Invalid value for: query parameter stream_idle_timeout_ms, Invalid
              value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/trees:
      post:
        description: Query update transactions tree list (blocking call)
        operationId: postV2UpdatesTrees
        parameters:
        - name: limit
          in: query
          description: maximum number of elements to return, this param is ignored if
            is bigger than server setting
          required: false
          schema:
            type: integer
            format: int64
        - name: stream_idle_timeout_ms
          in: query
          description: timeout to complete and send result if no new elements are received
            (for open ended streams)
          required: false
          schema:
            type: integer
            format: int64
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUpdatesRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  type: array
                  items:
                    $ref: '#/components/schemas/JsGetUpdateTreesResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: query parameter
              limit, Invalid value for: query parameter stream_idle_timeout_ms, Invalid
              value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/transaction-tree-by-offset/{offset}:
      get:
        description: Get transaction tree by offset
        operationId: getV2UpdatesTransaction-tree-by-offsetOffset
        parameters:
        - name: offset
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: parties
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetTransactionTreeResponse'
          '400':
            description: 'Invalid value for: path parameter offset, Invalid value for:
              query parameter parties, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/transaction-by-offset:
      post:
        description: Get transaction by offset
        operationId: postV2UpdatesTransaction-by-offset
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTransactionByOffsetRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetTransactionResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/update-by-offset:
      post:
        description: Get update by offset
        operationId: postV2UpdatesUpdate-by-offset
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUpdateByOffsetRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetUpdateResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/transaction-by-id:
      post:
        description: Get transaction by id
        operationId: postV2UpdatesTransaction-by-id
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTransactionByIdRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetTransactionResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/update-by-id:
      post:
        description: Get update by id
        operationId: postV2UpdatesUpdate-by-id
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUpdateByIdRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetUpdateResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/transaction-tree-by-id/{update-id}:
      get:
        description: Get transaction tree by  id
        operationId: getV2UpdatesTransaction-tree-by-idUpdate-id
        parameters:
        - name: update-id
          in: path
          required: true
          schema:
            type: string
        - name: parties
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetTransactionTreeResponse'
          '400':
            description: 'Invalid value for: query parameter parties, Invalid value
              for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/users:
      get:
        description: List all users.
        operationId: getV2Users
        parameters:
        - name: pageSize
          in: query
          description: maximum number of elements in a returned page
          required: false
          schema:
            type: integer
            format: int32
        - name: pageToken
          in: query
          description: token - to continue results from a given page, leave empty to
            start from the beginning of the list, obtain token from the result of previous
            page
          required: false
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ListUsersResponse'
          '400':
            description: 'Invalid value for: query parameter pageSize, Invalid value
              for: query parameter pageToken, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      post:
        description: Create user.
        operationId: postV2Users
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateUserRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/CreateUserResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/users/{user-id}:
      get:
        description: Get user details.
        operationId: getV2UsersUser-id
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetUserResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      delete:
        description: Delete user.
        operationId: deleteV2UsersUser-id
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  type: object
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      patch:
        description: Update  user.
        operationId: patchV2UsersUser-id
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateUserRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/UpdateUserResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/users/{user-id}/rights:
      get:
        description: List user rights.
        operationId: getV2UsersUser-idRights
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ListUserRightsResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      post:
        description: Grant user rights.
        operationId: postV2UsersUser-idRights
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GrantUserRightsRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GrantUserRightsResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      patch:
        description: Revoke user rights.
        operationId: patchV2UsersUser-idRights
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RevokeUserRightsRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/RevokeUserRightsResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/users/{user-id}/identity-provider-id:
      patch:
        description: Update user identity provider.
        operationId: patchV2UsersUser-idIdentity-provider-id
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateUserIdentityProviderIdRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/UpdateUserIdentityProviderIdResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/idps:
      get:
        description: List all identity provider configs
        operationId: getV2Idps
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ListIdentityProviderConfigsResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      post:
        description: Create identity provider configs
        operationId: postV2Idps
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateIdentityProviderConfigRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/CreateIdentityProviderConfigResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/idps/{idp-id}:
      get:
        description: Get identity provider config
        operationId: getV2IdpsIdp-id
        parameters:
        - name: idp-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetIdentityProviderConfigResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      delete:
        description: Delete identity provider config
        operationId: deleteV2IdpsIdp-id
        parameters:
        - name: idp-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/DeleteIdentityProviderConfigResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      patch:
        description: Update identity provider config
        operationId: patchV2IdpsIdp-id
        parameters:
        - name: idp-id
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateIdentityProviderConfigRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/UpdateIdentityProviderConfigResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/interactive-submission/prepare:
      post:
        description: Prepare commands for signing
        operationId: postV2Interactive-submissionPrepare
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsPrepareSubmissionRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsPrepareSubmissionResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/interactive-submission/execute:
      post:
        description: Execute a signed transaction
        operationId: postV2Interactive-submissionExecute
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsExecuteSubmissionRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ExecuteSubmissionResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/interactive-submission/preferred-package-version:
      get:
        description: Get the preferred package version for constructing a command submission
        operationId: getV2Interactive-submissionPreferred-package-version
        parameters:
        - name: parties
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
        - name: package-name
          in: query
          required: true
          schema:
            type: string
        - name: vetting_valid_at
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: synchronizer-id
          in: query
          required: false
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetPreferredPackageVersionResponse'
          '400':
            description: 'Invalid value for: query parameter parties, Invalid value
              for: query parameter package-name, Invalid value for: query parameter
              vetting_valid_at, Invalid value for: query parameter synchronizer-id,
              Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/interactive-submission/preferred-packages:
      get:
        description: Get the version of preferred packages for constructing a command
          submission
        operationId: getV2Interactive-submissionPreferred-packages
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPreferredPackagesRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetPreferredPackagesResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
  components:
    schemas:
      AllocatePartyRequest:
        title: AllocatePartyRequest
        description: 'Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(identity_provider_id)``'
        type: object
        required:
        - partyIdHint
        - identityProviderId
        properties:
          partyIdHint:
            description: |-
              A hint to the participant which party ID to allocate. It can be
              ignored.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Optional
            type: string
          localMetadata:
            $ref: '#/components/schemas/ObjectMeta'
            description: |-
              Formerly "display_name"
              Participant-local metadata to be stored in the ``PartyDetails`` of this newly allocated party.
              Optional
          identityProviderId:
            description: |-
              The id of the ``Identity Provider``
              Optional, if not set, assume the party is managed by the default identity provider or party is not hosted by the participant.
            type: string
      AllocatePartyResponse:
        title: AllocatePartyResponse
        type: object
        properties:
          partyDetails:
            $ref: '#/components/schemas/PartyDetails'
            description: ''
      ArchivedEvent:
        title: ArchivedEvent
        description: Records that a contract has been archived, and choices may no longer
          be exercised on it.
        type: object
        required:
        - offset
        - nodeId
        - contractId
        - templateId
        - packageName
        properties:
          offset:
            description: |-
              The offset of origin.
              Offsets are managed by the participant nodes.
              Transactions can thus NOT be assumed to have the same offsets on different participant nodes.
              Required, it is a valid absolute offset (positive integer)
            type: integer
            format: int64
          nodeId:
            description: |-
              The position of this event in the originating transaction or reassignment.
              Node IDs are not necessarily equal across participants,
              as these may see different projections/parts of transactions.
              Required, must be valid node ID (non-negative integer)
            type: integer
            format: int32
          contractId:
            description: |-
              The ID of the archived contract.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          templateId:
            description: |-
              The template of the archived contract.
              The identifier uses the package-id reference format.

              Required
            type: string
          witnessParties:
            description: |-
              The parties that are notified of this event. For an ``ArchivedEvent``,
              these are the intersection of the stakeholders of the contract in
              question and the parties specified in the ``TransactionFilter``. The
              stakeholders are the union of the signatories and the observers of
              the contract.
              Each one of its elements must be a valid PartyIdString (as described
              in ``value.proto``).
              Required
            type: array
            items:
              type: string
          packageName:
            description: |-
              The package name of the contract.
              Required
            type: string
          implementedInterfaces:
            description: |-
              The interfaces implemented by the target template that have been
              matched from the interface filter query.
              Populated only in case interface filters with include_interface_view set.

              If defined, the identifier uses the package-id reference format.

              Optional
            type: array
            items:
              type: string
      AssignCommand:
        title: AssignCommand
        description: Assign a contract
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/AssignCommand1'
      AssignCommand1:
        title: AssignCommand
        description: Assign a contract
        type: object
        required:
        - unassignId
        - source
        - target
        properties:
          unassignId:
            description: |-
              The ID from the unassigned event to be completed by this assignment.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          source:
            description: |-
              The ID of the source synchronizer
              Must be a valid synchronizer id
              Required
            type: string
          target:
            description: |-
              The ID of the target synchronizer
              Must be a valid synchronizer id
              Required
            type: string
      CanActAs:
        title: CanActAs
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/CanActAs1'
      CanActAs1:
        title: CanActAs
        type: object
        required:
        - party
        properties:
          party:
            type: string
      CanReadAs:
        title: CanReadAs
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/CanReadAs1'
      CanReadAs1:
        title: CanReadAs
        type: object
        required:
        - party
        properties:
          party:
            type: string
      CanReadAsAnyParty:
        title: CanReadAsAnyParty
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/CanReadAsAnyParty1'
      CanReadAsAnyParty1:
        title: CanReadAsAnyParty
        type: object
      Command:
        title: Command
        description: A command can either create a new contract or exercise a choice
          on an existing contract.
        oneOf:
        - type: object
          required:
          - CreateAndExerciseCommand
          properties:
            CreateAndExerciseCommand:
              $ref: '#/components/schemas/CreateAndExerciseCommand'
        - type: object
          required:
          - CreateCommand
          properties:
            CreateCommand:
              $ref: '#/components/schemas/CreateCommand'
        - type: object
          required:
          - ExerciseByKeyCommand
          properties:
            ExerciseByKeyCommand:
              $ref: '#/components/schemas/ExerciseByKeyCommand'
        - type: object
          required:
          - ExerciseCommand
          properties:
            ExerciseCommand:
              $ref: '#/components/schemas/ExerciseCommand'
      Command1:
        title: Command
        description: A command can either create a new contract or exercise a choice
          on an existing contract.
        oneOf:
        - type: object
          required:
          - AssignCommand
          properties:
            AssignCommand:
              $ref: '#/components/schemas/AssignCommand'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty2'
        - type: object
          required:
          - UnassignCommand
          properties:
            UnassignCommand:
              $ref: '#/components/schemas/UnassignCommand'
      Completion:
        title: Completion
        description: 'A completion represents the status of a submitted command on the
          ledger: it can be successful or failed.'
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/Completion1'
      Completion1:
        title: Completion
        description: 'A completion represents the status of a submitted command on the
          ledger: it can be successful or failed.'
        type: object
        required:
        - commandId
        - updateId
        - userId
        - submissionId
        - deduplicationPeriod
        - offset
        properties:
          commandId:
            description: |-
              The ID of the succeeded or failed command.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          status:
            $ref: '#/components/schemas/Status'
            description: |-
              Identifies the exact type of the error.
              It uses the same format of conveying error details as it is used for the RPC responses of the APIs.
              Optional
          updateId:
            description: |-
              The update_id of the transaction or reassignment that resulted from the command with command_id.
              Only set for successfully executed commands.
              Must be a valid LedgerString (as described in ``value.proto``).
            type: string
          userId:
            description: |-
              The user-id that was used for the submission, as described in ``commands.proto``.
              Must be a valid UserIdString (as described in ``value.proto``).
              Optional for historic completions where this data is not available.
            type: string
          actAs:
            description: |-
              The set of parties on whose behalf the commands were executed.
              Contains the ``act_as`` parties from ``commands.proto``
              filtered to the requesting parties in CompletionStreamRequest.
              The order of the parties need not be the same as in the submission.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Optional for historic completions where this data is not available.
            type: array
            items:
              type: string
          submissionId:
            description: |-
              The submission ID this completion refers to, as described in ``commands.proto``.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          deduplicationPeriod:
            $ref: '#/components/schemas/DeduplicationPeriod1'
          traceContext:
            $ref: '#/components/schemas/TraceContext'
            description: |-
              Optional; ledger API trace context

              The trace context transported in this message corresponds to the trace context supplied
              by the client application in a HTTP2 header of the original command submission.
              We typically use a header to transfer this type of information. Here we use message
              body, because it is used in gRPC streams which do not support per message headers.
              This field will be populated with the trace context contained in the original submission.
              If that was not provided, a unique ledger-api-server generated trace context will be used
              instead.
          offset:
            description: |-
              May be used in a subsequent CompletionStreamRequest to resume the consumption of this stream at a later time.
              Required, must be a valid absolute offset (positive integer).
            type: integer
            format: int64
          synchronizerTime:
            $ref: '#/components/schemas/SynchronizerTime'
            description: |-
              The synchronizer along with its record time.
              The synchronizer id provided, in case of

              - successful/failed transactions: identifies the synchronizer of the transaction
              - for successful/failed unassign commands: identifies the source synchronizer
              - for successful/failed assign commands: identifies the target synchronizer

              Required
      CompletionResponse:
        title: CompletionResponse
        oneOf:
        - type: object
          required:
          - Completion
          properties:
            Completion:
              $ref: '#/components/schemas/Completion'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty4'
        - type: object
          required:
          - OffsetCheckpoint
          properties:
            OffsetCheckpoint:
              $ref: '#/components/schemas/OffsetCheckpoint'
      CompletionStreamRequest:
        title: CompletionStreamRequest
        type: object
        required:
        - userId
        - beginExclusive
        properties:
          userId:
            description: |-
              Only completions of commands submitted with the same user_id will be visible in the stream.
              Must be a valid UserIdString (as described in ``value.proto``).
              Required unless authentication is used with a user token.
              In that case, the token's user-id will be used for the request's user_id.
            type: string
          parties:
            description: |-
              Non-empty list of parties whose data should be included.
              The stream shows only completions of commands for which at least one of the ``act_as`` parties is in the given set of parties.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Required
            type: array
            items:
              type: string
          beginExclusive:
            description: |-
              This optional field indicates the minimum offset for completions. This can be used to resume an earlier completion stream.
              If not set the ledger uses the ledger begin offset instead.
              If specified, it must be a valid absolute offset (positive integer) or zero (ledger begin offset).
              If the ledger has been pruned, this parameter must be specified and greater than the pruning offset.
            type: integer
            format: int64
      CompletionStreamResponse:
        title: CompletionStreamResponse
        type: object
        required:
        - completionResponse
        properties:
          completionResponse:
            $ref: '#/components/schemas/CompletionResponse'
      ConnectedSynchronizer:
        title: ConnectedSynchronizer
        type: object
        required:
        - synchronizerAlias
        - synchronizerId
        - permission
        properties:
          synchronizerAlias:
            type: string
          synchronizerId:
            type: string
          permission:
            type: string
      CreateAndExerciseCommand:
        title: CreateAndExerciseCommand
        description: Create a contract and exercise a choice on it in the same transaction.
        type: object
        required:
        - templateId
        - createArguments
        - choice
        - choiceArgument
        properties:
          templateId:
            description: |-
              The template of the contract the client wants to create.
              Both package-name and package-id reference identifier formats for the template-id are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          createArguments:
            description: |-
              The arguments required for creating a contract from this template.
              Required
          choice:
            description: |-
              The name of the choice the client wants to exercise.
              Must be a valid NameString (as described in ``value.proto``).
              Required
            type: string
          choiceArgument:
            description: |-
              The argument for this choice.
              Required
      CreateCommand:
        title: CreateCommand
        description: Create a new contract instance based on a template.
        type: object
        required:
        - templateId
        - createArguments
        properties:
          templateId:
            description: |-
              The template of contract the client wants to create.
              Both package-name and package-id reference identifier formats for the template-id are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          createArguments:
            description: |-
              The arguments required for creating a contract from this template.
              Required
      CreateIdentityProviderConfigRequest:
        title: CreateIdentityProviderConfigRequest
        type: object
        properties:
          identityProviderConfig:
            $ref: '#/components/schemas/IdentityProviderConfig'
            description: Required
      CreateIdentityProviderConfigResponse:
        title: CreateIdentityProviderConfigResponse
        type: object
        properties:
          identityProviderConfig:
            $ref: '#/components/schemas/IdentityProviderConfig'
            description: ''
      CreateUserRequest:
        title: CreateUserRequest
        description: |2-
           RPC requests and responses
          ///////////////////////////
           Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(user.identity_provider_id)``
        type: object
        properties:
          user:
            $ref: '#/components/schemas/User'
            description: |-
              The user to create.
              Required
          rights:
            description: |-
              The rights to be assigned to the user upon creation,
              which SHOULD include appropriate rights for the ``user.primary_party``.
              Optional
            type: array
            items:
              $ref: '#/components/schemas/Right'
      CreateUserResponse:
        title: CreateUserResponse
        type: object
        properties:
          user:
            $ref: '#/components/schemas/User'
            description: Created user.
      CreatedEvent:
        title: CreatedEvent
        description: Records that a contract has been created, and choices may now be
          exercised on it.
        type: object
        required:
        - offset
        - nodeId
        - contractId
        - templateId
        - createdEventBlob
        - createdAt
        - packageName
        properties:
          offset:
            description: |-
              The offset of origin, which has contextual meaning, please see description at messages that include a CreatedEvent.
              Offsets are managed by the participant nodes.
              Transactions can thus NOT be assumed to have the same offsets on different participant nodes.
              Required, it is a valid absolute offset (positive integer)
            type: integer
            format: int64
          nodeId:
            description: |-
              The position of this event in the originating transaction or reassignment.
              The origin has contextual meaning, please see description at messages that include a CreatedEvent.
              Node IDs are not necessarily equal across participants,
              as these may see different projections/parts of transactions.
              Required, must be valid node ID (non-negative integer)
            type: integer
            format: int32
          contractId:
            description: |-
              The ID of the created contract.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          templateId:
            description: |-
              The template of the created contract.
              The identifier uses the package-id reference format.

              Required
            type: string
          contractKey:
            description: |-
              The key of the created contract.
              This will be set if and only if ``create_arguments`` is set and ``template_id`` defines a contract key.
              Optional
          createArgument: {}
          createdEventBlob:
            description: |-
              Opaque representation of contract create event payload intended for forwarding
              to an API server as a contract disclosed as part of a command
              submission.
              Optional
            type: string
          interfaceViews:
            description: |-
              Interface views specified in the transaction filter.
              Includes an ``InterfaceView`` for each interface for which there is a ``InterfaceFilter`` with

              - its party in the ``witness_parties`` of this event,
              - and which is implemented by the template of this event,
              - and which has ``include_interface_view`` set.

              Optional
            type: array
            items:
              $ref: '#/components/schemas/JsInterfaceView'
          witnessParties:
            description: |-
              The parties that are notified of this event. When a ``CreatedEvent``
              is returned as part of a transaction tree or ledger-effects transaction, this will include all
              the parties specified in the ``TransactionFilter`` that are informees
              of the event. If served as part of a ACS delta transaction those will
              be limited to all parties specified in the ``TransactionFilter`` that
              are stakeholders of the contract (i.e. either signatories or observers).
              If the ``CreatedEvent`` is returned as part of an AssignedEvent,
              ActiveContract or IncompleteUnassigned (so the event is related to
              an assignment or unassignment): this will include all parties of the
              ``TransactionFilter`` that are stakeholders of the contract.

              The behavior of reading create events visible to parties not hosted
              on the participant node serving the Ledger API is undefined. Concretely,
              there is neither a guarantee that the participant node will serve all their
              create events on the ACS stream, nor is there a guarantee that matching archive
              events are delivered for such create events.

              For most clients this is not a problem, as they only read events for parties
              that are hosted on the participant node. If you need to read events
              for parties that may not be hosted at all times on the participant node,
              subscribe to the ``TopologyEvent``s for that party by setting a corresponding
              ``UpdateFormat``.  Using these events, query the ACS as-of an offset where the
              party is hosted on the participant node, and ignore create events at offsets
              where the party is not hosted on the participant node.
              Required
            type: array
            items:
              type: string
          signatories:
            description: |-
              The signatories for this contract as specified by the template.
              Required
            type: array
            items:
              type: string
          observers:
            description: |-
              The observers for this contract as specified explicitly by the template or implicitly as choice controllers.
              This field never contains parties that are signatories.
              Required
            type: array
            items:
              type: string
          createdAt:
            description: |-
              Ledger effective time of the transaction that created the contract.
              Required
            type: string
          packageName:
            description: |-
              The package name of the created contract.
              Required
            type: string
      CreatedTreeEvent:
        title: CreatedTreeEvent
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/CreatedEvent'
      CumulativeFilter:
        title: CumulativeFilter
        description: |-
          A filter that matches all contracts that are either an instance of one of
          the ``template_filters`` or that match one of the ``interface_filters``.
        type: object
        required:
        - identifierFilter
        properties:
          identifierFilter:
            $ref: '#/components/schemas/IdentifierFilter'
      DeduplicationDuration:
        title: DeduplicationDuration
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/Duration'
      DeduplicationDuration1:
        title: DeduplicationDuration
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/Duration'
      DeduplicationDuration2:
        title: DeduplicationDuration
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/Duration'
      DeduplicationOffset:
        title: DeduplicationOffset
        type: object
        required:
        - value
        properties:
          value:
            type: integer
            format: int64
      DeduplicationOffset1:
        title: DeduplicationOffset
        type: object
        required:
        - value
        properties:
          value:
            type: integer
            format: int64
      DeduplicationOffset2:
        title: DeduplicationOffset
        type: object
        required:
        - value
        properties:
          value:
            type: integer
            format: int64
      DeduplicationPeriod:
        title: DeduplicationPeriod
        description: |-
          Specifies the deduplication period for the change ID.
          If omitted, the participant will assume the configured maximum deduplication time.
        oneOf:
        - type: object
          required:
          - DeduplicationDuration
          properties:
            DeduplicationDuration:
              $ref: '#/components/schemas/DeduplicationDuration'
        - type: object
          required:
          - DeduplicationOffset
          properties:
            DeduplicationOffset:
              $ref: '#/components/schemas/DeduplicationOffset'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty'
      DeduplicationPeriod1:
        title: DeduplicationPeriod
        description: |-
          The actual deduplication window used for the submission, which is derived from
          ``Commands.deduplication_period``. The ledger may convert the deduplication period into other
          descriptions and extend the period in implementation-specified ways.

          Used to audit the deduplication guarantee described in ``commands.proto``.

          Optional; the deduplication guarantee applies even if the completion omits this field.
        oneOf:
        - type: object
          required:
          - DeduplicationDuration
          properties:
            DeduplicationDuration:
              $ref: '#/components/schemas/DeduplicationDuration1'
        - type: object
          required:
          - DeduplicationOffset
          properties:
            DeduplicationOffset:
              $ref: '#/components/schemas/DeduplicationOffset1'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty3'
      DeduplicationPeriod2:
        title: DeduplicationPeriod
        description: |-
          Specifies the deduplication period for the change ID (See PrepareSubmissionRequest).
          If omitted, the participant will assume the configured maximum deduplication time.
        oneOf:
        - type: object
          required:
          - DeduplicationDuration
          properties:
            DeduplicationDuration:
              $ref: '#/components/schemas/DeduplicationDuration2'
        - type: object
          required:
          - DeduplicationOffset
          properties:
            DeduplicationOffset:
              $ref: '#/components/schemas/DeduplicationOffset2'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty7'
      DeleteIdentityProviderConfigResponse:
        title: DeleteIdentityProviderConfigResponse
        description: Does not (yet) contain any data.
        type: object
      DisclosedContract:
        title: DisclosedContract
        description: |-
          An additional contract that is used to resolve
          contract & contract key lookups.
        type: object
        required:
        - contractId
        - createdEventBlob
        - synchronizerId
        properties:
          templateId:
            description: |-
              The template id of the contract.
              The identifier uses the package-id reference format.

              Required
            type: string
          contractId:
            description: |-
              The contract id
              Required
            type: string
          createdEventBlob:
            description: |-
              Opaque byte string containing the complete payload required by the Daml engine
              to reconstruct a contract not known to the receiving participant.
              Required
            type: string
          synchronizerId:
            description: |-
              The ID of the synchronizer where the contract is currently assigned
              Optional
            type: string
      Duration:
        title: Duration
        type: object
        required:
        - seconds
        - nanos
        properties:
          seconds:
            type: integer
            format: int64
          nanos:
            type: integer
            format: int32
          unknownFields:
            $ref: '#/components/schemas/UnknownFieldSet'
            description: This field is automatically added as part of protobuf to json
              mapping
      Empty:
        title: Empty
        type: object
      Empty1:
        title: Empty
        type: object
      Empty2:
        title: Empty
        type: object
      Empty3:
        title: Empty
        type: object
      Empty4:
        title: Empty
        type: object
      Empty5:
        title: Empty
        type: object
      Empty6:
        title: Empty
        type: object
      Empty7:
        title: Empty
        type: object
      Event:
        title: Event
        description: |-
          Events in transactions can have two primary shapes:

          - ACS delta: events can be CreatedEvent or ArchivedEvent
          - ledger effects: events can be CreatedEvent or ExercisedEvent

          In the update service the events are restricted to the events
          visible for the parties specified in the transaction filter. Each
          event message type below contains a ``witness_parties`` field which
          indicates the subset of the requested parties that can see the event
          in question.
        oneOf:
        - type: object
          required:
          - ArchivedEvent
          properties:
            ArchivedEvent:
              $ref: '#/components/schemas/ArchivedEvent'
        - type: object
          required:
          - CreatedEvent
          properties:
            CreatedEvent:
              $ref: '#/components/schemas/CreatedEvent'
        - type: object
          required:
          - ExercisedEvent
          properties:
            ExercisedEvent:
              $ref: '#/components/schemas/ExercisedEvent'
      EventFormat:
        title: EventFormat
        description: |-
          A format for events which defines both which events should be included
          and what data should be computed and included for them.

          Note that some of the filtering behavior depends on the `TransactionShape`,
          which is expected to be specified alongside usages of `EventFormat`.
        type: object
        required:
        - filtersByParty
        - verbose
        properties:
          filtersByParty:
            $ref: '#/components/schemas/Map_Filters'
            description: |-
              Each key must be a valid PartyIdString (as described in ``value.proto``).
              The interpretation of the filter depends on the transaction-shape being filtered:

              1. For **ledger-effects** create and exercise events are returned, for which the witnesses include at least one of
                 the listed parties and match the per-party filter.
              2. For **transaction and active-contract-set streams** create and archive events are returned for all contracts whose
                 stakeholders include at least one of the listed parties and match the per-party filter.

              Optional
          filtersForAnyParty:
            $ref: '#/components/schemas/Filters'
            description: |-
              Wildcard filters that apply to all the parties existing on the participant. The interpretation of the filters is the same
              with the per-party filter as described above.
              Optional
          verbose:
            description: |-
              If enabled, values served over the API will contain more information than strictly necessary to interpret the data.
              In particular, setting the verbose flag to true triggers the ledger to include labels for record fields.
              Optional
            type: boolean
      ExecuteSubmissionResponse:
        title: ExecuteSubmissionResponse
        type: object
      ExerciseByKeyCommand:
        title: ExerciseByKeyCommand
        description: Exercise a choice on an existing contract specified by its key.
        type: object
        required:
        - templateId
        - contractKey
        - choice
        - choiceArgument
        properties:
          templateId:
            description: |-
              The template of contract the client wants to exercise.
              Both package-name and package-id reference identifier formats for the template-id are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          contractKey:
            description: |-
              The key of the contract the client wants to exercise upon.
              Required
          choice:
            description: |-
              The name of the choice the client wants to exercise.
              Must be a valid NameString (as described in ``value.proto``)
              Required
            type: string
          choiceArgument:
            description: |-
              The argument for this choice.
              Required
      ExerciseCommand:
        title: ExerciseCommand
        description: Exercise a choice on an existing contract.
        type: object
        required:
        - templateId
        - contractId
        - choice
        - choiceArgument
        properties:
          templateId:
            description: |-
              The template of contract the client wants to exercise.
              Both package-name and package-id reference identifier formats for the template-id are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          contractId:
            description: |-
              The ID of the contract the client wants to exercise upon.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          choice:
            description: |-
              The name of the choice the client wants to exercise.
              Must be a valid NameString (as described in ``value.proto``)
              Required
            type: string
          choiceArgument:
            description: |-
              The argument for this choice.
              Required
      ExercisedEvent:
        title: ExercisedEvent
        description: Records that a choice has been exercised on a target contract.
        type: object
        required:
        - offset
        - nodeId
        - contractId
        - templateId
        - choice
        - choiceArgument
        - consuming
        - lastDescendantNodeId
        - exerciseResult
        - packageName
        properties:
          offset:
            description: |-
              The offset of origin.
              Offsets are managed by the participant nodes.
              Transactions can thus NOT be assumed to have the same offsets on different participant nodes.
              Required, it is a valid absolute offset (positive integer)
            type: integer
            format: int64
          nodeId:
            description: |-
              The position of this event in the originating transaction or reassignment.
              Node IDs are not necessarily equal across participants,
              as these may see different projections/parts of transactions.
              Required, must be valid node ID (non-negative integer)
            type: integer
            format: int32
          contractId:
            description: |-
              The ID of the target contract.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          templateId:
            description: |-
              The template of the target contract.
              The identifier uses the package-id reference format.

              Required
            type: string
          interfaceId:
            description: |-
              The interface where the choice is defined, if inherited.
              If defined, the identifier uses the package-id reference format.

              Optional
            type: string
          choice:
            description: |-
              The choice that was exercised on the target contract.
              Must be a valid NameString (as described in ``value.proto``).
              Required
            type: string
          choiceArgument:
            description: |-
              The argument of the exercised choice.
              Required
          actingParties:
            description: |-
              The parties that exercised the choice.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Required
            type: array
            items:
              type: string
          consuming:
            description: |-
              If true, the target contract may no longer be exercised.
              Required
            type: boolean
          witnessParties:
            description: |-
              The parties that are notified of this event. The witnesses of an exercise
              node will depend on whether the exercise was consuming or not.
              If consuming, the witnesses are the union of the stakeholders and
              the actors.
              If not consuming, the witnesses are the union of the signatories and
              the actors. Note that the actors might not necessarily be observers
              and thus signatories. This is the case when the controllers of a
              choice are specified using "flexible controllers", using the
              ``choice ... controller`` syntax, and said controllers are not
              explicitly marked as observers.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Required
            type: array
            items:
              type: string
          lastDescendantNodeId:
            description: |-
              Specifies the upper boundary of the node ids of the events in the same transaction that appeared as a result of
              this ``ExercisedEvent``. This allows unambiguous identification of all the members of the subtree rooted at this
              node. A full subtree can be constructed when all descendant nodes are present in the stream. If nodes are heavily
              filtered, it is only possible to determine if a node is in a consequent subtree or not.
              Required
            type: integer
            format: int32
          exerciseResult:
            description: |-
              The result of exercising the choice.
              Required
          packageName:
            description: |-
              The package name of the contract.
              Required
            type: string
          implementedInterfaces:
            description: |-
              If the event is consuming, the interfaces implemented by the target template that have been
              matched from the interface filter query.
              Populated only in case interface filters with include_interface_view set.

              The identifier uses the package-id reference format.

              Optional
            type: array
            items:
              type: string
      ExercisedTreeEvent:
        title: ExercisedTreeEvent
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/ExercisedEvent'
      ExperimentalCommandInspectionService:
        title: ExperimentalCommandInspectionService
        description: Whether the Ledger API supports command inspection service
        type: object
        required:
        - supported
        properties:
          supported:
            description: ''
            type: boolean
      ExperimentalFeatures:
        title: ExperimentalFeatures
        description: See the feature message definitions for descriptions.
        type: object
        properties:
          staticTime:
            $ref: '#/components/schemas/ExperimentalStaticTime'
            description: ''
          commandInspectionService:
            $ref: '#/components/schemas/ExperimentalCommandInspectionService'
            description: ''
      ExperimentalStaticTime:
        title: ExperimentalStaticTime
        description: Ledger is in the static time mode and exposes a time service.
        type: object
        required:
        - supported
        properties:
          supported:
            description: ''
            type: boolean
      FeaturesDescriptor:
        title: FeaturesDescriptor
        type: object
        properties:
          experimental:
            $ref: '#/components/schemas/ExperimentalFeatures'
            description: |-
              Features under development or features that are used
              for ledger implementation testing purposes only.

              Daml applications SHOULD not depend on these in production.
          userManagement:
            $ref: '#/components/schemas/UserManagementFeature'
            description: |-
              If set, then the Ledger API server supports user management.
              It is recommended that clients query this field to gracefully adjust their behavior for
              ledgers that do not support user management.
          partyManagement:
            $ref: '#/components/schemas/PartyManagementFeature'
            description: |-
              If set, then the Ledger API server supports party management configurability.
              It is recommended that clients query this field to gracefully adjust their behavior to
              maximum party page size.
          offsetCheckpoint:
            $ref: '#/components/schemas/OffsetCheckpointFeature'
            description: It contains the timeouts related to the periodic offset checkpoint
              emission
      Field:
        title: Field
        type: object
        properties:
          varint:
            type: array
            items:
              type: integer
              format: int64
          fixed64:
            type: array
            items:
              type: integer
              format: int64
          fixed32:
            type: array
            items:
              type: integer
              format: int32
          lengthDelimited:
            type: array
            items:
              type: string
      FieldMask:
        title: FieldMask
        type: object
        required:
        - unknownFields
        properties:
          paths:
            type: array
            items:
              type: string
          unknownFields:
            $ref: '#/components/schemas/UnknownFieldSet'
      Filters:
        title: Filters
        description: The union of a set of template filters, interface filters, or a
          wildcard.
        type: object
        properties:
          cumulative:
            description: |-
              Every filter in the cumulative list expands the scope of the resulting stream. Each interface,
              template or wildcard filter means additional events that will match the query.
              The impact of include_interface_view and include_created_event_blob fields in the filters will
              also be accumulated.
              A template or an interface SHOULD NOT appear twice in the accumulative field.
              A wildcard filter SHOULD NOT be defined more than once in the accumulative field.
              Optional, if no ``CumulativeFilter`` defined, the default of a single ``WildcardFilter`` with
              include_created_event_blob unset is used.
            type: array
            items:
              $ref: '#/components/schemas/CumulativeFilter'
      GetActiveContractsRequest:
        title: GetActiveContractsRequest
        description: |-
          If the given offset is different than the ledger end, and there are (un)assignments in-flight at the given offset,
          the snapshot may fail with "FAILED_PRECONDITION/PARTICIPANT_PRUNED_DATA_ACCESSED".
          Note that it is ok to request acs snapshots for party migration with offsets other than ledger end, because party
          migration is not concerned with incomplete (un)assignments.
        type: object
        required:
        - verbose
        - activeAtOffset
        properties:
          filter:
            $ref: '#/components/schemas/TransactionFilter'
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              Templates to include in the served snapshot, per party.
              Optional, if specified event_format must be unset, if not specified event_format must be set.
          verbose:
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              If enabled, values served over the API will contain more information than strictly necessary to interpret the data.
              In particular, setting the verbose flag to true triggers the ledger to include labels for record fields.
              Optional, if specified event_format must be unset.
            type: boolean
          activeAtOffset:
            description: |-
              The offset at which the snapshot of the active contracts will be computed.
              Must be no greater than the current ledger end offset.
              Must be greater than or equal to the last pruning offset.
              Required, must be a valid absolute offset (positive integer) or ledger begin offset (zero).
              If zero, the empty set will be returned.
            type: integer
            format: int64
          eventFormat:
            $ref: '#/components/schemas/EventFormat'
            description: |-
              Format of the contract_entries in the result. In case of CreatedEvent the presentation will be of
              TRANSACTION_SHAPE_ACS_DELTA.
              Optional for backwards compatibility, defaults to an EventFormat where:

              - filters_by_party is the filter.filters_by_party from this request
              - filters_for_any_party is the filter.filters_for_any_party from this request
              - verbose is the verbose field from this request
      GetConnectedSynchronizersResponse:
        title: GetConnectedSynchronizersResponse
        type: object
        properties:
          connectedSynchronizers:
            description: ''
            type: array
            items:
              $ref: '#/components/schemas/ConnectedSynchronizer'
      GetEventsByContractIdRequest:
        title: GetEventsByContractIdRequest
        type: object
        required:
        - contractId
        properties:
          contractId:
            description: |-
              The contract id being queried.
              Required
            type: string
          requestingParties:
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              The parties whose events the client expects to see.
              The events associated with the contract id will only be returned if the requesting parties includes
              at least one party that is a stakeholder of the event. For a definition of stakeholders see
              https://docs.daml.com/concepts/ledger-model/ledger-privacy.html#contract-observers-and-stakeholders
              Optional, if some parties specified, event_format needs to be unset.
            type: array
            items:
              type: string
          eventFormat:
            $ref: '#/components/schemas/EventFormat'
            description: |-
              Format of the events in the result, the presentation will be of TRANSACTION_SHAPE_ACS_DELTA.
              Optional for backwards compatibility, defaults to an EventFormat where:

              - filters_by_party is a template-wildcard filter for all requesting_parties
              - filters_for_any_party is unset
              - verbose is set
      GetIdentityProviderConfigResponse:
        title: GetIdentityProviderConfigResponse
        type: object
        properties:
          identityProviderConfig:
            $ref: '#/components/schemas/IdentityProviderConfig'
            description: ''
      GetLatestPrunedOffsetsResponse:
        title: GetLatestPrunedOffsetsResponse
        type: object
        required:
        - participantPrunedUpToInclusive
        - allDivulgedContractsPrunedUpToInclusive
        properties:
          participantPrunedUpToInclusive:
            description: |-
              It will always be a non-negative integer.
              If positive, the absolute offset up to which the ledger has been pruned,
              disregarding the state of all divulged contracts pruning.
              If zero, the ledger has not been pruned yet.
            type: integer
            format: int64
          allDivulgedContractsPrunedUpToInclusive:
            description: |-
              It will always be a non-negative integer.
              If positive, the absolute offset up to which all divulged events have been pruned on the ledger.
              It can be at or before the ``participant_pruned_up_to_inclusive`` offset.
              For more details about all divulged events pruning,
              see ``PruneRequest.prune_all_divulged_contracts`` in ``participant_pruning_service.proto``.
              If zero, the divulged events have not been pruned yet.
            type: integer
            format: int64
      GetLedgerApiVersionResponse:
        title: GetLedgerApiVersionResponse
        type: object
        required:
        - version
        properties:
          version:
            description: The version of the ledger API.
            type: string
          features:
            $ref: '#/components/schemas/FeaturesDescriptor'
            description: |-
              The features supported by this Ledger API endpoint.

              Daml applications CAN use the feature descriptor on top of
              version constraints on the Ledger API version to determine
              whether a given Ledger API endpoint supports the features
              required to run the application.

              See the feature descriptions themselves for the relation between
              Ledger API versions and feature presence.
      GetLedgerEndResponse:
        title: GetLedgerEndResponse
        type: object
        required:
        - offset
        properties:
          offset:
            description: |-
              It will always be a non-negative integer.
              If zero, the participant view of the ledger is empty.
              If positive, the absolute offset of the ledger as viewed by the participant.
            type: integer
            format: int64
      GetPackageStatusResponse:
        title: GetPackageStatusResponse
        type: object
        required:
        - packageStatus
        properties:
          packageStatus:
            description: The status of the package.
            type: string
      GetParticipantIdResponse:
        title: GetParticipantIdResponse
        type: object
        required:
        - participantId
        properties:
          participantId:
            description: |-
              Identifier of the participant, which SHOULD be globally unique.
              Must be a valid LedgerString (as describe in ``value.proto``).
            type: string
      GetPartiesResponse:
        title: GetPartiesResponse
        type: object
        properties:
          partyDetails:
            description: |-
              The details of the requested Daml parties by the participant, if known.
              The party details may not be in the same order as requested.
              Required
            type: array
            items:
              $ref: '#/components/schemas/PartyDetails'
      GetPreferredPackageVersionResponse:
        title: GetPreferredPackageVersionResponse
        type: object
        properties:
          packagePreference:
            $ref: '#/components/schemas/PackagePreference'
            description: |-
              Not populated when no preferred package is found
              Optional
      GetPreferredPackagesRequest:
        title: GetPreferredPackagesRequest
        type: object
        required:
        - synchronizerId
        properties:
          packageVettingRequirements:
            description: |-
              The package-name vetting requirements for which the preferred packages should be resolved.

              Generally it is enough to provide the requirements for the intended command's root package-names.
              Additional package-name requirements can be provided when additional Daml transaction informees need to use
              package dependencies of the command's root packages.

              Required
            type: array
            items:
              $ref: '#/components/schemas/PackageVettingRequirement'
          synchronizerId:
            description: |-
              The synchronizer whose vetting state to use for resolving this query.
              If not specified, the vetting state of all the synchronizers the participant is connected to will be used.
              Optional
            type: string
          vettingValidAt:
            description: |-
              The timestamp at which the package vetting validity should be computed
              on the latest topology snapshot as seen by the participant.
              If not provided, the participant's current clock time is used.
              Optional
            type: string
      GetPreferredPackagesResponse:
        title: GetPreferredPackagesResponse
        type: object
        required:
        - synchronizerId
        properties:
          packageReferences:
            description: |-
              The package references of the preferred packages.
              Must contain one package reference for each requested package-name.
              Required
            type: array
            items:
              $ref: '#/components/schemas/PackageReference'
          synchronizerId:
            description: |-
              The synchronizer for which the package preferences are computed.
              If the synchronizer_id was specified in the request, then it matches the request synchronizer_id.
              Required
            type: string
      GetTransactionByIdRequest:
        title: GetTransactionByIdRequest
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - updateId
        properties:
          updateId:
            description: |-
              The ID of a particular transaction.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          requestingParties:
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              The parties whose events the client expects to see.
              Events that are not visible for the parties in this collection will not be present in the response.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Must be set for GetTransactionTreeById request.
              Optional for backwards compatibility for GetTransactionById request: if defined transaction_format must be
              unset (falling back to defaults).
            type: array
            items:
              type: string
          transactionFormat:
            $ref: '#/components/schemas/TransactionFormat'
            description: |-
              Must be unset for GetTransactionTreeById request.
              Optional for GetTransactionById request for backwards compatibility: defaults to a transaction_format, where:

              - event_format.filters_by_party will have template-wildcard filters for all the requesting_parties
              - event_format.filters_for_any_party is unset
              - event_format.verbose = true
              - transaction_shape = TRANSACTION_SHAPE_ACS_DELTA
      GetTransactionByOffsetRequest:
        title: GetTransactionByOffsetRequest
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - offset
        properties:
          offset:
            description: |-
              The offset of the transaction being looked up.
              Must be a valid absolute offset (positive integer).
              Required
            type: integer
            format: int64
          requestingParties:
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              The parties whose events the client expects to see.
              Events that are not visible for the parties in this collection will not be present in the response.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Must be set for GetTransactionTreeByOffset request.
              Optional for backwards compatibility for GetTransactionByOffset request: if defined transaction_format must be
              unset (falling back to defaults).
            type: array
            items:
              type: string
          transactionFormat:
            $ref: '#/components/schemas/TransactionFormat'
            description: |-
              Must be unset for GetTransactionTreeByOffset request.
              Optional for GetTransactionByOffset request for backwards compatibility: defaults to a TransactionFormat, where:

              - event_format.filters_by_party will have template-wildcard filters for all the requesting_parties
              - event_format.filters_for_any_party is unset
              - event_format.verbose = true
              - transaction_shape = TRANSACTION_SHAPE_ACS_DELTA
      GetUpdateByIdRequest:
        title: GetUpdateByIdRequest
        type: object
        required:
        - updateId
        properties:
          updateId:
            description: |-
              The ID of a particular update.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          updateFormat:
            $ref: '#/components/schemas/UpdateFormat'
            description: |-
              The format for the update.
              Required
      GetUpdateByOffsetRequest:
        title: GetUpdateByOffsetRequest
        type: object
        required:
        - offset
        properties:
          offset:
            description: |-
              The offset of the update being looked up.
              Must be a valid absolute offset (positive integer).
              Required
            type: integer
            format: int64
          updateFormat:
            $ref: '#/components/schemas/UpdateFormat'
            description: |-
              The format for the update.
              Required
      GetUpdatesRequest:
        title: GetUpdatesRequest
        type: object
        required:
        - beginExclusive
        - verbose
        properties:
          beginExclusive:
            description: |-
              Beginning of the requested ledger section (non-negative integer).
              The response will only contain transactions whose offset is strictly greater than this.
              If zero, the stream will start from the beginning of the ledger.
              If positive, the streaming will start after this absolute offset.
              If the ledger has been pruned, this parameter must be specified and be greater than the pruning offset.
            type: integer
            format: int64
          endInclusive:
            description: |-
              End of the requested ledger section.
              The response will only contain transactions whose offset is less than or equal to this.
              Optional, if empty, the stream will not terminate.
              If specified, the stream will terminate after this absolute offset (positive integer) is reached.
            type: integer
            format: int64
          filter:
            $ref: '#/components/schemas/TransactionFilter'
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              Requesting parties with template filters.
              Template filters must be empty for GetUpdateTrees requests.
              Optional for backwards compatibility, if defined update_format must be unset
          verbose:
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              If enabled, values served over the API will contain more information than strictly necessary to interpret the data.
              In particular, setting the verbose flag to true triggers the ledger to include labels, record and variant type ids
              for record fields.
              Optional for backwards compatibility, if defined update_format must be unset
            type: boolean
          updateFormat:
            $ref: '#/components/schemas/UpdateFormat'
            description: |-
              Must be unset for GetUpdateTrees request.
              Optional for backwards compatibility for GetUpdates request: defaults to an UpdateFormat where:

              - include_transactions.event_format.filters_by_party = the filter.filters_by_party on this request
              - include_transactions.event_format.filters_for_any_party = the filter.filters_for_any_party on this request
              - include_transactions.event_format.verbose = the same flag specified on this request
              - include_transactions.transaction_shape = TRANSACTION_SHAPE_ACS_DELTA
              - include_reassignments.filter = the same filter specified on this request
              - include_reassignments.verbose = the same flag specified on this request
              - include_topology_events.include_participant_authorization_events.parties = all the parties specified in filter
      GetUserResponse:
        title: GetUserResponse
        type: object
        properties:
          user:
            $ref: '#/components/schemas/User'
            description: Retrieved user.
      GrantUserRightsRequest:
        title: GrantUserRightsRequest
        description: |-
          Add the rights to the set of rights granted to the user.

          Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(identity_provider_id)``
        type: object
        required:
        - userId
        - identityProviderId
        properties:
          userId:
            description: |-
              The user to whom to grant rights.
              Required
            type: string
          rights:
            description: |-
              The rights to grant.
              Optional
            type: array
            items:
              $ref: '#/components/schemas/Right'
          identityProviderId:
            description: |-
              The id of the ``Identity Provider``
              Optional, if not set, assume the user is managed by the default identity provider.
            type: string
      GrantUserRightsResponse:
        title: GrantUserRightsResponse
        type: object
        properties:
          newlyGrantedRights:
            description: The rights that were newly granted by the request.
            type: array
            items:
              $ref: '#/components/schemas/Right'
      Identifier:
        title: Identifier
        type: object
        required:
        - packageId
        - moduleName
        - entityName
        properties:
          packageId:
            type: string
          moduleName:
            type: string
          entityName:
            type: string
      IdentifierFilter:
        title: IdentifierFilter
        oneOf:
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty1'
        - type: object
          required:
          - InterfaceFilter
          properties:
            InterfaceFilter:
              $ref: '#/components/schemas/InterfaceFilter'
        - type: object
          required:
          - TemplateFilter
          properties:
            TemplateFilter:
              $ref: '#/components/schemas/TemplateFilter'
        - type: object
          required:
          - WildcardFilter
          properties:
            WildcardFilter:
              $ref: '#/components/schemas/WildcardFilter'
      IdentityProviderAdmin:
        title: IdentityProviderAdmin
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/IdentityProviderAdmin1'
      IdentityProviderAdmin1:
        title: IdentityProviderAdmin
        type: object
      IdentityProviderConfig:
        title: IdentityProviderConfig
        type: object
        required:
        - identityProviderId
        - isDeactivated
        - issuer
        - jwksUrl
        - audience
        properties:
          identityProviderId:
            description: |-
              The identity provider identifier
              Must be a valid LedgerString (as describe in ``value.proto``).
              Required
            type: string
          isDeactivated:
            description: |-
              When set, the callers using JWT tokens issued by this identity provider are denied all access
              to the Ledger API.
              Optional,
              Modifiable
            type: boolean
          issuer:
            description: |-
              Specifies the issuer of the JWT token.
              The issuer value is a case sensitive URL using the https scheme that contains scheme, host,
              and optionally, port number and path components and no query or fragment components.
              Required
              Modifiable
            type: string
          jwksUrl:
            description: |-
              The JWKS (JSON Web Key Set) URL.
              The Ledger API uses JWKs (JSON Web Keys) from the provided URL to verify that the JWT has been
              signed with the loaded JWK. Only RS256 (RSA Signature with SHA-256) signing algorithm is supported.
              Required
              Modifiable
            type: string
          audience:
            description: |-
              Specifies the audience of the JWT token.
              When set, the callers using JWT tokens issued by this identity provider are allowed to get an access
              only if the "aud" claim includes the string specified here
              Optional,
              Modifiable
            type: string
      InterfaceFilter:
        title: InterfaceFilter
        description: This filter matches contracts that implement a specific interface.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/InterfaceFilter1'
      InterfaceFilter1:
        title: InterfaceFilter
        description: This filter matches contracts that implement a specific interface.
        type: object
        required:
        - includeInterfaceView
        - includeCreatedEventBlob
        properties:
          interfaceId:
            description: |-
              The interface that a matching contract must implement.
              The ``interface_id`` needs to be valid: corresponding interface should be defined in
              one of the available packages at the time of the query.
              Both package-name and package-id reference formats for the identifier are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          includeInterfaceView:
            description: |-
              Whether to include the interface view on the contract in the returned ``CreatedEvent``.
              Use this to access contract data in a uniform manner in your API client.
              Optional
            type: boolean
          includeCreatedEventBlob:
            description: |-
              Whether to include a ``created_event_blob`` in the returned ``CreatedEvent``.
              Use this to access the contract create event payload in your API client
              for submitting it as a disclosed contract with future commands.
              Optional
            type: boolean
      JsActiveContract:
        title: JsActiveContract
        type: object
        required:
        - createdEvent
        - synchronizerId
        - reassignmentCounter
        properties:
          createdEvent:
            $ref: '#/components/schemas/CreatedEvent'
            description: |-
              Required
              The event as it appeared in the context of its last update (i.e. daml transaction or
              reassignment). In particular, the last offset, node_id pair is preserved.
              The last update is the most recent update created or assigned this contract on synchronizer_id synchronizer.
              The offset of the CreatedEvent might point to an already pruned update, therefore it cannot necessarily be used
              for lookups.
          synchronizerId:
            description: |-
              A valid synchronizer id
              Required
            type: string
          reassignmentCounter:
            description: |-
              Each corresponding assigned and unassigned event has the same reassignment_counter. This strictly increases
              with each unassign command for the same contract. Creation of the contract corresponds to reassignment_counter
              equals zero.
              This field will be the reassignment_counter of the latest observable activation event on this synchronizer, which is
              before the active_at_offset.
              Required
            type: integer
            format: int64
      JsArchived:
        title: JsArchived
        type: object
        required:
        - archivedEvent
        - synchronizerId
        properties:
          archivedEvent:
            $ref: '#/components/schemas/ArchivedEvent'
            description: Required
          synchronizerId:
            description: |-
              Required
              The synchronizer which sequenced the archival of the contract
            type: string
      JsAssignedEvent:
        title: JsAssignedEvent
        description: Records that a contract has been assigned, and it can be used on
          the target synchronizer.
        type: object
        required:
        - source
        - target
        - unassignId
        - submitter
        - reassignmentCounter
        - createdEvent
        properties:
          source:
            description: |-
              The ID of the source synchronizer.
              Must be a valid synchronizer id.
              Required
            type: string
          target:
            description: |-
              The ID of the target synchronizer.
              Must be a valid synchronizer id.
              Required
            type: string
          unassignId:
            description: |-
              The ID from the unassigned event.
              For correlation capabilities.
              For one contract the (unassign_id, source synchronizer) pair is unique.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          submitter:
            description: |-
              Party on whose behalf the assign command was executed.
              Empty if the assignment happened offline via the repair service.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Optional
            type: string
          reassignmentCounter:
            description: |-
              Each corresponding assigned and unassigned event has the same reassignment_counter. This strictly increases
              with each unassign command for the same contract. Creation of the contract corresponds to reassignment_counter
              equals zero.
              Required
            type: integer
            format: int64
          createdEvent:
            $ref: '#/components/schemas/CreatedEvent'
            description: |-
              Required
              The offset of this event refers to the offset of the assignment,
              while the node_id is the index of within the batch.
      JsAssignmentEvent:
        title: JsAssignmentEvent
        type: object
        required:
        - source
        - target
        - unassignId
        - submitter
        - reassignmentCounter
        - createdEvent
        properties:
          source:
            type: string
          target:
            type: string
          unassignId:
            type: string
          submitter:
            type: string
          reassignmentCounter:
            type: integer
            format: int64
          createdEvent:
            $ref: '#/components/schemas/CreatedEvent'
      JsCantonError:
        title: JsCantonError
        type: object
        required:
        - code
        - cause
        - context
        - errorCategory
        properties:
          code:
            type: string
          cause:
            type: string
          correlationId:
            type: string
          traceId:
            type: string
          context:
            $ref: '#/components/schemas/Map_String'
          resources:
            type: array
            items:
              $ref: '#/components/schemas/Tuple2_String_String'
          errorCategory:
            type: integer
            format: int32
          grpcCodeValue:
            type: integer
            format: int32
          retryInfo:
            type: string
          definiteAnswer:
            type: boolean
      JsCommands:
        title: JsCommands
        description: A composite command that groups multiple commands together.
        type: object
        required:
        - commandId
        properties:
          commands:
            description: |-
              Individual elements of this atomic command. Must be non-empty.
              Required
            type: array
            items:
              $ref: '#/components/schemas/Command'
          commandId:
            description: |-
              Uniquely identifies the command.
              The triple (user_id, act_as, command_id) constitutes the change ID for the intended ledger change,
              where act_as is interpreted as a set of party names.
              The change ID can be used for matching the intended ledger changes with all their completions.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          actAs:
            description: |-
              Set of parties on whose behalf the command should be executed.
              If ledger API authorization is enabled, then the authorization metadata must authorize the sender of the request
              to act on behalf of each of the given parties.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Required, must be non-empty.
            type: array
            items:
              type: string
          userId:
            description: |-
              Uniquely identifies the participant user that issued the command.
              Must be a valid UserIdString (as described in ``value.proto``).
              Required unless authentication is used with a user token.
              In that case, the token's user-id will be used for the request's user_id.
            type: string
          readAs:
            description: |-
              Set of parties on whose behalf (in addition to all parties listed in ``act_as``) contracts can be retrieved.
              This affects Daml operations such as ``fetch``, ``fetchByKey``, ``lookupByKey``, ``exercise``, and ``exerciseByKey``.
              Note: A participant node of a Daml network can host multiple parties. Each contract present on the participant
              node is only visible to a subset of these parties. A command can only use contracts that are visible to at least
              one of the parties in ``act_as`` or ``read_as``. This visibility check is independent from the Daml authorization
              rules for fetch operations.
              If ledger API authorization is enabled, then the authorization metadata must authorize the sender of the request
              to read contract data on behalf of each of the given parties.
              Optional
            type: array
            items:
              type: string
          workflowId:
            description: |-
              Identifier of the on-ledger workflow that this command is a part of.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          deduplicationPeriod:
            $ref: '#/components/schemas/DeduplicationPeriod'
          minLedgerTimeAbs:
            description: |-
              Lower bound for the ledger time assigned to the resulting transaction.
              Note: The ledger time of a transaction is assigned as part of command interpretation.
              Use this property if you expect that command interpretation will take a considerate amount of time, such that by
              the time the resulting transaction is sequenced, its assigned ledger time is not valid anymore.
              Must not be set at the same time as min_ledger_time_rel.
              Optional
            type: string
          minLedgerTimeRel:
            $ref: '#/components/schemas/Duration'
            description: |-
              Same as min_ledger_time_abs, but specified as a duration, starting from the time the command is received by the server.
              Must not be set at the same time as min_ledger_time_abs.
              Optional
          submissionId:
            description: |-
              A unique identifier to distinguish completions for different submissions with the same change ID.
              Typically a random UUID. Applications are expected to use a different UUID for each retry of a submission
              with the same change ID.
              Must be a valid LedgerString (as described in ``value.proto``).

              If omitted, the participant or the committer may set a value of their choice.
              Optional
            type: string
          disclosedContracts:
            description: |-
              Additional contracts used to resolve contract & contract key lookups.
              Optional
            type: array
            items:
              $ref: '#/components/schemas/DisclosedContract'
          synchronizerId:
            description: |-
              Must be a valid synchronizer id
              Optional
            type: string
          packageIdSelectionPreference:
            description: |-
              The package-id selection preference of the client for resolving
              package names and interface instances in command submission and interpretation
            type: array
            items:
              type: string
      JsContractEntry:
        title: JsContractEntry
        description: |-
          For a contract there could be multiple contract_entry-s in the entire snapshot. These together define
          the state of one contract in the snapshot.
          A contract_entry is included in the result, if and only if there is at least one stakeholder party of the contract
          that is hosted on the synchronizer at the time of the event and the party satisfies the
          ``TransactionFilter`` in the query.
        oneOf:
        - type: object
          required:
          - JsActiveContract
          properties:
            JsActiveContract:
              $ref: '#/components/schemas/JsActiveContract'
        - type: object
          required:
          - JsEmpty
          properties:
            JsEmpty:
              $ref: '#/components/schemas/JsEmpty'
        - type: object
          required:
          - JsIncompleteAssigned
          properties:
            JsIncompleteAssigned:
              $ref: '#/components/schemas/JsIncompleteAssigned'
        - type: object
          required:
          - JsIncompleteUnassigned
          properties:
            JsIncompleteUnassigned:
              $ref: '#/components/schemas/JsIncompleteUnassigned'
      JsCreated:
        title: JsCreated
        type: object
        required:
        - createdEvent
        - synchronizerId
        properties:
          createdEvent:
            $ref: '#/components/schemas/CreatedEvent'
            description: |-
              Required
              The event as it appeared in the context of its original update (i.e. daml transaction or
              reassignment) on this participant node. You can use its offset and node_id to find the
              corresponding update and the node within it.
          synchronizerId:
            description: |-
              The synchronizer which sequenced the creation of the contract
              Required
            type: string
      JsEmpty:
        title: JsEmpty
        type: object
      JsExecuteSubmissionRequest:
        title: JsExecuteSubmissionRequest
        type: object
        required:
        - deduplicationPeriod
        - submissionId
        - userId
        - hashingSchemeVersion
        properties:
          preparedTransaction:
            description: |-
              the prepared transaction
              Typically this is the value of the `prepared_transaction` field in `PrepareSubmissionResponse`
              obtained from calling `prepareSubmission`.
            type: string
          partySignatures:
            $ref: '#/components/schemas/PartySignatures'
            description: |-
              The party(ies) signatures that authorize the prepared submission to be executed by this node.
              Each party can provide one or more signatures..
              and one or more parties can sign.
              Note that currently, only single party submissions are supported.
          deduplicationPeriod:
            $ref: '#/components/schemas/DeduplicationPeriod2'
          submissionId:
            description: |-
              A unique identifier to distinguish completions for different submissions with the same change ID.
              Typically a random UUID. Applications are expected to use a different UUID for each retry of a submission
              with the same change ID.
              Must be a valid LedgerString (as described in ``value.proto``).

              Required
            type: string
          userId:
            description: See [PrepareSubmissionRequest.user_id]
            type: string
          hashingSchemeVersion:
            description: The hashing scheme version used when building the hash
            type: string
          minLedgerTime:
            $ref: '#/components/schemas/MinLedgerTime'
            description: |-
              If set will influence the chosen ledger effective time but will not result in a submission delay so any override
              should be scheduled to executed within the window allowed by synchronizer.
              Optional
      JsGetActiveContractsResponse:
        title: JsGetActiveContractsResponse
        type: object
        required:
        - workflowId
        - contractEntry
        properties:
          workflowId:
            description: |-
              The workflow ID used in command submission which corresponds to the contract_entry. Only set if
              the ``workflow_id`` for the command was set.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          contractEntry:
            $ref: '#/components/schemas/JsContractEntry'
      JsGetEventsByContractIdResponse:
        title: JsGetEventsByContractIdResponse
        type: object
        properties:
          created:
            $ref: '#/components/schemas/JsCreated'
            description: |-
              The create event for the contract with the ``contract_id`` given in the request
              provided it exists and has not yet been pruned.
              Optional
          archived:
            $ref: '#/components/schemas/JsArchived'
            description: |-
              The archive event for the contract with the ``contract_id`` given in the request
              provided such an archive event exists and it has not yet been pruned.
              Optional
      JsGetTransactionResponse:
        title: JsGetTransactionResponse
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - transaction
        properties:
          transaction:
            $ref: '#/components/schemas/JsTransaction'
            description: Required
      JsGetTransactionTreeResponse:
        title: JsGetTransactionTreeResponse
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - transaction
        properties:
          transaction:
            $ref: '#/components/schemas/JsTransactionTree'
            description: Required
      JsGetUpdateResponse:
        title: JsGetUpdateResponse
        type: object
        required:
        - update
        properties:
          update:
            $ref: '#/components/schemas/Update'
      JsGetUpdateTreesResponse:
        title: JsGetUpdateTreesResponse
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - update
        properties:
          update:
            $ref: '#/components/schemas/Update1'
      JsGetUpdatesResponse:
        title: JsGetUpdatesResponse
        type: object
        required:
        - update
        properties:
          update:
            $ref: '#/components/schemas/Update'
      JsIncompleteAssigned:
        title: JsIncompleteAssigned
        type: object
        required:
        - assignedEvent
        properties:
          assignedEvent:
            $ref: '#/components/schemas/JsAssignedEvent'
            description: Required
      JsIncompleteUnassigned:
        title: JsIncompleteUnassigned
        type: object
        required:
        - createdEvent
        - unassignedEvent
        properties:
          createdEvent:
            $ref: '#/components/schemas/CreatedEvent'
            description: |-
              Required
              The event as it appeared in the context of its last activation update (i.e. daml transaction or
              reassignment). In particular, the last activation offset, node_id pair is preserved.
              The last activation update is the most recent update created or assigned this contract on synchronizer_id synchronizer before
              the unassigned_event.
              The offset of the CreatedEvent might point to an already pruned update, therefore it cannot necessarily be used
              for lookups.
          unassignedEvent:
            $ref: '#/components/schemas/UnassignedEvent'
            description: Required
      JsInterfaceView:
        title: JsInterfaceView
        description: View of a create event matched by an interface filter.
        type: object
        required:
        - interfaceId
        - viewStatus
        properties:
          interfaceId:
            description: |-
              The interface implemented by the matched event.
              The identifier uses the package-id reference format.

              Required
            type: string
          viewStatus:
            $ref: '#/components/schemas/JsStatus'
            description: |-
              Whether the view was successfully computed, and if not,
              the reason for the error. The error is reported using the same rules
              for error codes and messages as the errors returned for API requests.
              Required
          viewValue:
            description: |-
              The value of the interface's view method on this event.
              Set if it was requested in the ``InterfaceFilter`` and it could be
              sucessfully computed.
              Optional
      JsPrepareSubmissionRequest:
        title: JsPrepareSubmissionRequest
        type: object
        required:
        - userId
        - commandId
        - synchronizerId
        - verboseHashing
        properties:
          userId:
            description: |-
              Uniquely identifies the participant user that prepares the transaction.
              Must be a valid UserIdString (as described in ``value.proto``).
              Required unless authentication is used with a user token.
              In that case, the token's user-id will be used for the request's user_id.
            type: string
          commandId:
            description: |-
              Uniquely identifies the command.
              The triple (user_id, act_as, command_id) constitutes the change ID for the intended ledger change,
              where act_as is interpreted as a set of party names.
              The change ID can be used for matching the intended ledger changes with all their completions.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          commands:
            description: |-
              Individual elements of this atomic command. Must be non-empty.
              Required
            type: array
            items:
              $ref: '#/components/schemas/Command'
          minLedgerTime:
            $ref: '#/components/schemas/MinLedgerTime'
            description: Optional
          actAs:
            description: |-
              Set of parties on whose behalf the command should be executed, if submitted.
              If ledger API authorization is enabled, then the authorization metadata must authorize the sender of the request
              to **read** (not act) on behalf of each of the given parties. This is because this RPC merely prepares a transaction
              and does not execute it. Therefore read authorization is sufficient even for actAs parties.
              Note: This may change, and more specific authorization scope may be introduced in the future.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Required, must be non-empty.
            type: array
            items:
              type: string
          readAs:
            description: |-
              Set of parties on whose behalf (in addition to all parties listed in ``act_as``) contracts can be retrieved.
              This affects Daml operations such as ``fetch``, ``fetchByKey``, ``lookupByKey``, ``exercise``, and ``exerciseByKey``.
              Note: A command can only use contracts that are visible to at least
              one of the parties in ``act_as`` or ``read_as``. This visibility check is independent from the Daml authorization
              rules for fetch operations.
              If ledger API authorization is enabled, then the authorization metadata must authorize the sender of the request
              to read contract data on behalf of each of the given parties.
              Optional
            type: array
            items:
              type: string
          disclosedContracts:
            description: |-
              Additional contracts used to resolve contract & contract key lookups.
              Optional
            type: array
            items:
              $ref: '#/components/schemas/DisclosedContract'
          synchronizerId:
            description: |-
              Must be a valid synchronizer id
              Required
            type: string
          packageIdSelectionPreference:
            description: |-
              The package-id selection preference of the client for resolving
              package names and interface instances in command submission and interpretation
            type: array
            items:
              type: string
          verboseHashing:
            description: |-
              When true, the response will contain additional details on how the transaction was encoded and hashed
              This can be useful for troubleshooting of hash mismatches. Should only be used for debugging.
            type: boolean
      JsPrepareSubmissionResponse:
        title: JsPrepareSubmissionResponse
        description: '[docs-entry-end: HashingSchemeVersion]'
        type: object
        required:
        - preparedTransactionHash
        - hashingSchemeVersion
        properties:
          preparedTransaction:
            description: |-
              The interpreted transaction, it represents the ledger changes necessary to execute the commands specified in the request.
              Clients MUST display the content of the transaction to the user for them to validate before signing the hash if the preparing participant is not trusted.
            type: string
          preparedTransactionHash:
            description: |-
              Hash of the transaction, this is what needs to be signed by the party to authorize the transaction.
              Only provided for convenience, clients MUST recompute the hash from the raw transaction if the preparing participant is not trusted.
              May be removed in future versions
            type: string
          hashingSchemeVersion:
            description: The hashing scheme version used when building the hash
            type: string
          hashingDetails:
            description: |-
              Optional additional details on how the transaction was encoded and hashed. Only set if verbose_hashing = true in the request
              Note that there are no guarantees on the stability of the format or content of this field.
              Its content should NOT be parsed and should only be used for troubleshooting purposes.
            type: string
      JsReassignment:
        title: JsReassignment
        description: Complete view of an on-ledger reassignment.
        type: object
        required:
        - updateId
        - commandId
        - workflowId
        - offset
        - recordTime
        properties:
          updateId:
            description: |-
              Assigned by the server. Useful for correlating logs.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          commandId:
            description: |-
              The ID of the command which resulted in this reassignment. Missing for everyone except the submitting party on the submitting participant.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          workflowId:
            description: |-
              The workflow ID used in reassignment command submission. Only set if the ``workflow_id`` for the command was set.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          offset:
            description: |-
              The participant's offset. The details of this field are described in ``community/ledger-api/README.md``.
              Required, must be a valid absolute offset (positive integer).
            type: integer
            format: int64
          events:
            description: The collection of reassignment events. Required.
            type: array
            items:
              $ref: '#/components/schemas/JsReassignmentEvent'
          traceContext:
            $ref: '#/components/schemas/TraceContext'
            description: |-
              Optional; ledger API trace context

              The trace context transported in this message corresponds to the trace context supplied
              by the client application in a HTTP2 header of the original command submission.
              We typically use a header to transfer this type of information. Here we use message
              body, because it is used in gRPC streams which do not support per message headers.
              This field will be populated with the trace context contained in the original submission.
              If that was not provided, a unique ledger-api-server generated trace context will be used
              instead.
          recordTime:
            description: |-
              The time at which the reassignment was recorded. The record time refers to the source/target
              synchronizer for an unassign/assign event respectively.
              Required
            type: string
      JsReassignmentEvent:
        title: JsReassignmentEvent
        oneOf:
        - type: object
          required:
          - JsAssignmentEvent
          properties:
            JsAssignmentEvent:
              $ref: '#/components/schemas/JsAssignmentEvent'
        - type: object
          required:
          - JsUnassignedEvent
          properties:
            JsUnassignedEvent:
              $ref: '#/components/schemas/JsUnassignedEvent'
      JsStatus:
        title: JsStatus
        type: object
        required:
        - code
        - message
        properties:
          code:
            type: integer
            format: int32
          message:
            type: string
          details:
            type: array
            items:
              $ref: '#/components/schemas/ProtoAny'
      JsSubmitAndWaitForReassignmentResponse:
        title: JsSubmitAndWaitForReassignmentResponse
        type: object
        required:
        - reassignment
        properties:
          reassignment:
            $ref: '#/components/schemas/JsReassignment'
            description: |-
              The reassignment that resulted from the submitted reassignment command.
              The reassignment might contain no events (request conditions result in filtering out all of them).
              Required
      JsSubmitAndWaitForTransactionRequest:
        title: JsSubmitAndWaitForTransactionRequest
        description: These commands are executed as a single atomic transaction.
        type: object
        required:
        - commands
        properties:
          commands:
            $ref: '#/components/schemas/JsCommands'
            description: |-
              The commands to be submitted.
              Required
          transactionFormat:
            $ref: '#/components/schemas/TransactionFormat'
            description: |-
              If no ``transaction_format`` is provided, a default will be used where ``transaction_shape`` is set to
              TRANSACTION_SHAPE_ACS_DELTA, ``event_format`` is defined with ``filters_by_party`` containing wildcard-template
              filter for all original ``act_as`` and ``read_as`` parties and the ``verbose`` flag is set.
              Optional
      JsSubmitAndWaitForTransactionResponse:
        title: JsSubmitAndWaitForTransactionResponse
        type: object
        required:
        - transaction
        properties:
          transaction:
            $ref: '#/components/schemas/JsTransaction'
            description: |-
              The transaction that resulted from the submitted command.
              The transaction might contain no events (request conditions result in filtering out all of them).
              Required
      JsSubmitAndWaitForTransactionTreeResponse:
        title: JsSubmitAndWaitForTransactionTreeResponse
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - transactionTree
        properties:
          transactionTree:
            $ref: '#/components/schemas/JsTransactionTree'
      JsTopologyTransaction:
        title: JsTopologyTransaction
        type: object
        required:
        - updateId
        - offset
        - synchronizerId
        - recordTime
        properties:
          updateId:
            description: |-
              Assigned by the server. Useful for correlating logs.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          events:
            description: |-
              A non-empty list of topology events.
              Required
            type: array
            items:
              $ref: '#/components/schemas/TopologyEvent'
          offset:
            description: |-
              The absolute offset. The details of this field are described in ``community/ledger-api/README.md``.
              Required, it is a valid absolute offset (positive integer).
            type: integer
            format: int64
          synchronizerId:
            description: |-
              A valid synchronizer id.
              Identifies the synchronizer that synchronized the topology transaction.
              Required
            type: string
          traceContext:
            $ref: '#/components/schemas/TraceContext'
            description: |-
              Optional; ledger API trace context

              The trace context transported in this message corresponds to the trace context supplied
              by the client application in a HTTP2 header of the original command submission.
              We typically use a header to transfer this type of information. Here we use message
              body, because it is used in gRPC streams which do not support per message headers.
              This field will be populated with the trace context contained in the original submission.
              If that was not provided, a unique ledger-api-server generated trace context will be used
              instead.
          recordTime:
            description: |-
              The time at which the changes in the topology transaction become effective. There is a small delay between a
              topology transaction being sequenced and the changes it contains becoming effective. Topology transactions appear
              in order relative to a synchronizer based on their effective time rather than their sequencing time.
              Required
            type: string
      JsTransaction:
        title: JsTransaction
        description: Filtered view of an on-ledger transaction's create and archive
          events.
        type: object
        required:
        - updateId
        - commandId
        - workflowId
        - effectiveAt
        - offset
        - synchronizerId
        - recordTime
        properties:
          updateId:
            description: |-
              Assigned by the server. Useful for correlating logs.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          commandId:
            description: |-
              The ID of the command which resulted in this transaction. Missing for everyone except the submitting party.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          workflowId:
            description: |-
              The workflow ID used in command submission.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          effectiveAt:
            description: |-
              Ledger effective time.
              Required
            type: string
          events:
            description: |-
              The collection of events.
              Contains:

              - ``CreatedEvent`` or ``ArchivedEvent`` in case of ACS_DELTA transaction shape
              - ``CreatedEvent`` or ``ExercisedEvent`` in case of LEDGER_EFFECTS transaction shape

              Required
            type: array
            items:
              $ref: '#/components/schemas/Event'
          offset:
            description: |-
              The absolute offset. The details of this field are described in ``community/ledger-api/README.md``.
              Required, it is a valid absolute offset (positive integer).
            type: integer
            format: int64
          synchronizerId:
            description: |-
              A valid synchronizer id.
              Identifies the synchronizer that synchronized the transaction.
              Required
            type: string
          traceContext:
            $ref: '#/components/schemas/TraceContext'
            description: |-
              Optional; ledger API trace context

              The trace context transported in this message corresponds to the trace context supplied
              by the client application in a HTTP2 header of the original command submission.
              We typically use a header to transfer this type of information. Here we use message
              body, because it is used in gRPC streams which do not support per message headers.
              This field will be populated with the trace context contained in the original submission.
              If that was not provided, a unique ledger-api-server generated trace context will be used
              instead.
          recordTime:
            description: |-
              The time at which the transaction was recorded. The record time refers to the synchronizer
              which synchronized the transaction.
              Required
            type: string
      JsTransactionTree:
        title: JsTransactionTree
        description: |-
          Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
          Complete view of an on-ledger transaction.
        type: object
        required:
        - updateId
        - commandId
        - workflowId
        - offset
        - eventsById
        - synchronizerId
        - recordTime
        properties:
          updateId:
            description: |-
              Assigned by the server. Useful for correlating logs.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          commandId:
            description: |-
              The ID of the command which resulted in this transaction. Missing for everyone except the submitting party.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          workflowId:
            description: |-
              The workflow ID used in command submission. Only set if the ``workflow_id`` for the command was set.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          effectiveAt:
            description: |-
              Ledger effective time.
              Required
            type: string
          offset:
            description: |-
              The absolute offset. The details of this field are described in ``community/ledger-api/README.md``.
              Required, it is a valid absolute offset (positive integer).
            type: integer
            format: int64
          eventsById:
            $ref: '#/components/schemas/Map_Int_TreeEvent'
            description: |-
              Changes to the ledger that were caused by this transaction. Nodes of the transaction tree.
              Each key must be a valid node ID (non-negative integer).
              Required
          synchronizerId:
            description: |-
              A valid synchronizer id.
              Identifies the synchronizer that synchronized the transaction.
              Required
            type: string
          traceContext:
            $ref: '#/components/schemas/TraceContext'
            description: |-
              Optional; ledger API trace context

              The trace context transported in this message corresponds to the trace context supplied
              by the client application in a HTTP2 header of the original command submission.
              We typically use a header to transfer this type of information. Here we use message
              body, because it is used in gRPC streams which do not support per message headers.
              This field will be populated with the trace context contained in the original submission.
              If that was not provided, a unique ledger-api-server generated trace context will be used
              instead.
          recordTime:
            description: |-
              The time at which the transaction was recorded. The record time refers to the synchronizer
              which synchronized the transaction.
              Required
            type: string
      JsUnassignedEvent:
        title: JsUnassignedEvent
        description: Records that a contract has been unassigned, and it becomes unusable
          on the source synchronizer
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/UnassignedEvent'
      Kind:
        title: Kind
        description: Required
        oneOf:
        - type: object
          required:
          - CanActAs
          properties:
            CanActAs:
              $ref: '#/components/schemas/CanActAs'
        - type: object
          required:
          - CanReadAs
          properties:
            CanReadAs:
              $ref: '#/components/schemas/CanReadAs'
        - type: object
          required:
          - CanReadAsAnyParty
          properties:
            CanReadAsAnyParty:
              $ref: '#/components/schemas/CanReadAsAnyParty'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty5'
        - type: object
          required:
          - IdentityProviderAdmin
          properties:
            IdentityProviderAdmin:
              $ref: '#/components/schemas/IdentityProviderAdmin'
        - type: object
          required:
          - ParticipantAdmin
          properties:
            ParticipantAdmin:
              $ref: '#/components/schemas/ParticipantAdmin'
      ListIdentityProviderConfigsResponse:
        title: ListIdentityProviderConfigsResponse
        type: object
        properties:
          identityProviderConfigs:
            description: ''
            type: array
            items:
              $ref: '#/components/schemas/IdentityProviderConfig'
      ListKnownPartiesResponse:
        title: ListKnownPartiesResponse
        type: object
        required:
        - nextPageToken
        properties:
          partyDetails:
            description: |-
              The details of all Daml parties known by the participant.
              Required
            type: array
            items:
              $ref: '#/components/schemas/PartyDetails'
          nextPageToken:
            description: |-
              Pagination token to retrieve the next page.
              Empty, if there are no further results.
            type: string
      ListPackagesResponse:
        title: ListPackagesResponse
        type: object
        properties:
          packageIds:
            description: |-
              The IDs of all Daml-LF packages supported by the server.
              Each element must be a valid PackageIdString (as described in ``value.proto``).
              Required
            type: array
            items:
              type: string
      ListUserRightsResponse:
        title: ListUserRightsResponse
        type: object
        properties:
          rights:
            description: All rights of the user.
            type: array
            items:
              $ref: '#/components/schemas/Right'
      ListUsersResponse:
        title: ListUsersResponse
        type: object
        required:
        - nextPageToken
        properties:
          users:
            description: A subset of users of the participant node that fit into this
              page.
            type: array
            items:
              $ref: '#/components/schemas/User'
          nextPageToken:
            description: |-
              Pagination token to retrieve the next page.
              Empty, if there are no further results.
            type: string
      Map_Filters:
        title: Map_Filters
        type: object
        additionalProperties:
          $ref: '#/components/schemas/Filters'
      Map_Int_Field:
        title: Map_Int_Field
        type: object
        additionalProperties:
          $ref: '#/components/schemas/Field'
      Map_Int_TreeEvent:
        title: Map_Int_TreeEvent
        type: object
        additionalProperties:
          $ref: '#/components/schemas/TreeEvent'
      Map_String:
        title: Map_String
        type: object
        additionalProperties:
          type: string
      MinLedgerTime:
        title: MinLedgerTime
        type: object
        required:
        - time
        properties:
          time:
            $ref: '#/components/schemas/Time'
      MinLedgerTimeAbs:
        title: MinLedgerTimeAbs
        type: object
        required:
        - value
        properties:
          value:
            type: string
      MinLedgerTimeRel:
        title: MinLedgerTimeRel
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/Duration'
      ObjectMeta:
        title: ObjectMeta
        description: |-
          Represents metadata corresponding to a participant resource (e.g. a participant user or participant local information about a party).

          Based on ``ObjectMeta`` meta used in Kubernetes API.
          See https://github.com/kubernetes/apimachinery/blob/master/pkg/apis/meta/v1/generated.proto#L640
        type: object
        required:
        - resourceVersion
        - annotations
        properties:
          resourceVersion:
            description: |-
              An opaque, non-empty value, populated by a participant server which represents the internal version of the resource
              this ``ObjectMeta`` message is attached to. The participant server will change it to a unique value each time the corresponding resource is updated.
              You must not rely on the format of resource version. The participant server might change it without notice.
              You can obtain the newest resource version value by issuing a read request.
              You may use it for concurrent change detection by passing it back unmodified in an update request.
              The participant server will then compare the passed value with the value maintained by the system to determine
              if any other updates took place since you had read the resource version.
              Upon a successful update you are guaranteed that no other update took place during your read-modify-write sequence.
              However, if another update took place during your read-modify-write sequence then your update will fail with an appropriate error.
              Concurrent change control is optional. It will be applied only if you include a resource version in an update request.
              When creating a new instance of a resource you must leave the resource version empty.
              Its value will be populated by the participant server upon successful resource creation.
              Optional
            type: string
          annotations:
            $ref: '#/components/schemas/Map_String'
            description: |-
              A set of modifiable key-value pairs that can be used to represent arbitrary, client-specific metadata.
              Constraints:

              1. The total size over all keys and values cannot exceed 256kb in UTF-8 encoding.
              2. Keys are composed of an optional prefix segment and a required name segment such that:

                 - key prefix, when present, must be a valid DNS subdomain with at most 253 characters, followed by a '/' (forward slash) character,
                 - name segment must have at most 63 characters that are either alphanumeric ([a-z0-9A-Z]), or a '.' (dot), '-' (dash) or '_' (underscore);
                   and it must start and end with an alphanumeric character.

              3. Values can be any non-empty strings.

              Keys with empty prefix are reserved for end-users.
              Properties set by external tools or internally by the participant server must use non-empty key prefixes.
              Duplicate keys are disallowed by the semantics of the protobuf3 maps.
              See: https://developers.google.com/protocol-buffers/docs/proto3#maps
              Annotations may be a part of a modifiable resource.
              Use the resource's update RPC to update its annotations.
              In order to add a new annotation or update an existing one using an update RPC, provide the desired annotation in the update request.
              In order to remove an annotation using an update RPC, provide the target annotation's key but set its value to the empty string in the update request.
              Optional
              Modifiable
      OffsetCheckpoint:
        title: OffsetCheckpoint
        description: |-
          OffsetCheckpoints may be used to:

          - detect time out of commands.
          - provide an offset which can be used to restart consumption.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/OffsetCheckpoint1'
      OffsetCheckpoint1:
        title: OffsetCheckpoint
        description: |-
          OffsetCheckpoints may be used to:

          - detect time out of commands.
          - provide an offset which can be used to restart consumption.
        type: object
        required:
        - offset
        properties:
          offset:
            description: |-
              The participant's offset, the details of the offset field are described in ``community/ledger-api/README.md``.
              Required, must be a valid absolute offset (positive integer).
            type: integer
            format: int64
          synchronizerTimes:
            description: ''
            type: array
            items:
              $ref: '#/components/schemas/SynchronizerTime'
      OffsetCheckpoint2:
        title: OffsetCheckpoint
        description: |-
          OffsetCheckpoints may be used to:

          - detect time out of commands.
          - provide an offset which can be used to restart consumption.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/OffsetCheckpoint1'
      OffsetCheckpoint3:
        title: OffsetCheckpoint
        description: |-
          OffsetCheckpoints may be used to:

          - detect time out of commands.
          - provide an offset which can be used to restart consumption.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/OffsetCheckpoint1'
      OffsetCheckpointFeature:
        title: OffsetCheckpointFeature
        type: object
        properties:
          maxOffsetCheckpointEmissionDelay:
            $ref: '#/components/schemas/Duration'
            description: The maximum delay to emmit a new OffsetCheckpoint if it exists
      PackagePreference:
        title: PackagePreference
        type: object
        required:
        - synchronizerId
        properties:
          packageReference:
            $ref: '#/components/schemas/PackageReference'
            description: |-
              The package reference of the preferred package.
              Required
          synchronizerId:
            description: |-
              The synchronizer for which the preferred package was computed.
              If the synchronizer_id was specified in the request, then it matches the request synchronizer_id.
              Required
            type: string
      PackageReference:
        title: PackageReference
        type: object
        required:
        - packageId
        - packageName
        - packageVersion
        properties:
          packageId:
            description: Required
            type: string
          packageName:
            description: Required
            type: string
          packageVersion:
            description: Required
            type: string
      PackageVettingRequirement:
        title: PackageVettingRequirement
        description: Defines a package-name for which the commonly vetted package with
          the highest version must be found.
        type: object
        required:
        - packageName
        properties:
          parties:
            description: |-
              The parties whose participants' vetting state should be considered when resolving the preferred package.
              Required
            type: array
            items:
              type: string
          packageName:
            description: |-
              The package-name for which the preferred package should be resolved.
              Required
            type: string
      ParticipantAdmin:
        title: ParticipantAdmin
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/ParticipantAdmin1'
      ParticipantAdmin1:
        title: ParticipantAdmin
        type: object
      ParticipantAuthorizationAdded:
        title: ParticipantAuthorizationAdded
        type: object
        required:
        - partyId
        - participantId
        - participantPermission
        properties:
          partyId:
            description: Required
            type: string
          participantId:
            description: Required
            type: string
          participantPermission:
            description: Required
            type: integer
            format: int32
      ParticipantAuthorizationChanged:
        title: ParticipantAuthorizationChanged
        type: object
        required:
        - partyId
        - participantId
        - participantPermission
        properties:
          partyId:
            description: Required
            type: string
          participantId:
            description: Required
            type: string
          participantPermission:
            description: Required
            type: integer
            format: int32
      ParticipantAuthorizationRevoked:
        title: ParticipantAuthorizationRevoked
        type: object
        required:
        - partyId
        - participantId
        properties:
          partyId:
            description: Required
            type: string
          participantId:
            description: Required
            type: string
      ParticipantAuthorizationTopologyFormat:
        title: ParticipantAuthorizationTopologyFormat
        description: A format specifying which participant authorization topology transactions
          to include and how to render them.
        type: object
        properties:
          parties:
            description: |-
              List of parties for which the topology transactions should be sent.
              Empty means: for all parties.
            type: array
            items:
              type: string
      PartyDetails:
        title: PartyDetails
        type: object
        required:
        - party
        - isLocal
        - identityProviderId
        properties:
          party:
            description: |-
              The stable unique identifier of a Daml party.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Required
            type: string
          isLocal:
            description: |-
              true if party is hosted by the participant and the party shares the same identity provider as the user issuing the request.
              Optional
            type: boolean
          localMetadata:
            $ref: '#/components/schemas/ObjectMeta'
            description: |-
              Participant-local metadata of this party.
              Optional,
              Modifiable
          identityProviderId:
            description: |-
              The id of the ``Identity Provider``
              Optional, if not set, there could be 3 options:

              1. the party is managed by the default identity provider.
              2. party is not hosted by the participant.
              3. party is hosted by the participant, but is outside of the user's identity provider.
            type: string
      PartyManagementFeature:
        title: PartyManagementFeature
        type: object
        required:
        - maxPartiesPageSize
        properties:
          maxPartiesPageSize:
            description: The maximum number of parties the server can return in a single
              response (page).
            type: integer
            format: int32
      PartySignatures:
        title: PartySignatures
        description: Additional signatures provided by the submitting parties
        type: object
        properties:
          signatures:
            description: Additional signatures provided by all individual parties
            type: array
            items:
              $ref: '#/components/schemas/SinglePartySignatures'
      ProtoAny:
        title: ProtoAny
        type: object
        required:
        - typeUrl
        - value
        - unknownFields
        properties:
          typeUrl:
            type: string
          value:
            type: string
          unknownFields:
            $ref: '#/components/schemas/UnknownFieldSet'
      Reassignment:
        title: Reassignment
        description: Complete view of an on-ledger reassignment.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/JsReassignment'
      Reassignment1:
        title: Reassignment
        description: Complete view of an on-ledger reassignment.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/JsReassignment'
      ReassignmentCommand:
        title: ReassignmentCommand
        type: object
        required:
        - command
        properties:
          command:
            $ref: '#/components/schemas/Command1'
      ReassignmentCommands:
        title: ReassignmentCommands
        type: object
        required:
        - workflowId
        - userId
        - commandId
        - submitter
        - submissionId
        properties:
          workflowId:
            description: |-
              Identifier of the on-ledger workflow that this command is a part of.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          userId:
            description: |-
              Uniquely identifies the participant user that issued the command.
              Must be a valid UserIdString (as described in ``value.proto``).
              Required unless authentication is used with a user token.
              In that case, the token's user-id will be used for the request's user_id.
            type: string
          commandId:
            description: |-
              Uniquely identifies the command.
              The triple (user_id, submitter, command_id) constitutes the change ID for the intended ledger change.
              The change ID can be used for matching the intended ledger changes with all their completions.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          submitter:
            description: |-
              Party on whose behalf the command should be executed.
              If ledger API authorization is enabled, then the authorization metadata must authorize the sender of the request
              to act on behalf of the given party.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Required
            type: string
          submissionId:
            description: |-
              A unique identifier to distinguish completions for different submissions with the same change ID.
              Typically a random UUID. Applications are expected to use a different UUID for each retry of a submission
              with the same change ID.
              Must be a valid LedgerString (as described in ``value.proto``).

              If omitted, the participant or the committer may set a value of their choice.
              Optional
            type: string
          commands:
            description: Individual elements of this reassignment. Must be non-empty.
            type: array
            items:
              $ref: '#/components/schemas/ReassignmentCommand'
      RevokeUserRightsRequest:
        title: RevokeUserRightsRequest
        description: |-
          Remove the rights from the set of rights granted to the user.

          Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(identity_provider_id)``
        type: object
        required:
        - userId
        - identityProviderId
        properties:
          userId:
            description: |-
              The user from whom to revoke rights.
              Required
            type: string
          rights:
            description: |-
              The rights to revoke.
              Optional
            type: array
            items:
              $ref: '#/components/schemas/Right'
          identityProviderId:
            description: |-
              The id of the ``Identity Provider``
              Optional, if not set, assume the user is managed by the default identity provider.
            type: string
      RevokeUserRightsResponse:
        title: RevokeUserRightsResponse
        type: object
        properties:
          newlyRevokedRights:
            description: The rights that were actually revoked by the request.
            type: array
            items:
              $ref: '#/components/schemas/Right'
      Right:
        title: Right
        description: A right granted to a user.
        type: object
        required:
        - kind
        properties:
          kind:
            $ref: '#/components/schemas/Kind'
      Signature:
        title: Signature
        type: object
        required:
        - format
        - signature
        - signedBy
        - signingAlgorithmSpec
        properties:
          format:
            description: ''
            type: string
          signature:
            description: ''
            type: string
          signedBy:
            description: The fingerprint/id of the keypair used to create this signature
              and needed to verify.
            type: string
          signingAlgorithmSpec:
            description: The signing algorithm specification used to produce this signature
            type: string
      SinglePartySignatures:
        title: SinglePartySignatures
        description: Signatures provided by a single party
        type: object
        required:
        - party
        properties:
          party:
            description: Submitting party
            type: string
          signatures:
            description: Signatures
            type: array
            items:
              $ref: '#/components/schemas/Signature'
      Status:
        title: Status
        type: object
        required:
        - code
        - message
        - unknownFields
        properties:
          code:
            type: integer
            format: int32
          message:
            type: string
          details:
            type: array
            items:
              $ref: '#/components/schemas/ProtoAny'
          unknownFields:
            $ref: '#/components/schemas/UnknownFieldSet'
      SubmitAndWaitForReassignmentRequest:
        title: SubmitAndWaitForReassignmentRequest
        description: This reassignment is executed as a single atomic update.
        type: object
        properties:
          reassignmentCommands:
            $ref: '#/components/schemas/ReassignmentCommands'
            description: |-
              The reassignment commands to be submitted.
              Required
          eventFormat:
            $ref: '#/components/schemas/EventFormat'
            description: |-
              Optional
              If no event_format provided, the result will contain no events.
              The events in the result, will take shape TRANSACTION_SHAPE_ACS_DELTA.
      SubmitAndWaitResponse:
        title: SubmitAndWaitResponse
        type: object
        required:
        - updateId
        - completionOffset
        properties:
          updateId:
            description: |-
              The id of the transaction that resulted from the submitted command.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          completionOffset:
            description: |-
              The details of the offset field are described in ``community/ledger-api/README.md``.
              Required
            type: integer
            format: int64
      SubmitReassignmentRequest:
        title: SubmitReassignmentRequest
        type: object
        properties:
          reassignmentCommands:
            $ref: '#/components/schemas/ReassignmentCommands'
            description: |-
              The reassignment command to be submitted.
              Required
      SubmitReassignmentResponse:
        title: SubmitReassignmentResponse
        type: object
      SubmitResponse:
        title: SubmitResponse
        type: object
      SynchronizerTime:
        title: SynchronizerTime
        type: object
        required:
        - synchronizerId
        properties:
          synchronizerId:
            description: |-
              The id of the synchronizer.
              Required
            type: string
          recordTime:
            description: |-
              All commands with a maximum record time below this value MUST be considered lost if their completion has not arrived before this checkpoint.
              Required
            type: string
      TemplateFilter:
        title: TemplateFilter
        description: This filter matches contracts of a specific template.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/TemplateFilter1'
      TemplateFilter1:
        title: TemplateFilter
        description: This filter matches contracts of a specific template.
        type: object
        required:
        - includeCreatedEventBlob
        properties:
          templateId:
            description: |-
              A template for which the payload should be included in the response.
              The ``template_id`` needs to be valid: corresponding template should be defined in
              one of the available packages at the time of the query.
              Both package-name and package-id reference formats for the identifier are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          includeCreatedEventBlob:
            description: |-
              Whether to include a ``created_event_blob`` in the returned ``CreatedEvent``.
              Use this to access the contract event payload in your API client
              for submitting it as a disclosed contract with future commands.
              Optional
            type: boolean
      Time:
        title: Time
        oneOf:
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty6'
        - type: object
          required:
          - MinLedgerTimeAbs
          properties:
            MinLedgerTimeAbs:
              $ref: '#/components/schemas/MinLedgerTimeAbs'
        - type: object
          required:
          - MinLedgerTimeRel
          properties:
            MinLedgerTimeRel:
              $ref: '#/components/schemas/MinLedgerTimeRel'
      TopologyEvent:
        title: TopologyEvent
        oneOf:
        - type: object
          required:
          - ParticipantAuthorizationAdded
          properties:
            ParticipantAuthorizationAdded:
              $ref: '#/components/schemas/ParticipantAuthorizationAdded'
        - type: object
          required:
          - ParticipantAuthorizationChanged
          properties:
            ParticipantAuthorizationChanged:
              $ref: '#/components/schemas/ParticipantAuthorizationChanged'
        - type: object
          required:
          - ParticipantAuthorizationRevoked
          properties:
            ParticipantAuthorizationRevoked:
              $ref: '#/components/schemas/ParticipantAuthorizationRevoked'
      TopologyFormat:
        title: TopologyFormat
        description: A format specifying which topology transactions to include and
          how to render them.
        type: object
        properties:
          includeParticipantAuthorizationEvents:
            $ref: '#/components/schemas/ParticipantAuthorizationTopologyFormat'
            description: |-
              Include participant authorization topology events in streams.
              Optional, if unset no participant authorization topology events are emitted in the stream.
      TopologyTransaction:
        title: TopologyTransaction
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/JsTopologyTransaction'
      TraceContext:
        title: TraceContext
        type: object
        properties:
          traceparent:
            description: https://www.w3.org/TR/trace-context/
            type: string
          tracestate:
            description: ''
            type: string
      Transaction:
        title: Transaction
        description: Filtered view of an on-ledger transaction's create and archive
          events.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/JsTransaction'
      TransactionFilter:
        title: TransactionFilter
        description: |-
          Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
          Used both for filtering create and archive events as well as for filtering transaction trees.
        type: object
        required:
        - filtersByParty
        properties:
          filtersByParty:
            $ref: '#/components/schemas/Map_Filters'
            description: |-
              Each key must be a valid PartyIdString (as described in ``value.proto``).
              The interpretation of the filter depends on the transaction-shape being filtered:

              1. For **transaction trees** (used in GetUpdateTreesResponse for backwards compatibility) all party keys used as
                 wildcard filters, and all subtrees whose root has one of the listed parties as an informee are returned.
                 If there are ``CumulativeFilter``s, those will control returned ``CreatedEvent`` fields where applicable, but will
                 not be used for template/interface filtering.
              2. For **ledger-effects** create and exercise events are returned, for which the witnesses include at least one of
                 the listed parties and match the per-party filter.
              3. For **transaction and active-contract-set streams** create and archive events are returned for all contracts whose
                 stakeholders include at least one of the listed parties and match the per-party filter.

              Required
          filtersForAnyParty:
            $ref: '#/components/schemas/Filters'
            description: |-
              Wildcard filters that apply to all the parties existing on the participant. The interpretation of the filters is the same
              with the per-party filter as described above.
      TransactionFormat:
        title: TransactionFormat
        description: |-
          A format that specifies what events to include in Daml transactions
          and what data to compute and include for them.
        type: object
        required:
        - transactionShape
        properties:
          eventFormat:
            $ref: '#/components/schemas/EventFormat'
            description: Required
          transactionShape:
            description: |-
              What transaction shape to use for interpreting the filters of the event format.
              Required
            type: string
      TransactionTree:
        title: TransactionTree
        description: |-
          Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
          Complete view of an on-ledger transaction.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/JsTransactionTree'
      TreeEvent:
        title: TreeEvent
        description: |-
          Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
          Each tree event message type below contains a ``witness_parties`` field which
          indicates the subset of the requested parties that can see the event
          in question.

          Note that transaction trees might contain events with
          _no_ witness parties, which were included simply because they were
          children of events which have witnesses.
        oneOf:
        - type: object
          required:
          - CreatedTreeEvent
          properties:
            CreatedTreeEvent:
              $ref: '#/components/schemas/CreatedTreeEvent'
        - type: object
          required:
          - ExercisedTreeEvent
          properties:
            ExercisedTreeEvent:
              $ref: '#/components/schemas/ExercisedTreeEvent'
      Tuple2_String_String:
        title: Tuple2_String_String
        type: array
        maxItems: 2
        minItems: 2
        items:
          type: string
      UnassignCommand:
        title: UnassignCommand
        description: Unassign a contract
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/UnassignCommand1'
      UnassignCommand1:
        title: UnassignCommand
        description: Unassign a contract
        type: object
        required:
        - contractId
        - source
        - target
        properties:
          contractId:
            description: |-
              The ID of the contract the client wants to unassign.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          source:
            description: |-
              The ID of the source synchronizer
              Must be a valid synchronizer id
              Required
            type: string
          target:
            description: |-
              The ID of the target synchronizer
              Must be a valid synchronizer id
              Required
            type: string
      UnassignedEvent:
        title: UnassignedEvent
        description: Records that a contract has been unassigned, and it becomes unusable
          on the source synchronizer
        type: object
        required:
        - unassignId
        - contractId
        - source
        - target
        - submitter
        - reassignmentCounter
        - packageName
        - offset
        - nodeId
        properties:
          unassignId:
            description: |-
              The ID of the unassignment. This needs to be used as an input for a assign ReassignmentCommand.
              For one contract the (unassign_id, source synchronizer) pair is unique.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          contractId:
            description: |-
              The ID of the reassigned contract.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          templateId:
            description: |-
              The template of the reassigned contract.
              The identifier uses the package-id reference format.

              Required
            type: string
          source:
            description: |-
              The ID of the source synchronizer
              Must be a valid synchronizer id
              Required
            type: string
          target:
            description: |-
              The ID of the target synchronizer
              Must be a valid synchronizer id
              Required
            type: string
          submitter:
            description: |-
              Party on whose behalf the unassign command was executed.
              Empty if the unassignment happened offline via the repair service.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Optional
            type: string
          reassignmentCounter:
            description: |-
              Each corresponding assigned and unassigned event has the same reassignment_counter. This strictly increases
              with each unassign command for the same contract. Creation of the contract corresponds to reassignment_counter
              equals zero.
              Required
            type: integer
            format: int64
          assignmentExclusivity:
            description: |-
              Assignment exclusivity
              Before this time (measured on the target synchronizer), only the submitter of the unassignment can initiate the assignment
              Defined for reassigning participants.
              Optional
            type: string
          witnessParties:
            description: |-
              The parties that are notified of this event.
              Required
            type: array
            items:
              type: string
          packageName:
            description: |-
              The package name of the contract.
              Required
            type: string
          offset:
            description: |-
              The offset of origin.
              Offsets are managed by the participant nodes.
              Reassignments can thus NOT be assumed to have the same offsets on different participant nodes.
              Required, it is a valid absolute offset (positive integer)
            type: integer
            format: int64
          nodeId:
            description: |-
              The position of this event in the originating reassignment.
              Node IDs are not necessarily equal across participants,
              as these may see different projections/parts of reassignments.
              Required, must be valid node ID (non-negative integer)
            type: integer
            format: int32
      UnknownFieldSet:
        title: UnknownFieldSet
        type: object
        required:
        - fields
        properties:
          fields:
            $ref: '#/components/schemas/Map_Int_Field'
      Update:
        title: Update
        oneOf:
        - type: object
          required:
          - OffsetCheckpoint
          properties:
            OffsetCheckpoint:
              $ref: '#/components/schemas/OffsetCheckpoint2'
        - type: object
          required:
          - Reassignment
          properties:
            Reassignment:
              $ref: '#/components/schemas/Reassignment'
        - type: object
          required:
          - TopologyTransaction
          properties:
            TopologyTransaction:
              $ref: '#/components/schemas/TopologyTransaction'
        - type: object
          required:
          - Transaction
          properties:
            Transaction:
              $ref: '#/components/schemas/Transaction'
      Update1:
        title: Update
        description: The update that matches the filter in the request.
        oneOf:
        - type: object
          required:
          - OffsetCheckpoint
          properties:
            OffsetCheckpoint:
              $ref: '#/components/schemas/OffsetCheckpoint3'
        - type: object
          required:
          - Reassignment
          properties:
            Reassignment:
              $ref: '#/components/schemas/Reassignment1'
        - type: object
          required:
          - TransactionTree
          properties:
            TransactionTree:
              $ref: '#/components/schemas/TransactionTree'
      UpdateFormat:
        title: UpdateFormat
        description: A format specifying what updates to include and how to render them.
        type: object
        properties:
          includeTransactions:
            $ref: '#/components/schemas/TransactionFormat'
            description: |-
              Include Daml transactions in streams.
              Optional, if unset, no transactions are emitted in the stream.
          includeReassignments:
            $ref: '#/components/schemas/EventFormat'
            description: |-
              Include (un)assignments in the stream.
              The events in the result take the shape TRANSACTION_SHAPE_ACS_DELTA.
              Optional, if unset, no (un)assignments are emitted in the stream.
          includeTopologyEvents:
            $ref: '#/components/schemas/TopologyFormat'
            description: |-
              Include topology events in streams.
              Optional, if unset no topology events are emitted in the stream.
      UpdateIdentityProviderConfigRequest:
        title: UpdateIdentityProviderConfigRequest
        type: object
        properties:
          identityProviderConfig:
            $ref: '#/components/schemas/IdentityProviderConfig'
            description: |-
              The identity provider config to update.
              Required,
              Modifiable
          updateMask:
            $ref: '#/components/schemas/FieldMask'
            description: |-
              An update mask specifies how and which properties of the ``IdentityProviderConfig`` message are to be updated.
              An update mask consists of a set of update paths.
              A valid update path points to a field or a subfield relative to the ``IdentityProviderConfig`` message.
              A valid update mask must:

              1. contain at least one update path,
              2. contain only valid update paths.

              Fields that can be updated are marked as ``Modifiable``.
              For additional information see the documentation for standard protobuf3's ``google.protobuf.FieldMask``.
              Required
      UpdateIdentityProviderConfigResponse:
        title: UpdateIdentityProviderConfigResponse
        type: object
        properties:
          identityProviderConfig:
            $ref: '#/components/schemas/IdentityProviderConfig'
            description: Updated identity provider config
      UpdatePartyDetailsRequest:
        title: UpdatePartyDetailsRequest
        description: 'Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(party_details.identity_provider_id)``'
        type: object
        properties:
          partyDetails:
            $ref: '#/components/schemas/PartyDetails'
            description: |-
              Party to be updated
              Required,
              Modifiable
          updateMask:
            $ref: '#/components/schemas/FieldMask'
            description: |-
              An update mask specifies how and which properties of the ``PartyDetails`` message are to be updated.
              An update mask consists of a set of update paths.
              A valid update path points to a field or a subfield relative to the ``PartyDetails`` message.
              A valid update mask must:

              1. contain at least one update path,
              2. contain only valid update paths.

              Fields that can be updated are marked as ``Modifiable``.
              An update path can also point to non-``Modifiable`` fields such as 'party' and 'local_metadata.resource_version'
              because they are used:

              1. to identify the party details resource subject to the update,
              2. for concurrent change control.

              An update path can also point to non-``Modifiable`` fields such as 'is_local'
              as long as the values provided in the update request match the server values.
              Examples of update paths: 'local_metadata.annotations', 'local_metadata'.
              For additional information see the documentation for standard protobuf3's ``google.protobuf.FieldMask``.
              For similar Ledger API see ``com.daml.ledger.api.v2.admin.UpdateUserRequest``.
              Required
      UpdatePartyDetailsResponse:
        title: UpdatePartyDetailsResponse
        type: object
        properties:
          partyDetails:
            $ref: '#/components/schemas/PartyDetails'
            description: Updated party details
      UpdateUserIdentityProviderIdRequest:
        title: UpdateUserIdentityProviderIdRequest
        description: 'Required authorization: ``HasRight(ParticipantAdmin)``'
        type: object
        required:
        - userId
        - sourceIdentityProviderId
        - targetIdentityProviderId
        properties:
          userId:
            description: User to update
            type: string
          sourceIdentityProviderId:
            description: Current identity provider ID of the user
            type: string
          targetIdentityProviderId:
            description: Target identity provider ID of the user
            type: string
      UpdateUserIdentityProviderIdResponse:
        title: UpdateUserIdentityProviderIdResponse
        type: object
      UpdateUserRequest:
        title: UpdateUserRequest
        description: 'Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(user.identity_provider_id)``'
        type: object
        properties:
          user:
            $ref: '#/components/schemas/User'
            description: |-
              The user to update.
              Required,
              Modifiable
          updateMask:
            $ref: '#/components/schemas/FieldMask'
            description: |-
              An update mask specifies how and which properties of the ``User`` message are to be updated.
              An update mask consists of a set of update paths.
              A valid update path points to a field or a subfield relative to the ``User`` message.
              A valid update mask must:

              1. contain at least one update path,
              2. contain only valid update paths.

              Fields that can be updated are marked as ``Modifiable``.
              An update path can also point to a non-``Modifiable`` fields such as 'id' and 'metadata.resource_version'
              because they are used:

              1. to identify the user resource subject to the update,
              2. for concurrent change control.

              Examples of valid update paths: 'primary_party', 'metadata', 'metadata.annotations'.
              For additional information see the documentation for standard protobuf3's ``google.protobuf.FieldMask``.
              For similar Ledger API see ``com.daml.ledger.api.v2.admin.UpdatePartyDetailsRequest``.
              Required
      UpdateUserResponse:
        title: UpdateUserResponse
        type: object
        properties:
          user:
            $ref: '#/components/schemas/User'
            description: Updated user
      UploadDarFileResponse:
        title: UploadDarFileResponse
        description: A message that is received when the upload operation succeeded.
        type: object
      User:
        title: User
        description: |2-
           Users and rights
          /////////////////
           Users are used to dynamically manage the rights given to Daml applications.
           They are stored and managed per participant node.
        type: object
        required:
        - id
        - primaryParty
        - isDeactivated
        - identityProviderId
        properties:
          id:
            description: |-
              The user identifier, which must be a non-empty string of at most 128
              characters that are either alphanumeric ASCII characters or one of the symbols "@^$.!`-#+'~_|:".
              Required
            type: string
          primaryParty:
            description: |-
              The primary party as which this user reads and acts by default on the ledger
              *provided* it has the corresponding ``CanReadAs(primary_party)`` or
              ``CanActAs(primary_party)`` rights.
              Ledger API clients SHOULD set this field to a non-empty value for all users to
              enable the users to act on the ledger using their own Daml party.
              Users for participant administrators MAY have an associated primary party.
              Optional,
              Modifiable
            type: string
          isDeactivated:
            description: |-
              When set, then the user is denied all access to the Ledger API.
              Otherwise, the user has access to the Ledger API as per the user's rights.
              Optional,
              Modifiable
            type: boolean
          metadata:
            $ref: '#/components/schemas/ObjectMeta'
            description: |-
              The metadata of this user.
              Note that the ``metadata.resource_version`` tracks changes to the properties described by the ``User`` message and not the user's rights.
              Optional,
              Modifiable
          identityProviderId:
            description: |-
              The ID of the identity provider configured by ``Identity Provider Config``
              Optional, if not set, assume the user is managed by the default identity provider.
            type: string
      UserManagementFeature:
        title: UserManagementFeature
        type: object
        required:
        - supported
        - maxRightsPerUser
        - maxUsersPageSize
        properties:
          supported:
            description: Whether the Ledger API server provides the user management
              service.
            type: boolean
          maxRightsPerUser:
            description: |-
              The maximum number of rights that can be assigned to a single user.
              Servers MUST support at least 100 rights per user.
              A value of 0 means that the server enforces no rights per user limit.
            type: integer
            format: int32
          maxUsersPageSize:
            description: |-
              The maximum number of users the server can return in a single response (page).
              Servers MUST support at least a 100 users per page.
              A value of 0 means that the server enforces no page size limit.
            type: integer
            format: int32
      WildcardFilter:
        title: WildcardFilter
        description: This filter matches all templates.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/WildcardFilter1'
      WildcardFilter1:
        title: WildcardFilter
        description: This filter matches all templates.
        type: object
        required:
        - includeCreatedEventBlob
        properties:
          includeCreatedEventBlob:
            description: |-
              Whether to include a ``created_event_blob`` in the returned ``CreatedEvent``.
              Use this to access the contract create event payload in your API client
              for submitting it as a disclosed contract with future commands.
              Optional
            type: boolean
    securitySchemes:
      apiKeyAuth:
        type: apiKey
        description: Ledger API standard JWT token (websocket)
        name: Sec-WebSocket-Protocol
        in: header
      httpAuth:
        type: http
        description: Ledger API standard JWT token
        scheme: bearer

:lines: 1-1000
  openapi: 3.0.3
  info:
    title: JSON Ledger API HTTP endpoints
    version: 3.3.0-SNAPSHOT
  paths:
    /v2/commands/submit-and-wait:
      post:
        description: Submit a batch of commands and wait for the completion details
        operationId: postV2CommandsSubmit-and-wait
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsCommands'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/SubmitAndWaitResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/submit-and-wait-for-transaction:
      post:
        description: Submit a batch of commands and wait for the transaction response
        operationId: postV2CommandsSubmit-and-wait-for-transaction
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsSubmitAndWaitForTransactionRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsSubmitAndWaitForTransactionResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/submit-and-wait-for-reassignment:
      post:
        description: Submit a batch of reassignment commands and wait for the reassignment
          response
        operationId: postV2CommandsSubmit-and-wait-for-reassignment
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmitAndWaitForReassignmentRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsSubmitAndWaitForReassignmentResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/submit-and-wait-for-transaction-tree:
      post:
        description: Submit a batch of commands and wait for the transaction trees response
        operationId: postV2CommandsSubmit-and-wait-for-transaction-tree
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsCommands'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsSubmitAndWaitForTransactionTreeResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/async/submit:
      post:
        description: Submit a command asynchronously
        operationId: postV2CommandsAsyncSubmit
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsCommands'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/SubmitResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/async/submit-reassignment:
      post:
        description: Submit reassignment command asynchronously
        operationId: postV2CommandsAsyncSubmit-reassignment
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmitReassignmentRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/SubmitReassignmentResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/completions:
      post:
        description: Query completions list (blocking call)
        operationId: postV2CommandsCompletions
        parameters:
        - name: limit
          in: query
          description: maximum number of elements to return, this param is ignored if
            is bigger than server setting
          required: false
          schema:
            type: integer
            format: int64
        - name: stream_idle_timeout_ms
          in: query
          description: timeout to complete and send result if no new elements are received
            (for open ended streams)
          required: false
          schema:
            type: integer
            format: int64
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompletionStreamRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  type: array
                  items:
                    $ref: '#/components/schemas/CompletionStreamResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: query parameter
              limit, Invalid value for: query parameter stream_idle_timeout_ms, Invalid
              value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/events/events-by-contract-id:
      post:
        description: Get events by contract Id
        operationId: postV2EventsEvents-by-contract-id
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventsByContractIdRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetEventsByContractIdResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/version:
      get:
        description: Get the version details of the participant node
        operationId: getV2Version
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetLedgerApiVersionResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/packages:
      get:
        description: List all packages uploaded on the participant node
        operationId: getV2Packages
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ListPackagesResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      post:
        description: Upload a DAR to the participant node
        operationId: postV2Packages
        requestBody:
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/UploadDarFileResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/packages/{package-id}:
      get:
        description: Download the package for the requested package-id
        operationId: getV2PackagesPackage-id
        parameters:
        - name: package-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            headers:
              Canton-Package-Hash:
                required: true
                schema:
                  type: string
            content:
              application/octet-stream:
                schema:
                  type: string
                  format: binary
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/packages/{package-id}/status:
      get:
        description: Get package status
        operationId: getV2PackagesPackage-idStatus
        parameters:
        - name: package-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetPackageStatusResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/parties:
      get:
        description: List all known parties.
        operationId: getV2Parties
        parameters:
        - name: pageSize
          in: query
          description: maximum number of elements in a returned page
          required: false
          schema:
            type: integer
            format: int32
        - name: pageToken
          in: query
          description: token - to continue results from a given page, leave empty to
            start from the beginning of the list, obtain token from the result of previous
            page
          required: false
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ListKnownPartiesResponse'
          '400':
            description: 'Invalid value for: query parameter pageSize, Invalid value
              for: query parameter pageToken, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      post:
        description: Allocate a new party to the participant node
        operationId: postV2Parties
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllocatePartyRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/AllocatePartyResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/parties/participant-id:
      get:
        description: Get participant id
        operationId: getV2PartiesParticipant-id
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetParticipantIdResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/parties/{party}:
      get:
        description: Get party details
        operationId: getV2PartiesParty
        parameters:
        - name: party
          in: path
          required: true
          schema:
            type: string
        - name: identity-provider-id
          in: query
          required: false
          schema:
            type: string
        - name: parties
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetPartiesResponse'
          '400':
            description: 'Invalid value for: query parameter identity-provider-id, Invalid
              value for: query parameter parties, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      patch:
        description: Allocate a new party to the participant node
        operationId: patchV2PartiesParty
        parameters:
        - name: party
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdatePartyDetailsRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/UpdatePartyDetailsResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/state/active-contracts:
      post:
        description: Query active contracts list (blocking call)
        operationId: postV2StateActive-contracts
        parameters:
        - name: limit
          in: query
          description: maximum number of elements to return, this param is ignored if
            is bigger than server setting
          required: false
          schema:
            type: integer
            format: int64
        - name: stream_idle_timeout_ms
          in: query
          description: timeout to complete and send result if no new elements are received
            (for open ended streams)
          required: false
          schema:
            type: integer
            format: int64
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetActiveContractsRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  type: array
                  items:
                    $ref: '#/components/schemas/JsGetActiveContractsResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: query parameter
              limit, Invalid value for: query parameter stream_idle_timeout_ms, Invalid
              value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/state/connected-synchronizers:
      get:
        description: Get connected synchronizers
        operationId: getV2StateConnected-synchronizers
        parameters:
        - name: party
          in: query
          required: true
          schema:
            type: string
        - name: participantId
          in: query
          required: false
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetConnectedSynchronizersResponse'
          '400':
            description: 'Invalid value for: query parameter party, Invalid value for:
              query parameter participantId, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/state/ledger-end:
      get:
        description: Get ledger end
        operationId: getV2StateLedger-end
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetLedgerEndResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/state/latest-pruned-offsets:
      get:
        description: Get latest pruned offsets
        operationId: getV2StateLatest-pruned-offsets
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetLatestPrunedOffsetsResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/flats:
      post:
        description: Query flat transactions update list (blocking call)
        operationId: postV2UpdatesFlats
        parameters:
        - name: limit
          in: query
          description: maximum number of elements to return, this param is ignored if
            is bigger than server setting
          required: false
          schema:
            type: integer
            format: int64
        - name: stream_idle_timeout_ms
          in: query
          description: timeout to complete and send result if no new elements are received
            (for open ended streams)
          required: false
          schema:
            type: integer
            format: int64
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUpdatesRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  type: array
                  items:
                    $ref: '#/components/schemas/JsGetUpdatesResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: query parameter
              limit, Invalid value for: query parameter stream_idle_timeout_ms, Invalid
              value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/trees:
      post:
        description: Query update transactions tree list (blocking call)
        operationId: postV2UpdatesTrees
        parameters:
        - name: limit
          in: query
          description: maximum number of elements to return, this param is ignored if
            is bigger than server setting
          required: false
          schema:
            type: integer
            format: int64
        - name: stream_idle_timeout_ms
          in: query
          description: timeout to complete and send result if no new elements are received
            (for open ended streams)
          required: false
          schema:
            type: integer
            format: int64
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUpdatesRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  type: array
                  items:
                    $ref: '#/components/schemas/JsGetUpdateTreesResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: query parameter
              limit, Invalid value for: query parameter stream_idle_timeout_ms, Invalid
              value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/transaction-tree-by-offset/{offset}:
      get:
        description: Get transaction tree by offset
        operationId: getV2UpdatesTransaction-tree-by-offsetOffset
        parameters:
        - name: offset
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: parties
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetTransactionTreeResponse'
          '400':
            description: 'Invalid value for: path parameter offset, Invalid value for:
              query parameter parties, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/transaction-by-offset:
      post:
        description: Get transaction by offset
        operationId: postV2UpdatesTransaction-by-offset
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTransactionByOffsetRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetTransactionResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/update-by-offset:
      post:
        description: Get update by offset
        operationId: postV2UpdatesUpdate-by-offset
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUpdateByOffsetRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetUpdateResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/transaction-by-id:
      post:
        description: Get transaction by id
        operationId: postV2UpdatesTransaction-by-id
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTransactionByIdRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetTransactionResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/update-by-id:
      post:
        description: Get update by id
        operationId: postV2UpdatesUpdate-by-id
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUpdateByIdRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetUpdateResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/transaction-tree-by-id/{update-id}:
      get:
        description: Get transaction tree by  id
        operationId: getV2UpdatesTransaction-tree-by-idUpdate-id
        parameters:
        - name: update-id
          in: path
          required: true
          schema:
            type: string
        - name: parties
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetTransactionTreeResponse'
          '400':
            description: 'Invalid value for: query parameter parties, Invalid value
              for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/users:
      get:
        description: List all users.
        operationId: getV2Users
        parameters:
        - name: pageSize
          in: query
          description: maximum number of elements in a returned page
          required: false
          schema:
            type: integer
            format: int32
        - name: pageToken
          in: query
          description: token - to continue results from a given page, leave empty to
            start from the beginning of the list, obtain token from the result of previous
            page
          required: false
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ListUsersResponse'
          '400':
            description: 'Invalid value for: query parameter pageSize, Invalid value
              for: query parameter pageToken, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      post:
        description: Create user.
        operationId: postV2Users
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateUserRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/CreateUserResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/users/{user-id}:
      get:
        description: Get user details.
        operationId: getV2UsersUser-id
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetUserResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      delete:
        description: Delete user.
        operationId: deleteV2UsersUser-id
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  type: object
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      patch:
        description: Update  user.
        operationId: patchV2UsersUser-id
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateUserRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/UpdateUserResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/users/{user-id}/rights:
      get:
        description: List user rights.
        operationId: getV2UsersUser-idRights
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ListUserRightsResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      post:
        description: Grant user rights.
        operationId: postV2UsersUser-idRights
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GrantUserRightsRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GrantUserRightsResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      patch:
        description: Revoke user rights.
        operationId: patchV2UsersUser-idRights
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RevokeUserRightsRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/RevokeUserRightsResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/users/{user-id}/identity-provider-id:
      patch:
        description: Update user identity provider.
        operationId: patchV2UsersUser-idIdentity-provider-id
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateUserIdentityProviderIdRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/UpdateUserIdentityProviderIdResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/idps:
      get:
        description: List all identity provider configs
        operationId: getV2Idps
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ListIdentityProviderConfigsResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      post:
        description: Create identity provider configs
        operationId: postV2Idps
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateIdentityProviderConfigRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/CreateIdentityProviderConfigResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/idps/{idp-id}:
      get:
        description: Get identity provider config
        operationId: getV2IdpsIdp-id
        parameters:
        - name: idp-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetIdentityProviderConfigResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      delete:
        description: Delete identity provider config
        operationId: deleteV2IdpsIdp-id
        parameters:
        - name: idp-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/DeleteIdentityProviderConfigResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      patch:
        description: Update identity provider config
        operationId: patchV2IdpsIdp-id
        parameters:
        - name: idp-id
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateIdentityProviderConfigRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/UpdateIdentityProviderConfigResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/interactive-submission/prepare:
      post:
        description: Prepare commands for signing
        operationId: postV2Interactive-submissionPrepare
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsPrepareSubmissionRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsPrepareSubmissionResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/interactive-submission/execute:
      post:
        description: Execute a signed transaction
        operationId: postV2Interactive-submissionExecute
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsExecuteSubmissionRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ExecuteSubmissionResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/interactive-submission/preferred-package-version:
      get:
        description: Get the preferred package version for constructing a command submission
        operationId: getV2Interactive-submissionPreferred-package-version
        parameters:
        - name: parties
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
        - name: package-name
          in: query
          required: true
          schema:
            type: string
        - name: vetting_valid_at
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: synchronizer-id
          in: query
          required: false
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetPreferredPackageVersionResponse'
          '400':
            description: 'Invalid value for: query parameter parties, Invalid value
              for: query parameter package-name, Invalid value for: query parameter
              vetting_valid_at, Invalid value for: query parameter synchronizer-id,
              Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/interactive-submission/preferred-packages:
      get:
        description: Get the version of preferred packages for constructing a command
          submission
        operationId: getV2Interactive-submissionPreferred-packages
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPreferredPackagesRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetPreferredPackagesResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
  components:
    schemas:
      AllocatePartyRequest:
        title: AllocatePartyRequest
        description: 'Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(identity_provider_id)``'
        type: object
        required:
        - partyIdHint
        - identityProviderId
        properties:
          partyIdHint:
            description: |-
              A hint to the participant which party ID to allocate. It can be
              ignored.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Optional
            type: string
          localMetadata:
            $ref: '#/components/schemas/ObjectMeta'
            description: |-
              Formerly "display_name"
              Participant-local metadata to be stored in the ``PartyDetails`` of this newly allocated party.
              Optional
          identityProviderId:
            description: |-
              The id of the ``Identity Provider``
              Optional, if not set, assume the party is managed by the default identity provider or party is not hosted by the participant.
            type: string
      AllocatePartyResponse:
        title: AllocatePartyResponse
        type: object
        properties:
          partyDetails:
            $ref: '#/components/schemas/PartyDetails'
            description: ''
      ArchivedEvent:
        title: ArchivedEvent
        description: Records that a contract has been archived, and choices may no longer
          be exercised on it.
        type: object
        required:
        - offset
        - nodeId
        - contractId
        - templateId
        - packageName
        properties:
          offset:
            description: |-
              The offset of origin.
              Offsets are managed by the participant nodes.
              Transactions can thus NOT be assumed to have the same offsets on different participant nodes.
              Required, it is a valid absolute offset (positive integer)
            type: integer
            format: int64
          nodeId:
            description: |-
              The position of this event in the originating transaction or reassignment.
              Node IDs are not necessarily equal across participants,
              as these may see different projections/parts of transactions.
              Required, must be valid node ID (non-negative integer)
            type: integer
            format: int32
          contractId:
            description: |-
              The ID of the archived contract.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          templateId:
            description: |-
              The template of the archived contract.
              The identifier uses the package-id reference format.

              Required
            type: string
          witnessParties:
            description: |-
              The parties that are notified of this event. For an ``ArchivedEvent``,
              these are the intersection of the stakeholders of the contract in
              question and the parties specified in the ``TransactionFilter``. The
              stakeholders are the union of the signatories and the observers of
              the contract.
              Each one of its elements must be a valid PartyIdString (as described
              in ``value.proto``).
              Required
            type: array
            items:
              type: string
          packageName:
            description: |-
              The package name of the contract.
              Required
            type: string
          implementedInterfaces:
            description: |-
              The interfaces implemented by the target template that have been
              matched from the interface filter query.
              Populated only in case interface filters with include_interface_view set.

              If defined, the identifier uses the package-id reference format.

              Optional
            type: array
            items:
              type: string
      AssignCommand:
        title: AssignCommand
        description: Assign a contract
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/AssignCommand1'
      AssignCommand1:
        title: AssignCommand
        description: Assign a contract
        type: object
        required:
        - unassignId
        - source
        - target
        properties:
          unassignId:
            description: |-
              The ID from the unassigned event to be completed by this assignment.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          source:
            description: |-
              The ID of the source synchronizer
              Must be a valid synchronizer id
              Required
            type: string
          target:
            description: |-
              The ID of the target synchronizer
              Must be a valid synchronizer id
              Required
            type: string
      CanActAs:
        title: CanActAs
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/CanActAs1'
      CanActAs1:
        title: CanActAs
        type: object
        required:
        - party
        properties:
          party:
            type: string
      CanReadAs:
        title: CanReadAs
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/CanReadAs1'
      CanReadAs1:
        title: CanReadAs
        type: object
        required:
        - party
        properties:
          party:
            type: string
      CanReadAsAnyParty:
        title: CanReadAsAnyParty
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/CanReadAsAnyParty1'
      CanReadAsAnyParty1:
        title: CanReadAsAnyParty
        type: object
      Command:
        title: Command
        description: A command can either create a new contract or exercise a choice
          on an existing contract.
        oneOf:
        - type: object
          required:
          - CreateAndExerciseCommand
          properties:
            CreateAndExerciseCommand:
              $ref: '#/components/schemas/CreateAndExerciseCommand'
        - type: object
          required:
          - CreateCommand
          properties:
            CreateCommand:
              $ref: '#/components/schemas/CreateCommand'
        - type: object
          required:
          - ExerciseByKeyCommand
          properties:
            ExerciseByKeyCommand:
              $ref: '#/components/schemas/ExerciseByKeyCommand'
        - type: object
          required:
          - ExerciseCommand
          properties:
            ExerciseCommand:
              $ref: '#/components/schemas/ExerciseCommand'
      Command1:
        title: Command
        description: A command can either create a new contract or exercise a choice
          on an existing contract.
        oneOf:
        - type: object
          required:
          - AssignCommand
          properties:
            AssignCommand:
              $ref: '#/components/schemas/AssignCommand'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty2'
        - type: object
          required:
          - UnassignCommand
          properties:
            UnassignCommand:
              $ref: '#/components/schemas/UnassignCommand'
      Completion:
        title: Completion
        description: 'A completion represents the status of a submitted command on the
          ledger: it can be successful or failed.'
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/Completion1'
      Completion1:
        title: Completion
        description: 'A completion represents the status of a submitted command on the
          ledger: it can be successful or failed.'
        type: object
        required:
        - commandId
        - updateId
        - userId
        - submissionId
        - deduplicationPeriod
        - offset
        properties:
          commandId:
            description: |-
              The ID of the succeeded or failed command.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          status:
            $ref: '#/components/schemas/Status'
            description: |-
              Identifies the exact type of the error.
              It uses the same format of conveying error details as it is used for the RPC responses of the APIs.
              Optional
          updateId:
            description: |-
              The update_id of the transaction or reassignment that resulted from the command with command_id.
              Only set for successfully executed commands.
              Must be a valid LedgerString (as described in ``value.proto``).
            type: string
          userId:
            description: |-
              The user-id that was used for the submission, as described in ``commands.proto``.
              Must be a valid UserIdString (as described in ``value.proto``).
              Optional for historic completions where this data is not available.
            type: string
          actAs:
            description: |-
              The set of parties on whose behalf the commands were executed.
              Contains the ``act_as`` parties from ``commands.proto``
              filtered to the requesting parties in CompletionStreamRequest.
              The order of the parties need not be the same as in the submission.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Optional for historic completions where this data is not available.
            type: array
            items:
              type: string
          submissionId:
            description: |-
              The submission ID this completion refers to, as described in ``commands.proto``.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          deduplicationPeriod:
            $ref: '#/components/schemas/DeduplicationPeriod1'
          traceContext:
            $ref: '#/components/schemas/TraceContext'
            description: |-
              Optional; ledger API trace context

              The trace context transported in this message corresponds to the trace context supplied
              by the client application in a HTTP2 header of the original command submission.
              We typically use a header to transfer this type of information. Here we use message
              body, because it is used in gRPC streams which do not support per message headers.
              This field will be populated with the trace context contained in the original submission.
              If that was not provided, a unique ledger-api-server generated trace context will be used
              instead.
          offset:
            description: |-
              May be used in a subsequent CompletionStreamRequest to resume the consumption of this stream at a later time.
              Required, must be a valid absolute offset (positive integer).
            type: integer
            format: int64
          synchronizerTime:
            $ref: '#/components/schemas/SynchronizerTime'
            description: |-
              The synchronizer along with its record time.
              The synchronizer id provided, in case of

              - successful/failed transactions: identifies the synchronizer of the transaction
              - for successful/failed unassign commands: identifies the source synchronizer
              - for successful/failed assign commands: identifies the target synchronizer

              Required
      CompletionResponse:
        title: CompletionResponse
        oneOf:
        - type: object
          required:
          - Completion
          properties:
            Completion:
              $ref: '#/components/schemas/Completion'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty4'
        - type: object
          required:
          - OffsetCheckpoint
          properties:
            OffsetCheckpoint:
              $ref: '#/components/schemas/OffsetCheckpoint'
      CompletionStreamRequest:
        title: CompletionStreamRequest
        type: object
        required:
        - userId
        - beginExclusive
        properties:
          userId:
            description: |-
              Only completions of commands submitted with the same user_id will be visible in the stream.
              Must be a valid UserIdString (as described in ``value.proto``).
              Required unless authentication is used with a user token.
              In that case, the token's user-id will be used for the request's user_id.
            type: string
          parties:
            description: |-
              Non-empty list of parties whose data should be included.
              The stream shows only completions of commands for which at least one of the ``act_as`` parties is in the given set of parties.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Required
            type: array
            items:
              type: string
          beginExclusive:
            description: |-
              This optional field indicates the minimum offset for completions. This can be used to resume an earlier completion stream.
              If not set the ledger uses the ledger begin offset instead.
              If specified, it must be a valid absolute offset (positive integer) or zero (ledger begin offset).
              If the ledger has been pruned, this parameter must be specified and greater than the pruning offset.
            type: integer
            format: int64
      CompletionStreamResponse:
        title: CompletionStreamResponse
        type: object
        required:
        - completionResponse
        properties:
          completionResponse:
            $ref: '#/components/schemas/CompletionResponse'
      ConnectedSynchronizer:
        title: ConnectedSynchronizer
        type: object
        required:
        - synchronizerAlias
        - synchronizerId
        - permission
        properties:
          synchronizerAlias:
            type: string
          synchronizerId:
            type: string
          permission:
            type: string
      CreateAndExerciseCommand:
        title: CreateAndExerciseCommand
        description: Create a contract and exercise a choice on it in the same transaction.
        type: object
        required:
        - templateId
        - createArguments
        - choice
        - choiceArgument
        properties:
          templateId:
            description: |-
              The template of the contract the client wants to create.
              Both package-name and package-id reference identifier formats for the template-id are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          createArguments:
            description: |-
              The arguments required for creating a contract from this template.
              Required
          choice:
            description: |-
              The name of the choice the client wants to exercise.
              Must be a valid NameString (as described in ``value.proto``).
              Required
            type: string
          choiceArgument:
            description: |-
              The argument for this choice.
              Required
      CreateCommand:
        title: CreateCommand
        description: Create a new contract instance based on a template.
        type: object
        required:
        - templateId
        - createArguments
        properties:
          templateId:
            description: |-
              The template of contract the client wants to create.
              Both package-name and package-id reference identifier formats for the template-id are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          createArguments:
            description: |-
              The arguments required for creating a contract from this template.
              Required
      CreateIdentityProviderConfigRequest:
        title: CreateIdentityProviderConfigRequest
        type: object
        properties:
          identityProviderConfig:
            $ref: '#/components/schemas/IdentityProviderConfig'
            description: Required
      CreateIdentityProviderConfigResponse:
        title: CreateIdentityProviderConfigResponse
        type: object
        properties:
          identityProviderConfig:
            $ref: '#/components/schemas/IdentityProviderConfig'
            description: ''
      CreateUserRequest:
        title: CreateUserRequest
        description: |2-
           RPC requests and responses
          ///////////////////////////
           Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(user.identity_provider_id)``
        type: object
        properties:
          user:
            $ref: '#/components/schemas/User'
            description: |-
              The user to create.
              Required
          rights:
            description: |-
              The rights to be assigned to the user upon creation,
              which SHOULD include appropriate rights for the ``user.primary_party``.
              Optional
            type: array
            items:
              $ref: '#/components/schemas/Right'
      CreateUserResponse:
        title: CreateUserResponse
        type: object
        properties:
          user:
            $ref: '#/components/schemas/User'
            description: Created user.
      CreatedEvent:
        title: CreatedEvent
        description: Records that a contract has been created, and choices may now be
          exercised on it.
        type: object
        required:
        - offset
        - nodeId
        - contractId
        - templateId
        - createdEventBlob
        - createdAt
        - packageName
        properties:
          offset:
            description: |-
              The offset of origin, which has contextual meaning, please see description at messages that include a CreatedEvent.
              Offsets are managed by the participant nodes.
              Transactions can thus NOT be assumed to have the same offsets on different participant nodes.
              Required, it is a valid absolute offset (positive integer)
            type: integer
            format: int64
          nodeId:
            description: |-
              The position of this event in the originating transaction or reassignment.
              The origin has contextual meaning, please see description at messages that include a CreatedEvent.
              Node IDs are not necessarily equal across participants,
              as these may see different projections/parts of transactions.
              Required, must be valid node ID (non-negative integer)
            type: integer
            format: int32
          contractId:
            description: |-
              The ID of the created contract.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          templateId:
            description: |-
              The template of the created contract.
              The identifier uses the package-id reference format.

              Required
            type: string
          contractKey:
            description: |-
              The key of the created contract.
              This will be set if and only if ``create_arguments`` is set and ``template_id`` defines a contract key.
              Optional
          createArgument: {}
          createdEventBlob:
            description: |-
              Opaque representation of contract create event payload intended for forwarding
              to an API server as a contract disclosed as part of a command
              submission.
              Optional
            type: string
          interfaceViews:
            description: |-
              Interface views specified in the transaction filter.
              Includes an ``InterfaceView`` for each interface for which there is a ``InterfaceFilter`` with

              - its party in the ``witness_parties`` of this event,
              - and which is implemented by the template of this event,
              - and which has ``include_interface_view`` set.

              Optional
            type: array
            items:
              $ref: '#/components/schemas/JsInterfaceView'
          witnessParties:
            description: |-
              The parties that are notified of this event. When a ``CreatedEvent``
              is returned as part of a transaction tree or ledger-effects transaction, this will include all
              the parties specified in the ``TransactionFilter`` that are informees
              of the event. If served as part of a ACS delta transaction those will
              be limited to all parties specified in the ``TransactionFilter`` that
              are stakeholders of the contract (i.e. either signatories or observers).
              If the ``CreatedEvent`` is returned as part of an AssignedEvent,
              ActiveContract or IncompleteUnassigned (so the event is related to
              an assignment or unassignment): this will include all parties of the
              ``TransactionFilter`` that are stakeholders of the contract.

              The behavior of reading create events visible to parties not hosted
              on the participant node serving the Ledger API is undefined. Concretely,
              there is neither a guarantee that the participant node will serve all their
              create events on the ACS stream, nor is there a guarantee that matching archive
              events are delivered for such create events.

              For most clients this is not a problem, as they only read events for parties
              that are hosted on the participant node. If you need to read events
              for parties that may not be hosted at all times on the participant node,
              subscribe to the ``TopologyEvent``s for that party by setting a corresponding
              ``UpdateFormat``.  Using these events, query the ACS as-of an offset where the
              party is hosted on the participant node, and ignore create events at offsets
              where the party is not hosted on the participant node.
              Required
            type: array
            items:
              type: string
          signatories:
            description: |-
              The signatories for this contract as specified by the template.
              Required
            type: array
            items:
              type: string
          observers:
            description: |-
              The observers for this contract as specified explicitly by the template or implicitly as choice controllers.
              This field never contains parties that are signatories.
              Required
            type: array
            items:
              type: string
          createdAt:
            description: |-
              Ledger effective time of the transaction that created the contract.
              Required
            type: string
          packageName:
            description: |-
              The package name of the created contract.
              Required
            type: string
      CreatedTreeEvent:
        title: CreatedTreeEvent
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/CreatedEvent'
      CumulativeFilter:
        title: CumulativeFilter
        description: |-
          A filter that matches all contracts that are either an instance of one of
          the ``template_filters`` or that match one of the ``interface_filters``.
        type: object
        required:
        - identifierFilter
        properties:
          identifierFilter:
            $ref: '#/components/schemas/IdentifierFilter'
      DeduplicationDuration:
        title: DeduplicationDuration
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/Duration'
      DeduplicationDuration1:
        title: DeduplicationDuration
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/Duration'
      DeduplicationDuration2:
        title: DeduplicationDuration
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/Duration'
      DeduplicationOffset:
        title: DeduplicationOffset
        type: object
        required:
        - value
        properties:
          value:
            type: integer
            format: int64
      DeduplicationOffset1:
        title: DeduplicationOffset
        type: object
        required:
        - value
        properties:
          value:
            type: integer
            format: int64
      DeduplicationOffset2:
        title: DeduplicationOffset
        type: object
        required:
        - value
        properties:
          value:
            type: integer
            format: int64
      DeduplicationPeriod:
        title: DeduplicationPeriod
        description: |-
          Specifies the deduplication period for the change ID.
          If omitted, the participant will assume the configured maximum deduplication time.
        oneOf:
        - type: object
          required:
          - DeduplicationDuration
          properties:
            DeduplicationDuration:
              $ref: '#/components/schemas/DeduplicationDuration'
        - type: object
          required:
          - DeduplicationOffset
          properties:
            DeduplicationOffset:
              $ref: '#/components/schemas/DeduplicationOffset'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty'
      DeduplicationPeriod1:
        title: DeduplicationPeriod
        description: |-
          The actual deduplication window used for the submission, which is derived from
          ``Commands.deduplication_period``. The ledger may convert the deduplication period into other
          descriptions and extend the period in implementation-specified ways.

          Used to audit the deduplication guarantee described in ``commands.proto``.

          Optional; the deduplication guarantee applies even if the completion omits this field.
        oneOf:
        - type: object
          required:
          - DeduplicationDuration
          properties:
            DeduplicationDuration:
              $ref: '#/components/schemas/DeduplicationDuration1'
        - type: object
          required:
          - DeduplicationOffset
          properties:
            DeduplicationOffset:
              $ref: '#/components/schemas/DeduplicationOffset1'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty3'
      DeduplicationPeriod2:
        title: DeduplicationPeriod
        description: |-
          Specifies the deduplication period for the change ID (See PrepareSubmissionRequest).
          If omitted, the participant will assume the configured maximum deduplication time.
        oneOf:
        - type: object
          required:
          - DeduplicationDuration
          properties:
            DeduplicationDuration:
              $ref: '#/components/schemas/DeduplicationDuration2'
        - type: object
          required:
          - DeduplicationOffset
          properties:
            DeduplicationOffset:
              $ref: '#/components/schemas/DeduplicationOffset2'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty7'
      DeleteIdentityProviderConfigResponse:
        title: DeleteIdentityProviderConfigResponse
        description: Does not (yet) contain any data.
        type: object
      DisclosedContract:
        title: DisclosedContract
        description: |-
          An additional contract that is used to resolve
          contract & contract key lookups.
        type: object
        required:
        - contractId
        - createdEventBlob
        - synchronizerId
        properties:
          templateId:
            description: |-
              The template id of the contract.
              The identifier uses the package-id reference format.

              Required
            type: string
          contractId:
            description: |-
              The contract id
              Required
            type: string
          createdEventBlob:
            description: |-
              Opaque byte string containing the complete payload required by the Daml engine
              to reconstruct a contract not known to the receiving participant.
              Required
            type: string
          synchronizerId:
            description: |-
              The ID of the synchronizer where the contract is currently assigned
              Optional
            type: string
      Duration:
        title: Duration
        type: object
        required:
        - seconds
        - nanos
        properties:
          seconds:
            type: integer
            format: int64
          nanos:
            type: integer
            format: int32
          unknownFields:
            $ref: '#/components/schemas/UnknownFieldSet'
            description: This field is automatically added as part of protobuf to json
              mapping
      Empty:
        title: Empty
        type: object
      Empty1:
        title: Empty
        type: object
      Empty2:
        title: Empty
        type: object
      Empty3:
        title: Empty
        type: object
      Empty4:
        title: Empty
        type: object
      Empty5:
        title: Empty
        type: object
      Empty6:
        title: Empty
        type: object
      Empty7:
        title: Empty
        type: object
      Event:
        title: Event
        description: |-
          Events in transactions can have two primary shapes:

          - ACS delta: events can be CreatedEvent or ArchivedEvent
          - ledger effects: events can be CreatedEvent or ExercisedEvent

          In the update service the events are restricted to the events
          visible for the parties specified in the transaction filter. Each
          event message type below contains a ``witness_parties`` field which
          indicates the subset of the requested parties that can see the event
          in question.
        oneOf:
        - type: object
          required:
          - ArchivedEvent
          properties:
            ArchivedEvent:
              $ref: '#/components/schemas/ArchivedEvent'
        - type: object
          required:
          - CreatedEvent
          properties:
            CreatedEvent:
              $ref: '#/components/schemas/CreatedEvent'
        - type: object
          required:
          - ExercisedEvent
          properties:
            ExercisedEvent:
              $ref: '#/components/schemas/ExercisedEvent'
      EventFormat:
        title: EventFormat
        description: |-
          A format for events which defines both which events should be included
          and what data should be computed and included for them.

          Note that some of the filtering behavior depends on the `TransactionShape`,
          which is expected to be specified alongside usages of `EventFormat`.
        type: object
        required:
        - filtersByParty
        - verbose
        properties:
          filtersByParty:
            $ref: '#/components/schemas/Map_Filters'
            description: |-
              Each key must be a valid PartyIdString (as described in ``value.proto``).
              The interpretation of the filter depends on the transaction-shape being filtered:

              1. For **ledger-effects** create and exercise events are returned, for which the witnesses include at least one of
                 the listed parties and match the per-party filter.
              2. For **transaction and active-contract-set streams** create and archive events are returned for all contracts whose
                 stakeholders include at least one of the listed parties and match the per-party filter.

              Optional
          filtersForAnyParty:
            $ref: '#/components/schemas/Filters'
            description: |-
              Wildcard filters that apply to all the parties existing on the participant. The interpretation of the filters is the same
              with the per-party filter as described above.
              Optional
          verbose:
            description: |-
              If enabled, values served over the API will contain more information than strictly necessary to interpret the data.
              In particular, setting the verbose flag to true triggers the ledger to include labels for record fields.
              Optional
            type: boolean
      ExecuteSubmissionResponse:
        title: ExecuteSubmissionResponse
        type: object
      ExerciseByKeyCommand:
        title: ExerciseByKeyCommand
        description: Exercise a choice on an existing contract specified by its key.
        type: object
        required:
        - templateId
        - contractKey
        - choice
        - choiceArgument
        properties:
          templateId:
            description: |-
              The template of contract the client wants to exercise.
              Both package-name and package-id reference identifier formats for the template-id are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          contractKey:
            description: |-
              The key of the contract the client wants to exercise upon.
              Required
          choice:
            description: |-
              The name of the choice the client wants to exercise.
              Must be a valid NameString (as described in ``value.proto``)
              Required
            type: string
          choiceArgument:
            description: |-
              The argument for this choice.
              Required
      ExerciseCommand:
        title: ExerciseCommand
        description: Exercise a choice on an existing contract.
        type: object
        required:
        - templateId
        - contractId
        - choice
        - choiceArgument
        properties:
          templateId:
            description: |-
              The template of contract the client wants to exercise.
              Both package-name and package-id reference identifier formats for the template-id are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          contractId:
            description: |-
              The ID of the contract the client wants to exercise upon.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          choice:
            description: |-
              The name of the choice the client wants to exercise.
              Must be a valid NameString (as described in ``value.proto``)
              Required
            type: string
          choiceArgument:
            description: |-
              The argument for this choice.
              Required
      ExercisedEvent:
        title: ExercisedEvent
        description: Records that a choice has been exercised on a target contract.
        type: object
        required:
        - offset
        - nodeId
        - contractId
        - templateId
        - choice
        - choiceArgument
        - consuming
        - lastDescendantNodeId
        - exerciseResult
        - packageName
        properties:
          offset:
            description: |-
              The offset of origin.
              Offsets are managed by the participant nodes.
              Transactions can thus NOT be assumed to have the same offsets on different participant nodes.
              Required, it is a valid absolute offset (positive integer)
            type: integer
            format: int64
          nodeId:
            description: |-
              The position of this event in the originating transaction or reassignment.
              Node IDs are not necessarily equal across participants,
              as these may see different projections/parts of transactions.
              Required, must be valid node ID (non-negative integer)
            type: integer
            format: int32
          contractId:
            description: |-
              The ID of the target contract.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          templateId:
            description: |-
              The template of the target contract.
              The identifier uses the package-id reference format.

              Required
            type: string
          interfaceId:
            description: |-
              The interface where the choice is defined, if inherited.
              If defined, the identifier uses the package-id reference format.

              Optional
            type: string
          choice:
            description: |-
              The choice that was exercised on the target contract.
              Must be a valid NameString (as described in ``value.proto``).
              Required
            type: string
          choiceArgument:
            description: |-
              The argument of the exercised choice.
              Required
          actingParties:
            description: |-
              The parties that exercised the choice.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Required
            type: array
            items:
              type: string
          consuming:
            description: |-
              If true, the target contract may no longer be exercised.
              Required
            type: boolean
          witnessParties:
            description: |-
              The parties that are notified of this event. The witnesses of an exercise
              node will depend on whether the exercise was consuming or not.
              If consuming, the witnesses are the union of the stakeholders and
              the actors.
              If not consuming, the witnesses are the union of the signatories and
              the actors. Note that the actors might not necessarily be observers
              and thus signatories. This is the case when the controllers of a
              choice are specified using "flexible controllers", using the
              ``choice ... controller`` syntax, and said controllers are not
              explicitly marked as observers.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Required
            type: array
            items:
              type: string
          lastDescendantNodeId:
            description: |-
              Specifies the upper boundary of the node ids of the events in the same transaction that appeared as a result of
              this ``ExercisedEvent``. This allows unambiguous identification of all the members of the subtree rooted at this
              node. A full subtree can be constructed when all descendant nodes are present in the stream. If nodes are heavily
              filtered, it is only possible to determine if a node is in a consequent subtree or not.
              Required
            type: integer
            format: int32
          exerciseResult:
            description: |-
              The result of exercising the choice.
              Required
          packageName:
            description: |-
              The package name of the contract.
              Required
            type: string
          implementedInterfaces:
            description: |-
              If the event is consuming, the interfaces implemented by the target template that have been
              matched from the interface filter query.
              Populated only in case interface filters with include_interface_view set.

              The identifier uses the package-id reference format.

              Optional
            type: array
            items:
              type: string
      ExercisedTreeEvent:
        title: ExercisedTreeEvent
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/ExercisedEvent'
      ExperimentalCommandInspectionService:
        title: ExperimentalCommandInspectionService
        description: Whether the Ledger API supports command inspection service
        type: object
        required:
        - supported
        properties:
          supported:
            description: ''
            type: boolean
      ExperimentalFeatures:
        title: ExperimentalFeatures
        description: See the feature message definitions for descriptions.
        type: object
        properties:
          staticTime:
            $ref: '#/components/schemas/ExperimentalStaticTime'
            description: ''
          commandInspectionService:
            $ref: '#/components/schemas/ExperimentalCommandInspectionService'
            description: ''
      ExperimentalStaticTime:
        title: ExperimentalStaticTime
        description: Ledger is in the static time mode and exposes a time service.
        type: object
        required:
        - supported
        properties:
          supported:
            description: ''
            type: boolean
      FeaturesDescriptor:
        title: FeaturesDescriptor
        type: object
        properties:
          experimental:
            $ref: '#/components/schemas/ExperimentalFeatures'
            description: |-
              Features under development or features that are used
              for ledger implementation testing purposes only.

              Daml applications SHOULD not depend on these in production.
          userManagement:
            $ref: '#/components/schemas/UserManagementFeature'
            description: |-
              If set, then the Ledger API server supports user management.
              It is recommended that clients query this field to gracefully adjust their behavior for
              ledgers that do not support user management.
          partyManagement:
            $ref: '#/components/schemas/PartyManagementFeature'
            description: |-
              If set, then the Ledger API server supports party management configurability.
              It is recommended that clients query this field to gracefully adjust their behavior to
              maximum party page size.
          offsetCheckpoint:
            $ref: '#/components/schemas/OffsetCheckpointFeature'
            description: It contains the timeouts related to the periodic offset checkpoint
              emission
      Field:
        title: Field
        type: object
        properties:
          varint:
            type: array
            items:
              type: integer
              format: int64
          fixed64:
            type: array
            items:
              type: integer
              format: int64
          fixed32:
            type: array
            items:
              type: integer
              format: int32
          lengthDelimited:
            type: array
            items:
              type: string
      FieldMask:
        title: FieldMask
        type: object
        required:
        - unknownFields
        properties:
          paths:
            type: array
            items:
              type: string
          unknownFields:
            $ref: '#/components/schemas/UnknownFieldSet'
      Filters:
        title: Filters
        description: The union of a set of template filters, interface filters, or a
          wildcard.
        type: object
        properties:
          cumulative:
            description: |-
              Every filter in the cumulative list expands the scope of the resulting stream. Each interface,
              template or wildcard filter means additional events that will match the query.
              The impact of include_interface_view and include_created_event_blob fields in the filters will
              also be accumulated.
              A template or an interface SHOULD NOT appear twice in the accumulative field.
              A wildcard filter SHOULD NOT be defined more than once in the accumulative field.
              Optional, if no ``CumulativeFilter`` defined, the default of a single ``WildcardFilter`` with
              include_created_event_blob unset is used.
            type: array
            items:
              $ref: '#/components/schemas/CumulativeFilter'
      GetActiveContractsRequest:
        title: GetActiveContractsRequest
        description: |-
          If the given offset is different than the ledger end, and there are (un)assignments in-flight at the given offset,
          the snapshot may fail with "FAILED_PRECONDITION/PARTICIPANT_PRUNED_DATA_ACCESSED".
          Note that it is ok to request acs snapshots for party migration with offsets other than ledger end, because party
          migration is not concerned with incomplete (un)assignments.
        type: object
        required:
        - verbose
        - activeAtOffset
        properties:
          filter:
            $ref: '#/components/schemas/TransactionFilter'
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              Templates to include in the served snapshot, per party.
              Optional, if specified event_format must be unset, if not specified event_format must be set.
          verbose:
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              If enabled, values served over the API will contain more information than strictly necessary to interpret the data.
              In particular, setting the verbose flag to true triggers the ledger to include labels for record fields.
              Optional, if specified event_format must be unset.
            type: boolean
          activeAtOffset:
            description: |-
              The offset at which the snapshot of the active contracts will be computed.
              Must be no greater than the current ledger end offset.
              Must be greater than or equal to the last pruning offset.
              Required, must be a valid absolute offset (positive integer) or ledger begin offset (zero).
              If zero, the empty set will be returned.
            type: integer
            format: int64
          eventFormat:
            $ref: '#/components/schemas/EventFormat'
            description: |-
              Format of the contract_entries in the result. In case of CreatedEvent the presentation will be of
              TRANSACTION_SHAPE_ACS_DELTA.
              Optional for backwards compatibility, defaults to an EventFormat where:

              - filters_by_party is the filter.filters_by_party from this request
              - filters_for_any_party is the filter.filters_for_any_party from this request
              - verbose is the verbose field from this request
      GetConnectedSynchronizersResponse:
        title: GetConnectedSynchronizersResponse
        type: object
        properties:
          connectedSynchronizers:
            description: ''
            type: array
            items:
              $ref: '#/components/schemas/ConnectedSynchronizer'
      GetEventsByContractIdRequest:
        title: GetEventsByContractIdRequest
        type: object
        required:
        - contractId
        properties:
          contractId:
            description: |-
              The contract id being queried.
              Required
            type: string
          requestingParties:
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              The parties whose events the client expects to see.
              The events associated with the contract id will only be returned if the requesting parties includes
              at least one party that is a stakeholder of the event. For a definition of stakeholders see
              https://docs.daml.com/concepts/ledger-model/ledger-privacy.html#contract-observers-and-stakeholders
              Optional, if some parties specified, event_format needs to be unset.
            type: array
            items:
              type: string
          eventFormat:
            $ref: '#/components/schemas/EventFormat'
            description: |-
              Format of the events in the result, the presentation will be of TRANSACTION_SHAPE_ACS_DELTA.
              Optional for backwards compatibility, defaults to an EventFormat where:

              - filters_by_party is a template-wildcard filter for all requesting_parties
              - filters_for_any_party is unset
              - verbose is set
      GetIdentityProviderConfigResponse:
        title: GetIdentityProviderConfigResponse
        type: object
        properties:
          identityProviderConfig:
            $ref: '#/components/schemas/IdentityProviderConfig'
            description: ''
      GetLatestPrunedOffsetsResponse:
        title: GetLatestPrunedOffsetsResponse
        type: object
        required:
        - participantPrunedUpToInclusive
        - allDivulgedContractsPrunedUpToInclusive
        properties:
          participantPrunedUpToInclusive:
            description: |-
              It will always be a non-negative integer.
              If positive, the absolute offset up to which the ledger has been pruned,
              disregarding the state of all divulged contracts pruning.
              If zero, the ledger has not been pruned yet.
            type: integer
            format: int64
          allDivulgedContractsPrunedUpToInclusive:
            description: |-
              It will always be a non-negative integer.
              If positive, the absolute offset up to which all divulged events have been pruned on the ledger.
              It can be at or before the ``participant_pruned_up_to_inclusive`` offset.
              For more details about all divulged events pruning,
              see ``PruneRequest.prune_all_divulged_contracts`` in ``participant_pruning_service.proto``.
              If zero, the divulged events have not been pruned yet.
            type: integer
            format: int64
      GetLedgerApiVersionResponse:
        title: GetLedgerApiVersionResponse
        type: object
        required:
        - version
        properties:
          version:
            description: The version of the ledger API.
            type: string
          features:
            $ref: '#/components/schemas/FeaturesDescriptor'
            description: |-
              The features supported by this Ledger API endpoint.

              Daml applications CAN use the feature descriptor on top of
              version constraints on the Ledger API version to determine
              whether a given Ledger API endpoint supports the features
              required to run the application.

              See the feature descriptions themselves for the relation between
              Ledger API versions and feature presence.
      GetLedgerEndResponse:
        title: GetLedgerEndResponse
        type: object
        required:
        - offset
        properties:
          offset:
            description: |-
              It will always be a non-negative integer.
              If zero, the participant view of the ledger is empty.
              If positive, the absolute offset of the ledger as viewed by the participant.
            type: integer
            format: int64
      GetPackageStatusResponse:
        title: GetPackageStatusResponse
        type: object
        required:
        - packageStatus
        properties:
          packageStatus:
            description: The status of the package.
            type: string
      GetParticipantIdResponse:
        title: GetParticipantIdResponse
        type: object
        required:
        - participantId
        properties:
          participantId:
            description: |-
              Identifier of the participant, which SHOULD be globally unique.
              Must be a valid LedgerString (as describe in ``value.proto``).
            type: string
      GetPartiesResponse:
        title: GetPartiesResponse
        type: object
        properties:
          partyDetails:
            description: |-
              The details of the requested Daml parties by the participant, if known.
              The party details may not be in the same order as requested.
              Required
            type: array
            items:
              $ref: '#/components/schemas/PartyDetails'
      GetPreferredPackageVersionResponse:
        title: GetPreferredPackageVersionResponse
        type: object
        properties:
          packagePreference:
            $ref: '#/components/schemas/PackagePreference'
            description: |-
              Not populated when no preferred package is found
              Optional
      GetPreferredPackagesRequest:
        title: GetPreferredPackagesRequest
        type: object
        required:
        - synchronizerId
        properties:
          packageVettingRequirements:
            description: |-
              The package-name vetting requirements for which the preferred packages should be resolved.

              Generally it is enough to provide the requirements for the intended command's root package-names.
              Additional package-name requirements can be provided when additional Daml transaction informees need to use
              package dependencies of the command's root packages.

              Required
            type: array
            items:
              $ref: '#/components/schemas/PackageVettingRequirement'
          synchronizerId:
            description: |-
              The synchronizer whose vetting state to use for resolving this query.
              If not specified, the vetting state of all the synchronizers the participant is connected to will be used.
              Optional
            type: string
          vettingValidAt:
            description: |-
              The timestamp at which the package vetting validity should be computed
              on the latest topology snapshot as seen by the participant.
              If not provided, the participant's current clock time is used.
              Optional
            type: string
      GetPreferredPackagesResponse:
        title: GetPreferredPackagesResponse
        type: object
        required:
        - synchronizerId
        properties:
          packageReferences:
            description: |-
              The package references of the preferred packages.
              Must contain one package reference for each requested package-name.
              Required
            type: array
            items:
              $ref: '#/components/schemas/PackageReference'
          synchronizerId:
            description: |-
              The synchronizer for which the package preferences are computed.
              If the synchronizer_id was specified in the request, then it matches the request synchronizer_id.
              Required
            type: string
      GetTransactionByIdRequest:
        title: GetTransactionByIdRequest
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - updateId
        properties:
          updateId:
            description: |-
              The ID of a particular transaction.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          requestingParties:
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              The parties whose events the client expects to see.
              Events that are not visible for the parties in this collection will not be present in the response.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Must be set for GetTransactionTreeById request.
              Optional for backwards compatibility for GetTransactionById request: if defined transaction_format must be
              unset (falling back to defaults).
            type: array
            items:
              type: string
          transactionFormat:
            $ref: '#/components/schemas/TransactionFormat'
            description: |-
              Must be unset for GetTransactionTreeById request.
              Optional for GetTransactionById request for backwards compatibility: defaults to a transaction_format, where:

              - event_format.filters_by_party will have template-wildcard filters for all the requesting_parties
              - event_format.filters_for_any_party is unset
              - event_format.verbose = true
              - transaction_shape = TRANSACTION_SHAPE_ACS_DELTA
      GetTransactionByOffsetRequest:
        title: GetTransactionByOffsetRequest
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - offset
        properties:
          offset:
            description: |-
              The offset of the transaction being looked up.
              Must be a valid absolute offset (positive integer).
              Required
            type: integer
            format: int64
          requestingParties:
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              The parties whose events the client expects to see.
              Events that are not visible for the parties in this collection will not be present in the response.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Must be set for GetTransactionTreeByOffset request.
              Optional for backwards compatibility for GetTransactionByOffset request: if defined transaction_format must be
              unset (falling back to defaults).
            type: array
            items:
              type: string
          transactionFormat:
            $ref: '#/components/schemas/TransactionFormat'
            description: |-
              Must be unset for GetTransactionTreeByOffset request.
              Optional for GetTransactionByOffset request for backwards compatibility: defaults to a TransactionFormat, where:

              - event_format.filters_by_party will have template-wildcard filters for all the requesting_parties
              - event_format.filters_for_any_party is unset
              - event_format.verbose = true
              - transaction_shape = TRANSACTION_SHAPE_ACS_DELTA
      GetUpdateByIdRequest:
        title: GetUpdateByIdRequest
        type: object
        required:
        - updateId
        properties:
          updateId:
            description: |-
              The ID of a particular update.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          updateFormat:
            $ref: '#/components/schemas/UpdateFormat'
            description: |-
              The format for the update.
              Required
      GetUpdateByOffsetRequest:
        title: GetUpdateByOffsetRequest
        type: object
        required:
        - offset
        properties:
          offset:
            description: |-
              The offset of the update being looked up.
              Must be a valid absolute offset (positive integer).
              Required
            type: integer
            format: int64
          updateFormat:
            $ref: '#/components/schemas/UpdateFormat'
            description: |-
              The format for the update.
              Required
      GetUpdatesRequest:
        title: GetUpdatesRequest
        type: object
        required:
        - beginExclusive
        - verbose
        properties:
          beginExclusive:
            description: |-
              Beginning of the requested ledger section (non-negative integer).
              The response will only contain transactions whose offset is strictly greater than this.
              If zero, the stream will start from the beginning of the ledger.
              If positive, the streaming will start after this absolute offset.
              If the ledger has been pruned, this parameter must be specified and be greater than the pruning offset.
            type: integer
            format: int64
          endInclusive:
            description: |-
              End of the requested ledger section.
              The response will only contain transactions whose offset is less than or equal to this.
              Optional, if empty, the stream will not terminate.
              If specified, the stream will terminate after this absolute offset (positive integer) is reached.
            type: integer
            format: int64
          filter:
            $ref: '#/components/schemas/TransactionFilter'
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              Requesting parties with template filters.
              Template filters must be empty for GetUpdateTrees requests.
              Optional for backwards compatibility, if defined update_format must be unset
          verbose:
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              If enabled, values served over the API will contain more information than strictly necessary to interpret the data.
              In particular, setting the verbose flag to true triggers the ledger to include labels, record and variant type ids
              for record fields.
              Optional for backwards compatibility, if defined update_format must be unset
            type: boolean
          updateFormat:
            $ref: '#/components/schemas/UpdateFormat'
            description: |-
              Must be unset for GetUpdateTrees request.
              Optional for backwards compatibility for GetUpdates request: defaults to an UpdateFormat where:

              - include_transactions.event_format.filters_by_party = the filter.filters_by_party on this request
              - include_transactions.event_format.filters_for_any_party = the filter.filters_for_any_party on this request
              - include_transactions.event_format.verbose = the same flag specified on this request
              - include_transactions.transaction_shape = TRANSACTION_SHAPE_ACS_DELTA
              - include_reassignments.filter = the same filter specified on this request
              - include_reassignments.verbose = the same flag specified on this request
              - include_topology_events.include_participant_authorization_events.parties = all the parties specified in filter
      GetUserResponse:
        title: GetUserResponse
        type: object
        properties:
          user:
            $ref: '#/components/schemas/User'
            description: Retrieved user.
      GrantUserRightsRequest:
        title: GrantUserRightsRequest
        description: |-
          Add the rights to the set of rights granted to the user.

          Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(identity_provider_id)``
        type: object
        required:
        - userId
        - identityProviderId
        properties:
          userId:
            description: |-
              The user to whom to grant rights.
              Required
            type: string
          rights:
            description: |-
              The rights to grant.
              Optional
            type: array
            items:
              $ref: '#/components/schemas/Right'
          identityProviderId:
            description: |-
              The id of the ``Identity Provider``
              Optional, if not set, assume the user is managed by the default identity provider.
            type: string
      GrantUserRightsResponse:
        title: GrantUserRightsResponse
        type: object
        properties:
          newlyGrantedRights:
            description: The rights that were newly granted by the request.
            type: array
            items:
              $ref: '#/components/schemas/Right'
      Identifier:
        title: Identifier
        type: object
        required:
        - packageId
        - moduleName
        - entityName
        properties:
          packageId:
            type: string
          moduleName:
            type: string
          entityName:
            type: string
      IdentifierFilter:
        title: IdentifierFilter
        oneOf:
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty1'
        - type: object
          required:
          - InterfaceFilter
          properties:
            InterfaceFilter:
              $ref: '#/components/schemas/InterfaceFilter'
        - type: object
          required:
          - TemplateFilter
          properties:
            TemplateFilter:
              $ref: '#/components/schemas/TemplateFilter'
        - type: object
          required:
          - WildcardFilter
          properties:
            WildcardFilter:
              $ref: '#/components/schemas/WildcardFilter'
      IdentityProviderAdmin:
        title: IdentityProviderAdmin
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/IdentityProviderAdmin1'
      IdentityProviderAdmin1:
        title: IdentityProviderAdmin
        type: object
      IdentityProviderConfig:
        title: IdentityProviderConfig
        type: object
        required:
        - identityProviderId
        - isDeactivated
        - issuer
        - jwksUrl
        - audience
        properties:
          identityProviderId:
            description: |-
              The identity provider identifier
              Must be a valid LedgerString (as describe in ``value.proto``).
              Required
            type: string
          isDeactivated:
            description: |-
              When set, the callers using JWT tokens issued by this identity provider are denied all access
              to the Ledger API.
              Optional,
              Modifiable
            type: boolean
          issuer:
            description: |-
              Specifies the issuer of the JWT token.
              The issuer value is a case sensitive URL using the https scheme that contains scheme, host,
              and optionally, port number and path components and no query or fragment components.
              Required
              Modifiable
            type: string
          jwksUrl:
            description: |-
              The JWKS (JSON Web Key Set) URL.
              The Ledger API uses JWKs (JSON Web Keys) from the provided URL to verify that the JWT has been
              signed with the loaded JWK. Only RS256 (RSA Signature with SHA-256) signing algorithm is supported.
              Required
              Modifiable
            type: string
          audience:
            description: |-
              Specifies the audience of the JWT token.
              When set, the callers using JWT tokens issued by this identity provider are allowed to get an access
              only if the "aud" claim includes the string specified here
              Optional,
              Modifiable
            type: string
      InterfaceFilter:
        title: InterfaceFilter
        description: This filter matches contracts that implement a specific interface.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/InterfaceFilter1'
      InterfaceFilter1:
        title: InterfaceFilter
        description: This filter matches contracts that implement a specific interface.
        type: object
        required:
        - includeInterfaceView
        - includeCreatedEventBlob
        properties:
          interfaceId:
            description: |-
              The interface that a matching contract must implement.
              The ``interface_id`` needs to be valid: corresponding interface should be defined in
              one of the available packages at the time of the query.
              Both package-name and package-id reference formats for the identifier are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          includeInterfaceView:
            description: |-
              Whether to include the interface view on the contract in the returned ``CreatedEvent``.
              Use this to access contract data in a uniform manner in your API client.
              Optional
            type: boolean
          includeCreatedEventBlob:
            description: |-
              Whether to include a ``created_event_blob`` in the returned ``CreatedEvent``.
              Use this to access the contract create event payload in your API client
              for submitting it as a disclosed contract with future commands.
              Optional
            type: boolean
      JsActiveContract:
        title: JsActiveContract
        type: object
        required:
        - createdEvent
        - synchronizerId
        - reassignmentCounter
        properties:
          createdEvent:
            $ref: '#/components/schemas/CreatedEvent'
            description: |-
              Required
              The event as it appeared in the context of its last update (i.e. daml transaction or
              reassignment). In particular, the last offset, node_id pair is preserved.
              The last update is the most recent update created or assigned this contract on synchronizer_id synchronizer.
              The offset of the CreatedEvent might point to an already pruned update, therefore it cannot necessarily be used
              for lookups.
          synchronizerId:
            description: |-
              A valid synchronizer id
              Required
            type: string
          reassignmentCounter:
            description: |-
              Each corresponding assigned and unassigned event has the same reassignment_counter. This strictly increases
              with each unassign command for the same contract. Creation of the contract corresponds to reassignment_counter
              equals zero.
              This field will be the reassignment_counter of the latest observable activation event on this synchronizer, which is
              before the active_at_offset.
              Required
            type: integer
            format: int64
      JsArchived:
        title: JsArchived
        type: object
        required:
        - archivedEvent
        - synchronizerId
        properties:
          archivedEvent:
            $ref: '#/components/schemas/ArchivedEvent'
            description: Required
          synchronizerId:
            description: |-
              Required
              The synchronizer which sequenced the archival of the contract
            type: string
      JsAssignedEvent:
        title: JsAssignedEvent
        description: Records that a contract has been assigned, and it can be used on
          the target synchronizer.
        type: object
        required:
        - source
        - target
        - unassignId
        - submitter
        - reassignmentCounter
        - createdEvent
        properties:
          source:
            description: |-
              The ID of the source synchronizer.
              Must be a valid synchronizer id.
              Required
            type: string
          target:
            description: |-
              The ID of the target synchronizer.
              Must be a valid synchronizer id.
              Required
            type: string
          unassignId:
            description: |-
              The ID from the unassigned event.
              For correlation capabilities.
              For one contract the (unassign_id, source synchronizer) pair is unique.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          submitter:
            description: |-
              Party on whose behalf the assign command was executed.
              Empty if the assignment happened offline via the repair service.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Optional
            type: string
          reassignmentCounter:
            description: |-
              Each corresponding assigned and unassigned event has the same reassignment_counter. This strictly increases
              with each unassign command for the same contract. Creation of the contract corresponds to reassignment_counter
              equals zero.
              Required
            type: integer
            format: int64
          createdEvent:
            $ref: '#/components/schemas/CreatedEvent'
            description: |-
              Required
              The offset of this event refers to the offset of the assignment,
              while the node_id is the index of within the batch.
      JsAssignmentEvent:
        title: JsAssignmentEvent
        type: object
        required:
        - source
        - target
        - unassignId
        - submitter
        - reassignmentCounter
        - createdEvent
        properties:
          source:
            type: string
          target:
            type: string
          unassignId:
            type: string
          submitter:
            type: string
          reassignmentCounter:
            type: integer
            format: int64
          createdEvent:
            $ref: '#/components/schemas/CreatedEvent'
      JsCantonError:
        title: JsCantonError
        type: object
        required:
        - code
        - cause
        - context
        - errorCategory
        properties:
          code:
            type: string
          cause:
            type: string
          correlationId:
            type: string
          traceId:
            type: string
          context:
            $ref: '#/components/schemas/Map_String'
          resources:
            type: array
            items:
              $ref: '#/components/schemas/Tuple2_String_String'
          errorCategory:
            type: integer
            format: int32
          grpcCodeValue:
            type: integer
            format: int32
          retryInfo:
            type: string
          definiteAnswer:
            type: boolean
      JsCommands:
        title: JsCommands
        description: A composite command that groups multiple commands together.
        type: object
        required:
        - commandId
        properties:
          commands:
            description: |-
              Individual elements of this atomic command. Must be non-empty.
              Required
            type: array
            items:
              $ref: '#/components/schemas/Command'
          commandId:
            description: |-
              Uniquely identifies the command.
              The triple (user_id, act_as, command_id) constitutes the change ID for the intended ledger change,
              where act_as is interpreted as a set of party names.
              The change ID can be used for matching the intended ledger changes with all their completions.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          actAs:
            description: |-
              Set of parties on whose behalf the command should be executed.
              If ledger API authorization is enabled, then the authorization metadata must authorize the sender of the request
              to act on behalf of each of the given parties.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Required, must be non-empty.
            type: array
            items:
              type: string
          userId:
            description: |-
              Uniquely identifies the participant user that issued the command.
              Must be a valid UserIdString (as described in ``value.proto``).
              Required unless authentication is used with a user token.
              In that case, the token's user-id will be used for the request's user_id.
            type: string
          readAs:
            description: |-
              Set of parties on whose behalf (in addition to all parties listed in ``act_as``) contracts can be retrieved.
              This affects Daml operations such as ``fetch``, ``fetchByKey``, ``lookupByKey``, ``exercise``, and ``exerciseByKey``.
              Note: A participant node of a Daml network can host multiple parties. Each contract present on the participant
              node is only visible to a subset of these parties. A command can only use contracts that are visible to at least
              one of the parties in ``act_as`` or ``read_as``. This visibility check is independent from the Daml authorization
              rules for fetch operations.
              If ledger API authorization is enabled, then the authorization metadata must authorize the sender of the request
              to read contract data on behalf of each of the given parties.
              Optional
            type: array
            items:
              type: string
          workflowId:
            description: |-
              Identifier of the on-ledger workflow that this command is a part of.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          deduplicationPeriod:
            $ref: '#/components/schemas/DeduplicationPeriod'
          minLedgerTimeAbs:
            description: |-
              Lower bound for the ledger time assigned to the resulting transaction.
              Note: The ledger time of a transaction is assigned as part of command interpretation.
              Use this property if you expect that command interpretation will take a considerate amount of time, such that by
              the time the resulting transaction is sequenced, its assigned ledger time is not valid anymore.
              Must not be set at the same time as min_ledger_time_rel.
              Optional
            type: string
          minLedgerTimeRel:
            $ref: '#/components/schemas/Duration'
            description: |-
              Same as min_ledger_time_abs, but specified as a duration, starting from the time the command is received by the server.
              Must not be set at the same time as min_ledger_time_abs.
              Optional
          submissionId:
            description: |-
              A unique identifier to distinguish completions for different submissions with the same change ID.
              Typically a random UUID. Applications are expected to use a different UUID for each retry of a submission
              with the same change ID.
              Must be a valid LedgerString (as described in ``value.proto``).

              If omitted, the participant or the committer may set a value of their choice.
              Optional
            type: string
          disclosedContracts:
            description: |-
              Additional contracts used to resolve contract & contract key lookups.
              Optional
            type: array
            items:
              $ref: '#/components/schemas/DisclosedContract'
          synchronizerId:
            description: |-
              Must be a valid synchronizer id
              Optional
            type: string
          packageIdSelectionPreference:
            description: |-
              The package-id selection preference of the client for resolving
              package names and interface instances in command submission and interpretation
            type: array
            items:
              type: string
      JsContractEntry:
        title: JsContractEntry
        description: |-
          For a contract there could be multiple contract_entry-s in the entire snapshot. These together define
          the state of one contract in the snapshot.
          A contract_entry is included in the result, if and only if there is at least one stakeholder party of the contract
          that is hosted on the synchronizer at the time of the event and the party satisfies the
          ``TransactionFilter`` in the query.
        oneOf:
        - type: object
          required:
          - JsActiveContract
          properties:
            JsActiveContract:
              $ref: '#/components/schemas/JsActiveContract'
        - type: object
          required:
          - JsEmpty
          properties:
            JsEmpty:
              $ref: '#/components/schemas/JsEmpty'
        - type: object
          required:
          - JsIncompleteAssigned
          properties:
            JsIncompleteAssigned:
              $ref: '#/components/schemas/JsIncompleteAssigned'
        - type: object
          required:
          - JsIncompleteUnassigned
          properties:
            JsIncompleteUnassigned:
              $ref: '#/components/schemas/JsIncompleteUnassigned'
      JsCreated:
        title: JsCreated
        type: object
        required:
        - createdEvent
        - synchronizerId
        properties:
          createdEvent:
            $ref: '#/components/schemas/CreatedEvent'
            description: |-
              Required
              The event as it appeared in the context of its original update (i.e. daml transaction or
              reassignment) on this participant node. You can use its offset and node_id to find the
              corresponding update and the node within it.
          synchronizerId:
            description: |-
              The synchronizer which sequenced the creation of the contract
              Required
            type: string
      JsEmpty:
        title: JsEmpty
        type: object
      JsExecuteSubmissionRequest:
        title: JsExecuteSubmissionRequest
        type: object
        required:
        - deduplicationPeriod
        - submissionId
        - userId
        - hashingSchemeVersion
        properties:
          preparedTransaction:
            description: |-
              the prepared transaction
              Typically this is the value of the `prepared_transaction` field in `PrepareSubmissionResponse`
              obtained from calling `prepareSubmission`.
            type: string
          partySignatures:
            $ref: '#/components/schemas/PartySignatures'
            description: |-
              The party(ies) signatures that authorize the prepared submission to be executed by this node.
              Each party can provide one or more signatures..
              and one or more parties can sign.
              Note that currently, only single party submissions are supported.
          deduplicationPeriod:
            $ref: '#/components/schemas/DeduplicationPeriod2'
          submissionId:
            description: |-
              A unique identifier to distinguish completions for different submissions with the same change ID.
              Typically a random UUID. Applications are expected to use a different UUID for each retry of a submission
              with the same change ID.
              Must be a valid LedgerString (as described in ``value.proto``).

              Required
            type: string
          userId:
            description: See [PrepareSubmissionRequest.user_id]
            type: string
          hashingSchemeVersion:
            description: The hashing scheme version used when building the hash
            type: string
          minLedgerTime:
            $ref: '#/components/schemas/MinLedgerTime'
            description: |-
              If set will influence the chosen ledger effective time but will not result in a submission delay so any override
              should be scheduled to executed within the window allowed by synchronizer.
              Optional
      JsGetActiveContractsResponse:
        title: JsGetActiveContractsResponse
        type: object
        required:
        - workflowId
        - contractEntry
        properties:
          workflowId:
            description: |-
              The workflow ID used in command submission which corresponds to the contract_entry. Only set if
              the ``workflow_id`` for the command was set.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          contractEntry:
            $ref: '#/components/schemas/JsContractEntry'
      JsGetEventsByContractIdResponse:
        title: JsGetEventsByContractIdResponse
        type: object
        properties:
          created:
            $ref: '#/components/schemas/JsCreated'
            description: |-
              The create event for the contract with the ``contract_id`` given in the request
              provided it exists and has not yet been pruned.
              Optional
          archived:
            $ref: '#/components/schemas/JsArchived'
            description: |-
              The archive event for the contract with the ``contract_id`` given in the request
              provided such an archive event exists and it has not yet been pruned.
              Optional
      JsGetTransactionResponse:
        title: JsGetTransactionResponse
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - transaction
        properties:
          transaction:
            $ref: '#/components/schemas/JsTransaction'
            description: Required
      JsGetTransactionTreeResponse:
        title: JsGetTransactionTreeResponse
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - transaction
        properties:
          transaction:
            $ref: '#/components/schemas/JsTransactionTree'
            description: Required
      JsGetUpdateResponse:
        title: JsGetUpdateResponse
        type: object
        required:
        - update
        properties:
          update:
            $ref: '#/components/schemas/Update'
      JsGetUpdateTreesResponse:
        title: JsGetUpdateTreesResponse
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - update
        properties:
          update:
            $ref: '#/components/schemas/Update1'
      JsGetUpdatesResponse:
        title: JsGetUpdatesResponse
        type: object
        required:
        - update
        properties:
          update:
            $ref: '#/components/schemas/Update'
      JsIncompleteAssigned:
        title: JsIncompleteAssigned
        type: object
        required:
        - assignedEvent
        properties:
          assignedEvent:
            $ref: '#/components/schemas/JsAssignedEvent'
            description: Required
      JsIncompleteUnassigned:
        title: JsIncompleteUnassigned
        type: object
        required:
        - createdEvent
        - unassignedEvent
        properties:
          createdEvent:
            $ref: '#/components/schemas/CreatedEvent'
            description: |-
              Required
              The event as it appeared in the context of its last activation update (i.e. daml transaction or
              reassignment). In particular, the last activation offset, node_id pair is preserved.
              The last activation update is the most recent update created or assigned this contract on synchronizer_id synchronizer before
              the unassigned_event.
              The offset of the CreatedEvent might point to an already pruned update, therefore it cannot necessarily be used
              for lookups.
          unassignedEvent:
            $ref: '#/components/schemas/UnassignedEvent'
            description: Required
      JsInterfaceView:
        title: JsInterfaceView
        description: View of a create event matched by an interface filter.
        type: object
        required:
        - interfaceId
        - viewStatus
        properties:
          interfaceId:
            description: |-
              The interface implemented by the matched event.
              The identifier uses the package-id reference format.

              Required
            type: string
          viewStatus:
            $ref: '#/components/schemas/JsStatus'
            description: |-
              Whether the view was successfully computed, and if not,
              the reason for the error. The error is reported using the same rules
              for error codes and messages as the errors returned for API requests.
              Required
          viewValue:
            description: |-
              The value of the interface's view method on this event.
              Set if it was requested in the ``InterfaceFilter`` and it could be
              sucessfully computed.
              Optional
      JsPrepareSubmissionRequest:
        title: JsPrepareSubmissionRequest
        type: object
        required:
        - userId
        - commandId
        - synchronizerId
        - verboseHashing
        properties:
          userId:
            description: |-
              Uniquely identifies the participant user that prepares the transaction.
              Must be a valid UserIdString (as described in ``value.proto``).
              Required unless authentication is used with a user token.
              In that case, the token's user-id will be used for the request's user_id.
            type: string
          commandId:
            description: |-
              Uniquely identifies the command.
              The triple (user_id, act_as, command_id) constitutes the change ID for the intended ledger change,
              where act_as is interpreted as a set of party names.
              The change ID can be used for matching the intended ledger changes with all their completions.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          commands:
            description: |-
              Individual elements of this atomic command. Must be non-empty.
              Required
            type: array
            items:
              $ref: '#/components/schemas/Command'
          minLedgerTime:
            $ref: '#/components/schemas/MinLedgerTime'
            description: Optional
          actAs:
            description: |-
              Set of parties on whose behalf the command should be executed, if submitted.
              If ledger API authorization is enabled, then the authorization metadata must authorize the sender of the request
              to **read** (not act) on behalf of each of the given parties. This is because this RPC merely prepares a transaction
              and does not execute it. Therefore read authorization is sufficient even for actAs parties.
              Note: This may change, and more specific authorization scope may be introduced in the future.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Required, must be non-empty.
            type: array
            items:
              type: string
          readAs:
            description: |-
              Set of parties on whose behalf (in addition to all parties listed in ``act_as``) contracts can be retrieved.
              This affects Daml operations such as ``fetch``, ``fetchByKey``, ``lookupByKey``, ``exercise``, and ``exerciseByKey``.
              Note: A command can only use contracts that are visible to at least
              one of the parties in ``act_as`` or ``read_as``. This visibility check is independent from the Daml authorization
              rules for fetch operations.
              If ledger API authorization is enabled, then the authorization metadata must authorize the sender of the request
              to read contract data on behalf of each of the given parties.
              Optional
            type: array
            items:
              type: string
          disclosedContracts:
            description: |-
              Additional contracts used to resolve contract & contract key lookups.
              Optional
            type: array
            items:
              $ref: '#/components/schemas/DisclosedContract'
          synchronizerId:
            description: |-
              Must be a valid synchronizer id
              Required
            type: string
          packageIdSelectionPreference:
            description: |-
              The package-id selection preference of the client for resolving
              package names and interface instances in command submission and interpretation
            type: array
            items:
              type: string
          verboseHashing:
            description: |-
              When true, the response will contain additional details on how the transaction was encoded and hashed
              This can be useful for troubleshooting of hash mismatches. Should only be used for debugging.
            type: boolean
      JsPrepareSubmissionResponse:
        title: JsPrepareSubmissionResponse
        description: '[docs-entry-end: HashingSchemeVersion]'
        type: object
        required:
        - preparedTransactionHash
        - hashingSchemeVersion
        properties:
          preparedTransaction:
            description: |-
              The interpreted transaction, it represents the ledger changes necessary to execute the commands specified in the request.
              Clients MUST display the content of the transaction to the user for them to validate before signing the hash if the preparing participant is not trusted.
            type: string
          preparedTransactionHash:
            description: |-
              Hash of the transaction, this is what needs to be signed by the party to authorize the transaction.
              Only provided for convenience, clients MUST recompute the hash from the raw transaction if the preparing participant is not trusted.
              May be removed in future versions
            type: string
          hashingSchemeVersion:
            description: The hashing scheme version used when building the hash
            type: string
          hashingDetails:
            description: |-
              Optional additional details on how the transaction was encoded and hashed. Only set if verbose_hashing = true in the request
              Note that there are no guarantees on the stability of the format or content of this field.
              Its content should NOT be parsed and should only be used for troubleshooting purposes.
            type: string
      JsReassignment:
        title: JsReassignment
        description: Complete view of an on-ledger reassignment.
        type: object
        required:
        - updateId
        - commandId
        - workflowId
        - offset
        - recordTime
        properties:
          updateId:
            description: |-
              Assigned by the server. Useful for correlating logs.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          commandId:
            description: |-
              The ID of the command which resulted in this reassignment. Missing for everyone except the submitting party on the submitting participant.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          workflowId:
            description: |-
              The workflow ID used in reassignment command submission. Only set if the ``workflow_id`` for the command was set.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          offset:
            description: |-
              The participant's offset. The details of this field are described in ``community/ledger-api/README.md``.
              Required, must be a valid absolute offset (positive integer).
            type: integer
            format: int64
          events:
            description: The collection of reassignment events. Required.
            type: array
            items:
              $ref: '#/components/schemas/JsReassignmentEvent'
          traceContext:
            $ref: '#/components/schemas/TraceContext'
            description: |-
              Optional; ledger API trace context

              The trace context transported in this message corresponds to the trace context supplied
              by the client application in a HTTP2 header of the original command submission.
              We typically use a header to transfer this type of information. Here we use message
              body, because it is used in gRPC streams which do not support per message headers.
              This field will be populated with the trace context contained in the original submission.
              If that was not provided, a unique ledger-api-server generated trace context will be used
              instead.
          recordTime:
            description: |-
              The time at which the reassignment was recorded. The record time refers to the source/target
              synchronizer for an unassign/assign event respectively.
              Required
            type: string
      JsReassignmentEvent:
        title: JsReassignmentEvent
        oneOf:
        - type: object
          required:
          - JsAssignmentEvent
          properties:
            JsAssignmentEvent:
              $ref: '#/components/schemas/JsAssignmentEvent'
        - type: object
          required:
          - JsUnassignedEvent
          properties:
            JsUnassignedEvent:
              $ref: '#/components/schemas/JsUnassignedEvent'
      JsStatus:
        title: JsStatus
        type: object
        required:
        - code
        - message
        properties:
          code:
            type: integer
            format: int32
          message:
            type: string
          details:
            type: array
            items:
              $ref: '#/components/schemas/ProtoAny'
      JsSubmitAndWaitForReassignmentResponse:
        title: JsSubmitAndWaitForReassignmentResponse
        type: object
        required:
        - reassignment
        properties:
          reassignment:
            $ref: '#/components/schemas/JsReassignment'
            description: |-
              The reassignment that resulted from the submitted reassignment command.
              The reassignment might contain no events (request conditions result in filtering out all of them).
              Required
      JsSubmitAndWaitForTransactionRequest:
        title: JsSubmitAndWaitForTransactionRequest
        description: These commands are executed as a single atomic transaction.
        type: object
        required:
        - commands
        properties:
          commands:
            $ref: '#/components/schemas/JsCommands'
            description: |-
              The commands to be submitted.
              Required
          transactionFormat:
            $ref: '#/components/schemas/TransactionFormat'
            description: |-
              If no ``transaction_format`` is provided, a default will be used where ``transaction_shape`` is set to
              TRANSACTION_SHAPE_ACS_DELTA, ``event_format`` is defined with ``filters_by_party`` containing wildcard-template
              filter for all original ``act_as`` and ``read_as`` parties and the ``verbose`` flag is set.
              Optional
      JsSubmitAndWaitForTransactionResponse:
        title: JsSubmitAndWaitForTransactionResponse
        type: object
        required:
        - transaction
        properties:
          transaction:
            $ref: '#/components/schemas/JsTransaction'
            description: |-
              The transaction that resulted from the submitted command.
              The transaction might contain no events (request conditions result in filtering out all of them).
              Required
      JsSubmitAndWaitForTransactionTreeResponse:
        title: JsSubmitAndWaitForTransactionTreeResponse
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - transactionTree
        properties:
          transactionTree:
            $ref: '#/components/schemas/JsTransactionTree'
      JsTopologyTransaction:
        title: JsTopologyTransaction
        type: object
        required:
        - updateId
        - offset
        - synchronizerId
        - recordTime
        properties:
          updateId:
            description: |-
              Assigned by the server. Useful for correlating logs.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          events:
            description: |-
              A non-empty list of topology events.
              Required
            type: array
            items:
              $ref: '#/components/schemas/TopologyEvent'
          offset:
            description: |-
              The absolute offset. The details of this field are described in ``community/ledger-api/README.md``.
              Required, it is a valid absolute offset (positive integer).
            type: integer
            format: int64
          synchronizerId:
            description: |-
              A valid synchronizer id.
              Identifies the synchronizer that synchronized the topology transaction.
              Required
            type: string
          traceContext:
            $ref: '#/components/schemas/TraceContext'
            description: |-
              Optional; ledger API trace context

              The trace context transported in this message corresponds to the trace context supplied
              by the client application in a HTTP2 header of the original command submission.
              We typically use a header to transfer this type of information. Here we use message
              body, because it is used in gRPC streams which do not support per message headers.
              This field will be populated with the trace context contained in the original submission.
              If that was not provided, a unique ledger-api-server generated trace context will be used
              instead.
          recordTime:
            description: |-
              The time at which the changes in the topology transaction become effective. There is a small delay between a
              topology transaction being sequenced and the changes it contains becoming effective. Topology transactions appear
              in order relative to a synchronizer based on their effective time rather than their sequencing time.
              Required
            type: string
      JsTransaction:
        title: JsTransaction
        description: Filtered view of an on-ledger transaction's create and archive
          events.
        type: object
        required:
        - updateId
        - commandId
        - workflowId
        - effectiveAt
        - offset
        - synchronizerId
        - recordTime
        properties:
          updateId:
            description: |-
              Assigned by the server. Useful for correlating logs.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          commandId:
            description: |-
              The ID of the command which resulted in this transaction. Missing for everyone except the submitting party.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          workflowId:
            description: |-
              The workflow ID used in command submission.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          effectiveAt:
            description: |-
              Ledger effective time.
              Required
            type: string
          events:
            description: |-
              The collection of events.
              Contains:

              - ``CreatedEvent`` or ``ArchivedEvent`` in case of ACS_DELTA transaction shape
              - ``CreatedEvent`` or ``ExercisedEvent`` in case of LEDGER_EFFECTS transaction shape

              Required
            type: array
            items:
              $ref: '#/components/schemas/Event'
          offset:
            description: |-
              The absolute offset. The details of this field are described in ``community/ledger-api/README.md``.
              Required, it is a valid absolute offset (positive integer).
            type: integer
            format: int64
          synchronizerId:
            description: |-
              A valid synchronizer id.
              Identifies the synchronizer that synchronized the transaction.
              Required
            type: string
          traceContext:
            $ref: '#/components/schemas/TraceContext'
            description: |-
              Optional; ledger API trace context

              The trace context transported in this message corresponds to the trace context supplied
              by the client application in a HTTP2 header of the original command submission.
              We typically use a header to transfer this type of information. Here we use message
              body, because it is used in gRPC streams which do not support per message headers.
              This field will be populated with the trace context contained in the original submission.
              If that was not provided, a unique ledger-api-server generated trace context will be used
              instead.
          recordTime:
            description: |-
              The time at which the transaction was recorded. The record time refers to the synchronizer
              which synchronized the transaction.
              Required
            type: string
      JsTransactionTree:
        title: JsTransactionTree
        description: |-
          Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
          Complete view of an on-ledger transaction.
        type: object
        required:
        - updateId
        - commandId
        - workflowId
        - offset
        - eventsById
        - synchronizerId
        - recordTime
        properties:
          updateId:
            description: |-
              Assigned by the server. Useful for correlating logs.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          commandId:
            description: |-
              The ID of the command which resulted in this transaction. Missing for everyone except the submitting party.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          workflowId:
            description: |-
              The workflow ID used in command submission. Only set if the ``workflow_id`` for the command was set.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          effectiveAt:
            description: |-
              Ledger effective time.
              Required
            type: string
          offset:
            description: |-
              The absolute offset. The details of this field are described in ``community/ledger-api/README.md``.
              Required, it is a valid absolute offset (positive integer).
            type: integer
            format: int64
          eventsById:
            $ref: '#/components/schemas/Map_Int_TreeEvent'
            description: |-
              Changes to the ledger that were caused by this transaction. Nodes of the transaction tree.
              Each key must be a valid node ID (non-negative integer).
              Required
          synchronizerId:
            description: |-
              A valid synchronizer id.
              Identifies the synchronizer that synchronized the transaction.
              Required
            type: string
          traceContext:
            $ref: '#/components/schemas/TraceContext'
            description: |-
              Optional; ledger API trace context

              The trace context transported in this message corresponds to the trace context supplied
              by the client application in a HTTP2 header of the original command submission.
              We typically use a header to transfer this type of information. Here we use message
              body, because it is used in gRPC streams which do not support per message headers.
              This field will be populated with the trace context contained in the original submission.
              If that was not provided, a unique ledger-api-server generated trace context will be used
              instead.
          recordTime:
            description: |-
              The time at which the transaction was recorded. The record time refers to the synchronizer
              which synchronized the transaction.
              Required
            type: string
      JsUnassignedEvent:
        title: JsUnassignedEvent
        description: Records that a contract has been unassigned, and it becomes unusable
          on the source synchronizer
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/UnassignedEvent'
      Kind:
        title: Kind
        description: Required
        oneOf:
        - type: object
          required:
          - CanActAs
          properties:
            CanActAs:
              $ref: '#/components/schemas/CanActAs'
        - type: object
          required:
          - CanReadAs
          properties:
            CanReadAs:
              $ref: '#/components/schemas/CanReadAs'
        - type: object
          required:
          - CanReadAsAnyParty
          properties:
            CanReadAsAnyParty:
              $ref: '#/components/schemas/CanReadAsAnyParty'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty5'
        - type: object
          required:
          - IdentityProviderAdmin
          properties:
            IdentityProviderAdmin:
              $ref: '#/components/schemas/IdentityProviderAdmin'
        - type: object
          required:
          - ParticipantAdmin
          properties:
            ParticipantAdmin:
              $ref: '#/components/schemas/ParticipantAdmin'
      ListIdentityProviderConfigsResponse:
        title: ListIdentityProviderConfigsResponse
        type: object
        properties:
          identityProviderConfigs:
            description: ''
            type: array
            items:
              $ref: '#/components/schemas/IdentityProviderConfig'
      ListKnownPartiesResponse:
        title: ListKnownPartiesResponse
        type: object
        required:
        - nextPageToken
        properties:
          partyDetails:
            description: |-
              The details of all Daml parties known by the participant.
              Required
            type: array
            items:
              $ref: '#/components/schemas/PartyDetails'
          nextPageToken:
            description: |-
              Pagination token to retrieve the next page.
              Empty, if there are no further results.
            type: string
      ListPackagesResponse:
        title: ListPackagesResponse
        type: object
        properties:
          packageIds:
            description: |-
              The IDs of all Daml-LF packages supported by the server.
              Each element must be a valid PackageIdString (as described in ``value.proto``).
              Required
            type: array
            items:
              type: string
      ListUserRightsResponse:
        title: ListUserRightsResponse
        type: object
        properties:
          rights:
            description: All rights of the user.
            type: array
            items:
              $ref: '#/components/schemas/Right'
      ListUsersResponse:
        title: ListUsersResponse
        type: object
        required:
        - nextPageToken
        properties:
          users:
            description: A subset of users of the participant node that fit into this
              page.
            type: array
            items:
              $ref: '#/components/schemas/User'
          nextPageToken:
            description: |-
              Pagination token to retrieve the next page.
              Empty, if there are no further results.
            type: string
      Map_Filters:
        title: Map_Filters
        type: object
        additionalProperties:
          $ref: '#/components/schemas/Filters'
      Map_Int_Field:
        title: Map_Int_Field
        type: object
        additionalProperties:
          $ref: '#/components/schemas/Field'
      Map_Int_TreeEvent:
        title: Map_Int_TreeEvent
        type: object
        additionalProperties:
          $ref: '#/components/schemas/TreeEvent'
      Map_String:
        title: Map_String
        type: object
        additionalProperties:
          type: string
      MinLedgerTime:
        title: MinLedgerTime
        type: object
        required:
        - time
        properties:
          time:
            $ref: '#/components/schemas/Time'
      MinLedgerTimeAbs:
        title: MinLedgerTimeAbs
        type: object
        required:
        - value
        properties:
          value:
            type: string
      MinLedgerTimeRel:
        title: MinLedgerTimeRel
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/Duration'
      ObjectMeta:
        title: ObjectMeta
        description: |-
          Represents metadata corresponding to a participant resource (e.g. a participant user or participant local information about a party).

          Based on ``ObjectMeta`` meta used in Kubernetes API.
          See https://github.com/kubernetes/apimachinery/blob/master/pkg/apis/meta/v1/generated.proto#L640
        type: object
        required:
        - resourceVersion
        - annotations
        properties:
          resourceVersion:
            description: |-
              An opaque, non-empty value, populated by a participant server which represents the internal version of the resource
              this ``ObjectMeta`` message is attached to. The participant server will change it to a unique value each time the corresponding resource is updated.
              You must not rely on the format of resource version. The participant server might change it without notice.
              You can obtain the newest resource version value by issuing a read request.
              You may use it for concurrent change detection by passing it back unmodified in an update request.
              The participant server will then compare the passed value with the value maintained by the system to determine
              if any other updates took place since you had read the resource version.
              Upon a successful update you are guaranteed that no other update took place during your read-modify-write sequence.
              However, if another update took place during your read-modify-write sequence then your update will fail with an appropriate error.
              Concurrent change control is optional. It will be applied only if you include a resource version in an update request.
              When creating a new instance of a resource you must leave the resource version empty.
              Its value will be populated by the participant server upon successful resource creation.
              Optional
            type: string
          annotations:
            $ref: '#/components/schemas/Map_String'
            description: |-
              A set of modifiable key-value pairs that can be used to represent arbitrary, client-specific metadata.
              Constraints:

              1. The total size over all keys and values cannot exceed 256kb in UTF-8 encoding.
              2. Keys are composed of an optional prefix segment and a required name segment such that:

                 - key prefix, when present, must be a valid DNS subdomain with at most 253 characters, followed by a '/' (forward slash) character,
                 - name segment must have at most 63 characters that are either alphanumeric ([a-z0-9A-Z]), or a '.' (dot), '-' (dash) or '_' (underscore);
                   and it must start and end with an alphanumeric character.

              3. Values can be any non-empty strings.

              Keys with empty prefix are reserved for end-users.
              Properties set by external tools or internally by the participant server must use non-empty key prefixes.
              Duplicate keys are disallowed by the semantics of the protobuf3 maps.
              See: https://developers.google.com/protocol-buffers/docs/proto3#maps
              Annotations may be a part of a modifiable resource.
              Use the resource's update RPC to update its annotations.
              In order to add a new annotation or update an existing one using an update RPC, provide the desired annotation in the update request.
              In order to remove an annotation using an update RPC, provide the target annotation's key but set its value to the empty string in the update request.
              Optional
              Modifiable
      OffsetCheckpoint:
        title: OffsetCheckpoint
        description: |-
          OffsetCheckpoints may be used to:

          - detect time out of commands.
          - provide an offset which can be used to restart consumption.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/OffsetCheckpoint1'
      OffsetCheckpoint1:
        title: OffsetCheckpoint
        description: |-
          OffsetCheckpoints may be used to:

          - detect time out of commands.
          - provide an offset which can be used to restart consumption.
        type: object
        required:
        - offset
        properties:
          offset:
            description: |-
              The participant's offset, the details of the offset field are described in ``community/ledger-api/README.md``.
              Required, must be a valid absolute offset (positive integer).
            type: integer
            format: int64
          synchronizerTimes:
            description: ''
            type: array
            items:
              $ref: '#/components/schemas/SynchronizerTime'
      OffsetCheckpoint2:
        title: OffsetCheckpoint
        description: |-
          OffsetCheckpoints may be used to:

          - detect time out of commands.
          - provide an offset which can be used to restart consumption.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/OffsetCheckpoint1'
      OffsetCheckpoint3:
        title: OffsetCheckpoint
        description: |-
          OffsetCheckpoints may be used to:

          - detect time out of commands.
          - provide an offset which can be used to restart consumption.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/OffsetCheckpoint1'
      OffsetCheckpointFeature:
        title: OffsetCheckpointFeature
        type: object
        properties:
          maxOffsetCheckpointEmissionDelay:
            $ref: '#/components/schemas/Duration'
            description: The maximum delay to emmit a new OffsetCheckpoint if it exists
      PackagePreference:
        title: PackagePreference
        type: object
        required:
        - synchronizerId
        properties:
          packageReference:
            $ref: '#/components/schemas/PackageReference'
            description: |-
              The package reference of the preferred package.
              Required
          synchronizerId:
            description: |-
              The synchronizer for which the preferred package was computed.
              If the synchronizer_id was specified in the request, then it matches the request synchronizer_id.
              Required
            type: string
      PackageReference:
        title: PackageReference
        type: object
        required:
        - packageId
        - packageName
        - packageVersion
        properties:
          packageId:
            description: Required
            type: string
          packageName:
            description: Required
            type: string
          packageVersion:
            description: Required
            type: string
      PackageVettingRequirement:
        title: PackageVettingRequirement
        description: Defines a package-name for which the commonly vetted package with
          the highest version must be found.
        type: object
        required:
        - packageName
        properties:
          parties:
            description: |-
              The parties whose participants' vetting state should be considered when resolving the preferred package.
              Required
            type: array
            items:
              type: string
          packageName:
            description: |-
              The package-name for which the preferred package should be resolved.
              Required
            type: string
      ParticipantAdmin:
        title: ParticipantAdmin
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/ParticipantAdmin1'
      ParticipantAdmin1:
        title: ParticipantAdmin
        type: object
      ParticipantAuthorizationAdded:
        title: ParticipantAuthorizationAdded
        type: object
        required:
        - partyId
        - participantId
        - participantPermission
        properties:
          partyId:
            description: Required
            type: string
          participantId:
            description: Required
            type: string
          participantPermission:
            description: Required
            type: integer
            format: int32
      ParticipantAuthorizationChanged:
        title: ParticipantAuthorizationChanged
        type: object
        required:
        - partyId
        - participantId
        - participantPermission
        properties:
          partyId:
            description: Required
            type: string
          participantId:
            description: Required
            type: string
          participantPermission:
            description: Required
            type: integer
            format: int32
      ParticipantAuthorizationRevoked:
        title: ParticipantAuthorizationRevoked
        type: object
        required:
        - partyId
        - participantId
        properties:
          partyId:
            description: Required
            type: string
          participantId:
            description: Required
            type: string
      ParticipantAuthorizationTopologyFormat:
        title: ParticipantAuthorizationTopologyFormat
        description: A format specifying which participant authorization topology transactions
          to include and how to render them.
        type: object
        properties:
          parties:
            description: |-
              List of parties for which the topology transactions should be sent.
              Empty means: for all parties.
            type: array
            items:
              type: string
      PartyDetails:
        title: PartyDetails
        type: object
        required:
        - party
        - isLocal
        - identityProviderId
        properties:
          party:
            description: |-
              The stable unique identifier of a Daml party.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Required
            type: string
          isLocal:
            description: |-
              true if party is hosted by the participant and the party shares the same identity provider as the user issuing the request.
              Optional
            type: boolean
          localMetadata:
            $ref: '#/components/schemas/ObjectMeta'
            description: |-
              Participant-local metadata of this party.
              Optional,
              Modifiable
          identityProviderId:
            description: |-
              The id of the ``Identity Provider``
              Optional, if not set, there could be 3 options:

              1. the party is managed by the default identity provider.
              2. party is not hosted by the participant.
              3. party is hosted by the participant, but is outside of the user's identity provider.
            type: string
      PartyManagementFeature:
        title: PartyManagementFeature
        type: object
        required:
        - maxPartiesPageSize
        properties:
          maxPartiesPageSize:
            description: The maximum number of parties the server can return in a single
              response (page).
            type: integer
            format: int32
      PartySignatures:
        title: PartySignatures
        description: Additional signatures provided by the submitting parties
        type: object
        properties:
          signatures:
            description: Additional signatures provided by all individual parties
            type: array
            items:
              $ref: '#/components/schemas/SinglePartySignatures'
      ProtoAny:
        title: ProtoAny
        type: object
        required:
        - typeUrl
        - value
        - unknownFields
        properties:
          typeUrl:
            type: string
          value:
            type: string
          unknownFields:
            $ref: '#/components/schemas/UnknownFieldSet'
      Reassignment:
        title: Reassignment
        description: Complete view of an on-ledger reassignment.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/JsReassignment'
      Reassignment1:
        title: Reassignment
        description: Complete view of an on-ledger reassignment.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/JsReassignment'
      ReassignmentCommand:
        title: ReassignmentCommand
        type: object
        required:
        - command
        properties:
          command:
            $ref: '#/components/schemas/Command1'
      ReassignmentCommands:
        title: ReassignmentCommands
        type: object
        required:
        - workflowId
        - userId
        - commandId
        - submitter
        - submissionId
        properties:
          workflowId:
            description: |-
              Identifier of the on-ledger workflow that this command is a part of.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          userId:
            description: |-
              Uniquely identifies the participant user that issued the command.
              Must be a valid UserIdString (as described in ``value.proto``).
              Required unless authentication is used with a user token.
              In that case, the token's user-id will be used for the request's user_id.
            type: string
          commandId:
            description: |-
              Uniquely identifies the command.
              The triple (user_id, submitter, command_id) constitutes the change ID for the intended ledger change.
              The change ID can be used for matching the intended ledger changes with all their completions.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          submitter:
            description: |-
              Party on whose behalf the command should be executed.
              If ledger API authorization is enabled, then the authorization metadata must authorize the sender of the request
              to act on behalf of the given party.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Required
            type: string
          submissionId:
            description: |-
              A unique identifier to distinguish completions for different submissions with the same change ID.
              Typically a random UUID. Applications are expected to use a different UUID for each retry of a submission
              with the same change ID.
              Must be a valid LedgerString (as described in ``value.proto``).

              If omitted, the participant or the committer may set a value of their choice.
              Optional
            type: string
          commands:
            description: Individual elements of this reassignment. Must be non-empty.
            type: array
            items:
              $ref: '#/components/schemas/ReassignmentCommand'
      RevokeUserRightsRequest:
        title: RevokeUserRightsRequest
        description: |-
          Remove the rights from the set of rights granted to the user.

          Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(identity_provider_id)``
        type: object
        required:
        - userId
        - identityProviderId
        properties:
          userId:
            description: |-
              The user from whom to revoke rights.
              Required
            type: string
          rights:
            description: |-
              The rights to revoke.
              Optional
            type: array
            items:
              $ref: '#/components/schemas/Right'
          identityProviderId:
            description: |-
              The id of the ``Identity Provider``
              Optional, if not set, assume the user is managed by the default identity provider.
            type: string
      RevokeUserRightsResponse:
        title: RevokeUserRightsResponse
        type: object
        properties:
          newlyRevokedRights:
            description: The rights that were actually revoked by the request.
            type: array
            items:
              $ref: '#/components/schemas/Right'
      Right:
        title: Right
        description: A right granted to a user.
        type: object
        required:
        - kind
        properties:
          kind:
            $ref: '#/components/schemas/Kind'
      Signature:
        title: Signature
        type: object
        required:
        - format
        - signature
        - signedBy
        - signingAlgorithmSpec
        properties:
          format:
            description: ''
            type: string
          signature:
            description: ''
            type: string
          signedBy:
            description: The fingerprint/id of the keypair used to create this signature
              and needed to verify.
            type: string
          signingAlgorithmSpec:
            description: The signing algorithm specification used to produce this signature
            type: string
      SinglePartySignatures:
        title: SinglePartySignatures
        description: Signatures provided by a single party
        type: object
        required:
        - party
        properties:
          party:
            description: Submitting party
            type: string
          signatures:
            description: Signatures
            type: array
            items:
              $ref: '#/components/schemas/Signature'
      Status:
        title: Status
        type: object
        required:
        - code
        - message
        - unknownFields
        properties:
          code:
            type: integer
            format: int32
          message:
            type: string
          details:
            type: array
            items:
              $ref: '#/components/schemas/ProtoAny'
          unknownFields:
            $ref: '#/components/schemas/UnknownFieldSet'
      SubmitAndWaitForReassignmentRequest:
        title: SubmitAndWaitForReassignmentRequest
        description: This reassignment is executed as a single atomic update.
        type: object
        properties:
          reassignmentCommands:
            $ref: '#/components/schemas/ReassignmentCommands'
            description: |-
              The reassignment commands to be submitted.
              Required
          eventFormat:
            $ref: '#/components/schemas/EventFormat'
            description: |-
              Optional
              If no event_format provided, the result will contain no events.
              The events in the result, will take shape TRANSACTION_SHAPE_ACS_DELTA.
      SubmitAndWaitResponse:
        title: SubmitAndWaitResponse
        type: object
        required:
        - updateId
        - completionOffset
        properties:
          updateId:
            description: |-
              The id of the transaction that resulted from the submitted command.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          completionOffset:
            description: |-
              The details of the offset field are described in ``community/ledger-api/README.md``.
              Required
            type: integer
            format: int64
      SubmitReassignmentRequest:
        title: SubmitReassignmentRequest
        type: object
        properties:
          reassignmentCommands:
            $ref: '#/components/schemas/ReassignmentCommands'
            description: |-
              The reassignment command to be submitted.
              Required
      SubmitReassignmentResponse:
        title: SubmitReassignmentResponse
        type: object
      SubmitResponse:
        title: SubmitResponse
        type: object
      SynchronizerTime:
        title: SynchronizerTime
        type: object
        required:
        - synchronizerId
        properties:
          synchronizerId:
            description: |-
              The id of the synchronizer.
              Required
            type: string
          recordTime:
            description: |-
              All commands with a maximum record time below this value MUST be considered lost if their completion has not arrived before this checkpoint.
              Required
            type: string
      TemplateFilter:
        title: TemplateFilter
        description: This filter matches contracts of a specific template.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/TemplateFilter1'
      TemplateFilter1:
        title: TemplateFilter
        description: This filter matches contracts of a specific template.
        type: object
        required:
        - includeCreatedEventBlob
        properties:
          templateId:
            description: |-
              A template for which the payload should be included in the response.
              The ``template_id`` needs to be valid: corresponding template should be defined in
              one of the available packages at the time of the query.
              Both package-name and package-id reference formats for the identifier are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          includeCreatedEventBlob:
            description: |-
              Whether to include a ``created_event_blob`` in the returned ``CreatedEvent``.
              Use this to access the contract event payload in your API client
              for submitting it as a disclosed contract with future commands.
              Optional
            type: boolean
      Time:
        title: Time
        oneOf:
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty6'
        - type: object
          required:
          - MinLedgerTimeAbs
          properties:
            MinLedgerTimeAbs:
              $ref: '#/components/schemas/MinLedgerTimeAbs'
        - type: object
          required:
          - MinLedgerTimeRel
          properties:
            MinLedgerTimeRel:
              $ref: '#/components/schemas/MinLedgerTimeRel'
      TopologyEvent:
        title: TopologyEvent
        oneOf:
        - type: object
          required:
          - ParticipantAuthorizationAdded
          properties:
            ParticipantAuthorizationAdded:
              $ref: '#/components/schemas/ParticipantAuthorizationAdded'
        - type: object
          required:
          - ParticipantAuthorizationChanged
          properties:
            ParticipantAuthorizationChanged:
              $ref: '#/components/schemas/ParticipantAuthorizationChanged'
        - type: object
          required:
          - ParticipantAuthorizationRevoked
          properties:
            ParticipantAuthorizationRevoked:
              $ref: '#/components/schemas/ParticipantAuthorizationRevoked'
      TopologyFormat:
        title: TopologyFormat
        description: A format specifying which topology transactions to include and
          how to render them.
        type: object
        properties:
          includeParticipantAuthorizationEvents:
            $ref: '#/components/schemas/ParticipantAuthorizationTopologyFormat'
            description: |-
              Include participant authorization topology events in streams.
              Optional, if unset no participant authorization topology events are emitted in the stream.
      TopologyTransaction:
        title: TopologyTransaction
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/JsTopologyTransaction'
      TraceContext:
        title: TraceContext
        type: object
        properties:
          traceparent:
            description: https://www.w3.org/TR/trace-context/
            type: string
          tracestate:
            description: ''
            type: string
      Transaction:
        title: Transaction
        description: Filtered view of an on-ledger transaction's create and archive
          events.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/JsTransaction'
      TransactionFilter:
        title: TransactionFilter
        description: |-
          Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
          Used both for filtering create and archive events as well as for filtering transaction trees.
        type: object
        required:
        - filtersByParty
        properties:
          filtersByParty:
            $ref: '#/components/schemas/Map_Filters'
            description: |-
              Each key must be a valid PartyIdString (as described in ``value.proto``).
              The interpretation of the filter depends on the transaction-shape being filtered:

              1. For **transaction trees** (used in GetUpdateTreesResponse for backwards compatibility) all party keys used as
                 wildcard filters, and all subtrees whose root has one of the listed parties as an informee are returned.
                 If there are ``CumulativeFilter``s, those will control returned ``CreatedEvent`` fields where applicable, but will
                 not be used for template/interface filtering.
              2. For **ledger-effects** create and exercise events are returned, for which the witnesses include at least one of
                 the listed parties and match the per-party filter.
              3. For **transaction and active-contract-set streams** create and archive events are returned for all contracts whose
                 stakeholders include at least one of the listed parties and match the per-party filter.

              Required
          filtersForAnyParty:
            $ref: '#/components/schemas/Filters'
            description: |-
              Wildcard filters that apply to all the parties existing on the participant. The interpretation of the filters is the same
              with the per-party filter as described above.
      TransactionFormat:
        title: TransactionFormat
        description: |-
          A format that specifies what events to include in Daml transactions
          and what data to compute and include for them.
        type: object
        required:
        - transactionShape
        properties:
          eventFormat:
            $ref: '#/components/schemas/EventFormat'
            description: Required
          transactionShape:
            description: |-
              What transaction shape to use for interpreting the filters of the event format.
              Required
            type: string
      TransactionTree:
        title: TransactionTree
        description: |-
          Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
          Complete view of an on-ledger transaction.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/JsTransactionTree'
      TreeEvent:
        title: TreeEvent
        description: |-
          Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
          Each tree event message type below contains a ``witness_parties`` field which
          indicates the subset of the requested parties that can see the event
          in question.

          Note that transaction trees might contain events with
          _no_ witness parties, which were included simply because they were
          children of events which have witnesses.
        oneOf:
        - type: object
          required:
          - CreatedTreeEvent
          properties:
            CreatedTreeEvent:
              $ref: '#/components/schemas/CreatedTreeEvent'
        - type: object
          required:
          - ExercisedTreeEvent
          properties:
            ExercisedTreeEvent:
              $ref: '#/components/schemas/ExercisedTreeEvent'
      Tuple2_String_String:
        title: Tuple2_String_String
        type: array
        maxItems: 2
        minItems: 2
        items:
          type: string
      UnassignCommand:
        title: UnassignCommand
        description: Unassign a contract
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/UnassignCommand1'
      UnassignCommand1:
        title: UnassignCommand
        description: Unassign a contract
        type: object
        required:
        - contractId
        - source
        - target
        properties:
          contractId:
            description: |-
              The ID of the contract the client wants to unassign.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          source:
            description: |-
              The ID of the source synchronizer
              Must be a valid synchronizer id
              Required
            type: string
          target:
            description: |-
              The ID of the target synchronizer
              Must be a valid synchronizer id
              Required
            type: string
      UnassignedEvent:
        title: UnassignedEvent
        description: Records that a contract has been unassigned, and it becomes unusable
          on the source synchronizer
        type: object
        required:
        - unassignId
        - contractId
        - source
        - target
        - submitter
        - reassignmentCounter
        - packageName
        - offset
        - nodeId
        properties:
          unassignId:
            description: |-
              The ID of the unassignment. This needs to be used as an input for a assign ReassignmentCommand.
              For one contract the (unassign_id, source synchronizer) pair is unique.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          contractId:
            description: |-
              The ID of the reassigned contract.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          templateId:
            description: |-
              The template of the reassigned contract.
              The identifier uses the package-id reference format.

              Required
            type: string
          source:
            description: |-
              The ID of the source synchronizer
              Must be a valid synchronizer id
              Required
            type: string
          target:
            description: |-
              The ID of the target synchronizer
              Must be a valid synchronizer id
              Required
            type: string
          submitter:
            description: |-
              Party on whose behalf the unassign command was executed.
              Empty if the unassignment happened offline via the repair service.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Optional
            type: string
          reassignmentCounter:
            description: |-
              Each corresponding assigned and unassigned event has the same reassignment_counter. This strictly increases
              with each unassign command for the same contract. Creation of the contract corresponds to reassignment_counter
              equals zero.
              Required
            type: integer
            format: int64
          assignmentExclusivity:
            description: |-
              Assignment exclusivity
              Before this time (measured on the target synchronizer), only the submitter of the unassignment can initiate the assignment
              Defined for reassigning participants.
              Optional
            type: string
          witnessParties:
            description: |-
              The parties that are notified of this event.
              Required
            type: array
            items:
              type: string
          packageName:
            description: |-
              The package name of the contract.
              Required
            type: string
          offset:
            description: |-
              The offset of origin.
              Offsets are managed by the participant nodes.
              Reassignments can thus NOT be assumed to have the same offsets on different participant nodes.
              Required, it is a valid absolute offset (positive integer)
            type: integer
            format: int64
          nodeId:
            description: |-
              The position of this event in the originating reassignment.
              Node IDs are not necessarily equal across participants,
              as these may see different projections/parts of reassignments.
              Required, must be valid node ID (non-negative integer)
            type: integer
            format: int32
      UnknownFieldSet:
        title: UnknownFieldSet
        type: object
        required:
        - fields
        properties:
          fields:
            $ref: '#/components/schemas/Map_Int_Field'
      Update:
        title: Update
        oneOf:
        - type: object
          required:
          - OffsetCheckpoint
          properties:
            OffsetCheckpoint:
              $ref: '#/components/schemas/OffsetCheckpoint2'
        - type: object
          required:
          - Reassignment
          properties:
            Reassignment:
              $ref: '#/components/schemas/Reassignment'
        - type: object
          required:
          - TopologyTransaction
          properties:
            TopologyTransaction:
              $ref: '#/components/schemas/TopologyTransaction'
        - type: object
          required:
          - Transaction
          properties:
            Transaction:
              $ref: '#/components/schemas/Transaction'
      Update1:
        title: Update
        description: The update that matches the filter in the request.
        oneOf:
        - type: object
          required:
          - OffsetCheckpoint
          properties:
            OffsetCheckpoint:
              $ref: '#/components/schemas/OffsetCheckpoint3'
        - type: object
          required:
          - Reassignment
          properties:
            Reassignment:
              $ref: '#/components/schemas/Reassignment1'
        - type: object
          required:
          - TransactionTree
          properties:
            TransactionTree:
              $ref: '#/components/schemas/TransactionTree'
      UpdateFormat:
        title: UpdateFormat
        description: A format specifying what updates to include and how to render them.
        type: object
        properties:
          includeTransactions:
            $ref: '#/components/schemas/TransactionFormat'
            description: |-
              Include Daml transactions in streams.
              Optional, if unset, no transactions are emitted in the stream.
          includeReassignments:
            $ref: '#/components/schemas/EventFormat'
            description: |-
              Include (un)assignments in the stream.
              The events in the result take the shape TRANSACTION_SHAPE_ACS_DELTA.
              Optional, if unset, no (un)assignments are emitted in the stream.
          includeTopologyEvents:
            $ref: '#/components/schemas/TopologyFormat'
            description: |-
              Include topology events in streams.
              Optional, if unset no topology events are emitted in the stream.
      UpdateIdentityProviderConfigRequest:
        title: UpdateIdentityProviderConfigRequest
        type: object
        properties:
          identityProviderConfig:
            $ref: '#/components/schemas/IdentityProviderConfig'
            description: |-
              The identity provider config to update.
              Required,
              Modifiable
          updateMask:
            $ref: '#/components/schemas/FieldMask'
            description: |-
              An update mask specifies how and which properties of the ``IdentityProviderConfig`` message are to be updated.
              An update mask consists of a set of update paths.
              A valid update path points to a field or a subfield relative to the ``IdentityProviderConfig`` message.
              A valid update mask must:

              1. contain at least one update path,
              2. contain only valid update paths.

              Fields that can be updated are marked as ``Modifiable``.
              For additional information see the documentation for standard protobuf3's ``google.protobuf.FieldMask``.
              Required
      UpdateIdentityProviderConfigResponse:
        title: UpdateIdentityProviderConfigResponse
        type: object
        properties:
          identityProviderConfig:
            $ref: '#/components/schemas/IdentityProviderConfig'
            description: Updated identity provider config
      UpdatePartyDetailsRequest:
        title: UpdatePartyDetailsRequest
        description: 'Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(party_details.identity_provider_id)``'
        type: object
        properties:
          partyDetails:
            $ref: '#/components/schemas/PartyDetails'
            description: |-
              Party to be updated
              Required,
              Modifiable
          updateMask:
            $ref: '#/components/schemas/FieldMask'
            description: |-
              An update mask specifies how and which properties of the ``PartyDetails`` message are to be updated.
              An update mask consists of a set of update paths.
              A valid update path points to a field or a subfield relative to the ``PartyDetails`` message.
              A valid update mask must:

              1. contain at least one update path,
              2. contain only valid update paths.

              Fields that can be updated are marked as ``Modifiable``.
              An update path can also point to non-``Modifiable`` fields such as 'party' and 'local_metadata.resource_version'
              because they are used:

              1. to identify the party details resource subject to the update,
              2. for concurrent change control.

              An update path can also point to non-``Modifiable`` fields such as 'is_local'
              as long as the values provided in the update request match the server values.
              Examples of update paths: 'local_metadata.annotations', 'local_metadata'.
              For additional information see the documentation for standard protobuf3's ``google.protobuf.FieldMask``.
              For similar Ledger API see ``com.daml.ledger.api.v2.admin.UpdateUserRequest``.
              Required
      UpdatePartyDetailsResponse:
        title: UpdatePartyDetailsResponse
        type: object
        properties:
          partyDetails:
            $ref: '#/components/schemas/PartyDetails'
            description: Updated party details
      UpdateUserIdentityProviderIdRequest:
        title: UpdateUserIdentityProviderIdRequest
        description: 'Required authorization: ``HasRight(ParticipantAdmin)``'
        type: object
        required:
        - userId
        - sourceIdentityProviderId
        - targetIdentityProviderId
        properties:
          userId:
            description: User to update
            type: string
          sourceIdentityProviderId:
            description: Current identity provider ID of the user
            type: string
          targetIdentityProviderId:
            description: Target identity provider ID of the user
            type: string
      UpdateUserIdentityProviderIdResponse:
        title: UpdateUserIdentityProviderIdResponse
        type: object
      UpdateUserRequest:
        title: UpdateUserRequest
        description: 'Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(user.identity_provider_id)``'
        type: object
        properties:
          user:
            $ref: '#/components/schemas/User'
            description: |-
              The user to update.
              Required,
              Modifiable
          updateMask:
            $ref: '#/components/schemas/FieldMask'
            description: |-
              An update mask specifies how and which properties of the ``User`` message are to be updated.
              An update mask consists of a set of update paths.
              A valid update path points to a field or a subfield relative to the ``User`` message.
              A valid update mask must:

              1. contain at least one update path,
              2. contain only valid update paths.

              Fields that can be updated are marked as ``Modifiable``.
              An update path can also point to a non-``Modifiable`` fields such as 'id' and 'metadata.resource_version'
              because they are used:

              1. to identify the user resource subject to the update,
              2. for concurrent change control.

              Examples of valid update paths: 'primary_party', 'metadata', 'metadata.annotations'.
              For additional information see the documentation for standard protobuf3's ``google.protobuf.FieldMask``.
              For similar Ledger API see ``com.daml.ledger.api.v2.admin.UpdatePartyDetailsRequest``.
              Required
      UpdateUserResponse:
        title: UpdateUserResponse
        type: object
        properties:
          user:
            $ref: '#/components/schemas/User'
            description: Updated user
      UploadDarFileResponse:
        title: UploadDarFileResponse
        description: A message that is received when the upload operation succeeded.
        type: object
      User:
        title: User
        description: |2-
           Users and rights
          /////////////////
           Users are used to dynamically manage the rights given to Daml applications.
           They are stored and managed per participant node.
        type: object
        required:
        - id
        - primaryParty
        - isDeactivated
        - identityProviderId
        properties:
          id:
            description: |-
              The user identifier, which must be a non-empty string of at most 128
              characters that are either alphanumeric ASCII characters or one of the symbols "@^$.!`-#+'~_|:".
              Required
            type: string
          primaryParty:
            description: |-
              The primary party as which this user reads and acts by default on the ledger
              *provided* it has the corresponding ``CanReadAs(primary_party)`` or
              ``CanActAs(primary_party)`` rights.
              Ledger API clients SHOULD set this field to a non-empty value for all users to
              enable the users to act on the ledger using their own Daml party.
              Users for participant administrators MAY have an associated primary party.
              Optional,
              Modifiable
            type: string
          isDeactivated:
            description: |-
              When set, then the user is denied all access to the Ledger API.
              Otherwise, the user has access to the Ledger API as per the user's rights.
              Optional,
              Modifiable
            type: boolean
          metadata:
            $ref: '#/components/schemas/ObjectMeta'
            description: |-
              The metadata of this user.
              Note that the ``metadata.resource_version`` tracks changes to the properties described by the ``User`` message and not the user's rights.
              Optional,
              Modifiable
          identityProviderId:
            description: |-
              The ID of the identity provider configured by ``Identity Provider Config``
              Optional, if not set, assume the user is managed by the default identity provider.
            type: string
      UserManagementFeature:
        title: UserManagementFeature
        type: object
        required:
        - supported
        - maxRightsPerUser
        - maxUsersPageSize
        properties:
          supported:
            description: Whether the Ledger API server provides the user management
              service.
            type: boolean
          maxRightsPerUser:
            description: |-
              The maximum number of rights that can be assigned to a single user.
              Servers MUST support at least 100 rights per user.
              A value of 0 means that the server enforces no rights per user limit.
            type: integer
            format: int32
          maxUsersPageSize:
            description: |-
              The maximum number of users the server can return in a single response (page).
              Servers MUST support at least a 100 users per page.
              A value of 0 means that the server enforces no page size limit.
            type: integer
            format: int32
      WildcardFilter:
        title: WildcardFilter
        description: This filter matches all templates.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/WildcardFilter1'
      WildcardFilter1:
        title: WildcardFilter
        description: This filter matches all templates.
        type: object
        required:
        - includeCreatedEventBlob
        properties:
          includeCreatedEventBlob:
            description: |-
              Whether to include a ``created_event_blob`` in the returned ``CreatedEvent``.
              Use this to access the contract create event payload in your API client
              for submitting it as a disclosed contract with future commands.
              Optional
            type: boolean
    securitySchemes:
      apiKeyAuth:
        type: apiKey
        description: Ledger API standard JWT token (websocket)
        name: Sec-WebSocket-Protocol
        in: header
      httpAuth:
        type: http
        description: Ledger API standard JWT token
        scheme: bearer

:lines: 1001-2000
  openapi: 3.0.3
  info:
    title: JSON Ledger API HTTP endpoints
    version: 3.3.0-SNAPSHOT
  paths:
    /v2/commands/submit-and-wait:
      post:
        description: Submit a batch of commands and wait for the completion details
        operationId: postV2CommandsSubmit-and-wait
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsCommands'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/SubmitAndWaitResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/submit-and-wait-for-transaction:
      post:
        description: Submit a batch of commands and wait for the transaction response
        operationId: postV2CommandsSubmit-and-wait-for-transaction
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsSubmitAndWaitForTransactionRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsSubmitAndWaitForTransactionResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/submit-and-wait-for-reassignment:
      post:
        description: Submit a batch of reassignment commands and wait for the reassignment
          response
        operationId: postV2CommandsSubmit-and-wait-for-reassignment
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmitAndWaitForReassignmentRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsSubmitAndWaitForReassignmentResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/submit-and-wait-for-transaction-tree:
      post:
        description: Submit a batch of commands and wait for the transaction trees response
        operationId: postV2CommandsSubmit-and-wait-for-transaction-tree
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsCommands'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsSubmitAndWaitForTransactionTreeResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/async/submit:
      post:
        description: Submit a command asynchronously
        operationId: postV2CommandsAsyncSubmit
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsCommands'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/SubmitResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/async/submit-reassignment:
      post:
        description: Submit reassignment command asynchronously
        operationId: postV2CommandsAsyncSubmit-reassignment
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmitReassignmentRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/SubmitReassignmentResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/commands/completions:
      post:
        description: Query completions list (blocking call)
        operationId: postV2CommandsCompletions
        parameters:
        - name: limit
          in: query
          description: maximum number of elements to return, this param is ignored if
            is bigger than server setting
          required: false
          schema:
            type: integer
            format: int64
        - name: stream_idle_timeout_ms
          in: query
          description: timeout to complete and send result if no new elements are received
            (for open ended streams)
          required: false
          schema:
            type: integer
            format: int64
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompletionStreamRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  type: array
                  items:
                    $ref: '#/components/schemas/CompletionStreamResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: query parameter
              limit, Invalid value for: query parameter stream_idle_timeout_ms, Invalid
              value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/events/events-by-contract-id:
      post:
        description: Get events by contract Id
        operationId: postV2EventsEvents-by-contract-id
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventsByContractIdRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetEventsByContractIdResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/version:
      get:
        description: Get the version details of the participant node
        operationId: getV2Version
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetLedgerApiVersionResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/packages:
      get:
        description: List all packages uploaded on the participant node
        operationId: getV2Packages
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ListPackagesResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      post:
        description: Upload a DAR to the participant node
        operationId: postV2Packages
        requestBody:
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/UploadDarFileResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/packages/{package-id}:
      get:
        description: Download the package for the requested package-id
        operationId: getV2PackagesPackage-id
        parameters:
        - name: package-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            headers:
              Canton-Package-Hash:
                required: true
                schema:
                  type: string
            content:
              application/octet-stream:
                schema:
                  type: string
                  format: binary
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/packages/{package-id}/status:
      get:
        description: Get package status
        operationId: getV2PackagesPackage-idStatus
        parameters:
        - name: package-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetPackageStatusResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/parties:
      get:
        description: List all known parties.
        operationId: getV2Parties
        parameters:
        - name: pageSize
          in: query
          description: maximum number of elements in a returned page
          required: false
          schema:
            type: integer
            format: int32
        - name: pageToken
          in: query
          description: token - to continue results from a given page, leave empty to
            start from the beginning of the list, obtain token from the result of previous
            page
          required: false
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ListKnownPartiesResponse'
          '400':
            description: 'Invalid value for: query parameter pageSize, Invalid value
              for: query parameter pageToken, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      post:
        description: Allocate a new party to the participant node
        operationId: postV2Parties
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllocatePartyRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/AllocatePartyResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/parties/participant-id:
      get:
        description: Get participant id
        operationId: getV2PartiesParticipant-id
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetParticipantIdResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/parties/{party}:
      get:
        description: Get party details
        operationId: getV2PartiesParty
        parameters:
        - name: party
          in: path
          required: true
          schema:
            type: string
        - name: identity-provider-id
          in: query
          required: false
          schema:
            type: string
        - name: parties
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetPartiesResponse'
          '400':
            description: 'Invalid value for: query parameter identity-provider-id, Invalid
              value for: query parameter parties, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      patch:
        description: Allocate a new party to the participant node
        operationId: patchV2PartiesParty
        parameters:
        - name: party
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdatePartyDetailsRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/UpdatePartyDetailsResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/state/active-contracts:
      post:
        description: Query active contracts list (blocking call)
        operationId: postV2StateActive-contracts
        parameters:
        - name: limit
          in: query
          description: maximum number of elements to return, this param is ignored if
            is bigger than server setting
          required: false
          schema:
            type: integer
            format: int64
        - name: stream_idle_timeout_ms
          in: query
          description: timeout to complete and send result if no new elements are received
            (for open ended streams)
          required: false
          schema:
            type: integer
            format: int64
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetActiveContractsRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  type: array
                  items:
                    $ref: '#/components/schemas/JsGetActiveContractsResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: query parameter
              limit, Invalid value for: query parameter stream_idle_timeout_ms, Invalid
              value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/state/connected-synchronizers:
      get:
        description: Get connected synchronizers
        operationId: getV2StateConnected-synchronizers
        parameters:
        - name: party
          in: query
          required: true
          schema:
            type: string
        - name: participantId
          in: query
          required: false
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetConnectedSynchronizersResponse'
          '400':
            description: 'Invalid value for: query parameter party, Invalid value for:
              query parameter participantId, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/state/ledger-end:
      get:
        description: Get ledger end
        operationId: getV2StateLedger-end
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetLedgerEndResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/state/latest-pruned-offsets:
      get:
        description: Get latest pruned offsets
        operationId: getV2StateLatest-pruned-offsets
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetLatestPrunedOffsetsResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/flats:
      post:
        description: Query flat transactions update list (blocking call)
        operationId: postV2UpdatesFlats
        parameters:
        - name: limit
          in: query
          description: maximum number of elements to return, this param is ignored if
            is bigger than server setting
          required: false
          schema:
            type: integer
            format: int64
        - name: stream_idle_timeout_ms
          in: query
          description: timeout to complete and send result if no new elements are received
            (for open ended streams)
          required: false
          schema:
            type: integer
            format: int64
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUpdatesRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  type: array
                  items:
                    $ref: '#/components/schemas/JsGetUpdatesResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: query parameter
              limit, Invalid value for: query parameter stream_idle_timeout_ms, Invalid
              value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/trees:
      post:
        description: Query update transactions tree list (blocking call)
        operationId: postV2UpdatesTrees
        parameters:
        - name: limit
          in: query
          description: maximum number of elements to return, this param is ignored if
            is bigger than server setting
          required: false
          schema:
            type: integer
            format: int64
        - name: stream_idle_timeout_ms
          in: query
          description: timeout to complete and send result if no new elements are received
            (for open ended streams)
          required: false
          schema:
            type: integer
            format: int64
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUpdatesRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  type: array
                  items:
                    $ref: '#/components/schemas/JsGetUpdateTreesResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: query parameter
              limit, Invalid value for: query parameter stream_idle_timeout_ms, Invalid
              value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/transaction-tree-by-offset/{offset}:
      get:
        description: Get transaction tree by offset
        operationId: getV2UpdatesTransaction-tree-by-offsetOffset
        parameters:
        - name: offset
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: parties
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetTransactionTreeResponse'
          '400':
            description: 'Invalid value for: path parameter offset, Invalid value for:
              query parameter parties, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/transaction-by-offset:
      post:
        description: Get transaction by offset
        operationId: postV2UpdatesTransaction-by-offset
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTransactionByOffsetRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetTransactionResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/update-by-offset:
      post:
        description: Get update by offset
        operationId: postV2UpdatesUpdate-by-offset
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUpdateByOffsetRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetUpdateResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/transaction-by-id:
      post:
        description: Get transaction by id
        operationId: postV2UpdatesTransaction-by-id
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTransactionByIdRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetTransactionResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/update-by-id:
      post:
        description: Get update by id
        operationId: postV2UpdatesUpdate-by-id
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUpdateByIdRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetUpdateResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/updates/transaction-tree-by-id/{update-id}:
      get:
        description: Get transaction tree by  id
        operationId: getV2UpdatesTransaction-tree-by-idUpdate-id
        parameters:
        - name: update-id
          in: path
          required: true
          schema:
            type: string
        - name: parties
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsGetTransactionTreeResponse'
          '400':
            description: 'Invalid value for: query parameter parties, Invalid value
              for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/users:
      get:
        description: List all users.
        operationId: getV2Users
        parameters:
        - name: pageSize
          in: query
          description: maximum number of elements in a returned page
          required: false
          schema:
            type: integer
            format: int32
        - name: pageToken
          in: query
          description: token - to continue results from a given page, leave empty to
            start from the beginning of the list, obtain token from the result of previous
            page
          required: false
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ListUsersResponse'
          '400':
            description: 'Invalid value for: query parameter pageSize, Invalid value
              for: query parameter pageToken, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      post:
        description: Create user.
        operationId: postV2Users
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateUserRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/CreateUserResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/users/{user-id}:
      get:
        description: Get user details.
        operationId: getV2UsersUser-id
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetUserResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      delete:
        description: Delete user.
        operationId: deleteV2UsersUser-id
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  type: object
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      patch:
        description: Update  user.
        operationId: patchV2UsersUser-id
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateUserRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/UpdateUserResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/users/{user-id}/rights:
      get:
        description: List user rights.
        operationId: getV2UsersUser-idRights
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ListUserRightsResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      post:
        description: Grant user rights.
        operationId: postV2UsersUser-idRights
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GrantUserRightsRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GrantUserRightsResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      patch:
        description: Revoke user rights.
        operationId: patchV2UsersUser-idRights
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RevokeUserRightsRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/RevokeUserRightsResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/users/{user-id}/identity-provider-id:
      patch:
        description: Update user identity provider.
        operationId: patchV2UsersUser-idIdentity-provider-id
        parameters:
        - name: user-id
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateUserIdentityProviderIdRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/UpdateUserIdentityProviderIdResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/idps:
      get:
        description: List all identity provider configs
        operationId: getV2Idps
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ListIdentityProviderConfigsResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      post:
        description: Create identity provider configs
        operationId: postV2Idps
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateIdentityProviderConfigRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/CreateIdentityProviderConfigResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/idps/{idp-id}:
      get:
        description: Get identity provider config
        operationId: getV2IdpsIdp-id
        parameters:
        - name: idp-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetIdentityProviderConfigResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      delete:
        description: Delete identity provider config
        operationId: deleteV2IdpsIdp-id
        parameters:
        - name: idp-id
          in: path
          required: true
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/DeleteIdentityProviderConfigResponse'
          '400':
            description: 'Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
      patch:
        description: Update identity provider config
        operationId: patchV2IdpsIdp-id
        parameters:
        - name: idp-id
          in: path
          required: true
          schema:
            type: string
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateIdentityProviderConfigRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/UpdateIdentityProviderConfigResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/interactive-submission/prepare:
      post:
        description: Prepare commands for signing
        operationId: postV2Interactive-submissionPrepare
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsPrepareSubmissionRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsPrepareSubmissionResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/interactive-submission/execute:
      post:
        description: Execute a signed transaction
        operationId: postV2Interactive-submissionExecute
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsExecuteSubmissionRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/ExecuteSubmissionResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/interactive-submission/preferred-package-version:
      get:
        description: Get the preferred package version for constructing a command submission
        operationId: getV2Interactive-submissionPreferred-package-version
        parameters:
        - name: parties
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
        - name: package-name
          in: query
          required: true
          schema:
            type: string
        - name: vetting_valid_at
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: synchronizer-id
          in: query
          required: false
          schema:
            type: string
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetPreferredPackageVersionResponse'
          '400':
            description: 'Invalid value for: query parameter parties, Invalid value
              for: query parameter package-name, Invalid value for: query parameter
              vetting_valid_at, Invalid value for: query parameter synchronizer-id,
              Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
    /v2/interactive-submission/preferred-packages:
      get:
        description: Get the version of preferred packages for constructing a command
          submission
        operationId: getV2Interactive-submissionPreferred-packages
        requestBody:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPreferredPackagesRequest'
          required: true
        responses:
          '200':
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/GetPreferredPackagesResponse'
          '400':
            description: 'Invalid value for: body, Invalid value for: headers'
            content:
              text/plain:
                schema:
                  type: string
          default:
            description: ''
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/JsCantonError'
        security:
        - httpAuth: []
        - apiKeyAuth: []
  components:
    schemas:
      AllocatePartyRequest:
        title: AllocatePartyRequest
        description: 'Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(identity_provider_id)``'
        type: object
        required:
        - partyIdHint
        - identityProviderId
        properties:
          partyIdHint:
            description: |-
              A hint to the participant which party ID to allocate. It can be
              ignored.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Optional
            type: string
          localMetadata:
            $ref: '#/components/schemas/ObjectMeta'
            description: |-
              Formerly "display_name"
              Participant-local metadata to be stored in the ``PartyDetails`` of this newly allocated party.
              Optional
          identityProviderId:
            description: |-
              The id of the ``Identity Provider``
              Optional, if not set, assume the party is managed by the default identity provider or party is not hosted by the participant.
            type: string
      AllocatePartyResponse:
        title: AllocatePartyResponse
        type: object
        properties:
          partyDetails:
            $ref: '#/components/schemas/PartyDetails'
            description: ''
      ArchivedEvent:
        title: ArchivedEvent
        description: Records that a contract has been archived, and choices may no longer
          be exercised on it.
        type: object
        required:
        - offset
        - nodeId
        - contractId
        - templateId
        - packageName
        properties:
          offset:
            description: |-
              The offset of origin.
              Offsets are managed by the participant nodes.
              Transactions can thus NOT be assumed to have the same offsets on different participant nodes.
              Required, it is a valid absolute offset (positive integer)
            type: integer
            format: int64
          nodeId:
            description: |-
              The position of this event in the originating transaction or reassignment.
              Node IDs are not necessarily equal across participants,
              as these may see different projections/parts of transactions.
              Required, must be valid node ID (non-negative integer)
            type: integer
            format: int32
          contractId:
            description: |-
              The ID of the archived contract.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          templateId:
            description: |-
              The template of the archived contract.
              The identifier uses the package-id reference format.

              Required
            type: string
          witnessParties:
            description: |-
              The parties that are notified of this event. For an ``ArchivedEvent``,
              these are the intersection of the stakeholders of the contract in
              question and the parties specified in the ``TransactionFilter``. The
              stakeholders are the union of the signatories and the observers of
              the contract.
              Each one of its elements must be a valid PartyIdString (as described
              in ``value.proto``).
              Required
            type: array
            items:
              type: string
          packageName:
            description: |-
              The package name of the contract.
              Required
            type: string
          implementedInterfaces:
            description: |-
              The interfaces implemented by the target template that have been
              matched from the interface filter query.
              Populated only in case interface filters with include_interface_view set.

              If defined, the identifier uses the package-id reference format.

              Optional
            type: array
            items:
              type: string
      AssignCommand:
        title: AssignCommand
        description: Assign a contract
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/AssignCommand1'
      AssignCommand1:
        title: AssignCommand
        description: Assign a contract
        type: object
        required:
        - unassignId
        - source
        - target
        properties:
          unassignId:
            description: |-
              The ID from the unassigned event to be completed by this assignment.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          source:
            description: |-
              The ID of the source synchronizer
              Must be a valid synchronizer id
              Required
            type: string
          target:
            description: |-
              The ID of the target synchronizer
              Must be a valid synchronizer id
              Required
            type: string
      CanActAs:
        title: CanActAs
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/CanActAs1'
      CanActAs1:
        title: CanActAs
        type: object
        required:
        - party
        properties:
          party:
            type: string
      CanReadAs:
        title: CanReadAs
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/CanReadAs1'
      CanReadAs1:
        title: CanReadAs
        type: object
        required:
        - party
        properties:
          party:
            type: string
      CanReadAsAnyParty:
        title: CanReadAsAnyParty
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/CanReadAsAnyParty1'
      CanReadAsAnyParty1:
        title: CanReadAsAnyParty
        type: object
      Command:
        title: Command
        description: A command can either create a new contract or exercise a choice
          on an existing contract.
        oneOf:
        - type: object
          required:
          - CreateAndExerciseCommand
          properties:
            CreateAndExerciseCommand:
              $ref: '#/components/schemas/CreateAndExerciseCommand'
        - type: object
          required:
          - CreateCommand
          properties:
            CreateCommand:
              $ref: '#/components/schemas/CreateCommand'
        - type: object
          required:
          - ExerciseByKeyCommand
          properties:
            ExerciseByKeyCommand:
              $ref: '#/components/schemas/ExerciseByKeyCommand'
        - type: object
          required:
          - ExerciseCommand
          properties:
            ExerciseCommand:
              $ref: '#/components/schemas/ExerciseCommand'
      Command1:
        title: Command
        description: A command can either create a new contract or exercise a choice
          on an existing contract.
        oneOf:
        - type: object
          required:
          - AssignCommand
          properties:
            AssignCommand:
              $ref: '#/components/schemas/AssignCommand'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty2'
        - type: object
          required:
          - UnassignCommand
          properties:
            UnassignCommand:
              $ref: '#/components/schemas/UnassignCommand'
      Completion:
        title: Completion
        description: 'A completion represents the status of a submitted command on the
          ledger: it can be successful or failed.'
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/Completion1'
      Completion1:
        title: Completion
        description: 'A completion represents the status of a submitted command on the
          ledger: it can be successful or failed.'
        type: object
        required:
        - commandId
        - updateId
        - userId
        - submissionId
        - deduplicationPeriod
        - offset
        properties:
          commandId:
            description: |-
              The ID of the succeeded or failed command.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          status:
            $ref: '#/components/schemas/Status'
            description: |-
              Identifies the exact type of the error.
              It uses the same format of conveying error details as it is used for the RPC responses of the APIs.
              Optional
          updateId:
            description: |-
              The update_id of the transaction or reassignment that resulted from the command with command_id.
              Only set for successfully executed commands.
              Must be a valid LedgerString (as described in ``value.proto``).
            type: string
          userId:
            description: |-
              The user-id that was used for the submission, as described in ``commands.proto``.
              Must be a valid UserIdString (as described in ``value.proto``).
              Optional for historic completions where this data is not available.
            type: string
          actAs:
            description: |-
              The set of parties on whose behalf the commands were executed.
              Contains the ``act_as`` parties from ``commands.proto``
              filtered to the requesting parties in CompletionStreamRequest.
              The order of the parties need not be the same as in the submission.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Optional for historic completions where this data is not available.
            type: array
            items:
              type: string
          submissionId:
            description: |-
              The submission ID this completion refers to, as described in ``commands.proto``.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          deduplicationPeriod:
            $ref: '#/components/schemas/DeduplicationPeriod1'
          traceContext:
            $ref: '#/components/schemas/TraceContext'
            description: |-
              Optional; ledger API trace context

              The trace context transported in this message corresponds to the trace context supplied
              by the client application in a HTTP2 header of the original command submission.
              We typically use a header to transfer this type of information. Here we use message
              body, because it is used in gRPC streams which do not support per message headers.
              This field will be populated with the trace context contained in the original submission.
              If that was not provided, a unique ledger-api-server generated trace context will be used
              instead.
          offset:
            description: |-
              May be used in a subsequent CompletionStreamRequest to resume the consumption of this stream at a later time.
              Required, must be a valid absolute offset (positive integer).
            type: integer
            format: int64
          synchronizerTime:
            $ref: '#/components/schemas/SynchronizerTime'
            description: |-
              The synchronizer along with its record time.
              The synchronizer id provided, in case of

              - successful/failed transactions: identifies the synchronizer of the transaction
              - for successful/failed unassign commands: identifies the source synchronizer
              - for successful/failed assign commands: identifies the target synchronizer

              Required
      CompletionResponse:
        title: CompletionResponse
        oneOf:
        - type: object
          required:
          - Completion
          properties:
            Completion:
              $ref: '#/components/schemas/Completion'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty4'
        - type: object
          required:
          - OffsetCheckpoint
          properties:
            OffsetCheckpoint:
              $ref: '#/components/schemas/OffsetCheckpoint'
      CompletionStreamRequest:
        title: CompletionStreamRequest
        type: object
        required:
        - userId
        - beginExclusive
        properties:
          userId:
            description: |-
              Only completions of commands submitted with the same user_id will be visible in the stream.
              Must be a valid UserIdString (as described in ``value.proto``).
              Required unless authentication is used with a user token.
              In that case, the token's user-id will be used for the request's user_id.
            type: string
          parties:
            description: |-
              Non-empty list of parties whose data should be included.
              The stream shows only completions of commands for which at least one of the ``act_as`` parties is in the given set of parties.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Required
            type: array
            items:
              type: string
          beginExclusive:
            description: |-
              This optional field indicates the minimum offset for completions. This can be used to resume an earlier completion stream.
              If not set the ledger uses the ledger begin offset instead.
              If specified, it must be a valid absolute offset (positive integer) or zero (ledger begin offset).
              If the ledger has been pruned, this parameter must be specified and greater than the pruning offset.
            type: integer
            format: int64
      CompletionStreamResponse:
        title: CompletionStreamResponse
        type: object
        required:
        - completionResponse
        properties:
          completionResponse:
            $ref: '#/components/schemas/CompletionResponse'
      ConnectedSynchronizer:
        title: ConnectedSynchronizer
        type: object
        required:
        - synchronizerAlias
        - synchronizerId
        - permission
        properties:
          synchronizerAlias:
            type: string
          synchronizerId:
            type: string
          permission:
            type: string
      CreateAndExerciseCommand:
        title: CreateAndExerciseCommand
        description: Create a contract and exercise a choice on it in the same transaction.
        type: object
        required:
        - templateId
        - createArguments
        - choice
        - choiceArgument
        properties:
          templateId:
            description: |-
              The template of the contract the client wants to create.
              Both package-name and package-id reference identifier formats for the template-id are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          createArguments:
            description: |-
              The arguments required for creating a contract from this template.
              Required
          choice:
            description: |-
              The name of the choice the client wants to exercise.
              Must be a valid NameString (as described in ``value.proto``).
              Required
            type: string
          choiceArgument:
            description: |-
              The argument for this choice.
              Required
      CreateCommand:
        title: CreateCommand
        description: Create a new contract instance based on a template.
        type: object
        required:
        - templateId
        - createArguments
        properties:
          templateId:
            description: |-
              The template of contract the client wants to create.
              Both package-name and package-id reference identifier formats for the template-id are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          createArguments:
            description: |-
              The arguments required for creating a contract from this template.
              Required
      CreateIdentityProviderConfigRequest:
        title: CreateIdentityProviderConfigRequest
        type: object
        properties:
          identityProviderConfig:
            $ref: '#/components/schemas/IdentityProviderConfig'
            description: Required
      CreateIdentityProviderConfigResponse:
        title: CreateIdentityProviderConfigResponse
        type: object
        properties:
          identityProviderConfig:
            $ref: '#/components/schemas/IdentityProviderConfig'
            description: ''
      CreateUserRequest:
        title: CreateUserRequest
        description: |2-
           RPC requests and responses
          ///////////////////////////
           Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(user.identity_provider_id)``
        type: object
        properties:
          user:
            $ref: '#/components/schemas/User'
            description: |-
              The user to create.
              Required
          rights:
            description: |-
              The rights to be assigned to the user upon creation,
              which SHOULD include appropriate rights for the ``user.primary_party``.
              Optional
            type: array
            items:
              $ref: '#/components/schemas/Right'
      CreateUserResponse:
        title: CreateUserResponse
        type: object
        properties:
          user:
            $ref: '#/components/schemas/User'
            description: Created user.
      CreatedEvent:
        title: CreatedEvent
        description: Records that a contract has been created, and choices may now be
          exercised on it.
        type: object
        required:
        - offset
        - nodeId
        - contractId
        - templateId
        - createdEventBlob
        - createdAt
        - packageName
        properties:
          offset:
            description: |-
              The offset of origin, which has contextual meaning, please see description at messages that include a CreatedEvent.
              Offsets are managed by the participant nodes.
              Transactions can thus NOT be assumed to have the same offsets on different participant nodes.
              Required, it is a valid absolute offset (positive integer)
            type: integer
            format: int64
          nodeId:
            description: |-
              The position of this event in the originating transaction or reassignment.
              The origin has contextual meaning, please see description at messages that include a CreatedEvent.
              Node IDs are not necessarily equal across participants,
              as these may see different projections/parts of transactions.
              Required, must be valid node ID (non-negative integer)
            type: integer
            format: int32
          contractId:
            description: |-
              The ID of the created contract.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          templateId:
            description: |-
              The template of the created contract.
              The identifier uses the package-id reference format.

              Required
            type: string
          contractKey:
            description: |-
              The key of the created contract.
              This will be set if and only if ``create_arguments`` is set and ``template_id`` defines a contract key.
              Optional
          createArgument: {}
          createdEventBlob:
            description: |-
              Opaque representation of contract create event payload intended for forwarding
              to an API server as a contract disclosed as part of a command
              submission.
              Optional
            type: string
          interfaceViews:
            description: |-
              Interface views specified in the transaction filter.
              Includes an ``InterfaceView`` for each interface for which there is a ``InterfaceFilter`` with

              - its party in the ``witness_parties`` of this event,
              - and which is implemented by the template of this event,
              - and which has ``include_interface_view`` set.

              Optional
            type: array
            items:
              $ref: '#/components/schemas/JsInterfaceView'
          witnessParties:
            description: |-
              The parties that are notified of this event. When a ``CreatedEvent``
              is returned as part of a transaction tree or ledger-effects transaction, this will include all
              the parties specified in the ``TransactionFilter`` that are informees
              of the event. If served as part of a ACS delta transaction those will
              be limited to all parties specified in the ``TransactionFilter`` that
              are stakeholders of the contract (i.e. either signatories or observers).
              If the ``CreatedEvent`` is returned as part of an AssignedEvent,
              ActiveContract or IncompleteUnassigned (so the event is related to
              an assignment or unassignment): this will include all parties of the
              ``TransactionFilter`` that are stakeholders of the contract.

              The behavior of reading create events visible to parties not hosted
              on the participant node serving the Ledger API is undefined. Concretely,
              there is neither a guarantee that the participant node will serve all their
              create events on the ACS stream, nor is there a guarantee that matching archive
              events are delivered for such create events.

              For most clients this is not a problem, as they only read events for parties
              that are hosted on the participant node. If you need to read events
              for parties that may not be hosted at all times on the participant node,
              subscribe to the ``TopologyEvent``s for that party by setting a corresponding
              ``UpdateFormat``.  Using these events, query the ACS as-of an offset where the
              party is hosted on the participant node, and ignore create events at offsets
              where the party is not hosted on the participant node.
              Required
            type: array
            items:
              type: string
          signatories:
            description: |-
              The signatories for this contract as specified by the template.
              Required
            type: array
            items:
              type: string
          observers:
            description: |-
              The observers for this contract as specified explicitly by the template or implicitly as choice controllers.
              This field never contains parties that are signatories.
              Required
            type: array
            items:
              type: string
          createdAt:
            description: |-
              Ledger effective time of the transaction that created the contract.
              Required
            type: string
          packageName:
            description: |-
              The package name of the created contract.
              Required
            type: string
      CreatedTreeEvent:
        title: CreatedTreeEvent
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/CreatedEvent'
      CumulativeFilter:
        title: CumulativeFilter
        description: |-
          A filter that matches all contracts that are either an instance of one of
          the ``template_filters`` or that match one of the ``interface_filters``.
        type: object
        required:
        - identifierFilter
        properties:
          identifierFilter:
            $ref: '#/components/schemas/IdentifierFilter'
      DeduplicationDuration:
        title: DeduplicationDuration
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/Duration'
      DeduplicationDuration1:
        title: DeduplicationDuration
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/Duration'
      DeduplicationDuration2:
        title: DeduplicationDuration
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/Duration'
      DeduplicationOffset:
        title: DeduplicationOffset
        type: object
        required:
        - value
        properties:
          value:
            type: integer
            format: int64
      DeduplicationOffset1:
        title: DeduplicationOffset
        type: object
        required:
        - value
        properties:
          value:
            type: integer
            format: int64
      DeduplicationOffset2:
        title: DeduplicationOffset
        type: object
        required:
        - value
        properties:
          value:
            type: integer
            format: int64
      DeduplicationPeriod:
        title: DeduplicationPeriod
        description: |-
          Specifies the deduplication period for the change ID.
          If omitted, the participant will assume the configured maximum deduplication time.
        oneOf:
        - type: object
          required:
          - DeduplicationDuration
          properties:
            DeduplicationDuration:
              $ref: '#/components/schemas/DeduplicationDuration'
        - type: object
          required:
          - DeduplicationOffset
          properties:
            DeduplicationOffset:
              $ref: '#/components/schemas/DeduplicationOffset'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty'
      DeduplicationPeriod1:
        title: DeduplicationPeriod
        description: |-
          The actual deduplication window used for the submission, which is derived from
          ``Commands.deduplication_period``. The ledger may convert the deduplication period into other
          descriptions and extend the period in implementation-specified ways.

          Used to audit the deduplication guarantee described in ``commands.proto``.

          Optional; the deduplication guarantee applies even if the completion omits this field.
        oneOf:
        - type: object
          required:
          - DeduplicationDuration
          properties:
            DeduplicationDuration:
              $ref: '#/components/schemas/DeduplicationDuration1'
        - type: object
          required:
          - DeduplicationOffset
          properties:
            DeduplicationOffset:
              $ref: '#/components/schemas/DeduplicationOffset1'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty3'
      DeduplicationPeriod2:
        title: DeduplicationPeriod
        description: |-
          Specifies the deduplication period for the change ID (See PrepareSubmissionRequest).
          If omitted, the participant will assume the configured maximum deduplication time.
        oneOf:
        - type: object
          required:
          - DeduplicationDuration
          properties:
            DeduplicationDuration:
              $ref: '#/components/schemas/DeduplicationDuration2'
        - type: object
          required:
          - DeduplicationOffset
          properties:
            DeduplicationOffset:
              $ref: '#/components/schemas/DeduplicationOffset2'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty7'
      DeleteIdentityProviderConfigResponse:
        title: DeleteIdentityProviderConfigResponse
        description: Does not (yet) contain any data.
        type: object
      DisclosedContract:
        title: DisclosedContract
        description: |-
          An additional contract that is used to resolve
          contract & contract key lookups.
        type: object
        required:
        - contractId
        - createdEventBlob
        - synchronizerId
        properties:
          templateId:
            description: |-
              The template id of the contract.
              The identifier uses the package-id reference format.

              Required
            type: string
          contractId:
            description: |-
              The contract id
              Required
            type: string
          createdEventBlob:
            description: |-
              Opaque byte string containing the complete payload required by the Daml engine
              to reconstruct a contract not known to the receiving participant.
              Required
            type: string
          synchronizerId:
            description: |-
              The ID of the synchronizer where the contract is currently assigned
              Optional
            type: string
      Duration:
        title: Duration
        type: object
        required:
        - seconds
        - nanos
        properties:
          seconds:
            type: integer
            format: int64
          nanos:
            type: integer
            format: int32
          unknownFields:
            $ref: '#/components/schemas/UnknownFieldSet'
            description: This field is automatically added as part of protobuf to json
              mapping
      Empty:
        title: Empty
        type: object
      Empty1:
        title: Empty
        type: object
      Empty2:
        title: Empty
        type: object
      Empty3:
        title: Empty
        type: object
      Empty4:
        title: Empty
        type: object
      Empty5:
        title: Empty
        type: object
      Empty6:
        title: Empty
        type: object
      Empty7:
        title: Empty
        type: object
      Event:
        title: Event
        description: |-
          Events in transactions can have two primary shapes:

          - ACS delta: events can be CreatedEvent or ArchivedEvent
          - ledger effects: events can be CreatedEvent or ExercisedEvent

          In the update service the events are restricted to the events
          visible for the parties specified in the transaction filter. Each
          event message type below contains a ``witness_parties`` field which
          indicates the subset of the requested parties that can see the event
          in question.
        oneOf:
        - type: object
          required:
          - ArchivedEvent
          properties:
            ArchivedEvent:
              $ref: '#/components/schemas/ArchivedEvent'
        - type: object
          required:
          - CreatedEvent
          properties:
            CreatedEvent:
              $ref: '#/components/schemas/CreatedEvent'
        - type: object
          required:
          - ExercisedEvent
          properties:
            ExercisedEvent:
              $ref: '#/components/schemas/ExercisedEvent'
      EventFormat:
        title: EventFormat
        description: |-
          A format for events which defines both which events should be included
          and what data should be computed and included for them.

          Note that some of the filtering behavior depends on the `TransactionShape`,
          which is expected to be specified alongside usages of `EventFormat`.
        type: object
        required:
        - filtersByParty
        - verbose
        properties:
          filtersByParty:
            $ref: '#/components/schemas/Map_Filters'
            description: |-
              Each key must be a valid PartyIdString (as described in ``value.proto``).
              The interpretation of the filter depends on the transaction-shape being filtered:

              1. For **ledger-effects** create and exercise events are returned, for which the witnesses include at least one of
                 the listed parties and match the per-party filter.
              2. For **transaction and active-contract-set streams** create and archive events are returned for all contracts whose
                 stakeholders include at least one of the listed parties and match the per-party filter.

              Optional
          filtersForAnyParty:
            $ref: '#/components/schemas/Filters'
            description: |-
              Wildcard filters that apply to all the parties existing on the participant. The interpretation of the filters is the same
              with the per-party filter as described above.
              Optional
          verbose:
            description: |-
              If enabled, values served over the API will contain more information than strictly necessary to interpret the data.
              In particular, setting the verbose flag to true triggers the ledger to include labels for record fields.
              Optional
            type: boolean
      ExecuteSubmissionResponse:
        title: ExecuteSubmissionResponse
        type: object
      ExerciseByKeyCommand:
        title: ExerciseByKeyCommand
        description: Exercise a choice on an existing contract specified by its key.
        type: object
        required:
        - templateId
        - contractKey
        - choice
        - choiceArgument
        properties:
          templateId:
            description: |-
              The template of contract the client wants to exercise.
              Both package-name and package-id reference identifier formats for the template-id are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          contractKey:
            description: |-
              The key of the contract the client wants to exercise upon.
              Required
          choice:
            description: |-
              The name of the choice the client wants to exercise.
              Must be a valid NameString (as described in ``value.proto``)
              Required
            type: string
          choiceArgument:
            description: |-
              The argument for this choice.
              Required
      ExerciseCommand:
        title: ExerciseCommand
        description: Exercise a choice on an existing contract.
        type: object
        required:
        - templateId
        - contractId
        - choice
        - choiceArgument
        properties:
          templateId:
            description: |-
              The template of contract the client wants to exercise.
              Both package-name and package-id reference identifier formats for the template-id are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          contractId:
            description: |-
              The ID of the contract the client wants to exercise upon.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          choice:
            description: |-
              The name of the choice the client wants to exercise.
              Must be a valid NameString (as described in ``value.proto``)
              Required
            type: string
          choiceArgument:
            description: |-
              The argument for this choice.
              Required
      ExercisedEvent:
        title: ExercisedEvent
        description: Records that a choice has been exercised on a target contract.
        type: object
        required:
        - offset
        - nodeId
        - contractId
        - templateId
        - choice
        - choiceArgument
        - consuming
        - lastDescendantNodeId
        - exerciseResult
        - packageName
        properties:
          offset:
            description: |-
              The offset of origin.
              Offsets are managed by the participant nodes.
              Transactions can thus NOT be assumed to have the same offsets on different participant nodes.
              Required, it is a valid absolute offset (positive integer)
            type: integer
            format: int64
          nodeId:
            description: |-
              The position of this event in the originating transaction or reassignment.
              Node IDs are not necessarily equal across participants,
              as these may see different projections/parts of transactions.
              Required, must be valid node ID (non-negative integer)
            type: integer
            format: int32
          contractId:
            description: |-
              The ID of the target contract.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          templateId:
            description: |-
              The template of the target contract.
              The identifier uses the package-id reference format.

              Required
            type: string
          interfaceId:
            description: |-
              The interface where the choice is defined, if inherited.
              If defined, the identifier uses the package-id reference format.

              Optional
            type: string
          choice:
            description: |-
              The choice that was exercised on the target contract.
              Must be a valid NameString (as described in ``value.proto``).
              Required
            type: string
          choiceArgument:
            description: |-
              The argument of the exercised choice.
              Required
          actingParties:
            description: |-
              The parties that exercised the choice.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Required
            type: array
            items:
              type: string
          consuming:
            description: |-
              If true, the target contract may no longer be exercised.
              Required
            type: boolean
          witnessParties:
            description: |-
              The parties that are notified of this event. The witnesses of an exercise
              node will depend on whether the exercise was consuming or not.
              If consuming, the witnesses are the union of the stakeholders and
              the actors.
              If not consuming, the witnesses are the union of the signatories and
              the actors. Note that the actors might not necessarily be observers
              and thus signatories. This is the case when the controllers of a
              choice are specified using "flexible controllers", using the
              ``choice ... controller`` syntax, and said controllers are not
              explicitly marked as observers.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Required
            type: array
            items:
              type: string
          lastDescendantNodeId:
            description: |-
              Specifies the upper boundary of the node ids of the events in the same transaction that appeared as a result of
              this ``ExercisedEvent``. This allows unambiguous identification of all the members of the subtree rooted at this
              node. A full subtree can be constructed when all descendant nodes are present in the stream. If nodes are heavily
              filtered, it is only possible to determine if a node is in a consequent subtree or not.
              Required
            type: integer
            format: int32
          exerciseResult:
            description: |-
              The result of exercising the choice.
              Required
          packageName:
            description: |-
              The package name of the contract.
              Required
            type: string
          implementedInterfaces:
            description: |-
              If the event is consuming, the interfaces implemented by the target template that have been
              matched from the interface filter query.
              Populated only in case interface filters with include_interface_view set.

              The identifier uses the package-id reference format.

              Optional
            type: array
            items:
              type: string
      ExercisedTreeEvent:
        title: ExercisedTreeEvent
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/ExercisedEvent'
      ExperimentalCommandInspectionService:
        title: ExperimentalCommandInspectionService
        description: Whether the Ledger API supports command inspection service
        type: object
        required:
        - supported
        properties:
          supported:
            description: ''
            type: boolean
      ExperimentalFeatures:
        title: ExperimentalFeatures
        description: See the feature message definitions for descriptions.
        type: object
        properties:
          staticTime:
            $ref: '#/components/schemas/ExperimentalStaticTime'
            description: ''
          commandInspectionService:
            $ref: '#/components/schemas/ExperimentalCommandInspectionService'
            description: ''
      ExperimentalStaticTime:
        title: ExperimentalStaticTime
        description: Ledger is in the static time mode and exposes a time service.
        type: object
        required:
        - supported
        properties:
          supported:
            description: ''
            type: boolean
      FeaturesDescriptor:
        title: FeaturesDescriptor
        type: object
        properties:
          experimental:
            $ref: '#/components/schemas/ExperimentalFeatures'
            description: |-
              Features under development or features that are used
              for ledger implementation testing purposes only.

              Daml applications SHOULD not depend on these in production.
          userManagement:
            $ref: '#/components/schemas/UserManagementFeature'
            description: |-
              If set, then the Ledger API server supports user management.
              It is recommended that clients query this field to gracefully adjust their behavior for
              ledgers that do not support user management.
          partyManagement:
            $ref: '#/components/schemas/PartyManagementFeature'
            description: |-
              If set, then the Ledger API server supports party management configurability.
              It is recommended that clients query this field to gracefully adjust their behavior to
              maximum party page size.
          offsetCheckpoint:
            $ref: '#/components/schemas/OffsetCheckpointFeature'
            description: It contains the timeouts related to the periodic offset checkpoint
              emission
      Field:
        title: Field
        type: object
        properties:
          varint:
            type: array
            items:
              type: integer
              format: int64
          fixed64:
            type: array
            items:
              type: integer
              format: int64
          fixed32:
            type: array
            items:
              type: integer
              format: int32
          lengthDelimited:
            type: array
            items:
              type: string
      FieldMask:
        title: FieldMask
        type: object
        required:
        - unknownFields
        properties:
          paths:
            type: array
            items:
              type: string
          unknownFields:
            $ref: '#/components/schemas/UnknownFieldSet'
      Filters:
        title: Filters
        description: The union of a set of template filters, interface filters, or a
          wildcard.
        type: object
        properties:
          cumulative:
            description: |-
              Every filter in the cumulative list expands the scope of the resulting stream. Each interface,
              template or wildcard filter means additional events that will match the query.
              The impact of include_interface_view and include_created_event_blob fields in the filters will
              also be accumulated.
              A template or an interface SHOULD NOT appear twice in the accumulative field.
              A wildcard filter SHOULD NOT be defined more than once in the accumulative field.
              Optional, if no ``CumulativeFilter`` defined, the default of a single ``WildcardFilter`` with
              include_created_event_blob unset is used.
            type: array
            items:
              $ref: '#/components/schemas/CumulativeFilter'
      GetActiveContractsRequest:
        title: GetActiveContractsRequest
        description: |-
          If the given offset is different than the ledger end, and there are (un)assignments in-flight at the given offset,
          the snapshot may fail with "FAILED_PRECONDITION/PARTICIPANT_PRUNED_DATA_ACCESSED".
          Note that it is ok to request acs snapshots for party migration with offsets other than ledger end, because party
          migration is not concerned with incomplete (un)assignments.
        type: object
        required:
        - verbose
        - activeAtOffset
        properties:
          filter:
            $ref: '#/components/schemas/TransactionFilter'
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              Templates to include in the served snapshot, per party.
              Optional, if specified event_format must be unset, if not specified event_format must be set.
          verbose:
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              If enabled, values served over the API will contain more information than strictly necessary to interpret the data.
              In particular, setting the verbose flag to true triggers the ledger to include labels for record fields.
              Optional, if specified event_format must be unset.
            type: boolean
          activeAtOffset:
            description: |-
              The offset at which the snapshot of the active contracts will be computed.
              Must be no greater than the current ledger end offset.
              Must be greater than or equal to the last pruning offset.
              Required, must be a valid absolute offset (positive integer) or ledger begin offset (zero).
              If zero, the empty set will be returned.
            type: integer
            format: int64
          eventFormat:
            $ref: '#/components/schemas/EventFormat'
            description: |-
              Format of the contract_entries in the result. In case of CreatedEvent the presentation will be of
              TRANSACTION_SHAPE_ACS_DELTA.
              Optional for backwards compatibility, defaults to an EventFormat where:

              - filters_by_party is the filter.filters_by_party from this request
              - filters_for_any_party is the filter.filters_for_any_party from this request
              - verbose is the verbose field from this request
      GetConnectedSynchronizersResponse:
        title: GetConnectedSynchronizersResponse
        type: object
        properties:
          connectedSynchronizers:
            description: ''
            type: array
            items:
              $ref: '#/components/schemas/ConnectedSynchronizer'
      GetEventsByContractIdRequest:
        title: GetEventsByContractIdRequest
        type: object
        required:
        - contractId
        properties:
          contractId:
            description: |-
              The contract id being queried.
              Required
            type: string
          requestingParties:
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              The parties whose events the client expects to see.
              The events associated with the contract id will only be returned if the requesting parties includes
              at least one party that is a stakeholder of the event. For a definition of stakeholders see
              https://docs.daml.com/concepts/ledger-model/ledger-privacy.html#contract-observers-and-stakeholders
              Optional, if some parties specified, event_format needs to be unset.
            type: array
            items:
              type: string
          eventFormat:
            $ref: '#/components/schemas/EventFormat'
            description: |-
              Format of the events in the result, the presentation will be of TRANSACTION_SHAPE_ACS_DELTA.
              Optional for backwards compatibility, defaults to an EventFormat where:

              - filters_by_party is a template-wildcard filter for all requesting_parties
              - filters_for_any_party is unset
              - verbose is set
      GetIdentityProviderConfigResponse:
        title: GetIdentityProviderConfigResponse
        type: object
        properties:
          identityProviderConfig:
            $ref: '#/components/schemas/IdentityProviderConfig'
            description: ''
      GetLatestPrunedOffsetsResponse:
        title: GetLatestPrunedOffsetsResponse
        type: object
        required:
        - participantPrunedUpToInclusive
        - allDivulgedContractsPrunedUpToInclusive
        properties:
          participantPrunedUpToInclusive:
            description: |-
              It will always be a non-negative integer.
              If positive, the absolute offset up to which the ledger has been pruned,
              disregarding the state of all divulged contracts pruning.
              If zero, the ledger has not been pruned yet.
            type: integer
            format: int64
          allDivulgedContractsPrunedUpToInclusive:
            description: |-
              It will always be a non-negative integer.
              If positive, the absolute offset up to which all divulged events have been pruned on the ledger.
              It can be at or before the ``participant_pruned_up_to_inclusive`` offset.
              For more details about all divulged events pruning,
              see ``PruneRequest.prune_all_divulged_contracts`` in ``participant_pruning_service.proto``.
              If zero, the divulged events have not been pruned yet.
            type: integer
            format: int64
      GetLedgerApiVersionResponse:
        title: GetLedgerApiVersionResponse
        type: object
        required:
        - version
        properties:
          version:
            description: The version of the ledger API.
            type: string
          features:
            $ref: '#/components/schemas/FeaturesDescriptor'
            description: |-
              The features supported by this Ledger API endpoint.

              Daml applications CAN use the feature descriptor on top of
              version constraints on the Ledger API version to determine
              whether a given Ledger API endpoint supports the features
              required to run the application.

              See the feature descriptions themselves for the relation between
              Ledger API versions and feature presence.
      GetLedgerEndResponse:
        title: GetLedgerEndResponse
        type: object
        required:
        - offset
        properties:
          offset:
            description: |-
              It will always be a non-negative integer.
              If zero, the participant view of the ledger is empty.
              If positive, the absolute offset of the ledger as viewed by the participant.
            type: integer
            format: int64
      GetPackageStatusResponse:
        title: GetPackageStatusResponse
        type: object
        required:
        - packageStatus
        properties:
          packageStatus:
            description: The status of the package.
            type: string
      GetParticipantIdResponse:
        title: GetParticipantIdResponse
        type: object
        required:
        - participantId
        properties:
          participantId:
            description: |-
              Identifier of the participant, which SHOULD be globally unique.
              Must be a valid LedgerString (as describe in ``value.proto``).
            type: string
      GetPartiesResponse:
        title: GetPartiesResponse
        type: object
        properties:
          partyDetails:
            description: |-
              The details of the requested Daml parties by the participant, if known.
              The party details may not be in the same order as requested.
              Required
            type: array
            items:
              $ref: '#/components/schemas/PartyDetails'
      GetPreferredPackageVersionResponse:
        title: GetPreferredPackageVersionResponse
        type: object
        properties:
          packagePreference:
            $ref: '#/components/schemas/PackagePreference'
            description: |-
              Not populated when no preferred package is found
              Optional
      GetPreferredPackagesRequest:
        title: GetPreferredPackagesRequest
        type: object
        required:
        - synchronizerId
        properties:
          packageVettingRequirements:
            description: |-
              The package-name vetting requirements for which the preferred packages should be resolved.

              Generally it is enough to provide the requirements for the intended command's root package-names.
              Additional package-name requirements can be provided when additional Daml transaction informees need to use
              package dependencies of the command's root packages.

              Required
            type: array
            items:
              $ref: '#/components/schemas/PackageVettingRequirement'
          synchronizerId:
            description: |-
              The synchronizer whose vetting state to use for resolving this query.
              If not specified, the vetting state of all the synchronizers the participant is connected to will be used.
              Optional
            type: string
          vettingValidAt:
            description: |-
              The timestamp at which the package vetting validity should be computed
              on the latest topology snapshot as seen by the participant.
              If not provided, the participant's current clock time is used.
              Optional
            type: string
      GetPreferredPackagesResponse:
        title: GetPreferredPackagesResponse
        type: object
        required:
        - synchronizerId
        properties:
          packageReferences:
            description: |-
              The package references of the preferred packages.
              Must contain one package reference for each requested package-name.
              Required
            type: array
            items:
              $ref: '#/components/schemas/PackageReference'
          synchronizerId:
            description: |-
              The synchronizer for which the package preferences are computed.
              If the synchronizer_id was specified in the request, then it matches the request synchronizer_id.
              Required
            type: string
      GetTransactionByIdRequest:
        title: GetTransactionByIdRequest
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - updateId
        properties:
          updateId:
            description: |-
              The ID of a particular transaction.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          requestingParties:
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              The parties whose events the client expects to see.
              Events that are not visible for the parties in this collection will not be present in the response.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Must be set for GetTransactionTreeById request.
              Optional for backwards compatibility for GetTransactionById request: if defined transaction_format must be
              unset (falling back to defaults).
            type: array
            items:
              type: string
          transactionFormat:
            $ref: '#/components/schemas/TransactionFormat'
            description: |-
              Must be unset for GetTransactionTreeById request.
              Optional for GetTransactionById request for backwards compatibility: defaults to a transaction_format, where:

              - event_format.filters_by_party will have template-wildcard filters for all the requesting_parties
              - event_format.filters_for_any_party is unset
              - event_format.verbose = true
              - transaction_shape = TRANSACTION_SHAPE_ACS_DELTA
      GetTransactionByOffsetRequest:
        title: GetTransactionByOffsetRequest
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - offset
        properties:
          offset:
            description: |-
              The offset of the transaction being looked up.
              Must be a valid absolute offset (positive integer).
              Required
            type: integer
            format: int64
          requestingParties:
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              The parties whose events the client expects to see.
              Events that are not visible for the parties in this collection will not be present in the response.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Must be set for GetTransactionTreeByOffset request.
              Optional for backwards compatibility for GetTransactionByOffset request: if defined transaction_format must be
              unset (falling back to defaults).
            type: array
            items:
              type: string
          transactionFormat:
            $ref: '#/components/schemas/TransactionFormat'
            description: |-
              Must be unset for GetTransactionTreeByOffset request.
              Optional for GetTransactionByOffset request for backwards compatibility: defaults to a TransactionFormat, where:

              - event_format.filters_by_party will have template-wildcard filters for all the requesting_parties
              - event_format.filters_for_any_party is unset
              - event_format.verbose = true
              - transaction_shape = TRANSACTION_SHAPE_ACS_DELTA
      GetUpdateByIdRequest:
        title: GetUpdateByIdRequest
        type: object
        required:
        - updateId
        properties:
          updateId:
            description: |-
              The ID of a particular update.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          updateFormat:
            $ref: '#/components/schemas/UpdateFormat'
            description: |-
              The format for the update.
              Required
      GetUpdateByOffsetRequest:
        title: GetUpdateByOffsetRequest
        type: object
        required:
        - offset
        properties:
          offset:
            description: |-
              The offset of the update being looked up.
              Must be a valid absolute offset (positive integer).
              Required
            type: integer
            format: int64
          updateFormat:
            $ref: '#/components/schemas/UpdateFormat'
            description: |-
              The format for the update.
              Required
      GetUpdatesRequest:
        title: GetUpdatesRequest
        type: object
        required:
        - beginExclusive
        - verbose
        properties:
          beginExclusive:
            description: |-
              Beginning of the requested ledger section (non-negative integer).
              The response will only contain transactions whose offset is strictly greater than this.
              If zero, the stream will start from the beginning of the ledger.
              If positive, the streaming will start after this absolute offset.
              If the ledger has been pruned, this parameter must be specified and be greater than the pruning offset.
            type: integer
            format: int64
          endInclusive:
            description: |-
              End of the requested ledger section.
              The response will only contain transactions whose offset is less than or equal to this.
              Optional, if empty, the stream will not terminate.
              If specified, the stream will terminate after this absolute offset (positive integer) is reached.
            type: integer
            format: int64
          filter:
            $ref: '#/components/schemas/TransactionFilter'
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              Requesting parties with template filters.
              Template filters must be empty for GetUpdateTrees requests.
              Optional for backwards compatibility, if defined update_format must be unset
          verbose:
            description: |-
              Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
              If enabled, values served over the API will contain more information than strictly necessary to interpret the data.
              In particular, setting the verbose flag to true triggers the ledger to include labels, record and variant type ids
              for record fields.
              Optional for backwards compatibility, if defined update_format must be unset
            type: boolean
          updateFormat:
            $ref: '#/components/schemas/UpdateFormat'
            description: |-
              Must be unset for GetUpdateTrees request.
              Optional for backwards compatibility for GetUpdates request: defaults to an UpdateFormat where:

              - include_transactions.event_format.filters_by_party = the filter.filters_by_party on this request
              - include_transactions.event_format.filters_for_any_party = the filter.filters_for_any_party on this request
              - include_transactions.event_format.verbose = the same flag specified on this request
              - include_transactions.transaction_shape = TRANSACTION_SHAPE_ACS_DELTA
              - include_reassignments.filter = the same filter specified on this request
              - include_reassignments.verbose = the same flag specified on this request
              - include_topology_events.include_participant_authorization_events.parties = all the parties specified in filter
      GetUserResponse:
        title: GetUserResponse
        type: object
        properties:
          user:
            $ref: '#/components/schemas/User'
            description: Retrieved user.
      GrantUserRightsRequest:
        title: GrantUserRightsRequest
        description: |-
          Add the rights to the set of rights granted to the user.

          Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(identity_provider_id)``
        type: object
        required:
        - userId
        - identityProviderId
        properties:
          userId:
            description: |-
              The user to whom to grant rights.
              Required
            type: string
          rights:
            description: |-
              The rights to grant.
              Optional
            type: array
            items:
              $ref: '#/components/schemas/Right'
          identityProviderId:
            description: |-
              The id of the ``Identity Provider``
              Optional, if not set, assume the user is managed by the default identity provider.
            type: string
      GrantUserRightsResponse:
        title: GrantUserRightsResponse
        type: object
        properties:
          newlyGrantedRights:
            description: The rights that were newly granted by the request.
            type: array
            items:
              $ref: '#/components/schemas/Right'
      Identifier:
        title: Identifier
        type: object
        required:
        - packageId
        - moduleName
        - entityName
        properties:
          packageId:
            type: string
          moduleName:
            type: string
          entityName:
            type: string
      IdentifierFilter:
        title: IdentifierFilter
        oneOf:
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty1'
        - type: object
          required:
          - InterfaceFilter
          properties:
            InterfaceFilter:
              $ref: '#/components/schemas/InterfaceFilter'
        - type: object
          required:
          - TemplateFilter
          properties:
            TemplateFilter:
              $ref: '#/components/schemas/TemplateFilter'
        - type: object
          required:
          - WildcardFilter
          properties:
            WildcardFilter:
              $ref: '#/components/schemas/WildcardFilter'
      IdentityProviderAdmin:
        title: IdentityProviderAdmin
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/IdentityProviderAdmin1'
      IdentityProviderAdmin1:
        title: IdentityProviderAdmin
        type: object
      IdentityProviderConfig:
        title: IdentityProviderConfig
        type: object
        required:
        - identityProviderId
        - isDeactivated
        - issuer
        - jwksUrl
        - audience
        properties:
          identityProviderId:
            description: |-
              The identity provider identifier
              Must be a valid LedgerString (as describe in ``value.proto``).
              Required
            type: string
          isDeactivated:
            description: |-
              When set, the callers using JWT tokens issued by this identity provider are denied all access
              to the Ledger API.
              Optional,
              Modifiable
            type: boolean
          issuer:
            description: |-
              Specifies the issuer of the JWT token.
              The issuer value is a case sensitive URL using the https scheme that contains scheme, host,
              and optionally, port number and path components and no query or fragment components.
              Required
              Modifiable
            type: string
          jwksUrl:
            description: |-
              The JWKS (JSON Web Key Set) URL.
              The Ledger API uses JWKs (JSON Web Keys) from the provided URL to verify that the JWT has been
              signed with the loaded JWK. Only RS256 (RSA Signature with SHA-256) signing algorithm is supported.
              Required
              Modifiable
            type: string
          audience:
            description: |-
              Specifies the audience of the JWT token.
              When set, the callers using JWT tokens issued by this identity provider are allowed to get an access
              only if the "aud" claim includes the string specified here
              Optional,
              Modifiable
            type: string
      InterfaceFilter:
        title: InterfaceFilter
        description: This filter matches contracts that implement a specific interface.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/InterfaceFilter1'
      InterfaceFilter1:
        title: InterfaceFilter
        description: This filter matches contracts that implement a specific interface.
        type: object
        required:
        - includeInterfaceView
        - includeCreatedEventBlob
        properties:
          interfaceId:
            description: |-
              The interface that a matching contract must implement.
              The ``interface_id`` needs to be valid: corresponding interface should be defined in
              one of the available packages at the time of the query.
              Both package-name and package-id reference formats for the identifier are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          includeInterfaceView:
            description: |-
              Whether to include the interface view on the contract in the returned ``CreatedEvent``.
              Use this to access contract data in a uniform manner in your API client.
              Optional
            type: boolean
          includeCreatedEventBlob:
            description: |-
              Whether to include a ``created_event_blob`` in the returned ``CreatedEvent``.
              Use this to access the contract create event payload in your API client
              for submitting it as a disclosed contract with future commands.
              Optional
            type: boolean
      JsActiveContract:
        title: JsActiveContract
        type: object
        required:
        - createdEvent
        - synchronizerId
        - reassignmentCounter
        properties:
          createdEvent:
            $ref: '#/components/schemas/CreatedEvent'
            description: |-
              Required
              The event as it appeared in the context of its last update (i.e. daml transaction or
              reassignment). In particular, the last offset, node_id pair is preserved.
              The last update is the most recent update created or assigned this contract on synchronizer_id synchronizer.
              The offset of the CreatedEvent might point to an already pruned update, therefore it cannot necessarily be used
              for lookups.
          synchronizerId:
            description: |-
              A valid synchronizer id
              Required
            type: string
          reassignmentCounter:
            description: |-
              Each corresponding assigned and unassigned event has the same reassignment_counter. This strictly increases
              with each unassign command for the same contract. Creation of the contract corresponds to reassignment_counter
              equals zero.
              This field will be the reassignment_counter of the latest observable activation event on this synchronizer, which is
              before the active_at_offset.
              Required
            type: integer
            format: int64
      JsArchived:
        title: JsArchived
        type: object
        required:
        - archivedEvent
        - synchronizerId
        properties:
          archivedEvent:
            $ref: '#/components/schemas/ArchivedEvent'
            description: Required
          synchronizerId:
            description: |-
              Required
              The synchronizer which sequenced the archival of the contract
            type: string
      JsAssignedEvent:
        title: JsAssignedEvent
        description: Records that a contract has been assigned, and it can be used on
          the target synchronizer.
        type: object
        required:
        - source
        - target
        - unassignId
        - submitter
        - reassignmentCounter
        - createdEvent
        properties:
          source:
            description: |-
              The ID of the source synchronizer.
              Must be a valid synchronizer id.
              Required
            type: string
          target:
            description: |-
              The ID of the target synchronizer.
              Must be a valid synchronizer id.
              Required
            type: string
          unassignId:
            description: |-
              The ID from the unassigned event.
              For correlation capabilities.
              For one contract the (unassign_id, source synchronizer) pair is unique.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          submitter:
            description: |-
              Party on whose behalf the assign command was executed.
              Empty if the assignment happened offline via the repair service.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Optional
            type: string
          reassignmentCounter:
            description: |-
              Each corresponding assigned and unassigned event has the same reassignment_counter. This strictly increases
              with each unassign command for the same contract. Creation of the contract corresponds to reassignment_counter
              equals zero.
              Required
            type: integer
            format: int64
          createdEvent:
            $ref: '#/components/schemas/CreatedEvent'
            description: |-
              Required
              The offset of this event refers to the offset of the assignment,
              while the node_id is the index of within the batch.
      JsAssignmentEvent:
        title: JsAssignmentEvent
        type: object
        required:
        - source
        - target
        - unassignId
        - submitter
        - reassignmentCounter
        - createdEvent
        properties:
          source:
            type: string
          target:
            type: string
          unassignId:
            type: string
          submitter:
            type: string
          reassignmentCounter:
            type: integer
            format: int64
          createdEvent:
            $ref: '#/components/schemas/CreatedEvent'
      JsCantonError:
        title: JsCantonError
        type: object
        required:
        - code
        - cause
        - context
        - errorCategory
        properties:
          code:
            type: string
          cause:
            type: string
          correlationId:
            type: string
          traceId:
            type: string
          context:
            $ref: '#/components/schemas/Map_String'
          resources:
            type: array
            items:
              $ref: '#/components/schemas/Tuple2_String_String'
          errorCategory:
            type: integer
            format: int32
          grpcCodeValue:
            type: integer
            format: int32
          retryInfo:
            type: string
          definiteAnswer:
            type: boolean
      JsCommands:
        title: JsCommands
        description: A composite command that groups multiple commands together.
        type: object
        required:
        - commandId
        properties:
          commands:
            description: |-
              Individual elements of this atomic command. Must be non-empty.
              Required
            type: array
            items:
              $ref: '#/components/schemas/Command'
          commandId:
            description: |-
              Uniquely identifies the command.
              The triple (user_id, act_as, command_id) constitutes the change ID for the intended ledger change,
              where act_as is interpreted as a set of party names.
              The change ID can be used for matching the intended ledger changes with all their completions.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          actAs:
            description: |-
              Set of parties on whose behalf the command should be executed.
              If ledger API authorization is enabled, then the authorization metadata must authorize the sender of the request
              to act on behalf of each of the given parties.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Required, must be non-empty.
            type: array
            items:
              type: string
          userId:
            description: |-
              Uniquely identifies the participant user that issued the command.
              Must be a valid UserIdString (as described in ``value.proto``).
              Required unless authentication is used with a user token.
              In that case, the token's user-id will be used for the request's user_id.
            type: string
          readAs:
            description: |-
              Set of parties on whose behalf (in addition to all parties listed in ``act_as``) contracts can be retrieved.
              This affects Daml operations such as ``fetch``, ``fetchByKey``, ``lookupByKey``, ``exercise``, and ``exerciseByKey``.
              Note: A participant node of a Daml network can host multiple parties. Each contract present on the participant
              node is only visible to a subset of these parties. A command can only use contracts that are visible to at least
              one of the parties in ``act_as`` or ``read_as``. This visibility check is independent from the Daml authorization
              rules for fetch operations.
              If ledger API authorization is enabled, then the authorization metadata must authorize the sender of the request
              to read contract data on behalf of each of the given parties.
              Optional
            type: array
            items:
              type: string
          workflowId:
            description: |-
              Identifier of the on-ledger workflow that this command is a part of.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          deduplicationPeriod:
            $ref: '#/components/schemas/DeduplicationPeriod'
          minLedgerTimeAbs:
            description: |-
              Lower bound for the ledger time assigned to the resulting transaction.
              Note: The ledger time of a transaction is assigned as part of command interpretation.
              Use this property if you expect that command interpretation will take a considerate amount of time, such that by
              the time the resulting transaction is sequenced, its assigned ledger time is not valid anymore.
              Must not be set at the same time as min_ledger_time_rel.
              Optional
            type: string
          minLedgerTimeRel:
            $ref: '#/components/schemas/Duration'
            description: |-
              Same as min_ledger_time_abs, but specified as a duration, starting from the time the command is received by the server.
              Must not be set at the same time as min_ledger_time_abs.
              Optional
          submissionId:
            description: |-
              A unique identifier to distinguish completions for different submissions with the same change ID.
              Typically a random UUID. Applications are expected to use a different UUID for each retry of a submission
              with the same change ID.
              Must be a valid LedgerString (as described in ``value.proto``).

              If omitted, the participant or the committer may set a value of their choice.
              Optional
            type: string
          disclosedContracts:
            description: |-
              Additional contracts used to resolve contract & contract key lookups.
              Optional
            type: array
            items:
              $ref: '#/components/schemas/DisclosedContract'
          synchronizerId:
            description: |-
              Must be a valid synchronizer id
              Optional
            type: string
          packageIdSelectionPreference:
            description: |-
              The package-id selection preference of the client for resolving
              package names and interface instances in command submission and interpretation
            type: array
            items:
              type: string
      JsContractEntry:
        title: JsContractEntry
        description: |-
          For a contract there could be multiple contract_entry-s in the entire snapshot. These together define
          the state of one contract in the snapshot.
          A contract_entry is included in the result, if and only if there is at least one stakeholder party of the contract
          that is hosted on the synchronizer at the time of the event and the party satisfies the
          ``TransactionFilter`` in the query.
        oneOf:
        - type: object
          required:
          - JsActiveContract
          properties:
            JsActiveContract:
              $ref: '#/components/schemas/JsActiveContract'
        - type: object
          required:
          - JsEmpty
          properties:
            JsEmpty:
              $ref: '#/components/schemas/JsEmpty'
        - type: object
          required:
          - JsIncompleteAssigned
          properties:
            JsIncompleteAssigned:
              $ref: '#/components/schemas/JsIncompleteAssigned'
        - type: object
          required:
          - JsIncompleteUnassigned
          properties:
            JsIncompleteUnassigned:
              $ref: '#/components/schemas/JsIncompleteUnassigned'
      JsCreated:
        title: JsCreated
        type: object
        required:
        - createdEvent
        - synchronizerId
        properties:
          createdEvent:
            $ref: '#/components/schemas/CreatedEvent'
            description: |-
              Required
              The event as it appeared in the context of its original update (i.e. daml transaction or
              reassignment) on this participant node. You can use its offset and node_id to find the
              corresponding update and the node within it.
          synchronizerId:
            description: |-
              The synchronizer which sequenced the creation of the contract
              Required
            type: string
      JsEmpty:
        title: JsEmpty
        type: object
      JsExecuteSubmissionRequest:
        title: JsExecuteSubmissionRequest
        type: object
        required:
        - deduplicationPeriod
        - submissionId
        - userId
        - hashingSchemeVersion
        properties:
          preparedTransaction:
            description: |-
              the prepared transaction
              Typically this is the value of the `prepared_transaction` field in `PrepareSubmissionResponse`
              obtained from calling `prepareSubmission`.
            type: string
          partySignatures:
            $ref: '#/components/schemas/PartySignatures'
            description: |-
              The party(ies) signatures that authorize the prepared submission to be executed by this node.
              Each party can provide one or more signatures..
              and one or more parties can sign.
              Note that currently, only single party submissions are supported.
          deduplicationPeriod:
            $ref: '#/components/schemas/DeduplicationPeriod2'
          submissionId:
            description: |-
              A unique identifier to distinguish completions for different submissions with the same change ID.
              Typically a random UUID. Applications are expected to use a different UUID for each retry of a submission
              with the same change ID.
              Must be a valid LedgerString (as described in ``value.proto``).

              Required
            type: string
          userId:
            description: See [PrepareSubmissionRequest.user_id]
            type: string
          hashingSchemeVersion:
            description: The hashing scheme version used when building the hash
            type: string
          minLedgerTime:
            $ref: '#/components/schemas/MinLedgerTime'
            description: |-
              If set will influence the chosen ledger effective time but will not result in a submission delay so any override
              should be scheduled to executed within the window allowed by synchronizer.
              Optional
      JsGetActiveContractsResponse:
        title: JsGetActiveContractsResponse
        type: object
        required:
        - workflowId
        - contractEntry
        properties:
          workflowId:
            description: |-
              The workflow ID used in command submission which corresponds to the contract_entry. Only set if
              the ``workflow_id`` for the command was set.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          contractEntry:
            $ref: '#/components/schemas/JsContractEntry'
      JsGetEventsByContractIdResponse:
        title: JsGetEventsByContractIdResponse
        type: object
        properties:
          created:
            $ref: '#/components/schemas/JsCreated'
            description: |-
              The create event for the contract with the ``contract_id`` given in the request
              provided it exists and has not yet been pruned.
              Optional
          archived:
            $ref: '#/components/schemas/JsArchived'
            description: |-
              The archive event for the contract with the ``contract_id`` given in the request
              provided such an archive event exists and it has not yet been pruned.
              Optional
      JsGetTransactionResponse:
        title: JsGetTransactionResponse
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - transaction
        properties:
          transaction:
            $ref: '#/components/schemas/JsTransaction'
            description: Required
      JsGetTransactionTreeResponse:
        title: JsGetTransactionTreeResponse
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - transaction
        properties:
          transaction:
            $ref: '#/components/schemas/JsTransactionTree'
            description: Required
      JsGetUpdateResponse:
        title: JsGetUpdateResponse
        type: object
        required:
        - update
        properties:
          update:
            $ref: '#/components/schemas/Update'
      JsGetUpdateTreesResponse:
        title: JsGetUpdateTreesResponse
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - update
        properties:
          update:
            $ref: '#/components/schemas/Update1'
      JsGetUpdatesResponse:
        title: JsGetUpdatesResponse
        type: object
        required:
        - update
        properties:
          update:
            $ref: '#/components/schemas/Update'
      JsIncompleteAssigned:
        title: JsIncompleteAssigned
        type: object
        required:
        - assignedEvent
        properties:
          assignedEvent:
            $ref: '#/components/schemas/JsAssignedEvent'
            description: Required
      JsIncompleteUnassigned:
        title: JsIncompleteUnassigned
        type: object
        required:
        - createdEvent
        - unassignedEvent
        properties:
          createdEvent:
            $ref: '#/components/schemas/CreatedEvent'
            description: |-
              Required
              The event as it appeared in the context of its last activation update (i.e. daml transaction or
              reassignment). In particular, the last activation offset, node_id pair is preserved.
              The last activation update is the most recent update created or assigned this contract on synchronizer_id synchronizer before
              the unassigned_event.
              The offset of the CreatedEvent might point to an already pruned update, therefore it cannot necessarily be used
              for lookups.
          unassignedEvent:
            $ref: '#/components/schemas/UnassignedEvent'
            description: Required
      JsInterfaceView:
        title: JsInterfaceView
        description: View of a create event matched by an interface filter.
        type: object
        required:
        - interfaceId
        - viewStatus
        properties:
          interfaceId:
            description: |-
              The interface implemented by the matched event.
              The identifier uses the package-id reference format.

              Required
            type: string
          viewStatus:
            $ref: '#/components/schemas/JsStatus'
            description: |-
              Whether the view was successfully computed, and if not,
              the reason for the error. The error is reported using the same rules
              for error codes and messages as the errors returned for API requests.
              Required
          viewValue:
            description: |-
              The value of the interface's view method on this event.
              Set if it was requested in the ``InterfaceFilter`` and it could be
              sucessfully computed.
              Optional
      JsPrepareSubmissionRequest:
        title: JsPrepareSubmissionRequest
        type: object
        required:
        - userId
        - commandId
        - synchronizerId
        - verboseHashing
        properties:
          userId:
            description: |-
              Uniquely identifies the participant user that prepares the transaction.
              Must be a valid UserIdString (as described in ``value.proto``).
              Required unless authentication is used with a user token.
              In that case, the token's user-id will be used for the request's user_id.
            type: string
          commandId:
            description: |-
              Uniquely identifies the command.
              The triple (user_id, act_as, command_id) constitutes the change ID for the intended ledger change,
              where act_as is interpreted as a set of party names.
              The change ID can be used for matching the intended ledger changes with all their completions.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          commands:
            description: |-
              Individual elements of this atomic command. Must be non-empty.
              Required
            type: array
            items:
              $ref: '#/components/schemas/Command'
          minLedgerTime:
            $ref: '#/components/schemas/MinLedgerTime'
            description: Optional
          actAs:
            description: |-
              Set of parties on whose behalf the command should be executed, if submitted.
              If ledger API authorization is enabled, then the authorization metadata must authorize the sender of the request
              to **read** (not act) on behalf of each of the given parties. This is because this RPC merely prepares a transaction
              and does not execute it. Therefore read authorization is sufficient even for actAs parties.
              Note: This may change, and more specific authorization scope may be introduced in the future.
              Each element must be a valid PartyIdString (as described in ``value.proto``).
              Required, must be non-empty.
            type: array
            items:
              type: string
          readAs:
            description: |-
              Set of parties on whose behalf (in addition to all parties listed in ``act_as``) contracts can be retrieved.
              This affects Daml operations such as ``fetch``, ``fetchByKey``, ``lookupByKey``, ``exercise``, and ``exerciseByKey``.
              Note: A command can only use contracts that are visible to at least
              one of the parties in ``act_as`` or ``read_as``. This visibility check is independent from the Daml authorization
              rules for fetch operations.
              If ledger API authorization is enabled, then the authorization metadata must authorize the sender of the request
              to read contract data on behalf of each of the given parties.
              Optional
            type: array
            items:
              type: string
          disclosedContracts:
            description: |-
              Additional contracts used to resolve contract & contract key lookups.
              Optional
            type: array
            items:
              $ref: '#/components/schemas/DisclosedContract'
          synchronizerId:
            description: |-
              Must be a valid synchronizer id
              Required
            type: string
          packageIdSelectionPreference:
            description: |-
              The package-id selection preference of the client for resolving
              package names and interface instances in command submission and interpretation
            type: array
            items:
              type: string
          verboseHashing:
            description: |-
              When true, the response will contain additional details on how the transaction was encoded and hashed
              This can be useful for troubleshooting of hash mismatches. Should only be used for debugging.
            type: boolean
      JsPrepareSubmissionResponse:
        title: JsPrepareSubmissionResponse
        description: '[docs-entry-end: HashingSchemeVersion]'
        type: object
        required:
        - preparedTransactionHash
        - hashingSchemeVersion
        properties:
          preparedTransaction:
            description: |-
              The interpreted transaction, it represents the ledger changes necessary to execute the commands specified in the request.
              Clients MUST display the content of the transaction to the user for them to validate before signing the hash if the preparing participant is not trusted.
            type: string
          preparedTransactionHash:
            description: |-
              Hash of the transaction, this is what needs to be signed by the party to authorize the transaction.
              Only provided for convenience, clients MUST recompute the hash from the raw transaction if the preparing participant is not trusted.
              May be removed in future versions
            type: string
          hashingSchemeVersion:
            description: The hashing scheme version used when building the hash
            type: string
          hashingDetails:
            description: |-
              Optional additional details on how the transaction was encoded and hashed. Only set if verbose_hashing = true in the request
              Note that there are no guarantees on the stability of the format or content of this field.
              Its content should NOT be parsed and should only be used for troubleshooting purposes.
            type: string
      JsReassignment:
        title: JsReassignment
        description: Complete view of an on-ledger reassignment.
        type: object
        required:
        - updateId
        - commandId
        - workflowId
        - offset
        - recordTime
        properties:
          updateId:
            description: |-
              Assigned by the server. Useful for correlating logs.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          commandId:
            description: |-
              The ID of the command which resulted in this reassignment. Missing for everyone except the submitting party on the submitting participant.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          workflowId:
            description: |-
              The workflow ID used in reassignment command submission. Only set if the ``workflow_id`` for the command was set.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          offset:
            description: |-
              The participant's offset. The details of this field are described in ``community/ledger-api/README.md``.
              Required, must be a valid absolute offset (positive integer).
            type: integer
            format: int64
          events:
            description: The collection of reassignment events. Required.
            type: array
            items:
              $ref: '#/components/schemas/JsReassignmentEvent'
          traceContext:
            $ref: '#/components/schemas/TraceContext'
            description: |-
              Optional; ledger API trace context

              The trace context transported in this message corresponds to the trace context supplied
              by the client application in a HTTP2 header of the original command submission.
              We typically use a header to transfer this type of information. Here we use message
              body, because it is used in gRPC streams which do not support per message headers.
              This field will be populated with the trace context contained in the original submission.
              If that was not provided, a unique ledger-api-server generated trace context will be used
              instead.
          recordTime:
            description: |-
              The time at which the reassignment was recorded. The record time refers to the source/target
              synchronizer for an unassign/assign event respectively.
              Required
            type: string
      JsReassignmentEvent:
        title: JsReassignmentEvent
        oneOf:
        - type: object
          required:
          - JsAssignmentEvent
          properties:
            JsAssignmentEvent:
              $ref: '#/components/schemas/JsAssignmentEvent'
        - type: object
          required:
          - JsUnassignedEvent
          properties:
            JsUnassignedEvent:
              $ref: '#/components/schemas/JsUnassignedEvent'
      JsStatus:
        title: JsStatus
        type: object
        required:
        - code
        - message
        properties:
          code:
            type: integer
            format: int32
          message:
            type: string
          details:
            type: array
            items:
              $ref: '#/components/schemas/ProtoAny'
      JsSubmitAndWaitForReassignmentResponse:
        title: JsSubmitAndWaitForReassignmentResponse
        type: object
        required:
        - reassignment
        properties:
          reassignment:
            $ref: '#/components/schemas/JsReassignment'
            description: |-
              The reassignment that resulted from the submitted reassignment command.
              The reassignment might contain no events (request conditions result in filtering out all of them).
              Required
      JsSubmitAndWaitForTransactionRequest:
        title: JsSubmitAndWaitForTransactionRequest
        description: These commands are executed as a single atomic transaction.
        type: object
        required:
        - commands
        properties:
          commands:
            $ref: '#/components/schemas/JsCommands'
            description: |-
              The commands to be submitted.
              Required
          transactionFormat:
            $ref: '#/components/schemas/TransactionFormat'
            description: |-
              If no ``transaction_format`` is provided, a default will be used where ``transaction_shape`` is set to
              TRANSACTION_SHAPE_ACS_DELTA, ``event_format`` is defined with ``filters_by_party`` containing wildcard-template
              filter for all original ``act_as`` and ``read_as`` parties and the ``verbose`` flag is set.
              Optional
      JsSubmitAndWaitForTransactionResponse:
        title: JsSubmitAndWaitForTransactionResponse
        type: object
        required:
        - transaction
        properties:
          transaction:
            $ref: '#/components/schemas/JsTransaction'
            description: |-
              The transaction that resulted from the submitted command.
              The transaction might contain no events (request conditions result in filtering out all of them).
              Required
      JsSubmitAndWaitForTransactionTreeResponse:
        title: JsSubmitAndWaitForTransactionTreeResponse
        description: Provided for backwards compatibility, it will be removed in the
          Canton version 3.4.0.
        type: object
        required:
        - transactionTree
        properties:
          transactionTree:
            $ref: '#/components/schemas/JsTransactionTree'
      JsTopologyTransaction:
        title: JsTopologyTransaction
        type: object
        required:
        - updateId
        - offset
        - synchronizerId
        - recordTime
        properties:
          updateId:
            description: |-
              Assigned by the server. Useful for correlating logs.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          events:
            description: |-
              A non-empty list of topology events.
              Required
            type: array
            items:
              $ref: '#/components/schemas/TopologyEvent'
          offset:
            description: |-
              The absolute offset. The details of this field are described in ``community/ledger-api/README.md``.
              Required, it is a valid absolute offset (positive integer).
            type: integer
            format: int64
          synchronizerId:
            description: |-
              A valid synchronizer id.
              Identifies the synchronizer that synchronized the topology transaction.
              Required
            type: string
          traceContext:
            $ref: '#/components/schemas/TraceContext'
            description: |-
              Optional; ledger API trace context

              The trace context transported in this message corresponds to the trace context supplied
              by the client application in a HTTP2 header of the original command submission.
              We typically use a header to transfer this type of information. Here we use message
              body, because it is used in gRPC streams which do not support per message headers.
              This field will be populated with the trace context contained in the original submission.
              If that was not provided, a unique ledger-api-server generated trace context will be used
              instead.
          recordTime:
            description: |-
              The time at which the changes in the topology transaction become effective. There is a small delay between a
              topology transaction being sequenced and the changes it contains becoming effective. Topology transactions appear
              in order relative to a synchronizer based on their effective time rather than their sequencing time.
              Required
            type: string
      JsTransaction:
        title: JsTransaction
        description: Filtered view of an on-ledger transaction's create and archive
          events.
        type: object
        required:
        - updateId
        - commandId
        - workflowId
        - effectiveAt
        - offset
        - synchronizerId
        - recordTime
        properties:
          updateId:
            description: |-
              Assigned by the server. Useful for correlating logs.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          commandId:
            description: |-
              The ID of the command which resulted in this transaction. Missing for everyone except the submitting party.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          workflowId:
            description: |-
              The workflow ID used in command submission.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          effectiveAt:
            description: |-
              Ledger effective time.
              Required
            type: string
          events:
            description: |-
              The collection of events.
              Contains:

              - ``CreatedEvent`` or ``ArchivedEvent`` in case of ACS_DELTA transaction shape
              - ``CreatedEvent`` or ``ExercisedEvent`` in case of LEDGER_EFFECTS transaction shape

              Required
            type: array
            items:
              $ref: '#/components/schemas/Event'
          offset:
            description: |-
              The absolute offset. The details of this field are described in ``community/ledger-api/README.md``.
              Required, it is a valid absolute offset (positive integer).
            type: integer
            format: int64
          synchronizerId:
            description: |-
              A valid synchronizer id.
              Identifies the synchronizer that synchronized the transaction.
              Required
            type: string
          traceContext:
            $ref: '#/components/schemas/TraceContext'
            description: |-
              Optional; ledger API trace context

              The trace context transported in this message corresponds to the trace context supplied
              by the client application in a HTTP2 header of the original command submission.
              We typically use a header to transfer this type of information. Here we use message
              body, because it is used in gRPC streams which do not support per message headers.
              This field will be populated with the trace context contained in the original submission.
              If that was not provided, a unique ledger-api-server generated trace context will be used
              instead.
          recordTime:
            description: |-
              The time at which the transaction was recorded. The record time refers to the synchronizer
              which synchronized the transaction.
              Required
            type: string
      JsTransactionTree:
        title: JsTransactionTree
        description: |-
          Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
          Complete view of an on-ledger transaction.
        type: object
        required:
        - updateId
        - commandId
        - workflowId
        - offset
        - eventsById
        - synchronizerId
        - recordTime
        properties:
          updateId:
            description: |-
              Assigned by the server. Useful for correlating logs.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          commandId:
            description: |-
              The ID of the command which resulted in this transaction. Missing for everyone except the submitting party.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          workflowId:
            description: |-
              The workflow ID used in command submission. Only set if the ``workflow_id`` for the command was set.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          effectiveAt:
            description: |-
              Ledger effective time.
              Required
            type: string
          offset:
            description: |-
              The absolute offset. The details of this field are described in ``community/ledger-api/README.md``.
              Required, it is a valid absolute offset (positive integer).
            type: integer
            format: int64
          eventsById:
            $ref: '#/components/schemas/Map_Int_TreeEvent'
            description: |-
              Changes to the ledger that were caused by this transaction. Nodes of the transaction tree.
              Each key must be a valid node ID (non-negative integer).
              Required
          synchronizerId:
            description: |-
              A valid synchronizer id.
              Identifies the synchronizer that synchronized the transaction.
              Required
            type: string
          traceContext:
            $ref: '#/components/schemas/TraceContext'
            description: |-
              Optional; ledger API trace context

              The trace context transported in this message corresponds to the trace context supplied
              by the client application in a HTTP2 header of the original command submission.
              We typically use a header to transfer this type of information. Here we use message
              body, because it is used in gRPC streams which do not support per message headers.
              This field will be populated with the trace context contained in the original submission.
              If that was not provided, a unique ledger-api-server generated trace context will be used
              instead.
          recordTime:
            description: |-
              The time at which the transaction was recorded. The record time refers to the synchronizer
              which synchronized the transaction.
              Required
            type: string
      JsUnassignedEvent:
        title: JsUnassignedEvent
        description: Records that a contract has been unassigned, and it becomes unusable
          on the source synchronizer
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/UnassignedEvent'
      Kind:
        title: Kind
        description: Required
        oneOf:
        - type: object
          required:
          - CanActAs
          properties:
            CanActAs:
              $ref: '#/components/schemas/CanActAs'
        - type: object
          required:
          - CanReadAs
          properties:
            CanReadAs:
              $ref: '#/components/schemas/CanReadAs'
        - type: object
          required:
          - CanReadAsAnyParty
          properties:
            CanReadAsAnyParty:
              $ref: '#/components/schemas/CanReadAsAnyParty'
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty5'
        - type: object
          required:
          - IdentityProviderAdmin
          properties:
            IdentityProviderAdmin:
              $ref: '#/components/schemas/IdentityProviderAdmin'
        - type: object
          required:
          - ParticipantAdmin
          properties:
            ParticipantAdmin:
              $ref: '#/components/schemas/ParticipantAdmin'
      ListIdentityProviderConfigsResponse:
        title: ListIdentityProviderConfigsResponse
        type: object
        properties:
          identityProviderConfigs:
            description: ''
            type: array
            items:
              $ref: '#/components/schemas/IdentityProviderConfig'
      ListKnownPartiesResponse:
        title: ListKnownPartiesResponse
        type: object
        required:
        - nextPageToken
        properties:
          partyDetails:
            description: |-
              The details of all Daml parties known by the participant.
              Required
            type: array
            items:
              $ref: '#/components/schemas/PartyDetails'
          nextPageToken:
            description: |-
              Pagination token to retrieve the next page.
              Empty, if there are no further results.
            type: string
      ListPackagesResponse:
        title: ListPackagesResponse
        type: object
        properties:
          packageIds:
            description: |-
              The IDs of all Daml-LF packages supported by the server.
              Each element must be a valid PackageIdString (as described in ``value.proto``).
              Required
            type: array
            items:
              type: string
      ListUserRightsResponse:
        title: ListUserRightsResponse
        type: object
        properties:
          rights:
            description: All rights of the user.
            type: array
            items:
              $ref: '#/components/schemas/Right'
      ListUsersResponse:
        title: ListUsersResponse
        type: object
        required:
        - nextPageToken
        properties:
          users:
            description: A subset of users of the participant node that fit into this
              page.
            type: array
            items:
              $ref: '#/components/schemas/User'
          nextPageToken:
            description: |-
              Pagination token to retrieve the next page.
              Empty, if there are no further results.
            type: string
      Map_Filters:
        title: Map_Filters
        type: object
        additionalProperties:
          $ref: '#/components/schemas/Filters'
      Map_Int_Field:
        title: Map_Int_Field
        type: object
        additionalProperties:
          $ref: '#/components/schemas/Field'
      Map_Int_TreeEvent:
        title: Map_Int_TreeEvent
        type: object
        additionalProperties:
          $ref: '#/components/schemas/TreeEvent'
      Map_String:
        title: Map_String
        type: object
        additionalProperties:
          type: string
      MinLedgerTime:
        title: MinLedgerTime
        type: object
        required:
        - time
        properties:
          time:
            $ref: '#/components/schemas/Time'
      MinLedgerTimeAbs:
        title: MinLedgerTimeAbs
        type: object
        required:
        - value
        properties:
          value:
            type: string
      MinLedgerTimeRel:
        title: MinLedgerTimeRel
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/Duration'
      ObjectMeta:
        title: ObjectMeta
        description: |-
          Represents metadata corresponding to a participant resource (e.g. a participant user or participant local information about a party).

          Based on ``ObjectMeta`` meta used in Kubernetes API.
          See https://github.com/kubernetes/apimachinery/blob/master/pkg/apis/meta/v1/generated.proto#L640
        type: object
        required:
        - resourceVersion
        - annotations
        properties:
          resourceVersion:
            description: |-
              An opaque, non-empty value, populated by a participant server which represents the internal version of the resource
              this ``ObjectMeta`` message is attached to. The participant server will change it to a unique value each time the corresponding resource is updated.
              You must not rely on the format of resource version. The participant server might change it without notice.
              You can obtain the newest resource version value by issuing a read request.
              You may use it for concurrent change detection by passing it back unmodified in an update request.
              The participant server will then compare the passed value with the value maintained by the system to determine
              if any other updates took place since you had read the resource version.
              Upon a successful update you are guaranteed that no other update took place during your read-modify-write sequence.
              However, if another update took place during your read-modify-write sequence then your update will fail with an appropriate error.
              Concurrent change control is optional. It will be applied only if you include a resource version in an update request.
              When creating a new instance of a resource you must leave the resource version empty.
              Its value will be populated by the participant server upon successful resource creation.
              Optional
            type: string
          annotations:
            $ref: '#/components/schemas/Map_String'
            description: |-
              A set of modifiable key-value pairs that can be used to represent arbitrary, client-specific metadata.
              Constraints:

              1. The total size over all keys and values cannot exceed 256kb in UTF-8 encoding.
              2. Keys are composed of an optional prefix segment and a required name segment such that:

                 - key prefix, when present, must be a valid DNS subdomain with at most 253 characters, followed by a '/' (forward slash) character,
                 - name segment must have at most 63 characters that are either alphanumeric ([a-z0-9A-Z]), or a '.' (dot), '-' (dash) or '_' (underscore);
                   and it must start and end with an alphanumeric character.

              3. Values can be any non-empty strings.

              Keys with empty prefix are reserved for end-users.
              Properties set by external tools or internally by the participant server must use non-empty key prefixes.
              Duplicate keys are disallowed by the semantics of the protobuf3 maps.
              See: https://developers.google.com/protocol-buffers/docs/proto3#maps
              Annotations may be a part of a modifiable resource.
              Use the resource's update RPC to update its annotations.
              In order to add a new annotation or update an existing one using an update RPC, provide the desired annotation in the update request.
              In order to remove an annotation using an update RPC, provide the target annotation's key but set its value to the empty string in the update request.
              Optional
              Modifiable
      OffsetCheckpoint:
        title: OffsetCheckpoint
        description: |-
          OffsetCheckpoints may be used to:

          - detect time out of commands.
          - provide an offset which can be used to restart consumption.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/OffsetCheckpoint1'
      OffsetCheckpoint1:
        title: OffsetCheckpoint
        description: |-
          OffsetCheckpoints may be used to:

          - detect time out of commands.
          - provide an offset which can be used to restart consumption.
        type: object
        required:
        - offset
        properties:
          offset:
            description: |-
              The participant's offset, the details of the offset field are described in ``community/ledger-api/README.md``.
              Required, must be a valid absolute offset (positive integer).
            type: integer
            format: int64
          synchronizerTimes:
            description: ''
            type: array
            items:
              $ref: '#/components/schemas/SynchronizerTime'
      OffsetCheckpoint2:
        title: OffsetCheckpoint
        description: |-
          OffsetCheckpoints may be used to:

          - detect time out of commands.
          - provide an offset which can be used to restart consumption.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/OffsetCheckpoint1'
      OffsetCheckpoint3:
        title: OffsetCheckpoint
        description: |-
          OffsetCheckpoints may be used to:

          - detect time out of commands.
          - provide an offset which can be used to restart consumption.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/OffsetCheckpoint1'
      OffsetCheckpointFeature:
        title: OffsetCheckpointFeature
        type: object
        properties:
          maxOffsetCheckpointEmissionDelay:
            $ref: '#/components/schemas/Duration'
            description: The maximum delay to emmit a new OffsetCheckpoint if it exists
      PackagePreference:
        title: PackagePreference
        type: object
        required:
        - synchronizerId
        properties:
          packageReference:
            $ref: '#/components/schemas/PackageReference'
            description: |-
              The package reference of the preferred package.
              Required
          synchronizerId:
            description: |-
              The synchronizer for which the preferred package was computed.
              If the synchronizer_id was specified in the request, then it matches the request synchronizer_id.
              Required
            type: string
      PackageReference:
        title: PackageReference
        type: object
        required:
        - packageId
        - packageName
        - packageVersion
        properties:
          packageId:
            description: Required
            type: string
          packageName:
            description: Required
            type: string
          packageVersion:
            description: Required
            type: string
      PackageVettingRequirement:
        title: PackageVettingRequirement
        description: Defines a package-name for which the commonly vetted package with
          the highest version must be found.
        type: object
        required:
        - packageName
        properties:
          parties:
            description: |-
              The parties whose participants' vetting state should be considered when resolving the preferred package.
              Required
            type: array
            items:
              type: string
          packageName:
            description: |-
              The package-name for which the preferred package should be resolved.
              Required
            type: string
      ParticipantAdmin:
        title: ParticipantAdmin
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/ParticipantAdmin1'
      ParticipantAdmin1:
        title: ParticipantAdmin
        type: object
      ParticipantAuthorizationAdded:
        title: ParticipantAuthorizationAdded
        type: object
        required:
        - partyId
        - participantId
        - participantPermission
        properties:
          partyId:
            description: Required
            type: string
          participantId:
            description: Required
            type: string
          participantPermission:
            description: Required
            type: integer
            format: int32
      ParticipantAuthorizationChanged:
        title: ParticipantAuthorizationChanged
        type: object
        required:
        - partyId
        - participantId
        - participantPermission
        properties:
          partyId:
            description: Required
            type: string
          participantId:
            description: Required
            type: string
          participantPermission:
            description: Required
            type: integer
            format: int32
      ParticipantAuthorizationRevoked:
        title: ParticipantAuthorizationRevoked
        type: object
        required:
        - partyId
        - participantId
        properties:
          partyId:
            description: Required
            type: string
          participantId:
            description: Required
            type: string
      ParticipantAuthorizationTopologyFormat:
        title: ParticipantAuthorizationTopologyFormat
        description: A format specifying which participant authorization topology transactions
          to include and how to render them.
        type: object
        properties:
          parties:
            description: |-
              List of parties for which the topology transactions should be sent.
              Empty means: for all parties.
            type: array
            items:
              type: string
      PartyDetails:
        title: PartyDetails
        type: object
        required:
        - party
        - isLocal
        - identityProviderId
        properties:
          party:
            description: |-
              The stable unique identifier of a Daml party.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Required
            type: string
          isLocal:
            description: |-
              true if party is hosted by the participant and the party shares the same identity provider as the user issuing the request.
              Optional
            type: boolean
          localMetadata:
            $ref: '#/components/schemas/ObjectMeta'
            description: |-
              Participant-local metadata of this party.
              Optional,
              Modifiable
          identityProviderId:
            description: |-
              The id of the ``Identity Provider``
              Optional, if not set, there could be 3 options:

              1. the party is managed by the default identity provider.
              2. party is not hosted by the participant.
              3. party is hosted by the participant, but is outside of the user's identity provider.
            type: string
      PartyManagementFeature:
        title: PartyManagementFeature
        type: object
        required:
        - maxPartiesPageSize
        properties:
          maxPartiesPageSize:
            description: The maximum number of parties the server can return in a single
              response (page).
            type: integer
            format: int32
      PartySignatures:
        title: PartySignatures
        description: Additional signatures provided by the submitting parties
        type: object
        properties:
          signatures:
            description: Additional signatures provided by all individual parties
            type: array
            items:
              $ref: '#/components/schemas/SinglePartySignatures'
      ProtoAny:
        title: ProtoAny
        type: object
        required:
        - typeUrl
        - value
        - unknownFields
        properties:
          typeUrl:
            type: string
          value:
            type: string
          unknownFields:
            $ref: '#/components/schemas/UnknownFieldSet'
      Reassignment:
        title: Reassignment
        description: Complete view of an on-ledger reassignment.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/JsReassignment'
      Reassignment1:
        title: Reassignment
        description: Complete view of an on-ledger reassignment.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/JsReassignment'
      ReassignmentCommand:
        title: ReassignmentCommand
        type: object
        required:
        - command
        properties:
          command:
            $ref: '#/components/schemas/Command1'
      ReassignmentCommands:
        title: ReassignmentCommands
        type: object
        required:
        - workflowId
        - userId
        - commandId
        - submitter
        - submissionId
        properties:
          workflowId:
            description: |-
              Identifier of the on-ledger workflow that this command is a part of.
              Must be a valid LedgerString (as described in ``value.proto``).
              Optional
            type: string
          userId:
            description: |-
              Uniquely identifies the participant user that issued the command.
              Must be a valid UserIdString (as described in ``value.proto``).
              Required unless authentication is used with a user token.
              In that case, the token's user-id will be used for the request's user_id.
            type: string
          commandId:
            description: |-
              Uniquely identifies the command.
              The triple (user_id, submitter, command_id) constitutes the change ID for the intended ledger change.
              The change ID can be used for matching the intended ledger changes with all their completions.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          submitter:
            description: |-
              Party on whose behalf the command should be executed.
              If ledger API authorization is enabled, then the authorization metadata must authorize the sender of the request
              to act on behalf of the given party.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Required
            type: string
          submissionId:
            description: |-
              A unique identifier to distinguish completions for different submissions with the same change ID.
              Typically a random UUID. Applications are expected to use a different UUID for each retry of a submission
              with the same change ID.
              Must be a valid LedgerString (as described in ``value.proto``).

              If omitted, the participant or the committer may set a value of their choice.
              Optional
            type: string
          commands:
            description: Individual elements of this reassignment. Must be non-empty.
            type: array
            items:
              $ref: '#/components/schemas/ReassignmentCommand'
      RevokeUserRightsRequest:
        title: RevokeUserRightsRequest
        description: |-
          Remove the rights from the set of rights granted to the user.

          Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(identity_provider_id)``
        type: object
        required:
        - userId
        - identityProviderId
        properties:
          userId:
            description: |-
              The user from whom to revoke rights.
              Required
            type: string
          rights:
            description: |-
              The rights to revoke.
              Optional
            type: array
            items:
              $ref: '#/components/schemas/Right'
          identityProviderId:
            description: |-
              The id of the ``Identity Provider``
              Optional, if not set, assume the user is managed by the default identity provider.
            type: string
      RevokeUserRightsResponse:
        title: RevokeUserRightsResponse
        type: object
        properties:
          newlyRevokedRights:
            description: The rights that were actually revoked by the request.
            type: array
            items:
              $ref: '#/components/schemas/Right'
      Right:
        title: Right
        description: A right granted to a user.
        type: object
        required:
        - kind
        properties:
          kind:
            $ref: '#/components/schemas/Kind'
      Signature:
        title: Signature
        type: object
        required:
        - format
        - signature
        - signedBy
        - signingAlgorithmSpec
        properties:
          format:
            description: ''
            type: string
          signature:
            description: ''
            type: string
          signedBy:
            description: The fingerprint/id of the keypair used to create this signature
              and needed to verify.
            type: string
          signingAlgorithmSpec:
            description: The signing algorithm specification used to produce this signature
            type: string
      SinglePartySignatures:
        title: SinglePartySignatures
        description: Signatures provided by a single party
        type: object
        required:
        - party
        properties:
          party:
            description: Submitting party
            type: string
          signatures:
            description: Signatures
            type: array
            items:
              $ref: '#/components/schemas/Signature'
      Status:
        title: Status
        type: object
        required:
        - code
        - message
        - unknownFields
        properties:
          code:
            type: integer
            format: int32
          message:
            type: string
          details:
            type: array
            items:
              $ref: '#/components/schemas/ProtoAny'
          unknownFields:
            $ref: '#/components/schemas/UnknownFieldSet'
      SubmitAndWaitForReassignmentRequest:
        title: SubmitAndWaitForReassignmentRequest
        description: This reassignment is executed as a single atomic update.
        type: object
        properties:
          reassignmentCommands:
            $ref: '#/components/schemas/ReassignmentCommands'
            description: |-
              The reassignment commands to be submitted.
              Required
          eventFormat:
            $ref: '#/components/schemas/EventFormat'
            description: |-
              Optional
              If no event_format provided, the result will contain no events.
              The events in the result, will take shape TRANSACTION_SHAPE_ACS_DELTA.
      SubmitAndWaitResponse:
        title: SubmitAndWaitResponse
        type: object
        required:
        - updateId
        - completionOffset
        properties:
          updateId:
            description: |-
              The id of the transaction that resulted from the submitted command.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          completionOffset:
            description: |-
              The details of the offset field are described in ``community/ledger-api/README.md``.
              Required
            type: integer
            format: int64
      SubmitReassignmentRequest:
        title: SubmitReassignmentRequest
        type: object
        properties:
          reassignmentCommands:
            $ref: '#/components/schemas/ReassignmentCommands'
            description: |-
              The reassignment command to be submitted.
              Required
      SubmitReassignmentResponse:
        title: SubmitReassignmentResponse
        type: object
      SubmitResponse:
        title: SubmitResponse
        type: object
      SynchronizerTime:
        title: SynchronizerTime
        type: object
        required:
        - synchronizerId
        properties:
          synchronizerId:
            description: |-
              The id of the synchronizer.
              Required
            type: string
          recordTime:
            description: |-
              All commands with a maximum record time below this value MUST be considered lost if their completion has not arrived before this checkpoint.
              Required
            type: string
      TemplateFilter:
        title: TemplateFilter
        description: This filter matches contracts of a specific template.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/TemplateFilter1'
      TemplateFilter1:
        title: TemplateFilter
        description: This filter matches contracts of a specific template.
        type: object
        required:
        - includeCreatedEventBlob
        properties:
          templateId:
            description: |-
              A template for which the payload should be included in the response.
              The ``template_id`` needs to be valid: corresponding template should be defined in
              one of the available packages at the time of the query.
              Both package-name and package-id reference formats for the identifier are supported.
              Note: The package-id reference identifier format is deprecated. We plan to end support for this format in version 3.4.

              Required
            type: string
          includeCreatedEventBlob:
            description: |-
              Whether to include a ``created_event_blob`` in the returned ``CreatedEvent``.
              Use this to access the contract event payload in your API client
              for submitting it as a disclosed contract with future commands.
              Optional
            type: boolean
      Time:
        title: Time
        oneOf:
        - type: object
          required:
          - Empty
          properties:
            Empty:
              $ref: '#/components/schemas/Empty6'
        - type: object
          required:
          - MinLedgerTimeAbs
          properties:
            MinLedgerTimeAbs:
              $ref: '#/components/schemas/MinLedgerTimeAbs'
        - type: object
          required:
          - MinLedgerTimeRel
          properties:
            MinLedgerTimeRel:
              $ref: '#/components/schemas/MinLedgerTimeRel'
      TopologyEvent:
        title: TopologyEvent
        oneOf:
        - type: object
          required:
          - ParticipantAuthorizationAdded
          properties:
            ParticipantAuthorizationAdded:
              $ref: '#/components/schemas/ParticipantAuthorizationAdded'
        - type: object
          required:
          - ParticipantAuthorizationChanged
          properties:
            ParticipantAuthorizationChanged:
              $ref: '#/components/schemas/ParticipantAuthorizationChanged'
        - type: object
          required:
          - ParticipantAuthorizationRevoked
          properties:
            ParticipantAuthorizationRevoked:
              $ref: '#/components/schemas/ParticipantAuthorizationRevoked'
      TopologyFormat:
        title: TopologyFormat
        description: A format specifying which topology transactions to include and
          how to render them.
        type: object
        properties:
          includeParticipantAuthorizationEvents:
            $ref: '#/components/schemas/ParticipantAuthorizationTopologyFormat'
            description: |-
              Include participant authorization topology events in streams.
              Optional, if unset no participant authorization topology events are emitted in the stream.
      TopologyTransaction:
        title: TopologyTransaction
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/JsTopologyTransaction'
      TraceContext:
        title: TraceContext
        type: object
        properties:
          traceparent:
            description: https://www.w3.org/TR/trace-context/
            type: string
          tracestate:
            description: ''
            type: string
      Transaction:
        title: Transaction
        description: Filtered view of an on-ledger transaction's create and archive
          events.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/JsTransaction'
      TransactionFilter:
        title: TransactionFilter
        description: |-
          Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
          Used both for filtering create and archive events as well as for filtering transaction trees.
        type: object
        required:
        - filtersByParty
        properties:
          filtersByParty:
            $ref: '#/components/schemas/Map_Filters'
            description: |-
              Each key must be a valid PartyIdString (as described in ``value.proto``).
              The interpretation of the filter depends on the transaction-shape being filtered:

              1. For **transaction trees** (used in GetUpdateTreesResponse for backwards compatibility) all party keys used as
                 wildcard filters, and all subtrees whose root has one of the listed parties as an informee are returned.
                 If there are ``CumulativeFilter``s, those will control returned ``CreatedEvent`` fields where applicable, but will
                 not be used for template/interface filtering.
              2. For **ledger-effects** create and exercise events are returned, for which the witnesses include at least one of
                 the listed parties and match the per-party filter.
              3. For **transaction and active-contract-set streams** create and archive events are returned for all contracts whose
                 stakeholders include at least one of the listed parties and match the per-party filter.

              Required
          filtersForAnyParty:
            $ref: '#/components/schemas/Filters'
            description: |-
              Wildcard filters that apply to all the parties existing on the participant. The interpretation of the filters is the same
              with the per-party filter as described above.
      TransactionFormat:
        title: TransactionFormat
        description: |-
          A format that specifies what events to include in Daml transactions
          and what data to compute and include for them.
        type: object
        required:
        - transactionShape
        properties:
          eventFormat:
            $ref: '#/components/schemas/EventFormat'
            description: Required
          transactionShape:
            description: |-
              What transaction shape to use for interpreting the filters of the event format.
              Required
            type: string
      TransactionTree:
        title: TransactionTree
        description: |-
          Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
          Complete view of an on-ledger transaction.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/JsTransactionTree'
      TreeEvent:
        title: TreeEvent
        description: |-
          Provided for backwards compatibility, it will be removed in the Canton version 3.4.0.
          Each tree event message type below contains a ``witness_parties`` field which
          indicates the subset of the requested parties that can see the event
          in question.

          Note that transaction trees might contain events with
          _no_ witness parties, which were included simply because they were
          children of events which have witnesses.
        oneOf:
        - type: object
          required:
          - CreatedTreeEvent
          properties:
            CreatedTreeEvent:
              $ref: '#/components/schemas/CreatedTreeEvent'
        - type: object
          required:
          - ExercisedTreeEvent
          properties:
            ExercisedTreeEvent:
              $ref: '#/components/schemas/ExercisedTreeEvent'
      Tuple2_String_String:
        title: Tuple2_String_String
        type: array
        maxItems: 2
        minItems: 2
        items:
          type: string
      UnassignCommand:
        title: UnassignCommand
        description: Unassign a contract
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/UnassignCommand1'
      UnassignCommand1:
        title: UnassignCommand
        description: Unassign a contract
        type: object
        required:
        - contractId
        - source
        - target
        properties:
          contractId:
            description: |-
              The ID of the contract the client wants to unassign.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          source:
            description: |-
              The ID of the source synchronizer
              Must be a valid synchronizer id
              Required
            type: string
          target:
            description: |-
              The ID of the target synchronizer
              Must be a valid synchronizer id
              Required
            type: string
      UnassignedEvent:
        title: UnassignedEvent
        description: Records that a contract has been unassigned, and it becomes unusable
          on the source synchronizer
        type: object
        required:
        - unassignId
        - contractId
        - source
        - target
        - submitter
        - reassignmentCounter
        - packageName
        - offset
        - nodeId
        properties:
          unassignId:
            description: |-
              The ID of the unassignment. This needs to be used as an input for a assign ReassignmentCommand.
              For one contract the (unassign_id, source synchronizer) pair is unique.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          contractId:
            description: |-
              The ID of the reassigned contract.
              Must be a valid LedgerString (as described in ``value.proto``).
              Required
            type: string
          templateId:
            description: |-
              The template of the reassigned contract.
              The identifier uses the package-id reference format.

              Required
            type: string
          source:
            description: |-
              The ID of the source synchronizer
              Must be a valid synchronizer id
              Required
            type: string
          target:
            description: |-
              The ID of the target synchronizer
              Must be a valid synchronizer id
              Required
            type: string
          submitter:
            description: |-
              Party on whose behalf the unassign command was executed.
              Empty if the unassignment happened offline via the repair service.
              Must be a valid PartyIdString (as described in ``value.proto``).
              Optional
            type: string
          reassignmentCounter:
            description: |-
              Each corresponding assigned and unassigned event has the same reassignment_counter. This strictly increases
              with each unassign command for the same contract. Creation of the contract corresponds to reassignment_counter
              equals zero.
              Required
            type: integer
            format: int64
          assignmentExclusivity:
            description: |-
              Assignment exclusivity
              Before this time (measured on the target synchronizer), only the submitter of the unassignment can initiate the assignment
              Defined for reassigning participants.
              Optional
            type: string
          witnessParties:
            description: |-
              The parties that are notified of this event.
              Required
            type: array
            items:
              type: string
          packageName:
            description: |-
              The package name of the contract.
              Required
            type: string
          offset:
            description: |-
              The offset of origin.
              Offsets are managed by the participant nodes.
              Reassignments can thus NOT be assumed to have the same offsets on different participant nodes.
              Required, it is a valid absolute offset (positive integer)
            type: integer
            format: int64
          nodeId:
            description: |-
              The position of this event in the originating reassignment.
              Node IDs are not necessarily equal across participants,
              as these may see different projections/parts of reassignments.
              Required, must be valid node ID (non-negative integer)
            type: integer
            format: int32
      UnknownFieldSet:
        title: UnknownFieldSet
        type: object
        required:
        - fields
        properties:
          fields:
            $ref: '#/components/schemas/Map_Int_Field'
      Update:
        title: Update
        oneOf:
        - type: object
          required:
          - OffsetCheckpoint
          properties:
            OffsetCheckpoint:
              $ref: '#/components/schemas/OffsetCheckpoint2'
        - type: object
          required:
          - Reassignment
          properties:
            Reassignment:
              $ref: '#/components/schemas/Reassignment'
        - type: object
          required:
          - TopologyTransaction
          properties:
            TopologyTransaction:
              $ref: '#/components/schemas/TopologyTransaction'
        - type: object
          required:
          - Transaction
          properties:
            Transaction:
              $ref: '#/components/schemas/Transaction'
      Update1:
        title: Update
        description: The update that matches the filter in the request.
        oneOf:
        - type: object
          required:
          - OffsetCheckpoint
          properties:
            OffsetCheckpoint:
              $ref: '#/components/schemas/OffsetCheckpoint3'
        - type: object
          required:
          - Reassignment
          properties:
            Reassignment:
              $ref: '#/components/schemas/Reassignment1'
        - type: object
          required:
          - TransactionTree
          properties:
            TransactionTree:
              $ref: '#/components/schemas/TransactionTree'
      UpdateFormat:
        title: UpdateFormat
        description: A format specifying what updates to include and how to render them.
        type: object
        properties:
          includeTransactions:
            $ref: '#/components/schemas/TransactionFormat'
            description: |-
              Include Daml transactions in streams.
              Optional, if unset, no transactions are emitted in the stream.
          includeReassignments:
            $ref: '#/components/schemas/EventFormat'
            description: |-
              Include (un)assignments in the stream.
              The events in the result take the shape TRANSACTION_SHAPE_ACS_DELTA.
              Optional, if unset, no (un)assignments are emitted in the stream.
          includeTopologyEvents:
            $ref: '#/components/schemas/TopologyFormat'
            description: |-
              Include topology events in streams.
              Optional, if unset no topology events are emitted in the stream.
      UpdateIdentityProviderConfigRequest:
        title: UpdateIdentityProviderConfigRequest
        type: object
        properties:
          identityProviderConfig:
            $ref: '#/components/schemas/IdentityProviderConfig'
            description: |-
              The identity provider config to update.
              Required,
              Modifiable
          updateMask:
            $ref: '#/components/schemas/FieldMask'
            description: |-
              An update mask specifies how and which properties of the ``IdentityProviderConfig`` message are to be updated.
              An update mask consists of a set of update paths.
              A valid update path points to a field or a subfield relative to the ``IdentityProviderConfig`` message.
              A valid update mask must:

              1. contain at least one update path,
              2. contain only valid update paths.

              Fields that can be updated are marked as ``Modifiable``.
              For additional information see the documentation for standard protobuf3's ``google.protobuf.FieldMask``.
              Required
      UpdateIdentityProviderConfigResponse:
        title: UpdateIdentityProviderConfigResponse
        type: object
        properties:
          identityProviderConfig:
            $ref: '#/components/schemas/IdentityProviderConfig'
            description: Updated identity provider config
      UpdatePartyDetailsRequest:
        title: UpdatePartyDetailsRequest
        description: 'Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(party_details.identity_provider_id)``'
        type: object
        properties:
          partyDetails:
            $ref: '#/components/schemas/PartyDetails'
            description: |-
              Party to be updated
              Required,
              Modifiable
          updateMask:
            $ref: '#/components/schemas/FieldMask'
            description: |-
              An update mask specifies how and which properties of the ``PartyDetails`` message are to be updated.
              An update mask consists of a set of update paths.
              A valid update path points to a field or a subfield relative to the ``PartyDetails`` message.
              A valid update mask must:

              1. contain at least one update path,
              2. contain only valid update paths.

              Fields that can be updated are marked as ``Modifiable``.
              An update path can also point to non-``Modifiable`` fields such as 'party' and 'local_metadata.resource_version'
              because they are used:

              1. to identify the party details resource subject to the update,
              2. for concurrent change control.

              An update path can also point to non-``Modifiable`` fields such as 'is_local'
              as long as the values provided in the update request match the server values.
              Examples of update paths: 'local_metadata.annotations', 'local_metadata'.
              For additional information see the documentation for standard protobuf3's ``google.protobuf.FieldMask``.
              For similar Ledger API see ``com.daml.ledger.api.v2.admin.UpdateUserRequest``.
              Required
      UpdatePartyDetailsResponse:
        title: UpdatePartyDetailsResponse
        type: object
        properties:
          partyDetails:
            $ref: '#/components/schemas/PartyDetails'
            description: Updated party details
      UpdateUserIdentityProviderIdRequest:
        title: UpdateUserIdentityProviderIdRequest
        description: 'Required authorization: ``HasRight(ParticipantAdmin)``'
        type: object
        required:
        - userId
        - sourceIdentityProviderId
        - targetIdentityProviderId
        properties:
          userId:
            description: User to update
            type: string
          sourceIdentityProviderId:
            description: Current identity provider ID of the user
            type: string
          targetIdentityProviderId:
            description: Target identity provider ID of the user
            type: string
      UpdateUserIdentityProviderIdResponse:
        title: UpdateUserIdentityProviderIdResponse
        type: object
      UpdateUserRequest:
        title: UpdateUserRequest
        description: 'Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(user.identity_provider_id)``'
        type: object
        properties:
          user:
            $ref: '#/components/schemas/User'
            description: |-
              The user to update.
              Required,
              Modifiable
          updateMask:
            $ref: '#/components/schemas/FieldMask'
            description: |-
              An update mask specifies how and which properties of the ``User`` message are to be updated.
              An update mask consists of a set of update paths.
              A valid update path points to a field or a subfield relative to the ``User`` message.
              A valid update mask must:

              1. contain at least one update path,
              2. contain only valid update paths.

              Fields that can be updated are marked as ``Modifiable``.
              An update path can also point to a non-``Modifiable`` fields such as 'id' and 'metadata.resource_version'
              because they are used:

              1. to identify the user resource subject to the update,
              2. for concurrent change control.

              Examples of valid update paths: 'primary_party', 'metadata', 'metadata.annotations'.
              For additional information see the documentation for standard protobuf3's ``google.protobuf.FieldMask``.
              For similar Ledger API see ``com.daml.ledger.api.v2.admin.UpdatePartyDetailsRequest``.
              Required
      UpdateUserResponse:
        title: UpdateUserResponse
        type: object
        properties:
          user:
            $ref: '#/components/schemas/User'
            description: Updated user
      UploadDarFileResponse:
        title: UploadDarFileResponse
        description: A message that is received when the upload operation succeeded.
        type: object
      User:
        title: User
        description: |2-
           Users and rights
          /////////////////
           Users are used to dynamically manage the rights given to Daml applications.
           They are stored and managed per participant node.
        type: object
        required:
        - id
        - primaryParty
        - isDeactivated
        - identityProviderId
        properties:
          id:
            description: |-
              The user identifier, which must be a non-empty string of at most 128
              characters that are either alphanumeric ASCII characters or one of the symbols "@^$.!`-#+'~_|:".
              Required
            type: string
          primaryParty:
            description: |-
              The primary party as which this user reads and acts by default on the ledger
              *provided* it has the corresponding ``CanReadAs(primary_party)`` or
              ``CanActAs(primary_party)`` rights.
              Ledger API clients SHOULD set this field to a non-empty value for all users to
              enable the users to act on the ledger using their own Daml party.
              Users for participant administrators MAY have an associated primary party.
              Optional,
              Modifiable
            type: string
          isDeactivated:
            description: |-
              When set, then the user is denied all access to the Ledger API.
              Otherwise, the user has access to the Ledger API as per the user's rights.
              Optional,
              Modifiable
            type: boolean
          metadata:
            $ref: '#/components/schemas/ObjectMeta'
            description: |-
              The metadata of this user.
              Note that the ``metadata.resource_version`` tracks changes to the properties described by the ``User`` message and not the user's rights.
              Optional,
              Modifiable
          identityProviderId:
            description: |-
              The ID of the identity provider configured by ``Identity Provider Config``
              Optional, if not set, assume the user is managed by the default identity provider.
            type: string
      UserManagementFeature:
        title: UserManagementFeature
        type: object
        required:
        - supported
        - maxRightsPerUser
        - maxUsersPageSize
        properties:
          supported:
            description: Whether the Ledger API server provides the user management
              service.
            type: boolean
          maxRightsPerUser:
            description: |-
              The maximum number of rights that can be assigned to a single user.
              Servers MUST support at least 100 rights per user.
              A value of 0 means that the server enforces no rights per user limit.
            type: integer
            format: int32
          maxUsersPageSize:
            description: |-
              The maximum number of users the server can return in a single response (page).
              Servers MUST support at least a 100 users per page.
              A value of 0 means that the server enforces no page size limit.
            type: integer
            format: int32
      WildcardFilter:
        title: WildcardFilter
        description: This filter matches all templates.
        type: object
        required:
        - value
        properties:
          value:
            $ref: '#/components/schemas/WildcardFilter1'
      WildcardFilter1:
        title: WildcardFilter
        description: This filter matches all templates.
        type: object
        required:
        - includeCreatedEventBlob
        properties:
          includeCreatedEventBlob:
            description: |-
              Whether to include a ``created_event_blob`` in the returned ``CreatedEvent``.
              Use this to access the contract create event payload in your API client
              for submitting it as a disclosed contract with future commands.
              Optional
            type: boolean
    securitySchemes:
      apiKeyAuth:
        type: apiKey
        description: Ledger API standard JWT token (websocket)
        name: Sec-WebSocket-Protocol
        in: header
      httpAuth:
        type: http
        description: Ledger API standard JWT token
        scheme: bearer

:lines: 2000-