canton_api_client/models/
js_commands.rs

1/*
2 * JSON Ledger API HTTP endpoints
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: 3.3.0-SNAPSHOT
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// JsCommands : A composite command that groups multiple commands together.
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct JsCommands {
17    /// Individual elements of this atomic command. Must be non-empty. Required
18    #[serde(rename = "commands", skip_serializing_if = "Option::is_none")]
19    pub commands: Option<Vec<models::Command>>,
20    /// 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
21    #[serde(rename = "commandId")]
22    pub command_id: String,
23    /// 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.
24    #[serde(rename = "actAs", skip_serializing_if = "Option::is_none")]
25    pub act_as: Option<Vec<String>>,
26    /// 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.
27    #[serde(rename = "userId", skip_serializing_if = "Option::is_none")]
28    pub user_id: Option<String>,
29    /// 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
30    #[serde(rename = "readAs", skip_serializing_if = "Option::is_none")]
31    pub read_as: Option<Vec<String>>,
32    /// Identifier of the on-ledger workflow that this command is a part of. Must be a valid LedgerString (as described in ``value.proto``). Optional
33    #[serde(rename = "workflowId", skip_serializing_if = "Option::is_none")]
34    pub workflow_id: Option<String>,
35    #[serde(rename = "deduplicationPeriod", skip_serializing_if = "Option::is_none")]
36    pub deduplication_period: Option<Box<models::DeduplicationPeriod>>,
37    /// 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
38    #[serde(rename = "minLedgerTimeAbs", skip_serializing_if = "Option::is_none")]
39    pub min_ledger_time_abs: Option<String>,
40    #[serde(rename = "minLedgerTimeRel", skip_serializing_if = "Option::is_none")]
41    pub min_ledger_time_rel: Option<Box<models::Duration>>,
42    /// 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
43    #[serde(rename = "submissionId", skip_serializing_if = "Option::is_none")]
44    pub submission_id: Option<String>,
45    /// Additional contracts used to resolve contract & contract key lookups. Optional
46    #[serde(rename = "disclosedContracts", skip_serializing_if = "Option::is_none")]
47    pub disclosed_contracts: Option<Vec<models::DisclosedContract>>,
48    /// Must be a valid synchronizer id Optional
49    #[serde(rename = "synchronizerId", skip_serializing_if = "Option::is_none")]
50    pub synchronizer_id: Option<String>,
51    /// The package-id selection preference of the client for resolving package names and interface instances in command submission and interpretation
52    #[serde(rename = "packageIdSelectionPreference", skip_serializing_if = "Option::is_none")]
53    pub package_id_selection_preference: Option<Vec<String>>,
54}
55
56impl JsCommands {
57    /// A composite command that groups multiple commands together.
58    pub fn new(command_id: String) -> JsCommands {
59        JsCommands {
60            commands: None,
61            command_id,
62            act_as: None,
63            user_id: None,
64            read_as: None,
65            workflow_id: None,
66            deduplication_period: None,
67            min_ledger_time_abs: None,
68            min_ledger_time_rel: None,
69            submission_id: None,
70            disclosed_contracts: None,
71            synchronizer_id: None,
72            package_id_selection_preference: None,
73        }
74    }
75}
76