diff --git a/api-specs/ledger-api/3.4.0/openapi.yaml b/api-specs/ledger-api/3.4.0/openapi.yaml deleted file mode 100644 index a462ecf00..000000000 --- a/api-specs/ledger-api/3.4.0/openapi.yaml +++ /dev/null @@ -1,6833 +0,0 @@ -openapi: 3.0.3 -info: - title: JSON Ledger API HTTP endpoints - version: 3.4.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 (deprecated: use submit-and-wait-for-transaction instead)' - 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) - Notice: This endpoint should be used for small results set. - When number of results exceeded node configuration limit (`http-list-max-elements-limit`) - there will be an error (`413 Content Too Large`) returned. - Increasing this limit may lead to performance issues and high memory consumption. - Consider using websockets (asyncapi) for better efficiency with larger results. - 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 - parameters: - - name: vetAllPackages - in: query - required: false - schema: - type: boolean - 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: query parameter - vetAllPackages, 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/package-vetting: - get: - description: List vetted packages - operationId: getV2Package-vetting - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ListVettedPackagesRequest' - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ListVettedPackagesResponse' - '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: [] - post: - description: Update vetted packages - operationId: postV2Package-vetting - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateVettedPackagesRequest' - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateVettedPackagesResponse' - '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: - 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). - Querying active contracts is an expensive operation and if possible should not be repeated often. - Consider querying active contracts initially (for a given offset) - and then repeatedly call one of `/v2/updates/...`endpoints to get subsequent modifications. - You can also use websockets to get updates with better performance. - - Notice: This endpoint should be used for small results set. - When number of results exceeded node configuration limit (`http-list-max-elements-limit`) - there will be an error (`413 Content Too Large`) returned. - Increasing this limit may lead to performance issues and high memory consumption. - Consider using websockets (asyncapi) for better efficiency with larger results. - 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 - - name: identityProviderId - 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: query parameter identityProviderId, - 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: - post: - description: |- - Query updates list (blocking call) - Notice: This endpoint should be used for small results set. - When number of results exceeded node configuration limit (`http-list-max-elements-limit`) - there will be an error (`413 Content Too Large`) returned. - Increasing this limit may lead to performance issues and high memory consumption. - Consider using websockets (asyncapi) for better efficiency with larger results. - operationId: postV2Updates - 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/flats: - post: - description: |- - Query flat transactions update list (blocking call, deprecated: use v2/updates instead) - Notice: This endpoint should be used for small results set. - When number of results exceeded node configuration limit (`http-list-max-elements-limit`) - there will be an error (`413 Content Too Large`) returned. - Increasing this limit may lead to performance issues and high memory consumption. - Consider using websockets (asyncapi) for better efficiency with larger results. - 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, deprecated: use v2/updates instead) - Notice: This endpoint should be used for small results set. - When number of results exceeded node configuration limit (`http-list-max-elements-limit`) - there will be an error (`413 Content Too Large`) returned. - Increasing this limit may lead to performance issues and high memory consumption. - Consider using websockets (asyncapi) for better efficiency with larger results. - 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 (deprecated: use v2/updates/update-by-offset - instead)' - 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 (deprecated: use v2/updates/update-by-offset - instead)' - 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 (deprecated: use v2/updates/update-by-id - instead)' - 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 (deprecated: use v2/updates/update-by-id - instead)' - 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 - - name: identity-provider-id - in: query - required: false - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/GetUserResponse' - '400': - description: 'Invalid value for: query parameter identity-provider-id, 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/authenticated-user: - get: - description: Get current user details (uses user for JWT). - operationId: getV2Authenticated-user - parameters: - - name: identity-provider-id - in: query - required: false - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/GetUserResponse' - '400': - description: 'Invalid value for: query parameter identity-provider-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/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/executeAndWait: - post: - description: Execute a signed transaction and wait for its completion - operationId: postV2Interactive-submissionExecuteandwait - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/JsExecuteSubmissionAndWaitRequest' - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ExecuteSubmissionAndWaitResponse' - '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/executeAndWaitForTransaction: - post: - description: Execute a signed transaction and wait for the transaction response - operationId: postV2Interactive-submissionExecuteandwaitfortransaction - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/JsExecuteSubmissionAndWaitForTransactionRequest' - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/JsExecuteSubmissionAndWaitForTransactionResponse' - '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: - post: - description: Get the version of preferred packages for constructing a command - submission - operationId: postV2Interactive-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 - - synchronizerId - - userId - 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 - synchronizerId: - description: |- - The synchronizer, on which the party should be allocated. - For backwards compatibility, this field may be omitted, if the participant is connected to only one synchronizer. - Otherwise a synchronizer must be specified. - Optional - type: string - userId: - description: |- - The user who will get the act_as rights to the newly allocated party. - If set to an empty string (the default), no user will get rights to the party. - Optional - 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: |- - Identifies the template that defines the choice that archived the contract. - This template's package-id may differ from the target contract's package-id - if the target contract has been upgraded or downgraded. - - 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: - - reassignmentId - - source - - target - properties: - reassignmentId: - 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 - CanExecuteAs: - title: CanExecuteAs - type: object - required: - - value - properties: - value: - $ref: '#/components/schemas/CanExecuteAs1' - CanExecuteAs1: - title: CanExecuteAs - type: object - required: - - party - properties: - party: - type: string - CanExecuteAsAnyParty: - title: CanExecuteAsAnyParty - type: object - required: - - value - properties: - value: - $ref: '#/components/schemas/CanExecuteAsAnyParty1' - CanExecuteAsAnyParty1: - title: CanExecuteAsAnyParty - type: object - 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/JsStatus' - 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 - enum: - - PARTICIPANT_PERMISSION_UNSPECIFIED - - PARTICIPANT_PERMISSION_SUBMISSION - - PARTICIPANT_PERMISSION_CONFIRMATION - - PARTICIPANT_PERMISSION_OBSERVATION - 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 - - representativePackageId - - acsDelta - 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 ``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 witnesses of the event - (the stakeholders of the contract and all informees of all the ancestors - of this create action that this participant knows about). - 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 - representativePackageId: - description: |- - A package-id present in the participant package store that typechecks the contract's argument. - This may differ from the package-id of the template used to create the contract. - For contracts created before Canton 3.4, this field matches the contract's creation package-id. - - NOTE: Experimental, server internal concept, not for client consumption. Subject to change without notice. - - Required - type: string - acsDelta: - description: |- - Whether this event would be part of respective ACS_DELTA shaped stream, - and should therefore considered when tracking contract activeness on the client-side. - Required - type: boolean - 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 - 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/Empty9' - 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 - Empty8: - title: Empty - type: object - Empty9: - 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 - ExecuteSubmissionAndWaitResponse: - title: ExecuteSubmissionAndWaitResponse - 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 - 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 or interface of the 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. - To exercise a choice on an interface, specify the interface identifier in the template_id field. - - 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 - - acsDelta - 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: |- - Identifies the template that defines the executed choice. - This template's package-id may differ from the target contract's package-id - if the target contract has been upgraded or downgraded. - - 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, - the actors and all informees of all the ancestors of this event this - participant knows about. - If not consuming, the witnesses are the union of the signatories, - the actors and all informees of all the ancestors of this event this - participant knows about. - In both cases the witnesses are limited to the querying parties, or not - limited in case anyParty filters are used. - Note that the actors might not necessarily be observers - and thus stakeholders. 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 - acsDelta: - description: |- - Whether this event would be part of respective ACS_DELTA shaped stream, - and should therefore considered when tracking contract activeness on the client-side. - Required - type: boolean - 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 - packageFeature: - $ref: '#/components/schemas/PackageFeature' - description: |- - If set, then the Ledger API server supports package listing - configurability. It is recommended that clients query this field to - gracefully adjust their behavior to maximum package listing page size. - 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.5.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.5.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 - eventFormat: - $ref: '#/components/schemas/EventFormat' - description: |- - Format of the events in the result, the presentation will be of TRANSACTION_SHAPE_ACS_DELTA. - Required - 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 - enum: - - PACKAGE_STATUS_UNSPECIFIED - - PACKAGE_STATUS_REGISTERED - 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 should be used for resolving this query. - If not specified, the vetting states of all synchronizers to which the participant is connected are 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. - - If you build command submissions whose content depends on the returned - preferred packages, then we recommend submitting the preferred package-ids - in the ``package_id_selection_preference`` of the command submission to - avoid race conditions with concurrent changes of the on-ledger package vetting state. - - 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.5.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.5.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``). - 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: |- - 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.5.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.5.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``). - 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: |- - 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.5.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.5.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 - - reassignmentId - - 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 - reassignmentId: - description: |- - The ID from the unassigned event. - For correlation capabilities. - 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 - - reassignmentId - - submitter - - reassignmentCounter - - createdEvent - properties: - source: - type: string - target: - type: string - reassignmentId: - 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 - prefetchContractKeys: - description: |- - Fetches the contract keys into the caches to speed up the command processing. - Should only contain contract keys that are expected to be resolved during interpretation of the commands. - Keys of disclosed contracts do not need prefetching. - - Optional - type: array - items: - $ref: '#/components/schemas/PrefetchContractKey' - 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 - JsExecuteSubmissionAndWaitForTransactionRequest: - title: JsExecuteSubmissionAndWaitForTransactionRequest - 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`. - Required - 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. - Required - 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] - Optional - type: string - hashingSchemeVersion: - description: |- - The hashing scheme version used when building the hash - Required - type: string - enum: - - HASHING_SCHEME_VERSION_UNSPECIFIED - - HASHING_SCHEME_VERSION_V2 - 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 - 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. - When the ``transaction_shape`` TRANSACTION_SHAPE_ACS_DELTA shape is used (explicitly or is defaulted to as explained above), - events will only be returned if the submitting party is hosted on this node. - Optional - JsExecuteSubmissionAndWaitForTransactionResponse: - title: JsExecuteSubmissionAndWaitForTransactionResponse - 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 - JsExecuteSubmissionAndWaitRequest: - title: JsExecuteSubmissionAndWaitRequest - 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`. - Required - 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. - Required - 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] - Optional - type: string - hashingSchemeVersion: - description: |- - The hashing scheme version used when building the hash - Required - type: string - enum: - - HASHING_SCHEME_VERSION_UNSPECIFIED - - HASHING_SCHEME_VERSION_V2 - 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 - 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`. - Required - 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. - Required - 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] - Optional - type: string - hashingSchemeVersion: - description: |- - The hashing scheme version used when building the hash - Required - type: string - enum: - - HASHING_SCHEME_VERSION_UNSPECIFIED - - HASHING_SCHEME_VERSION_V2 - 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.5.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.5.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.5.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 - successfully 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. - Optional - 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. - Limitation: Only single command transaction are currently supported by the API. - The field is marked as repeated in preparation for future support of multiple commands. - 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 - Optional - 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. - Optional, default to false - type: boolean - prefetchContractKeys: - description: |- - Fetches the contract keys into the caches to speed up the command processing. - Should only contain contract keys that are expected to be resolved during interpretation of the commands. - Keys of disclosed contracts do not need prefetching. - - Optional - type: array - items: - $ref: '#/components/schemas/PrefetchContractKey' - 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 - enum: - - HASHING_SCHEME_VERSION_UNSPECIFIED - - HASHING_SCHEME_VERSION_V2 - 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 - - synchronizerId - 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 - synchronizerId: - description: |- - A valid synchronizer id. - Identifies the synchronizer that synchronized this Reassignment. - 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.5.0. - type: object - required: - - transactionTree - properties: - transactionTree: - $ref: '#/components/schemas/JsTransactionTree' - JsTopologyTransaction: - title: JsTopologyTransaction - type: object - required: - - updateId - - offset - - synchronizerId - properties: - updateId: - description: |- - Assigned by the server. Useful for correlating logs. - Must be a valid LedgerString (as described in ``value.proto``). - 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 - synchronizerId: - description: |- - A valid synchronizer id. - Identifies the synchronizer that synchronized the topology transaction. - Required - type: string - 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 - events: - description: |- - A non-empty list of topology events. - Required - type: array - items: - $ref: '#/components/schemas/TopologyEvent' - 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. - 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 - externalTransactionHash: - description: |- - For transaction externally signed, contains the external transaction hash - signed by the external party. Can be used to correlate an external submission with a committed transaction. - Optional - type: string - JsTransactionTree: - title: JsTransactionTree - description: |- - Provided for backwards compatibility, it will be removed in the Canton version 3.5.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: - - CanExecuteAs - properties: - CanExecuteAs: - $ref: '#/components/schemas/CanExecuteAs' - - type: object - required: - - CanExecuteAsAnyParty - properties: - CanExecuteAsAnyParty: - $ref: '#/components/schemas/CanExecuteAsAnyParty' - - 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/Empty7' - - 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 - ListVettedPackagesRequest: - title: ListVettedPackagesRequest - type: object - properties: - packageMetadataFilter: - $ref: '#/components/schemas/PackageMetadataFilter' - description: |- - The package metadata filter the returned vetted packages set must satisfy. - Optional. - topologyStateFilter: - $ref: '#/components/schemas/TopologyStateFilter' - description: |- - The topology filter the returned vetted packages set must satisfy. - Optional. - pageToken: - description: |- - Pagination token to determine the specific page to fetch. Using the token - guarantees that ``VettedPackages`` on a subsequent page are all greater - (``VettedPackages`` are sorted by synchronizer ID then participant ID) than - the last ``VettedPackages`` on a previous page. - - The server does not store intermediate results between calls chained by a - series of page tokens. As a consequence, if new vetted packages are being - added and a page is requested twice using the same token, more packages can - be returned on the second call. - - Leave empty to fetch the first page. - - Optional - type: string - pageSize: - description: |- - Maximum number of ``VettedPackages`` results to return in a single page. - - If the page_size is unspecified, the server will decide the number of - results to be returned. - - If the page_size exceeds the maximum supported by the server, an - error will be returned. - - To obtain the server's maximum consult the PackageService descriptor - available in the VersionService. - - Optional - type: integer - format: int32 - ListVettedPackagesResponse: - title: ListVettedPackagesResponse - type: object - properties: - vettedPackages: - description: |- - All ``VettedPackages`` that contain at least one ``VettedPackage`` matching - both a ``PackageMetadataFilter`` and a ``TopologyStateFilter``. - Sorted by synchronizer_id then participant_id. - type: array - items: - $ref: '#/components/schemas/VettedPackages' - 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 - Operation: - title: Operation - oneOf: - - type: object - required: - - Empty - properties: - Empty: - $ref: '#/components/schemas/Empty5' - - type: object - required: - - Unvet - properties: - Unvet: - $ref: '#/components/schemas/Unvet' - - type: object - required: - - Vet - properties: - Vet: - $ref: '#/components/schemas/Vet' - PackageFeature: - title: PackageFeature - type: object - required: - - maxVettedPackagesPageSize - properties: - maxVettedPackagesPageSize: - description: |- - The maximum number of vetted packages the server can return in a single - response (page) when listing them. - type: integer - format: int32 - PackageMetadataFilter: - title: PackageMetadataFilter - description: |- - Filter the VettedPackages by package metadata. - - A PackageMetadataFilter without package_ids and without package_name_prefixes - matches any vetted package. - - Non-empty fields specify candidate values of which at least one must match. - If both fields are set, then a candidate is returned if it matches one of the fields. - type: object - properties: - packageIds: - description: |- - If this list is non-empty, any vetted package with a package ID in this - list will match the filter. - type: array - items: - type: string - packageNamePrefixes: - description: |- - If this list is non-empty, any vetted package with a name matching at least - one prefix in this list will match the filter. - type: array - items: - type: string - 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: - - value - properties: - value: - $ref: '#/components/schemas/ParticipantAuthorizationAdded1' - ParticipantAuthorizationAdded1: - title: ParticipantAuthorizationAdded - type: object - required: - - partyId - - participantId - - participantPermission - properties: - partyId: - description: Required - type: string - participantId: - description: Required - type: string - participantPermission: - description: Required - type: string - enum: - - PARTICIPANT_PERMISSION_UNSPECIFIED - - PARTICIPANT_PERMISSION_SUBMISSION - - PARTICIPANT_PERMISSION_CONFIRMATION - - PARTICIPANT_PERMISSION_OBSERVATION - ParticipantAuthorizationChanged: - title: ParticipantAuthorizationChanged - type: object - required: - - value - properties: - value: - $ref: '#/components/schemas/ParticipantAuthorizationChanged1' - ParticipantAuthorizationChanged1: - title: ParticipantAuthorizationChanged - type: object - required: - - partyId - - participantId - - participantPermission - properties: - partyId: - description: Required - type: string - participantId: - description: Required - type: string - participantPermission: - description: Required - type: string - enum: - - PARTICIPANT_PERMISSION_UNSPECIFIED - - PARTICIPANT_PERMISSION_SUBMISSION - - PARTICIPANT_PERMISSION_CONFIRMATION - - PARTICIPANT_PERMISSION_OBSERVATION - ParticipantAuthorizationRevoked: - title: ParticipantAuthorizationRevoked - type: object - required: - - value - properties: - value: - $ref: '#/components/schemas/ParticipantAuthorizationRevoked1' - ParticipantAuthorizationRevoked1: - 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 - Required - type: array - items: - $ref: '#/components/schemas/SinglePartySignatures' - PrefetchContractKey: - title: PrefetchContractKey - description: Preload contracts - type: object - required: - - contractKey - properties: - templateId: - description: |- - The template of contract the client wants to prefetch. - 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 prefetch. - Required - 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 - enum: - - SIGNATURE_FORMAT_UNSPECIFIED - - SIGNATURE_FORMAT_RAW - - SIGNATURE_FORMAT_DER - - SIGNATURE_FORMAT_CONCAT - - SIGNATURE_FORMAT_SYMBOLIC - 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 - enum: - - SIGNING_ALGORITHM_SPEC_UNSPECIFIED - - SIGNING_ALGORITHM_SPEC_ED25519 - - SIGNING_ALGORITHM_SPEC_EC_DSA_SHA_256 - - SIGNING_ALGORITHM_SPEC_EC_DSA_SHA_384 - SinglePartySignatures: - title: SinglePartySignatures - description: Signatures provided by a single party - type: object - required: - - party - properties: - party: - description: |- - Submitting party - Required - type: string - signatures: - description: |- - Signatures - Required - type: array - items: - $ref: '#/components/schemas/Signature' - 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/Empty8' - - type: object - required: - - MinLedgerTimeAbs - properties: - MinLedgerTimeAbs: - $ref: '#/components/schemas/MinLedgerTimeAbs' - - type: object - required: - - MinLedgerTimeRel - properties: - MinLedgerTimeRel: - $ref: '#/components/schemas/MinLedgerTimeRel' - TopologyEvent: - title: TopologyEvent - type: object - required: - - event - properties: - event: - $ref: '#/components/schemas/TopologyEventEvent' - TopologyEventEvent: - title: TopologyEventEvent - oneOf: - - type: object - required: - - Empty - properties: - Empty: - $ref: '#/components/schemas/Empty6' - - 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. - TopologyStateFilter: - title: TopologyStateFilter - description: |- - Filter the vetted packages by the participant and synchronizer that they are - hosted on. - - Empty fields are ignored, such that a ``TopologyStateFilter`` without - participant_ids and without synchronizer_ids matches a vetted package hosted - on any participant and synchronizer. - - Non-empty fields specify candidate values of which at least one must match. - If both fields are set then at least one candidate value must match from each - field. - type: object - properties: - participantIds: - description: |- - If this list is non-empty, only vetted packages hosted on participants - listed in this field match the filter. - Query the current Ledger API's participant's ID via the public - ``GetParticipantId`` command in ``PartyManagementService``. - type: array - items: - type: string - synchronizerIds: - description: |- - If this list is non-empty, only vetted packages from the topology state of - the synchronizers in this list match the filter. - type: array - items: - type: string - 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.5.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. - 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 - enum: - - TRANSACTION_SHAPE_UNSPECIFIED - - TRANSACTION_SHAPE_ACS_DELTA - - TRANSACTION_SHAPE_LEDGER_EFFECTS - TransactionTree: - title: TransactionTree - description: |- - Provided for backwards compatibility, it will be removed in the Canton version 3.5.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.5.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: - - reassignmentId - - contractId - - source - - target - - submitter - - reassignmentCounter - - packageName - - offset - - nodeId - properties: - reassignmentId: - description: |- - The ID of the unassignment. This needs to be used as an input for a assign ReassignmentCommand. - 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' - Unvet: - title: Unvet - type: object - required: - - value - properties: - value: - $ref: '#/components/schemas/Unvet1' - Unvet1: - title: Unvet - type: object - properties: - packages: - type: array - items: - $ref: '#/components/schemas/VettedPackagesRef' - 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 - UpdateVettedPackagesRequest: - title: UpdateVettedPackagesRequest - type: object - required: - - dryRun - - synchronizerId - properties: - changes: - description: |- - Changes to apply to the current vetting state of the participant on the - specified synchronizer. The changes are applied in order. - Any package not changed will keep their previous vetting state. - type: array - items: - $ref: '#/components/schemas/VettedPackagesChange' - dryRun: - description: |- - If dry_run is true, then the changes are only prepared, but not applied. If - a request would trigger an error when run (e.g. TOPOLOGY_DEPENDENCIES_NOT_VETTED), - it will also trigger an error when dry_run. - - Use this flag to preview a change before applying it. - type: boolean - synchronizerId: - description: |- - The sychronizer on which the ``VettedPackages`` of this participant node - should be changed. - type: string - expectedTopologySerial: - description: |- - The serial of the last ``VettedPackages`` topology transaction of this - participant and on this synchronizer. - - Execution of the request fails if this is not correct. If the serial is - left unspecified, the request always succeeds. - - Use this to guard against concurrent changes. - type: integer - format: int32 - UpdateVettedPackagesResponse: - title: UpdateVettedPackagesResponse - type: object - properties: - pastVettedPackages: - $ref: '#/components/schemas/VettedPackages' - description: |- - All vetted packages on this participant and synchronizer, before the - specified changes. Empty if no vetting state existed beforehand. - newVettedPackages: - $ref: '#/components/schemas/VettedPackages' - description: All vetted packages on this participant and synchronizer, after - the specified changes. - 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 - Vet: - title: Vet - type: object - required: - - value - properties: - value: - $ref: '#/components/schemas/Vet1' - Vet1: - title: Vet - type: object - properties: - packages: - type: array - items: - $ref: '#/components/schemas/VettedPackagesRef' - newValidFromInclusive: - type: string - newValidUntilExclusive: - type: string - VettedPackage: - title: VettedPackage - description: |- - A package that is vetting on a given participant and synchronizer, - modelled after ``VettedPackage`` in `topology.proto `_, - enriched with the package name and version. - type: object - required: - - packageId - properties: - packageId: - description: Package ID of this package. Always present. - type: string - validFromInclusive: - description: |- - The time from which this package is vetted. Empty if vetting time has no - lower bound. - type: string - validUntilExclusive: - description: |- - The time until which this package is vetted. Empty if vetting time has no - upper bound. - type: string - packageName: - description: |- - Name of this package. - Only available if the package has been uploaded to the current participant. - type: string - packageVersion: - description: |- - Version of this package. - Only available if the package has been uploaded to the current participant. - type: string - VettedPackages: - title: VettedPackages - description: |- - The list of packages vetted on a given participant and synchronizer, modelled - after ``VettedPackages`` in `topology.proto `_. - The list only contains packages that matched a filter in the query that - originated it. - type: object - required: - - participantId - - synchronizerId - - topologySerial - properties: - packages: - description: |- - Sorted by package_name and package_version where known, and package_id as a - last resort. - type: array - items: - $ref: '#/components/schemas/VettedPackage' - participantId: - description: Participant on which these packages are vetted. Always present. - type: string - synchronizerId: - description: Synchronizer on which these packages are vetted. Always present. - type: string - topologySerial: - description: |- - Serial of last ``VettedPackages`` topology transaction of this participant - and on this synchronizer. - type: integer - format: int32 - VettedPackagesChange: - title: VettedPackagesChange - description: A change to the set of vetted packages. - type: object - required: - - operation - properties: - operation: - $ref: '#/components/schemas/Operation' - VettedPackagesRef: - title: VettedPackagesRef - description: |- - A reference to identify one or more packages. - - A reference matches a package if its ``package_id`` matches the package's ID, - its ``package_name`` matches the package's name, and its ``package_version`` - matches the package's version. If any attribute is left unspecified in the - reference, it is treated as a wildcard. At a minimum, ``package_id`` or the - ``package_name`` must be specified. - - If a reference does not match any package, the reference is considered - unresolved and the entire update request is rejected. - type: object - properties: - packageId: - description: Package's package id must be the same as this field. - type: string - packageName: - description: Package's name must be the same as this field. - type: string - packageVersion: - description: Package's version must be the same as this field. - type: string - 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 diff --git a/api-specs/ledger-api/3.4.7/openapi.yaml b/api-specs/ledger-api/3.4.7/openapi.yaml deleted file mode 100644 index 80d2adecb..000000000 --- a/api-specs/ledger-api/3.4.7/openapi.yaml +++ /dev/null @@ -1,7318 +0,0 @@ -openapi: 3.0.3 -info: - title: JSON Ledger API HTTP endpoints - version: 3.4.7 -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. - Provided for backwards compatibility, it will be removed in the Canton version - 3.5.0, use submit-and-wait-for-transaction instead. - 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' - deprecated: true - 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) - Notice: This endpoint should be used for small results set. - When number of results exceeded node configuration limit (`http-list-max-elements-limit`) - there will be an error (`413 Content Too Large`) returned. - Increasing this limit may lead to performance issues and high memory consumption. - Consider using websockets (asyncapi) for better efficiency with larger results. - 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/dars/validate: - post: - description: Validates a DAR for upgrade-compatibility against the current vetting - state on the target synchronizer - operationId: postV2DarsValidate - parameters: - - name: synchronizerId - in: query - required: false - schema: - type: string - requestBody: - content: - application/octet-stream: - schema: - type: string - format: binary - required: true - responses: - '200': - description: '' - '400': - description: 'Invalid value for: body, Invalid value for: query parameter - synchronizerId, Invalid value for: headers' - content: - text/plain: - schema: - type: string - default: - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/JsCantonError' - security: - - httpAuth: [] - - apiKeyAuth: [] - /v2/dars: - post: - description: Upload a DAR to the participant node - operationId: postV2Dars - parameters: - - name: vetAllPackages - in: query - required: false - schema: - type: boolean - - name: synchronizerId - in: query - required: false - schema: - type: string - 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: query parameter - vetAllPackages, Invalid value for: query parameter synchronizerId, 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. Behaves the same as /dars. - This endpoint will be deprecated and removed in a future release. - operationId: postV2Packages - parameters: - - name: vetAllPackages - in: query - required: false - schema: - type: boolean - - name: synchronizerId - in: query - required: false - schema: - type: string - 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: query parameter - vetAllPackages, Invalid value for: query parameter synchronizerId, 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/package-vetting: - get: - description: List vetted packages - operationId: getV2Package-vetting - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ListVettedPackagesRequest' - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ListVettedPackagesResponse' - '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: [] - post: - description: Update vetted packages - operationId: postV2Package-vetting - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateVettedPackagesRequest' - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateVettedPackagesResponse' - '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: - 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/external/allocate: - post: - description: Allocate a new external party - operationId: postV2PartiesExternalAllocate - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/AllocateExternalPartyRequest' - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/AllocateExternalPartyResponse' - '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/parties/external/generate-topology: - post: - description: Generate a topology for an external party - operationId: postV2PartiesExternalGenerate-topology - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/GenerateExternalPartyTopologyRequest' - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/GenerateExternalPartyTopologyResponse' - '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). - Querying active contracts is an expensive operation and if possible should not be repeated often. - Consider querying active contracts initially (for a given offset) - and then repeatedly call one of `/v2/updates/...`endpoints to get subsequent modifications. - You can also use websockets to get updates with better performance. - - Notice: This endpoint should be used for small results set. - When number of results exceeded node configuration limit (`http-list-max-elements-limit`) - there will be an error (`413 Content Too Large`) returned. - Increasing this limit may lead to performance issues and high memory consumption. - Consider using websockets (asyncapi) for better efficiency with larger results. - 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: false - schema: - type: string - - name: participantId - in: query - required: false - schema: - type: string - - name: identityProviderId - 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: query parameter identityProviderId, - 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: - post: - description: |- - Query updates list (blocking call) - Notice: This endpoint should be used for small results set. - When number of results exceeded node configuration limit (`http-list-max-elements-limit`) - there will be an error (`413 Content Too Large`) returned. - Increasing this limit may lead to performance issues and high memory consumption. - Consider using websockets (asyncapi) for better efficiency with larger results. - operationId: postV2Updates - 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/flats: - post: - description: |- - Query flat transactions update list (blocking call). Provided for backwards compatibility, it will be removed in the Canton version 3.5.0, use v2/updates instead. - Notice: This endpoint should be used for small results set. - When number of results exceeded node configuration limit (`http-list-max-elements-limit`) - there will be an error (`413 Content Too Large`) returned. - Increasing this limit may lead to performance issues and high memory consumption. - Consider using websockets (asyncapi) for better efficiency with larger results. - 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' - deprecated: true - security: - - httpAuth: [] - - apiKeyAuth: [] - /v2/updates/trees: - post: - description: |- - Query update transactions tree list (blocking call). Provided for backwards compatibility, it will be removed in the Canton version 3.5.0, use v2/updates instead. - Notice: This endpoint should be used for small results set. - When number of results exceeded node configuration limit (`http-list-max-elements-limit`) - there will be an error (`413 Content Too Large`) returned. - Increasing this limit may lead to performance issues and high memory consumption. - Consider using websockets (asyncapi) for better efficiency with larger results. - 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' - deprecated: true - security: - - httpAuth: [] - - apiKeyAuth: [] - /v2/updates/transaction-tree-by-offset/{offset}: - get: - description: Get transaction tree by offset. Provided for backwards compatibility, - it will be removed in the Canton version 3.5.0, use v2/updates/update-by-offset - instead. - 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' - deprecated: true - security: - - httpAuth: [] - - apiKeyAuth: [] - /v2/updates/transaction-by-offset: - post: - description: Get transaction by offset. Provided for backwards compatibility, - it will be removed in the Canton version 3.5.0, use v2/updates/update-by-offset - instead. - 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' - deprecated: true - 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. Provided for backwards compatibility, it - will be removed in the Canton version 3.5.0, use v2/updates/update-by-id instead. - 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' - deprecated: true - 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. Provided for backwards compatibility, - it will be removed in the Canton version 3.5.0, use v2/updates/update-by-id - instead. - 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' - deprecated: true - 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 - - name: identity-provider-id - in: query - required: false - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/GetUserResponse' - '400': - description: 'Invalid value for: query parameter identity-provider-id, 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/authenticated-user: - get: - description: Get current user details (uses user for JWT). - operationId: getV2Authenticated-user - parameters: - - name: identity-provider-id - in: query - required: false - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/GetUserResponse' - '400': - description: 'Invalid value for: query parameter identity-provider-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/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/executeAndWait: - post: - description: Execute a signed transaction and wait for its completion - operationId: postV2Interactive-submissionExecuteandwait - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/JsExecuteSubmissionAndWaitRequest' - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ExecuteSubmissionAndWaitResponse' - '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/executeAndWaitForTransaction: - post: - description: Execute a signed transaction and wait for the transaction response - operationId: postV2Interactive-submissionExecuteandwaitfortransaction - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/JsExecuteSubmissionAndWaitForTransactionRequest' - required: true - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/JsExecuteSubmissionAndWaitForTransactionResponse' - '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: - post: - description: Get the version of preferred packages for constructing a command - submission - operationId: postV2Interactive-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: - AllocateExternalPartyRequest: - title: AllocateExternalPartyRequest - description: 'Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(identity_provider_id)``' - type: object - required: - - synchronizer - - identityProviderId - properties: - synchronizer: - description: |- - TODO(#27670) support synchronizer aliases - Synchronizer ID on which to onboard the party - Required - type: string - onboardingTransactions: - description: |- - TopologyTransactions to onboard the external party - Can contain: - - A namespace for the party. - This can be either a single NamespaceDelegation, - or DecentralizedNamespaceDefinition along with its authorized namespace owners in the form of NamespaceDelegations. - May be provided, if so it must be fully authorized by the signatures in this request combined with the existing topology state. - - A PartyToKeyMapping to register the party's signing keys. - May be provided, if so it must be fully authorized by the signatures in this request combined with the existing topology state. - - A PartyToParticipant to register the hosting relationship of the party. - Must be provided. - Required - type: array - items: - $ref: '#/components/schemas/SignedTransaction' - multiHashSignatures: - description: |- - Optional signatures of the combined hash of all onboarding_transactions - This may be used instead of providing signatures on each individual transaction - type: array - items: - $ref: '#/components/schemas/Signature' - identityProviderId: - description: |- - The id of the ``Identity Provider`` - If not set, assume the party is managed by the default identity provider. - Optional - type: string - AllocateExternalPartyResponse: - title: AllocateExternalPartyResponse - type: object - required: - - partyId - properties: - partyId: - description: '' - type: string - AllocatePartyRequest: - title: AllocatePartyRequest - description: 'Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(identity_provider_id)``' - type: object - required: - - partyIdHint - - identityProviderId - - synchronizerId - - userId - 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 - synchronizerId: - description: |- - The synchronizer, on which the party should be allocated. - For backwards compatibility, this field may be omitted, if the participant is connected to only one synchronizer. - Otherwise a synchronizer must be specified. - Optional - type: string - userId: - description: |- - The user who will get the act_as rights to the newly allocated party. - If set to an empty string (the default), no user will get rights to the party. - Optional - 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: |- - Identifies the template that defines the choice that archived the contract. - This template's package-id may differ from the target contract's package-id - if the target contract has been upgraded or downgraded. - - 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: - - reassignmentId - - source - - target - properties: - reassignmentId: - 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 - CanExecuteAs: - title: CanExecuteAs - type: object - required: - - value - properties: - value: - $ref: '#/components/schemas/CanExecuteAs1' - CanExecuteAs1: - title: CanExecuteAs - type: object - required: - - party - properties: - party: - type: string - CanExecuteAsAnyParty: - title: CanExecuteAsAnyParty - type: object - required: - - value - properties: - value: - $ref: '#/components/schemas/CanExecuteAsAnyParty1' - CanExecuteAsAnyParty1: - title: CanExecuteAsAnyParty - type: object - 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/JsStatus' - 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 - enum: - - PARTICIPANT_PERMISSION_UNSPECIFIED - - PARTICIPANT_PERMISSION_SUBMISSION - - PARTICIPANT_PERMISSION_CONFIRMATION - - PARTICIPANT_PERMISSION_OBSERVATION - CostEstimation: - title: CostEstimation - description: |- - Estimation of the cost of submitting the prepared transaction - The estimation is done against the synchronizer chosen during preparation of the transaction - (or the one explicitly requested). - The cost of re-assigning contracts to another synchronizer when necessary is not included in the estimation. - type: object - required: - - confirmationRequestTrafficCostEstimation - - confirmationResponseTrafficCostEstimation - - totalTrafficCostEstimation - properties: - estimationTimestamp: - description: Timestamp at which the estimation was made - type: string - confirmationRequestTrafficCostEstimation: - description: Estimated traffic cost of the confirmation request associated - with the transaction - type: integer - format: int64 - confirmationResponseTrafficCostEstimation: - description: |- - Estimated traffic cost of the confirmation response associated with the transaction - This field can also be used as an indication of the cost that other potential confirming nodes - of the party will incur to approve or reject the transaction - type: integer - format: int64 - totalTrafficCostEstimation: - description: Sum of the fields above - type: integer - format: int64 - CostEstimationHints: - title: CostEstimationHints - description: Hints to improve cost estimation precision of a prepared transaction - type: object - required: - - disabled - properties: - disabled: - description: |- - Disable cost estimation - Default (not set) is false - type: boolean - expectedSignatures: - description: |- - Details on the keys that will be used to sign the transaction (how many and of which type). - Signature size impacts the cost of the transaction. - If empty, the signature sizes will be approximated with threshold-many signatures (where threshold is defined - in the PartyToKeyMapping of the external party), using keys in the order they are registered. - Optional (empty list is equivalent to not providing this field) - type: array - items: - type: string - enum: - - SIGNING_ALGORITHM_SPEC_UNSPECIFIED - - SIGNING_ALGORITHM_SPEC_ED25519 - - SIGNING_ALGORITHM_SPEC_EC_DSA_SHA_256 - - SIGNING_ALGORITHM_SPEC_EC_DSA_SHA_384 - 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 - - representativePackageId - - acsDelta - 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 ``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 witnesses of the event - (the stakeholders of the contract and all informees of all the ancestors - of this create action that this participant knows about). - 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 - representativePackageId: - description: |- - A package-id present in the participant package store that typechecks the contract's argument. - This may differ from the package-id of the template used to create the contract. - For contracts created before Canton 3.4, this field matches the contract's creation package-id. - - NOTE: Experimental, server internal concept, not for client consumption. Subject to change without notice. - - Required - type: string - acsDelta: - description: |- - Whether this event would be part of respective ACS_DELTA shaped stream, - and should therefore considered when tracking contract activeness on the client-side. - Required - type: boolean - 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 - 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/Empty10' - 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. - - If provided, used to validate the template id of the contract serialized in the created_event_blob. - Optional - type: string - contractId: - description: |- - The contract id - - If provided, used to validate the contract id of the contract serialized in the created_event_blob. - Optional - 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 - Empty10: - 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 - Empty8: - title: Empty - type: object - Empty9: - 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 - ExecuteSubmissionAndWaitResponse: - title: ExecuteSubmissionAndWaitResponse - 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 - 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 or interface of the 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. - To exercise a choice on an interface, specify the interface identifier in the template_id field. - - 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 - - acsDelta - 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: |- - Identifies the template that defines the executed choice. - This template's package-id may differ from the target contract's package-id - if the target contract has been upgraded or downgraded. - - 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, - the actors and all informees of all the ancestors of this event this - participant knows about. - If not consuming, the witnesses are the union of the signatories, - the actors and all informees of all the ancestors of this event this - participant knows about. - In both cases the witnesses are limited to the querying parties, or not - limited in case anyParty filters are used. - Note that the actors might not necessarily be observers - and thus stakeholders. 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 - acsDelta: - description: |- - Whether this event would be part of respective ACS_DELTA shaped stream, - and should therefore considered when tracking contract activeness on the client-side. - Required - type: boolean - 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 - packageFeature: - $ref: '#/components/schemas/PackageFeature' - description: |- - If set, then the Ledger API server supports package listing - configurability. It is recommended that clients query this field to - gracefully adjust their behavior to maximum package listing page size. - 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' - GenerateExternalPartyTopologyRequest: - title: GenerateExternalPartyTopologyRequest - type: object - required: - - synchronizer - - partyHint - - localParticipantObservationOnly - - confirmationThreshold - properties: - synchronizer: - description: |- - TODO(#27670) support synchronizer aliases - Required: synchronizer-id for which we are building this request. - type: string - partyHint: - description: 'Required: the actual party id will be constructed from this - hint and a fingerprint of the public key' - type: string - publicKey: - $ref: '#/components/schemas/SigningPublicKey' - description: 'Required: public key' - localParticipantObservationOnly: - description: 'Optional: if true, then the local participant will only be - observing, not confirming. Default false.' - type: boolean - otherConfirmingParticipantUids: - description: 'Optional: other participant ids which should be confirming - for this party' - type: array - items: - type: string - confirmationThreshold: - description: 'Optional: Confirmation threshold >= 1 for the party. Defaults - to all available confirmers (or if set to 0).' - type: integer - format: int32 - observingParticipantUids: - description: 'Optional: other observing participant ids for this party' - type: array - items: - type: string - GenerateExternalPartyTopologyResponse: - title: GenerateExternalPartyTopologyResponse - description: Response message with topology transactions and the multi-hash - to be signed. - type: object - required: - - partyId - - publicKeyFingerprint - - multiHash - properties: - partyId: - description: the generated party id - type: string - publicKeyFingerprint: - description: the fingerprint of the supplied public key - type: string - topologyTransactions: - description: |- - The serialized topology transactions which need to be signed and submitted as part of the allocate party process - Note that the serialization includes the versioning information. Therefore, the transaction here is serialized - as an `UntypedVersionedMessage` which in turn contains the serialized `TopologyTransaction` in the version - supported by the synchronizer. - type: array - items: - type: string - multiHash: - description: the multi-hash which may be signed instead of each individual - transaction - type: string - 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.5.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.5.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 - eventFormat: - $ref: '#/components/schemas/EventFormat' - description: |- - Format of the events in the result, the presentation will be of TRANSACTION_SHAPE_ACS_DELTA. - Required - 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 - enum: - - PACKAGE_STATUS_UNSPECIFIED - - PACKAGE_STATUS_REGISTERED - 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 should be used for resolving this query. - If not specified, the vetting states of all synchronizers to which the participant is connected are 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. - - If you build command submissions whose content depends on the returned - preferred packages, then we recommend submitting the preferred package-ids - in the ``package_id_selection_preference`` of the command submission to - avoid race conditions with concurrent changes of the on-ledger package vetting state. - - 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.5.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.5.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``). - 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: |- - 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.5.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.5.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``). - 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: |- - 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.5.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.5.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 - - reassignmentId - - 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 - reassignmentId: - description: |- - The ID from the unassigned event. - For correlation capabilities. - 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 - - reassignmentId - - submitter - - reassignmentCounter - - createdEvent - properties: - source: - type: string - target: - type: string - reassignmentId: - 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 - prefetchContractKeys: - description: |- - Fetches the contract keys into the caches to speed up the command processing. - Should only contain contract keys that are expected to be resolved during interpretation of the commands. - Keys of disclosed contracts do not need prefetching. - - Optional - type: array - items: - $ref: '#/components/schemas/PrefetchContractKey' - 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 - JsExecuteSubmissionAndWaitForTransactionRequest: - title: JsExecuteSubmissionAndWaitForTransactionRequest - 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`. - Required - 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. - Required - 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] - Optional - type: string - hashingSchemeVersion: - description: |- - The hashing scheme version used when building the hash - Required - type: string - enum: - - HASHING_SCHEME_VERSION_UNSPECIFIED - - HASHING_SCHEME_VERSION_V2 - 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 - 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. - When the ``transaction_shape`` TRANSACTION_SHAPE_ACS_DELTA shape is used (explicitly or is defaulted to as explained above), - events will only be returned if the submitting party is hosted on this node. - Optional - JsExecuteSubmissionAndWaitForTransactionResponse: - title: JsExecuteSubmissionAndWaitForTransactionResponse - 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 - JsExecuteSubmissionAndWaitRequest: - title: JsExecuteSubmissionAndWaitRequest - 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`. - Required - 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. - Required - 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] - Optional - type: string - hashingSchemeVersion: - description: |- - The hashing scheme version used when building the hash - Required - type: string - enum: - - HASHING_SCHEME_VERSION_UNSPECIFIED - - HASHING_SCHEME_VERSION_V2 - 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 - 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`. - Required - 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. - Required - 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] - Optional - type: string - hashingSchemeVersion: - description: |- - The hashing scheme version used when building the hash - Required - type: string - enum: - - HASHING_SCHEME_VERSION_UNSPECIFIED - - HASHING_SCHEME_VERSION_V2 - 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.5.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.5.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.5.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 - successfully 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. - Optional - 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. - Limitation: Only single command transaction are currently supported by the API. - The field is marked as repeated in preparation for future support of multiple commands. - 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 - If not set, a suitable synchronizer that this node is connected to will be chosen - 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 - Optional - 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. - Optional, default to false - type: boolean - prefetchContractKeys: - description: |- - Fetches the contract keys into the caches to speed up the command processing. - Should only contain contract keys that are expected to be resolved during interpretation of the commands. - Keys of disclosed contracts do not need prefetching. - - Optional - type: array - items: - $ref: '#/components/schemas/PrefetchContractKey' - maxRecordTime: - description: |- - Maximum timestamp at which the transaction can be recorded onto the ledger via the synchronizer specified in the `PrepareSubmissionResponse`. - If submitted after it will be rejected even if otherwise valid, in which case it needs to be prepared and signed again - with a new valid max_record_time. - Use this to limit the time-to-life of a prepared transaction, - which is useful to know when it can definitely not be accepted - anymore and resorting to preparing another transaction for the same - intent is safe again. - Optional - type: string - estimateTrafficCost: - $ref: '#/components/schemas/CostEstimationHints' - description: |- - Hints to improve the accuracy of traffic cost estimation. - The estimation logic assumes that this node will be used for the execution of the transaction - If another node is used instead, the estimation may be less precise. - Request amplification is not accounted for in the estimation: each amplified request will - result in the cost of the confirmation request to be charged additionally. - - Optional - Traffic cost estimation is enabled by default if this field is not set - To turn off cost estimation, set the CostEstimationHints#disabled field to true - 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 - enum: - - HASHING_SCHEME_VERSION_UNSPECIFIED - - HASHING_SCHEME_VERSION_V2 - 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 - costEstimation: - $ref: '#/components/schemas/CostEstimation' - description: |- - Traffic cost estimation of the prepared transaction - Optional - JsReassignment: - title: JsReassignment - description: Complete view of an on-ledger reassignment. - type: object - required: - - updateId - - commandId - - workflowId - - offset - - recordTime - - synchronizerId - 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 - synchronizerId: - description: |- - A valid synchronizer id. - Identifies the synchronizer that synchronized this Reassignment. - 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.5.0. - type: object - required: - - transactionTree - properties: - transactionTree: - $ref: '#/components/schemas/JsTransactionTree' - JsTopologyTransaction: - title: JsTopologyTransaction - type: object - required: - - updateId - - offset - - synchronizerId - properties: - updateId: - description: |- - Assigned by the server. Useful for correlating logs. - Must be a valid LedgerString (as described in ``value.proto``). - 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 - synchronizerId: - description: |- - A valid synchronizer id. - Identifies the synchronizer that synchronized the topology transaction. - Required - type: string - 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 - events: - description: |- - A non-empty list of topology events. - Required - type: array - items: - $ref: '#/components/schemas/TopologyEvent' - 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. - 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 - externalTransactionHash: - description: |- - For transaction externally signed, contains the external transaction hash - signed by the external party. Can be used to correlate an external submission with a committed transaction. - Optional - type: string - JsTransactionTree: - title: JsTransactionTree - description: |- - Provided for backwards compatibility, it will be removed in the Canton version 3.5.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: - - CanExecuteAs - properties: - CanExecuteAs: - $ref: '#/components/schemas/CanExecuteAs' - - type: object - required: - - CanExecuteAsAnyParty - properties: - CanExecuteAsAnyParty: - $ref: '#/components/schemas/CanExecuteAsAnyParty' - - 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/Empty8' - - 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 - ListVettedPackagesRequest: - title: ListVettedPackagesRequest - type: object - required: - - pageToken - - pageSize - properties: - packageMetadataFilter: - $ref: '#/components/schemas/PackageMetadataFilter' - description: |- - The package metadata filter the returned vetted packages set must satisfy. - Optional - topologyStateFilter: - $ref: '#/components/schemas/TopologyStateFilter' - description: |- - The topology filter the returned vetted packages set must satisfy. - Optional - pageToken: - description: |- - Pagination token to determine the specific page to fetch. Using the token - guarantees that ``VettedPackages`` on a subsequent page are all greater - (``VettedPackages`` are sorted by synchronizer ID then participant ID) than - the last ``VettedPackages`` on a previous page. - - The server does not store intermediate results between calls chained by a - series of page tokens. As a consequence, if new vetted packages are being - added and a page is requested twice using the same token, more packages can - be returned on the second call. - - Leave unspecified (i.e. as empty string) to fetch the first page. - - Optional - type: string - pageSize: - description: |- - Maximum number of ``VettedPackages`` results to return in a single page. - - If the page_size is unspecified (i.e. left as 0), the server will decide - the number of results to be returned. - - If the page_size exceeds the maximum supported by the server, an - error will be returned. - - To obtain the server's maximum consult the PackageService descriptor - available in the VersionService. - - Optional - type: integer - format: int32 - ListVettedPackagesResponse: - title: ListVettedPackagesResponse - type: object - required: - - nextPageToken - properties: - vettedPackages: - description: |- - All ``VettedPackages`` that contain at least one ``VettedPackage`` matching - both a ``PackageMetadataFilter`` and a ``TopologyStateFilter``. - Sorted by synchronizer_id then participant_id. - type: array - items: - $ref: '#/components/schemas/VettedPackages' - nextPageToken: - description: |- - Pagination token to retrieve the next page. - Empty string 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' - NoPrior: - title: NoPrior - type: object - 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 - Operation: - title: Operation - oneOf: - - type: object - required: - - Empty - properties: - Empty: - $ref: '#/components/schemas/Empty5' - - type: object - required: - - Unvet - properties: - Unvet: - $ref: '#/components/schemas/Unvet' - - type: object - required: - - Vet - properties: - Vet: - $ref: '#/components/schemas/Vet' - PackageFeature: - title: PackageFeature - type: object - required: - - maxVettedPackagesPageSize - properties: - maxVettedPackagesPageSize: - description: |- - The maximum number of vetted packages the server can return in a single - response (page) when listing them. - type: integer - format: int32 - PackageMetadataFilter: - title: PackageMetadataFilter - description: |- - Filter the VettedPackages by package metadata. - - A PackageMetadataFilter without package_ids and without package_name_prefixes - matches any vetted package. - - Non-empty fields specify candidate values of which at least one must match. - If both fields are set, then a candidate is returned if it matches one of the fields. - type: object - properties: - packageIds: - description: |- - If this list is non-empty, any vetted package with a package ID in this - list will match the filter. - type: array - items: - type: string - packageNamePrefixes: - description: |- - If this list is non-empty, any vetted package with a name matching at least - one prefix in this list will match the filter. - type: array - items: - type: string - 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: - - value - properties: - value: - $ref: '#/components/schemas/ParticipantAuthorizationAdded1' - ParticipantAuthorizationAdded1: - title: ParticipantAuthorizationAdded - type: object - required: - - partyId - - participantId - - participantPermission - properties: - partyId: - description: Required - type: string - participantId: - description: Required - type: string - participantPermission: - description: Required - type: string - enum: - - PARTICIPANT_PERMISSION_UNSPECIFIED - - PARTICIPANT_PERMISSION_SUBMISSION - - PARTICIPANT_PERMISSION_CONFIRMATION - - PARTICIPANT_PERMISSION_OBSERVATION - ParticipantAuthorizationChanged: - title: ParticipantAuthorizationChanged - type: object - required: - - value - properties: - value: - $ref: '#/components/schemas/ParticipantAuthorizationChanged1' - ParticipantAuthorizationChanged1: - title: ParticipantAuthorizationChanged - type: object - required: - - partyId - - participantId - - participantPermission - properties: - partyId: - description: Required - type: string - participantId: - description: Required - type: string - participantPermission: - description: Required - type: string - enum: - - PARTICIPANT_PERMISSION_UNSPECIFIED - - PARTICIPANT_PERMISSION_SUBMISSION - - PARTICIPANT_PERMISSION_CONFIRMATION - - PARTICIPANT_PERMISSION_OBSERVATION - ParticipantAuthorizationRevoked: - title: ParticipantAuthorizationRevoked - type: object - required: - - value - properties: - value: - $ref: '#/components/schemas/ParticipantAuthorizationRevoked1' - ParticipantAuthorizationRevoked1: - 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 - Required - type: array - items: - $ref: '#/components/schemas/SinglePartySignatures' - PrefetchContractKey: - title: PrefetchContractKey - description: Preload contracts - type: object - required: - - contractKey - properties: - templateId: - description: |- - The template of contract the client wants to prefetch. - 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 prefetch. - Required - Prior: - title: Prior - type: object - required: - - value - properties: - value: - type: integer - format: int32 - PriorTopologySerial: - title: PriorTopologySerial - description: |- - The serial of last ``VettedPackages`` topology transaction on a given - participant and synchronizer. - type: object - required: - - serial - properties: - serial: - $ref: '#/components/schemas/Serial' - ProtoAny: - title: ProtoAny - type: object - required: - - typeUrl - - value - - unknownFields - properties: - typeUrl: - type: string - value: - type: string - unknownFields: - $ref: '#/components/schemas/UnknownFieldSet' - valueDecoded: - type: string - 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' - Serial: - title: Serial - oneOf: - - type: object - required: - - Empty - properties: - Empty: - $ref: '#/components/schemas/Empty6' - - type: object - required: - - NoPrior - properties: - NoPrior: - $ref: '#/components/schemas/NoPrior' - - type: object - required: - - Prior - properties: - Prior: - $ref: '#/components/schemas/Prior' - 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 - SignedTransaction: - title: SignedTransaction - type: object - required: - - transaction - properties: - transaction: - type: string - signatures: - type: array - items: - $ref: '#/components/schemas/Signature' - SigningPublicKey: - title: SigningPublicKey - type: object - required: - - format - - keyData - - keySpec - properties: - format: - description: The serialization format of the public key - example: CRYPTO_KEY_FORMAT_DER_X509_SUBJECT_PUBLIC_KEY_INFO - type: string - keyData: - description: Serialized public key in the format specified above - type: string - keySpec: - description: The key specification - example: SIGNING_KEY_SPEC_EC_CURVE25519 - type: string - SinglePartySignatures: - title: SinglePartySignatures - description: Signatures provided by a single party - type: object - required: - - party - properties: - party: - description: |- - Submitting party - Required - type: string - signatures: - description: |- - Signatures - Required - type: array - items: - $ref: '#/components/schemas/Signature' - 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/Empty9' - - type: object - required: - - MinLedgerTimeAbs - properties: - MinLedgerTimeAbs: - $ref: '#/components/schemas/MinLedgerTimeAbs' - - type: object - required: - - MinLedgerTimeRel - properties: - MinLedgerTimeRel: - $ref: '#/components/schemas/MinLedgerTimeRel' - TopologyEvent: - title: TopologyEvent - type: object - required: - - event - properties: - event: - $ref: '#/components/schemas/TopologyEventEvent' - TopologyEventEvent: - title: TopologyEventEvent - oneOf: - - type: object - required: - - Empty - properties: - Empty: - $ref: '#/components/schemas/Empty7' - - 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. - TopologyStateFilter: - title: TopologyStateFilter - description: |- - Filter the vetted packages by the participant and synchronizer that they are - hosted on. - - Empty fields are ignored, such that a ``TopologyStateFilter`` without - participant_ids and without synchronizer_ids matches a vetted package hosted - on any participant and synchronizer. - - Non-empty fields specify candidate values of which at least one must match. - If both fields are set then at least one candidate value must match from each - field. - type: object - properties: - participantIds: - description: |- - If this list is non-empty, only vetted packages hosted on participants - listed in this field match the filter. - Query the current Ledger API's participant's ID via the public - ``GetParticipantId`` command in ``PartyManagementService``. - type: array - items: - type: string - synchronizerIds: - description: |- - If this list is non-empty, only vetted packages from the topology state of - the synchronizers in this list match the filter. - type: array - items: - type: string - 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.5.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. - 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 - enum: - - TRANSACTION_SHAPE_UNSPECIFIED - - TRANSACTION_SHAPE_ACS_DELTA - - TRANSACTION_SHAPE_LEDGER_EFFECTS - TransactionTree: - title: TransactionTree - description: |- - Provided for backwards compatibility, it will be removed in the Canton version 3.5.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.5.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: - - reassignmentId - - contractId - - source - - target - - submitter - - reassignmentCounter - - packageName - - offset - - nodeId - properties: - reassignmentId: - description: |- - The ID of the unassignment. This needs to be used as an input for a assign ReassignmentCommand. - 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' - Unvet: - title: Unvet - type: object - required: - - value - properties: - value: - $ref: '#/components/schemas/Unvet1' - Unvet1: - title: Unvet - type: object - properties: - packages: - type: array - items: - $ref: '#/components/schemas/VettedPackagesRef' - 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 - 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 - UpdateVettedPackagesRequest: - title: UpdateVettedPackagesRequest - type: object - required: - - dryRun - - synchronizerId - properties: - changes: - description: |- - Changes to apply to the current vetting state of the participant on the - specified synchronizer. The changes are applied in order. - Any package not changed will keep their previous vetting state. - type: array - items: - $ref: '#/components/schemas/VettedPackagesChange' - dryRun: - description: |- - If dry_run is true, then the changes are only prepared, but not applied. If - a request would trigger an error when run (e.g. TOPOLOGY_DEPENDENCIES_NOT_VETTED), - it will also trigger an error when dry_run. - - Use this flag to preview a change before applying it. - type: boolean - synchronizerId: - description: |- - If set, the requested changes will take place on the specified - synchronizer. If synchronizer_id is unset and the participant is only - connected to a single synchronizer, that synchronizer will be used by - default. If synchronizer_id is unset and the participant is connected to - multiple synchronizers, the request will error out with - PACKAGE_SERVICE_CANNOT_AUTODETECT_SYNCHRONIZER. - - Optional - type: string - expectedTopologySerial: - $ref: '#/components/schemas/PriorTopologySerial' - description: |- - The serial of the last ``VettedPackages`` topology transaction of this - participant and on this synchronizer. - - Execution of the request fails if this is not correct. Use this to guard - against concurrent changes. - - If left unspecified, no validation is done against the last transaction's - serial. - - Optional - updateVettedPackagesForceFlags: - description: |- - Controls whether potentially unsafe vetting updates are allowed. - - Optional, defaults to FORCE_FLAG_UNSPECIFIED. - type: array - items: - type: string - enum: - - UPDATE_VETTED_PACKAGES_FORCE_FLAG_UNSPECIFIED - - UPDATE_VETTED_PACKAGES_FORCE_FLAG_ALLOW_VET_INCOMPATIBLE_UPGRADES - - UPDATE_VETTED_PACKAGES_FORCE_FLAG_ALLOW_UNVETTED_DEPENDENCIES - UpdateVettedPackagesResponse: - title: UpdateVettedPackagesResponse - type: object - properties: - pastVettedPackages: - $ref: '#/components/schemas/VettedPackages' - description: |- - All vetted packages on this participant and synchronizer, before the - specified changes. Empty if no vetting state existed beforehand. - newVettedPackages: - $ref: '#/components/schemas/VettedPackages' - description: All vetted packages on this participant and synchronizer, after - the specified changes. - 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 - Vet: - title: Vet - type: object - required: - - value - properties: - value: - $ref: '#/components/schemas/Vet1' - Vet1: - title: Vet - type: object - properties: - packages: - type: array - items: - $ref: '#/components/schemas/VettedPackagesRef' - newValidFromInclusive: - type: string - newValidUntilExclusive: - type: string - VettedPackage: - title: VettedPackage - description: |- - A package that is vetting on a given participant and synchronizer, - modelled after ``VettedPackage`` in `topology.proto `_, - enriched with the package name and version. - type: object - required: - - packageId - - packageName - - packageVersion - properties: - packageId: - description: Package ID of this package. Always present. - type: string - validFromInclusive: - description: |- - The time from which this package is vetted. Empty if vetting time has no - lower bound. - type: string - validUntilExclusive: - description: |- - The time until which this package is vetted. Empty if vetting time has no - upper bound. - type: string - packageName: - description: |- - Name of this package. - Only available if the package has been uploaded to the current participant. - If unavailable, is empty string. - type: string - packageVersion: - description: |- - Version of this package. - Only available if the package has been uploaded to the current participant. - If unavailable, is empty string. - type: string - VettedPackages: - title: VettedPackages - description: |- - The list of packages vetted on a given participant and synchronizer, modelled - after ``VettedPackages`` in `topology.proto `_. - The list only contains packages that matched a filter in the query that - originated it. - type: object - required: - - participantId - - synchronizerId - - topologySerial - properties: - packages: - description: |- - Sorted by package_name and package_version where known, and package_id as a - last resort. - type: array - items: - $ref: '#/components/schemas/VettedPackage' - participantId: - description: Participant on which these packages are vetted. Always present. - type: string - synchronizerId: - description: Synchronizer on which these packages are vetted. Always present. - type: string - topologySerial: - description: |- - Serial of last ``VettedPackages`` topology transaction of this participant - and on this synchronizer. Always present. - type: integer - format: int32 - VettedPackagesChange: - title: VettedPackagesChange - description: A change to the set of vetted packages. - type: object - required: - - operation - properties: - operation: - $ref: '#/components/schemas/Operation' - VettedPackagesRef: - title: VettedPackagesRef - description: |- - A reference to identify one or more packages. - - A reference matches a package if its ``package_id`` matches the package's ID, - its ``package_name`` matches the package's name, and its ``package_version`` - matches the package's version. If an attribute in the reference is left - unspecified (i.e. as an empty string), that attribute is treated as a - wildcard. At a minimum, ``package_id`` or the ``package_name`` must be - specified. - - If a reference does not match any package, the reference is considered - unresolved and the entire update request is rejected. - type: object - required: - - packageId - - packageName - - packageVersion - properties: - packageId: - description: |- - Package's package id must be the same as this field. - Optional - type: string - packageName: - description: |- - Package's name must be the same as this field. - Optional - type: string - packageVersion: - description: |- - Package's version must be the same as this field. - Optional - type: string - 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 diff --git a/api-specs/openrpc-user-api.json b/api-specs/openrpc-user-api.json index 3078e3612..7bb30b3d1 100644 --- a/api-specs/openrpc-user-api.json +++ b/api-specs/openrpc-user-api.json @@ -71,7 +71,7 @@ "title": "networks", "type": "array", "items": { - "$ref": "#/components/schemas/Network" + "$ref": "#/components/schemas/VerifiedNetwork" } } }, @@ -553,6 +553,28 @@ "type": "string", "description": "The unique identifier of the command associated with the transaction." }, + "VerifiedNetwork": { + "title": "VerifiedNetwork", + "description": "Structure representing the Networks with connectivity verification", + "allOf": [ + { + "$ref": "#/components/schemas/Network" + }, + { + "title": "VerifiedNetworkProperties", + "description": "holder for boolean verified property", + "type": "object", + "properties": { + "verified": { + "title": "verified", + "description": "true if we could succesfully call the ledger version endpoint", + "type": "boolean" + } + }, + "required": ["verified"] + } + ] + }, "Network": { "title": "Network", "type": "object", @@ -591,8 +613,16 @@ }, "ledgerApi": { "title": "ledgerApi", - "type": "string", - "description": "Ledger api url" + "type": "object", + "description": "Ledger api url", + "properties": { + "baseUrl": { + "title": "baseUrl", + "type": "string", + "description": "Ledger api url" + } + }, + "required": ["baseUrl"] } }, "required": [ diff --git a/core/rpc-generator/templates/client/typescript/_package.json b/core/rpc-generator/templates/client/typescript/_package.json index 7e379e9e4..54a197a8f 100644 --- a/core/rpc-generator/templates/client/typescript/_package.json +++ b/core/rpc-generator/templates/client/typescript/_package.json @@ -42,5 +42,8 @@ "typedoc": "^0.28.14", "typescript": "^5.9.3" }, - "repository": "github:hyperledger-labs/splice-wallet-kernel" + "repository": { + "type": "git", + "url": "git+https://github.com/hyperledger-labs/splice-wallet-kernel.git" + } } diff --git a/core/wallet-store-sql/src/store-sql.ts b/core/wallet-store-sql/src/store-sql.ts index cdb1ef78e..033b2bfd9 100644 --- a/core/wallet-store-sql/src/store-sql.ts +++ b/core/wallet-store-sql/src/store-sql.ts @@ -341,7 +341,7 @@ export class StoreSql implements BaseStore, AuthAware { await this.db.transaction().execute(async (trx) => { // we do not set a userId for now and leave all networks global when updating const networkEntry = fromNetwork(network, undefined) - this.logger.info(networkEntry, 'Updating network table') + this.logger.debug(networkEntry, 'Updating network table') await trx .updateTable('networks') .set(networkEntry) diff --git a/core/wallet-store/src/config/schema.ts b/core/wallet-store/src/config/schema.ts index db5583201..fb0c250c8 100644 --- a/core/wallet-store/src/config/schema.ts +++ b/core/wallet-store/src/config/schema.ts @@ -41,6 +41,11 @@ export const storeConfigSchema = z.object({ networks: z.array(networkSchema), }) +export const verifiedNetworkSchema = networkSchema.extend({ + verified: z.boolean(), +}) + export type StoreConfig = z.infer export type Network = z.infer +export type VerifiedNetwork = z.infer export type LedgerApi = z.infer diff --git a/core/wallet-ui-components/src/components/Sessions.stories.ts b/core/wallet-ui-components/src/components/Sessions.stories.ts index 2c2766dfc..923949e11 100644 --- a/core/wallet-ui-components/src/components/Sessions.stories.ts +++ b/core/wallet-ui-components/src/components/Sessions.stories.ts @@ -24,7 +24,7 @@ const mockSessions: Sessions = [ 'wallet::1220e7b23ea52eb5c672fb0b1cdbc916922ffed3dd7676c223a605664315e2d43edd', identityProviderId: 'idp-mock-oauth', description: 'Mock OAuth IDP', - ledgerApi: 'http://127.0.0.1:5003', + ledgerApi: { baseUrl: 'http://127.0.0.1:5003' }, auth: { method: 'authorization_code', audience: 'https://audience', diff --git a/core/wallet-user-rpc-client/src/index.ts b/core/wallet-user-rpc-client/src/index.ts index 283353078..d4d523467 100644 --- a/core/wallet-user-rpc-client/src/index.ts +++ b/core/wallet-user-rpc-client/src/index.ts @@ -62,7 +62,16 @@ export interface Auth { * Ledger api url * */ -export type LedgerApi = string +export type BaseUrl = string +/** + * + * Ledger api url + * + */ +export interface LedgerApi { + baseUrl: BaseUrl + [k: string]: any +} /** * * Structure representing the Networks @@ -204,7 +213,28 @@ export type PreparedTransactionHash = string export type CommandId = string export type Signature = string export type SignedBy = string -export type Networks = Network[] +/** + * + * true if we could succesfully call the ledger version endpoint + * + */ +export type Verified = boolean +/** + * + * holder for boolean verified property + * + */ +export interface VerifiedNetworkProperties { + verified: Verified + [k: string]: any +} +/** + * + * Structure representing the Networks with connectivity verification + * + */ +export type VerifiedNetwork = Network & VerifiedNetworkProperties +export type Networks = VerifiedNetwork[] export type Idps = Idp[] /** * diff --git a/core/wallet-user-rpc-client/src/openrpc.json b/core/wallet-user-rpc-client/src/openrpc.json index 3078e3612..7bb30b3d1 100644 --- a/core/wallet-user-rpc-client/src/openrpc.json +++ b/core/wallet-user-rpc-client/src/openrpc.json @@ -71,7 +71,7 @@ "title": "networks", "type": "array", "items": { - "$ref": "#/components/schemas/Network" + "$ref": "#/components/schemas/VerifiedNetwork" } } }, @@ -553,6 +553,28 @@ "type": "string", "description": "The unique identifier of the command associated with the transaction." }, + "VerifiedNetwork": { + "title": "VerifiedNetwork", + "description": "Structure representing the Networks with connectivity verification", + "allOf": [ + { + "$ref": "#/components/schemas/Network" + }, + { + "title": "VerifiedNetworkProperties", + "description": "holder for boolean verified property", + "type": "object", + "properties": { + "verified": { + "title": "verified", + "description": "true if we could succesfully call the ledger version endpoint", + "type": "boolean" + } + }, + "required": ["verified"] + } + ] + }, "Network": { "title": "Network", "type": "object", @@ -591,8 +613,16 @@ }, "ledgerApi": { "title": "ledgerApi", - "type": "string", - "description": "Ledger api url" + "type": "object", + "description": "Ledger api url", + "properties": { + "baseUrl": { + "title": "baseUrl", + "type": "string", + "description": "Ledger api url" + } + }, + "required": ["baseUrl"] } }, "required": [ diff --git a/wallet-gateway/remote/package.json b/wallet-gateway/remote/package.json index b5fb8edba..546f71cc4 100644 --- a/wallet-gateway/remote/package.json +++ b/wallet-gateway/remote/package.json @@ -54,6 +54,7 @@ "express-rate-limit": "^8.2.1", "jose": "^6.1.2", "lit": "^3.3.1", + "node-cron": "^4.2.1", "pino": "^10.1.0", "pino-pretty": "^13.1.2", "socket.io": "^4.8.1", @@ -77,7 +78,8 @@ "supertest": "^7.1.4", "ts-jest-resolver": "^2.0.1", "tsx": "^4.20.6", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "typescript-lru-cache": "^2.0.0" }, "nx": { "targets": { diff --git a/wallet-gateway/remote/src/background-jobs/ledger-connectivity-tester.ts b/wallet-gateway/remote/src/background-jobs/ledger-connectivity-tester.ts new file mode 100644 index 000000000..21e577764 --- /dev/null +++ b/wallet-gateway/remote/src/background-jobs/ledger-connectivity-tester.ts @@ -0,0 +1,53 @@ +// Copyright (c) 2025 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { LedgerClient } from '@canton-network/core-ledger-client' +import { Logger } from 'pino' +import { NetworkCacheStore } from '../cache/network-cache.js' + +export async function startLedgerConnectivityTester( + networkCacheStore: NetworkCacheStore, + logger: Logger +) { + const networks = await networkCacheStore.getStore().listNetworks() + + networks.map(async (network) => { + try { + logger.debug( + `Testing connectivity for network ${network.name} (${network.id})...` + ) + + //connectivity test + const ledgerClient = new LedgerClient({ + baseUrl: new URL(network.ledgerApi.baseUrl), + logger: logger, + }) + let connectivityCheck = false + + try { + const version = await ledgerClient.get('/v2/version') + if (version.version) { + connectivityCheck = true + } + } catch (error) { + logger.debug( + `Failed to connect to ledger at ${network.name}(${network.ledgerApi.baseUrl}): ${JSON.stringify(error)}` + ) + } + + networkCacheStore.getCache().set(network.id, { + ...network, + verified: connectivityCheck, + }) + logger.info( + connectivityCheck + ? `Network ${network.name} (${network.id}) verified successfully.` + : `Network ${network.name} (${network.id}) verification failed.` + ) + } catch (error) { + logger.error( + `Failed to verify network ${network.name} (${network.id}): ${error}` + ) + } + }) +} diff --git a/wallet-gateway/remote/src/cache/network-cache.ts b/wallet-gateway/remote/src/cache/network-cache.ts new file mode 100644 index 000000000..00695fc54 --- /dev/null +++ b/wallet-gateway/remote/src/cache/network-cache.ts @@ -0,0 +1,75 @@ +// Copyright (c) 2025 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +import { LRUCache } from 'typescript-lru-cache' +import { + Store, + Network, + VerifiedNetwork, +} from '@canton-network/core-wallet-store' +import { Logger } from 'pino' + +export const DEFAULT_MAX_CACHE_SIZE = 100 +export const DEFAULT_ENTRY_EXPIRATION_TIME = 10 * 60 * 1000 + +const NetworkCache = new LRUCache({ + maxSize: DEFAULT_MAX_CACHE_SIZE, + entryExpirationTimeInMS: DEFAULT_ENTRY_EXPIRATION_TIME, +}) + +export class NetworkCacheStore { + constructor( + private readonly store: Store, + private readonly logger: Logger + ) {} + + getCache() { + return NetworkCache + } + + getStore() { + return this.store + } + + async getNetwork(networkId: string): Promise { + const cachedNetwork = NetworkCache.get(networkId) + if (cachedNetwork) { + return cachedNetwork + } + return await this.store.getNetwork(networkId) + } + + getCurrentNetwork(): Promise { + return this.store.getCurrentNetwork() + } + + listNetworks(): Promise> { + if (NetworkCache.size !== 0) { + return Promise.resolve(NetworkCache.values().toArray()) + } + return this.store.listNetworks() + } + + updateNetwork(network: Network): Promise { + NetworkCache.set(network.id, { + ...network, + verified: false, + }) + + return this.store.updateNetwork(network) + } + + addNetwork(network: Network): Promise { + NetworkCache.set(network.id, { + ...network, + verified: false, + }) + + return this.store.addNetwork(network) + } + removeNetwork(networkId: string): Promise { + NetworkCache.delete(networkId) + + return this.store.removeNetwork(networkId) + } +} diff --git a/wallet-gateway/remote/src/init.ts b/wallet-gateway/remote/src/init.ts index 1d3e4a42a..1cf063962 100644 --- a/wallet-gateway/remote/src/init.ts +++ b/wallet-gateway/remote/src/init.ts @@ -34,6 +34,9 @@ import { deriveKernelUrls } from './config/ConfigUtils.js' import { existsSync, readFileSync } from 'fs' import path from 'path' import { GATEWAY_VERSION } from './version.js' +import cron from 'node-cron' +import { startLedgerConnectivityTester } from './background-jobs/ledger-connectivity-tester.js' +import { NetworkCacheStore } from './cache/network-cache.js' let isReady = false @@ -68,7 +71,7 @@ async function initializeDatabase( config: Config, logger: Logger ): Promise { - logger.info('Checking for database migrations...') + logger.info(config.store, 'Initializing database with config') let exists = true if (config.store.connection.type === 'sqlite') { @@ -134,6 +137,17 @@ async function initializeSigningDatabase( return new SigningStoreSql(db, logger) } +export function initializeBackgroundJobs( + networkCacheStore: NetworkCacheStore, + logger: Logger +) { + // Run immediately on startup to fill cache + startLedgerConnectivityTester(networkCacheStore, logger) + cron.schedule('* * * * *', () => { + startLedgerConnectivityTester(networkCacheStore, logger) + }) +} + export async function initialize(opts: CliOptions, logger: Logger) { const config = ConfigUtils.loadConfigFile(opts.config) @@ -176,6 +190,8 @@ export async function initialize(opts: CliOptions, logger: Logger) { const store = await initializeDatabase(config, logger) const signingStore = await initializeSigningDatabase(config, logger) const authService = jwtAuthService(store, logger) + const networkCacheStore = new NetworkCacheStore(store, logger) + initializeBackgroundJobs(networkCacheStore, logger) // Provide apiKey from User API in Fireblocks const apiPath = path.resolve(process.cwd(), 'fireblocks_api.key') @@ -257,7 +273,8 @@ export async function initialize(opts: CliOptions, logger: Logger) { userUrl, notificationService, drivers, - store + store, + networkCacheStore ) // register web handler diff --git a/wallet-gateway/remote/src/user-api/controller.ts b/wallet-gateway/remote/src/user-api/controller.ts index 1dbdf0c64..6d3287748 100644 --- a/wallet-gateway/remote/src/user-api/controller.ts +++ b/wallet-gateway/remote/src/user-api/controller.ts @@ -55,6 +55,7 @@ import { ledgerPrepareParams, } from '../utils.js' import { StatusEvent } from '../dapp-api/rpc-gen/typings.js' +import { NetworkCacheStore } from '../cache/network-cache.js' type AvailableSigningDrivers = Partial< Record @@ -64,6 +65,7 @@ export const userController = ( kernelInfo: KernelInfo, userUrl: string, store: Store, + cache: NetworkCacheStore, notificationService: NotificationService, authContext: AuthContext | undefined, drivers: AvailableSigningDrivers, @@ -75,10 +77,6 @@ export const userController = ( addNetwork: async (params: AddNetworkParams) => { const { network } = params - const ledgerApi = { - baseUrl: network.ledgerApi ?? '', - } - const auth = authSchema.parse(network.auth) const adminAuth = network.adminAuth ? authSchema.parse(network.adminAuth) @@ -92,25 +90,26 @@ export const userController = ( identityProviderId: network.identityProviderId, auth, adminAuth, - ledgerApi, + ledgerApi: network.ledgerApi, } // TODO: Add an explicit updateNetwork method to the User API spec and controller - const existingNetworks = await store.listNetworks() + const existingNetworks = await cache.listNetworks() if (existingNetworks.find((n) => n.id === newNetwork.id)) { - await store.updateNetwork(newNetwork) + await cache.updateNetwork(newNetwork) } else { - await store.addNetwork(newNetwork) + await cache.addNetwork(newNetwork) } return null }, removeNetwork: async (params: RemoveNetworkParams) => { - await store.removeNetwork(params.networkName) + await cache.removeNetwork(params.networkName) return null }, - listNetworks: async () => - Promise.resolve({ networks: await store.listNetworks() }), + listNetworks: async () => { + return { networks: await cache.listNetworks() } + }, addIdp: async (params: AddIdpParams) => { const validatedIdp = idpSchema.parse(params.idp) @@ -144,22 +143,21 @@ export const userController = ( const userId = assertConnected(authContext).userId const notifier = notificationService.getNotifier(userId) - const network = await store.getCurrentNetwork() + const network = await cache.getCurrentNetwork() if (network === undefined) { throw new Error('No network session found') } const idp = await store.getIdp(network.identityProviderId) - const tokenProvider = new AuthTokenProvider( idp, network.auth, - network.adminAuth, + network.adminAuth!, logger ) const partyAllocator = new PartyAllocationService({ - synchronizerId: network.synchronizerId, + synchronizerId: network.synchronizerId!, accessTokenProvider: tokenProvider, httpLedgerUrl: network.ledgerApi.baseUrl, logger, diff --git a/wallet-gateway/remote/src/user-api/rpc-gen/typings.ts b/wallet-gateway/remote/src/user-api/rpc-gen/typings.ts index 7ca2c7b05..223cdcc23 100644 --- a/wallet-gateway/remote/src/user-api/rpc-gen/typings.ts +++ b/wallet-gateway/remote/src/user-api/rpc-gen/typings.ts @@ -62,7 +62,16 @@ export interface Auth { * Ledger api url * */ -export type LedgerApi = string +export type BaseUrl = string +/** + * + * Ledger api url + * + */ +export interface LedgerApi { + baseUrl: BaseUrl + [k: string]: any +} /** * * Structure representing the Networks @@ -204,7 +213,28 @@ export type PreparedTransactionHash = string export type CommandId = string export type Signature = string export type SignedBy = string -export type Networks = Network[] +/** + * + * true if we could succesfully call the ledger version endpoint + * + */ +export type Verified = boolean +/** + * + * holder for boolean verified property + * + */ +export interface VerifiedNetworkProperties { + verified: Verified + [k: string]: any +} +/** + * + * Structure representing the Networks with connectivity verification + * + */ +export type VerifiedNetwork = Network & VerifiedNetworkProperties +export type Networks = VerifiedNetwork[] export type Idps = Idp[] /** * @@ -342,7 +372,6 @@ export interface ExecuteParams { } export interface AddSessionParams { networkId: NetworkId - idp: Idp [k: string]: any } export interface GetTransactionParams { diff --git a/wallet-gateway/remote/src/user-api/server.test.ts b/wallet-gateway/remote/src/user-api/server.test.ts index f78dcd36f..b027c48e7 100644 --- a/wallet-gateway/remote/src/user-api/server.test.ts +++ b/wallet-gateway/remote/src/user-api/server.test.ts @@ -13,11 +13,13 @@ import { ConfigUtils, deriveKernelUrls } from '../config/ConfigUtils.js' import { Notifier } from '../notification/NotificationService.js' import { pino } from 'pino' import { sink } from 'pino-test' +import { NetworkCacheStore } from '../cache/network-cache.js' const configPath = '../test/config.json' const config = ConfigUtils.loadConfigFile(configPath) const store = new StoreInternal(config.store, pino(sink())) +const networkCacheStore = new NetworkCacheStore(store, pino(sink())) const notificationService = { getNotifier: jest.fn<() => Notifier>().mockReturnValue({ @@ -43,7 +45,8 @@ test('call listNetworks rpc', async () => { userUrl, notificationService, drivers, - store + store, + networkCacheStore ) ) .post('/api/v0/user') diff --git a/wallet-gateway/remote/src/user-api/server.ts b/wallet-gateway/remote/src/user-api/server.ts index 0bb1b9b6d..407e16d97 100644 --- a/wallet-gateway/remote/src/user-api/server.ts +++ b/wallet-gateway/remote/src/user-api/server.ts @@ -9,6 +9,7 @@ import { AuthAware } from '@canton-network/core-wallet-auth' import { Store } from '@canton-network/core-wallet-store' import express from 'express' import { Logger } from 'pino' +import { NetworkCacheStore } from '../cache/network-cache.js' import { KernelInfo } from '../config/Config.js' import { jsonRpcHandler } from '../middleware/jsonRpcHandler.js' import { NotificationService } from '../notification/NotificationService.js' @@ -23,7 +24,8 @@ export const user = ( userUrl: string, notificationService: NotificationService, drivers: Partial>, - store: Store & AuthAware + store: Store & AuthAware, + networkCacheStore: NetworkCacheStore ) => { app.use(route, (req, res, next) => jsonRpcHandler({ @@ -31,6 +33,7 @@ export const user = ( kernelInfo, userUrl, store.withAuthContext(req.authContext), + networkCacheStore, notificationService, req.authContext, drivers, diff --git a/wallet-gateway/remote/src/web/frontend/login/login.ts b/wallet-gateway/remote/src/web/frontend/login/login.ts index 09725ee50..117fb7c84 100644 --- a/wallet-gateway/remote/src/web/frontend/login/login.ts +++ b/wallet-gateway/remote/src/web/frontend/login/login.ts @@ -6,7 +6,10 @@ import { customElement, state } from 'lit/decorators.js' import '@canton-network/core-wallet-ui-components' import { createUserClient } from '../rpc-client' -import { Idp, Network } from '@canton-network/core-wallet-user-rpc-client' +import { + Idp, + VerifiedNetwork, +} from '@canton-network/core-wallet-user-rpc-client' import { stateManager } from '../state-manager' import '../index' import { WalletEvent } from '@canton-network/core-types' @@ -18,13 +21,15 @@ import { @customElement('user-ui-login') export class LoginUI extends LitElement { @state() - accessor networks: Network[] = [] + accessor networks: VerifiedNetwork[] = [] @state() accessor idps: Idp[] = [] + private networkPollingInterval?: number + @state() - accessor selectedNetwork: Network | null = null + accessor selectedNetwork: VerifiedNetwork | null = null @state() accessor selectedIdp: Idp | null = null @@ -222,6 +227,18 @@ export class LoginUI extends LitElement { super.connectedCallback() this.networks = await this.loadNetworks() this.idps = await this.loadIdps() + + this.networkPollingInterval = window.setInterval(async () => { + this.networks = await this.loadNetworks() + }, 5000) + } + + disconnectedCallback() { + super.disconnectedCallback() + // Clean up the interval when component is removed + if (this.networkPollingInterval !== undefined) { + clearInterval(this.networkPollingInterval) + } } private async handleConnectToIDP() { @@ -345,6 +362,7 @@ export class LoginUI extends LitElement { 'client_credentials'} > ${net.name} + ${net.verified === false ? '⚠️' : '✅'} ` )} diff --git a/wallet-gateway/remote/src/web/frontend/settings/index.ts b/wallet-gateway/remote/src/web/frontend/settings/index.ts index 4732fa7f0..8c262212d 100644 --- a/wallet-gateway/remote/src/web/frontend/settings/index.ts +++ b/wallet-gateway/remote/src/web/frontend/settings/index.ts @@ -118,7 +118,7 @@ export class UserUiSettings extends LitElement { ...(e.network.synchronizerId && { synchronizerId: e.network.synchronizerId as string, }), - ledgerApi: e.network.ledgerApi.baseUrl, + ledgerApi: e.network.ledgerApi, auth, adminAuth, } diff --git a/wallet-gateway/remote/tsconfig.json b/wallet-gateway/remote/tsconfig.json index 512e432a9..f2bf53c18 100644 --- a/wallet-gateway/remote/tsconfig.json +++ b/wallet-gateway/remote/tsconfig.json @@ -4,7 +4,8 @@ "rootDir": "./src", "outDir": "./dist", "experimentalDecorators": false, - "useDefineForClassFields": false + "useDefineForClassFields": false, + "exactOptionalPropertyTypes": false }, "include": ["src", "types/express.d.ts"], "exclude": ["src/web/frontend"] diff --git a/yarn.lock b/yarn.lock index 7a375e57a..4e96c397d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2078,6 +2078,7 @@ __metadata: jest: "npm:^30.2.0" jose: "npm:^6.1.2" lit: "npm:^3.3.1" + node-cron: "npm:^4.2.1" pino: "npm:^10.1.0" pino-pretty: "npm:^13.1.2" pino-test: "npm:^1.1.0" @@ -2086,6 +2087,7 @@ __metadata: ts-jest-resolver: "npm:^2.0.1" tsx: "npm:^4.20.6" typescript: "npm:^5.9.3" + typescript-lru-cache: "npm:^2.0.0" uuid: "npm:^11.1.0" vite: "npm:^7.2.4" vite-express: "npm:^0.21.1" @@ -14778,6 +14780,13 @@ __metadata: languageName: node linkType: hard +"node-cron@npm:^4.2.1": + version: 4.2.1 + resolution: "node-cron@npm:4.2.1" + checksum: 10c0/804df01df230e96fd2f8ffcde004f4d5af953bccdf3ccf993dc450526dd65f553a2f2ad4bc0faf55c90c38cbc99c9ddbb88ee16cba3fc6bc74e606da6efb249e + languageName: node + linkType: hard + "node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.7, node-fetch@npm:^2.7.0": version: 2.7.0 resolution: "node-fetch@npm:2.7.0"