canton_api_client/models/exercise_by_key_command.rs
1/*
2 * JSON Ledger API HTTP endpoints
3 *
4 * 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
5 *
6 * The version of the OpenAPI document: 3.4.12-SNAPSHOT
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// ExerciseByKeyCommand : Exercise a choice on an existing contract specified by its key.
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct ExerciseByKeyCommand {
17 /// 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
18 #[serde(rename = "templateId")]
19 pub template_id: String,
20 /// The key of the contract the client wants to exercise upon. Required
21 #[serde(rename = "contractKey", deserialize_with = "Option::deserialize")]
22 pub contract_key: Option<serde_json::Value>,
23 /// The name of the choice the client wants to exercise. Must be a valid NameString (as described in ``value.proto``) Required
24 #[serde(rename = "choice")]
25 pub choice: String,
26 /// The argument for this choice. Required
27 #[serde(rename = "choiceArgument", deserialize_with = "Option::deserialize")]
28 pub choice_argument: Option<serde_json::Value>,
29}
30
31impl ExerciseByKeyCommand {
32 /// Exercise a choice on an existing contract specified by its key.
33 pub fn new(template_id: String, contract_key: Option<serde_json::Value>, choice: String, choice_argument: Option<serde_json::Value>) -> ExerciseByKeyCommand {
34 ExerciseByKeyCommand {
35 template_id,
36 contract_key,
37 choice,
38 choice_argument,
39 }
40 }
41}
42