asyncapi: 2.6.0 info: title: JSON Ledger API WebSocket endpoints version: 3.4.12-SNAPSHOT description: |- This specification version fixes the API inconsistencies where certain fields marked as required in the spec are in fact optional. If you use code generation tool based on this file, you might need to adjust the existing application code to handle those fields as optional. If you do not want to change your client code, continue using the OpenAPI specification from the previous Canton 3.4 patch release. MINIMUM_CANTON_VERSION=3.4.12 channels: /v2/commands/completions: description: Get completions stream subscribe: operationId: onV2CommandsCompletions description: Get completions stream message: $ref: '#/components/messages/Either_JsCantonError_CompletionStreamResponse' publish: operationId: sendV2CommandsCompletions description: Get completions stream message: $ref: '#/components/messages/CompletionStreamRequest' bindings: ws: method: GET /v2/state/active-contracts: description: Get active contracts stream subscribe: operationId: onV2StateActive-contracts description: Get active contracts stream message: $ref: '#/components/messages/Either_JsCantonError_JsGetActiveContractsResponse' publish: operationId: sendV2StateActive-contracts description: Get active contracts stream message: $ref: '#/components/messages/GetActiveContractsRequest' bindings: ws: method: GET /v2/updates: description: Get updates stream subscribe: operationId: onV2Updates description: Get updates stream message: $ref: '#/components/messages/Either_JsCantonError_JsGetUpdatesResponse' publish: operationId: sendV2Updates description: Get updates stream message: $ref: '#/components/messages/GetUpdatesRequest' bindings: ws: method: GET /v2/updates/flats: description: Get flat transactions update stream. Provided for backwards compatibility, it will be removed in the Canton version 3.5.0, use v2/updates instead. subscribe: operationId: onV2UpdatesFlats description: Get flat transactions update stream. Provided for backwards compatibility, it will be removed in the Canton version 3.5.0, use v2/updates instead. message: $ref: '#/components/messages/Either_JsCantonError_JsGetUpdatesResponse' publish: operationId: sendV2UpdatesFlats description: Get flat transactions update stream. Provided for backwards compatibility, it will be removed in the Canton version 3.5.0, use v2/updates instead. message: $ref: '#/components/messages/GetUpdatesRequest' bindings: ws: method: GET /v2/updates/trees: description: Get update transactions tree stream. Provided for backwards compatibility, it will be removed in the Canton version 3.5.0, use v2/updates instead. subscribe: operationId: onV2UpdatesTrees description: Get update transactions tree stream. Provided for backwards compatibility, it will be removed in the Canton version 3.5.0, use v2/updates instead. message: $ref: '#/components/messages/Either_JsCantonError_JsGetUpdateTreesResponse' publish: operationId: sendV2UpdatesTrees description: Get update transactions tree stream. Provided for backwards compatibility, it will be removed in the Canton version 3.5.0, use v2/updates instead. message: $ref: '#/components/messages/GetUpdatesRequest' bindings: ws: method: GET components: schemas: 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 Map_String: title: Map_String type: object additionalProperties: type: string Tuple2_String_String: title: Tuple2_String_String type: array prefixItems: - type: string - type: string CompletionStreamRequest: title: CompletionStreamRequest type: object required: - parties 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. Optional 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: must be non-empty 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. Optional type: integer format: int64 Either_JsCantonError_CompletionStreamResponse: title: Either_JsCantonError_CompletionStreamResponse oneOf: - $ref: '#/components/schemas/CompletionStreamResponse' - $ref: '#/components/schemas/JsCantonError' Map_K_V: title: Map_K_V type: object additionalProperties: type: string CompletionStreamResponse: title: CompletionStreamResponse type: object properties: completionResponse: $ref: '#/components/schemas/CompletionResponse' CompletionResponse: title: CompletionResponse oneOf: - type: object required: - Completion properties: Completion: $ref: '#/components/schemas/Completion' - type: object required: - Empty properties: Empty: $ref: '#/components/schemas/Empty1' - type: object required: - OffsetCheckpoint properties: OffsetCheckpoint: $ref: '#/components/schemas/OffsetCheckpoint' 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 - userId - offset - actAs - synchronizerTime 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``). Optional 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``). Required 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``). Required: must be non-empty 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/DeduplicationPeriod' traceContext: $ref: '#/components/schemas/TraceContext' description: |- The 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. Optional offset: description: |- May be used in a subsequent CompletionStreamRequest to resume the consumption of this stream at a later time. Must be a valid absolute offset (positive integer). Required 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 paidTrafficCost: description: |- The traffic cost paid by this participant node for the confirmation request for the submitted command. Commands whose execution is rejected before their corresponding confirmation request is ordered by the synchronizer will report a paid traffic cost of zero. If a confirmation request is ordered for a command, but the request fails (e.g., due to contention with a concurrent contract archival), the traffic cost is paid and reported on the failed completion for the request. If you want to correlate the traffic cost of a successful completion with the transaction that resulted from the command, you can use the ``offset`` field to retrieve the transaction using ``UpdateService.GetUpdateByOffset`` on the same participant node; or alternatively use the ``update_id`` field to retrieve the transaction using ``UpdateService.GetUpdateById`` on any participant node that sees the transaction. Note: for completions processed before the participant started serving traffic cost on the Ledger API, this field will be set to zero. Additionally, the total cost incurred by the submitting node for the submission of the transaction may be greater than the reported cost, for example if retries were issued due to failed submissions to the synchronizer. The cost reported here is the one paid for ordering the confirmation request. Optional type: integer format: int64 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' ProtoAny: title: ProtoAny type: object required: - typeUrl - value - unknownFields properties: typeUrl: type: string value: type: string unknownFields: $ref: '#/components/schemas/UnknownFieldSet' valueDecoded: type: string UnknownFieldSet: title: UnknownFieldSet type: object required: - fields properties: fields: $ref: '#/components/schemas/Map_Int_Field' Map_Int_Field: title: Map_Int_Field type: object additionalProperties: $ref: '#/components/schemas/Field' 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 DeduplicationPeriod: title: DeduplicationPeriod 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' DeduplicationDuration: title: DeduplicationDuration type: object required: - value properties: value: $ref: '#/components/schemas/Duration' 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 DeduplicationOffset: title: DeduplicationOffset type: object required: - value properties: value: type: integer format: int64 Empty: title: Empty type: object TraceContext: title: TraceContext type: object properties: traceparent: description: |- https://www.w3.org/TR/trace-context/ Optional type: string tracestate: description: Optional type: string SynchronizerTime: title: SynchronizerTime type: object required: - synchronizerId - recordTime 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 Empty1: title: Empty type: object 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``. Must be a valid absolute offset (positive integer). Required type: integer format: int64 synchronizerTimes: description: |- The times associated with each synchronizer at this offset. Optional: can be empty type: array items: $ref: '#/components/schemas/SynchronizerTime' 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: - activeAtOffset - eventFormat 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. Must be a valid absolute offset (positive integer) or ledger begin offset (zero). If zero, the empty set will be returned. Required 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. Required 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 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. Map_Filters: title: Map_Filters type: object additionalProperties: $ref: '#/components/schemas/Filters' 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. If no ``CumulativeFilter`` defined, the default of a single ``WildcardFilter`` with include_created_event_blob unset is used. Optional: can be empty type: array items: $ref: '#/components/schemas/CumulativeFilter' 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 properties: identifierFilter: $ref: '#/components/schemas/IdentifierFilter' IdentifierFilter: title: IdentifierFilter oneOf: - type: object required: - Empty properties: Empty: $ref: '#/components/schemas/Empty2' - 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' Empty2: title: Empty type: object 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: - interfaceId 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 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: - templateId 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 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 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 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 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: can be empty 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 Either_JsCantonError_JsGetActiveContractsResponse: title: Either_JsCantonError_JsGetActiveContractsResponse oneOf: - $ref: '#/components/schemas/JsCantonError' - $ref: '#/components/schemas/JsGetActiveContractsResponse' JsGetActiveContractsResponse: title: JsGetActiveContractsResponse type: object 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' JsContractEntry: title: JsContractEntry 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' JsActiveContract: title: JsActiveContract type: object required: - createdEvent - synchronizerId - reassignmentCounter properties: createdEvent: $ref: '#/components/schemas/CreatedEvent' description: |- 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. Required 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 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 - createdAt - packageName - representativePackageId - acsDelta - createArgument - witnessParties - signatories 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. It is a valid absolute offset (positive integer) Required 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. Must be valid node ID (non-negative integer) Required 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: description: |- The arguments that have been used to create the contract. Required 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: can be empty 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: can be empty 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: must be non-empty type: array items: type: string signatories: description: |- The signatories for this contract as specified by the template. Required: must be non-empty 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. Optional: can be empty 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 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 JsEmpty: title: JsEmpty type: object JsIncompleteAssigned: title: JsIncompleteAssigned type: object required: - assignedEvent properties: assignedEvent: $ref: '#/components/schemas/JsAssignedEvent' description: Required 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 - 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: |- The offset of this event refers to the offset of the assignment, while the node_id is the index of within the batch. Required JsIncompleteUnassigned: title: JsIncompleteUnassigned type: object required: - createdEvent - unassignedEvent properties: createdEvent: $ref: '#/components/schemas/CreatedEvent' description: |- 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. Required unassignedEvent: $ref: '#/components/schemas/UnassignedEvent' description: Required 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 - reassignmentCounter - packageName - offset - nodeId - templateId - witnessParties 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: must be non-empty 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. Must be a valid absolute offset (positive integer) Required 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. Must be valid node ID (non-negative integer) Required type: integer format: int32 GetUpdatesRequest: title: GetUpdatesRequest type: object required: - updateFormat 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 not populated or set to 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. Optional 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. If empty, the stream will not terminate. If specified, the stream will terminate after this absolute offset (positive integer) is reached. Optional 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: |- The update format for this request Required 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. If unset, no transactions are emitted in the stream. Optional includeReassignments: $ref: '#/components/schemas/EventFormat' description: |- Include (un)assignments in the stream. The events in the result take the shape TRANSACTION_SHAPE_ACS_DELTA. If unset, no (un)assignments are emitted in the stream. Optional includeTopologyEvents: $ref: '#/components/schemas/TopologyFormat' description: |- Include topology events in streams. If unset no topology events are emitted in the stream. Optional 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 - eventFormat 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 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. If unset, no participant authorization topology events are emitted in the stream. Optional 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. Optional: can be empty type: array items: type: string Either_JsCantonError_JsGetUpdatesResponse: title: Either_JsCantonError_JsGetUpdatesResponse oneOf: - $ref: '#/components/schemas/JsCantonError' - $ref: '#/components/schemas/JsGetUpdatesResponse' JsGetUpdatesResponse: title: JsGetUpdatesResponse type: object properties: update: $ref: '#/components/schemas/Update' 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' 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' Reassignment: title: Reassignment description: Complete view of an on-ledger reassignment. type: object required: - value properties: value: $ref: '#/components/schemas/JsReassignment' JsReassignment: title: JsReassignment description: Complete view of an on-ledger reassignment. type: object required: - updateId - offset - recordTime - synchronizerId - events 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``. Must be a valid absolute offset (positive integer). Required type: integer format: int64 events: description: |- The collection of reassignment events. Required: must be non-empty type: array items: $ref: '#/components/schemas/JsReassignmentEvent' traceContext: $ref: '#/components/schemas/TraceContext' description: |- 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. Optional 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 paidTrafficCost: description: |- The traffic cost that this participant node paid for the corresponding (un)assignment request. Not set for transactions that were - initiated by another participant - initiated offline via the repair service - processed before the participant started serving traffic cost on the Ledger API - returned as part of a query filtering for a non submitting party Optional: can be empty type: integer format: int64 JsReassignmentEvent: title: JsReassignmentEvent oneOf: - type: object required: - JsAssignmentEvent properties: JsAssignmentEvent: $ref: '#/components/schemas/JsAssignmentEvent' - type: object required: - JsUnassignedEvent properties: JsUnassignedEvent: $ref: '#/components/schemas/JsUnassignedEvent' 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' 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' TopologyTransaction: title: TopologyTransaction type: object required: - value properties: value: $ref: '#/components/schemas/JsTopologyTransaction' JsTopologyTransaction: title: JsTopologyTransaction type: object required: - updateId - offset - synchronizerId - recordTime - events 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``. It is a valid absolute offset (positive integer). Required 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: must be non-empty type: array items: $ref: '#/components/schemas/TopologyEvent' traceContext: $ref: '#/components/schemas/TraceContext' description: |- 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. Optional TopologyEvent: title: TopologyEvent type: object properties: event: $ref: '#/components/schemas/TopologyEventEvent' TopologyEventEvent: title: TopologyEventEvent oneOf: - type: object required: - Empty properties: Empty: $ref: '#/components/schemas/Empty3' - 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' Empty3: title: Empty 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 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' JsTransaction: title: JsTransaction description: Filtered view of an on-ledger transaction's create and archive events. type: object required: - updateId - effectiveAt - offset - synchronizerId - recordTime - events 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: must be non-empty 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``. It is a valid absolute offset (positive integer). Required 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: |- 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. Optional 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: can be empty type: string paidTrafficCost: description: |- The traffic cost that this participant node paid for the confirmation request for this transaction. Not set for transactions that were - initiated by another participant - initiated offline via the repair service - processed before the participant started serving traffic cost on the Ledger API - returned as part of a query filtering for a non submitting party Optional: can be empty type: integer format: int64 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' 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 - witnessParties 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. It is a valid absolute offset (positive integer) Required 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. Must be valid node ID (non-negative integer) Required 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: must be non-empty 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: can be empty type: array items: type: string 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 - packageName - acsDelta - actingParties - witnessParties 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. It is a valid absolute offset (positive integer) Required 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. Must be valid node ID (non-negative integer) Required 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: must be non-empty 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: must be non-empty 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. Optional 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: can be empty 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 Either_JsCantonError_JsGetUpdateTreesResponse: title: Either_JsCantonError_JsGetUpdateTreesResponse oneOf: - $ref: '#/components/schemas/JsCantonError' - $ref: '#/components/schemas/JsGetUpdateTreesResponse' JsGetUpdateTreesResponse: title: JsGetUpdateTreesResponse description: Provided for backwards compatibility, it will be removed in the Canton version 3.5.0. type: object properties: update: $ref: '#/components/schemas/Update1' 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' 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' Reassignment1: title: Reassignment description: Complete view of an on-ledger reassignment. type: object required: - value properties: value: $ref: '#/components/schemas/JsReassignment' 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' 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 - effectiveAt - 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 Map_Int_TreeEvent: title: Map_Int_TreeEvent type: object additionalProperties: $ref: '#/components/schemas/TreeEvent' 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' CreatedTreeEvent: title: CreatedTreeEvent type: object required: - value properties: value: $ref: '#/components/schemas/CreatedEvent' ExercisedTreeEvent: title: ExercisedTreeEvent type: object required: - value properties: value: $ref: '#/components/schemas/ExercisedEvent' messages: CompletionStreamRequest: payload: $ref: '#/components/schemas/CompletionStreamRequest' contentType: application/json Either_JsCantonError_CompletionStreamResponse: payload: $ref: '#/components/schemas/Either_JsCantonError_CompletionStreamResponse' contentType: application/json GetActiveContractsRequest: payload: $ref: '#/components/schemas/GetActiveContractsRequest' contentType: application/json Either_JsCantonError_JsGetActiveContractsResponse: payload: $ref: '#/components/schemas/Either_JsCantonError_JsGetActiveContractsResponse' contentType: application/json GetUpdatesRequest: payload: $ref: '#/components/schemas/GetUpdatesRequest' contentType: application/json Either_JsCantonError_JsGetUpdatesResponse: payload: $ref: '#/components/schemas/Either_JsCantonError_JsGetUpdatesResponse' contentType: application/json Either_JsCantonError_JsGetUpdateTreesResponse: payload: $ref: '#/components/schemas/Either_JsCantonError_JsGetUpdateTreesResponse' contentType: application/json securitySchemes: httpAuth: type: http description: Ledger API standard JWT token scheme: bearer httpApiKeyAuth: type: httpApiKey description: Ledger API standard JWT token (websocket) name: Sec-WebSocket-Protocol in: header