diff --git a/README.md b/README.md
index 2a4e455..cc300f1 100644
--- a/README.md
+++ b/README.md
@@ -6,8 +6,8 @@ Canton API client.
### Open API specification files for Splice and Ledger APIs
* [Splice APIs](https://docs.dev.sync.global/app_dev/overview/splice_app_apis.html#openapi-conventions) (should paste all yaml files into the `OpenApiSpecs` folder)
-* [Ledger Json API (REST)](https://dev-canton-api.trakx.io/api/json-api/docs/openapi) (should paste the yaml content into the `OpenApiSpecs/ledger.yaml` file)
-* [Ledger Async API (websockets)](https://dev-canton-api.trakx.io/api/json-api/docs/asyncapi) (should paste the yaml content into the `OpenApiSpecs/ledger-async.yaml` file)
+* [Ledger Json API (REST)](https://dev-canton-api.trakx.io/api/json-api/docs/openapi) (should paste the yaml content into the `OpenApiSpecs/ledger.yaml` file). Another link is directly in their [github repo](https://github.com/digital-asset/canton/blob/release-line-3.4/community/ledger/ledger-json-api/src/test/resources/json-api-docs/openapi.yaml) - pay attention to the release line!
+* [Ledger Async API (websockets)](https://dev-canton-api.trakx.io/api/json-api/docs/asyncapi) (should paste the yaml content into the `OpenApiSpecs/ledger-async.yaml` file). Another link is directly in their [github repo](https://github.com/digital-asset/canton/blob/release-line-3.4/community/ledger/ledger-json-api/src/test/resources/json-api-docs/asyncapi.yaml) - pay attention to the release line!
* [Utilities API](https://api.utilities.digitalasset-dev.com/api/utilities/v0/openapi) (should paste the yaml content into the `OpenApiSpecs/utilities.yaml` file)
## Relevant links
diff --git a/src/Trakx.Canton.ApiClient/Configuration/AuthenticationRequestHandler.cs b/src/Trakx.Canton.ApiClient/Auth/AuthenticationRequestHandler.cs
similarity index 100%
rename from src/Trakx.Canton.ApiClient/Configuration/AuthenticationRequestHandler.cs
rename to src/Trakx.Canton.ApiClient/Auth/AuthenticationRequestHandler.cs
diff --git a/src/Trakx.Canton.ApiClient/Configuration/CantonApiClientCredentials.cs b/src/Trakx.Canton.ApiClient/Auth/CantonApiClientCredentials.cs
similarity index 100%
rename from src/Trakx.Canton.ApiClient/Configuration/CantonApiClientCredentials.cs
rename to src/Trakx.Canton.ApiClient/Auth/CantonApiClientCredentials.cs
diff --git a/src/Trakx.Canton.ApiClient/Auth/StaticJwtCredentialsProvider.cs b/src/Trakx.Canton.ApiClient/Auth/StaticJwtCredentialsProvider.cs
new file mode 100644
index 0000000..5e50e4a
--- /dev/null
+++ b/src/Trakx.Canton.ApiClient/Auth/StaticJwtCredentialsProvider.cs
@@ -0,0 +1,50 @@
+using System.Net.Http.Headers;
+using Trakx.Authentication;
+using Trakx.Authentication.Client;
+
+namespace Trakx.Canton.ApiClient;
+
+///
+/// Provides static JWT credentials.
+///
+public class StaticJwtCredentialsProvider : IAuthCredentialsProvider
+{
+ private readonly string _authToken;
+
+ /// Constructor.
+ public StaticJwtCredentialsProvider(string authToken)
+ {
+ ArgumentException.ThrowIfNullOrWhiteSpace(authToken);
+ _authToken = authToken;
+ }
+
+ ///
+ public void AddCredentials(HttpRequestMessage msg)
+ {
+ var credentials = GetCredentials();
+ msg.Headers.Authorization = new AuthenticationHeaderValue(credentials.Scheme, credentials.Token);
+ }
+
+ ///
+ public Task AddCredentialsAsync(HttpRequestMessage msg, CancellationToken cancellationToken = default)
+ {
+ AddCredentials(msg);
+ return Task.CompletedTask;
+ }
+
+ ///
+ public AuthCredentials GetCredentials()
+ {
+ return new AuthCredentials
+ {
+ Scheme = AuthenticationConstants.CredentialsScheme.Bearer,
+ Token = _authToken
+ };
+ }
+
+ ///
+ public Task GetCredentialsAsync(CancellationToken cancellationToken = default)
+ {
+ return Task.FromResult(GetCredentials());
+ }
+}
\ No newline at end of file
diff --git a/src/Trakx.Canton.ApiClient/Configuration/CantonApiClientConfiguration.cs b/src/Trakx.Canton.ApiClient/Configuration/CantonApiClientConfiguration.cs
index 51f9a9e..9eec621 100644
--- a/src/Trakx.Canton.ApiClient/Configuration/CantonApiClientConfiguration.cs
+++ b/src/Trakx.Canton.ApiClient/Configuration/CantonApiClientConfiguration.cs
@@ -57,6 +57,7 @@ public Uri GetApiUrl(Type clientType)
_ when clientType == typeof(IUtilitiesClient) => UtilitiesApiUrl,
_ when clientType == typeof(ITransferInstructionV1Client) => TokenStandardApiUrl,
_ when clientType == typeof(ILedgerClient) => LedgerApiUrl,
+ _ when clientType == typeof(ITokenMetadataV1Client) => TokenStandardApiUrl,
_ => SpliceApisUrl
};
diff --git a/src/Trakx.Canton.ApiClient/Factories/CantonApiClientFactory.cs b/src/Trakx.Canton.ApiClient/Factories/CantonApiClientFactory.cs
index a392b83..670767c 100644
--- a/src/Trakx.Canton.ApiClient/Factories/CantonApiClientFactory.cs
+++ b/src/Trakx.Canton.ApiClient/Factories/CantonApiClientFactory.cs
@@ -15,6 +15,7 @@ public class CantonApiClientFactory : ICantonApiClientFactory
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly CantonApiClientConfiguration _configuration;
private readonly SemaphoreSlim _apiKeyAuthGate = new(1, 1);
+ private readonly SemaphoreSlim _jwtFromRequestAuthGate = new(1, 1);
private readonly SemaphoreSlim _jwtAuthGate = new(1, 1);
private readonly TimeSpan _cacheDuration = TimeSpan.FromMinutes(30);
private readonly RefitSettings _refitSettings;
@@ -59,9 +60,9 @@ public TClient CreateClient(CantonApiClientCredentials credentials) whe
}
///
- public TClient CreateClientWithJwtAuth() where TClient : ICantonApiClientBase
+ public TClient CreateClientWithJwtAuth(string authToken) where TClient : ICantonApiClientBase
{
- var cacheKey = GetJwtAuthCacheKey();
+ var cacheKey = GetJwtAuthCacheKey(authToken);
if (_cache.TryGetValue(cacheKey, out var cachedClient))
return cachedClient!;
@@ -72,7 +73,8 @@ public TClient CreateClientWithJwtAuth() where TClient : ICantonApiClie
if (_cache.TryGetValue(cacheKey, out cachedClient))
return cachedClient!;
- var client = CreateClientWithJwtAuthInternal();
+ var credentialsProvider = new StaticJwtCredentialsProvider(authToken);
+ var client = CreateClientInternal(credentialsProvider);
_cache.Set(cacheKey, client, new MemoryCacheEntryOptions { SlidingExpiration = _cacheDuration });
return client;
}
@@ -82,6 +84,31 @@ public TClient CreateClientWithJwtAuth() where TClient : ICantonApiClie
}
}
+ ///
+ public TClient CreateClientWithJwtAuthFromCurrentRequest() where TClient : ICantonApiClientBase
+ {
+ var cacheKey = GetJwtAuthFromCurrentCacheKey();
+
+ if (_cache.TryGetValue(cacheKey, out var cachedClient))
+ return cachedClient!;
+
+ _jwtFromRequestAuthGate.Wait();
+ try
+ {
+ if (_cache.TryGetValue(cacheKey, out cachedClient))
+ return cachedClient!;
+
+ var credentialsProvider = new JwtCredentialsProvider(_httpContextAccessor);
+ var client = CreateClientInternal(credentialsProvider);
+ _cache.Set(cacheKey, client, new MemoryCacheEntryOptions { SlidingExpiration = _cacheDuration });
+ return client;
+ }
+ finally
+ {
+ _jwtFromRequestAuthGate.Release();
+ }
+ }
+
private TClient CreateClientWithApiKeyAuthInternal(CantonApiClientCredentials credentials)
where TClient : ICantonApiClientBase
{
@@ -95,13 +122,6 @@ private TClient CreateClientWithApiKeyAuthInternal(CantonApiClientCrede
return CreateClientInternal(credentialsProvider);
}
- private TClient CreateClientWithJwtAuthInternal()
- where TClient : ICantonApiClientBase
- {
- var credentialsProvider = new JwtCredentialsProvider(_httpContextAccessor);
- return CreateClientInternal(credentialsProvider);
- }
-
private TClient CreateClientInternal(IAuthCredentialsProvider credentialsProvider) where TClient : ICantonApiClientBase
{
var clientType = typeof(TClient);
@@ -120,6 +140,13 @@ private TClient CreateClientInternal(IAuthCredentialsProvider(CantonApiClientCredentials credentials)
=> $"Canton_ApiClient_ApiKeyAuth_{typeof(TClient).FullName}_{credentials.ClientId}";
- internal static string GetJwtAuthCacheKey()
- => $"Canton_ApiClient_JwtAuth_{typeof(TClient).FullName}";
+ internal static string GetJwtAuthFromCurrentCacheKey()
+ => $"Canton_ApiClient_JwtAuthFromRequest_{typeof(TClient).FullName}";
+
+ internal static string GetJwtAuthCacheKey(string authToken)
+ {
+ var tokenHash = System.Security.Cryptography.SHA256.HashData(System.Text.Encoding.UTF8.GetBytes(authToken));
+ var tokenHashString = Convert.ToHexString(tokenHash);
+ return $"Canton_ApiClient_JwtAuth_{tokenHashString}_{typeof(TClient).FullName}";
+ }
}
\ No newline at end of file
diff --git a/src/Trakx.Canton.ApiClient/Factories/ICantonApiClientFactory.cs b/src/Trakx.Canton.ApiClient/Factories/ICantonApiClientFactory.cs
index b5f73b0..1e89f22 100644
--- a/src/Trakx.Canton.ApiClient/Factories/ICantonApiClientFactory.cs
+++ b/src/Trakx.Canton.ApiClient/Factories/ICantonApiClientFactory.cs
@@ -15,10 +15,19 @@ public interface ICantonApiClientFactory
TClient CreateClient(CantonApiClientCredentials credentials) where TClient : ICantonApiClientBase;
///
- /// Creates an API client with JWT authentication.
+ /// Creates an API client that will use the given JWT Token as authentication token.
/// Each call creates a new HttpClient instance with its own handler chain.
///
/// The API client interface type.
+ /// The JWT token to use for authentication.
/// A new instance of the API client configured with JWT authentication handler.
- TClient CreateClientWithJwtAuth() where TClient : ICantonApiClientBase;
+ TClient CreateClientWithJwtAuth(string authToken) where TClient : ICantonApiClientBase;
+
+ ///
+ /// Creates an API client with JWT authentication using the JWT token from the current request.
+ /// Each call creates a new HttpClient instance with its own handler chain.
+ ///
+ /// The API client interface type.
+ /// A new instance of the API client configured with JWT authentication handler.
+ TClient CreateClientWithJwtAuthFromCurrentRequest() where TClient : ICantonApiClientBase;
}
\ No newline at end of file
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AllocateExternalPartyRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AllocateExternalPartyRequest.cs
index c99852e..f0d3017 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AllocateExternalPartyRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AllocateExternalPartyRequest.cs
@@ -20,7 +20,8 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class AllocateExternalPartyRequest
{
///
- /// TODO(#27670) support synchronizer aliases Synchronizer ID on which to onboard the party Required
+ /// TODO(#27670) support synchronizer aliases Synchronizer ID on which to onboard the party
+ /// Required
///
[JsonPropertyName("synchronizer")]
[Required]
@@ -39,22 +40,25 @@ public partial class AllocateExternalPartyRequest
///
/// - A PartyToParticipant to register the hosting relationship of the party.
///
- /// Must be provided. Required
+ /// Must be provided.
+ /// Required: must be non-empty
///
[JsonPropertyName("onboardingTransactions")]
+ [Required]
public System.Collections.Generic.IList OnboardingTransactions { get; set; } = new List();
///
/// Optional signatures of the combined hash of all onboarding_transactions This may be used instead of providing signatures on each individual transaction
+ /// Optional: can be empty
///
[JsonPropertyName("multiHashSignatures")]
public System.Collections.Generic.IList MultiHashSignatures { get; set; } = new List();
///
- /// The id of the <c>Identity Provider</c> If not set, assume the party is managed by the default identity provider. Optional
+ /// The id of the <c>Identity Provider</c> If not set, assume the party is managed by the default identity provider.
+ /// Optional
///
[JsonPropertyName("identityProviderId")]
- [Required]
public string IdentityProviderId { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AllocateExternalPartyResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AllocateExternalPartyResponse.cs
index f835ccb..68ac62c 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AllocateExternalPartyResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AllocateExternalPartyResponse.cs
@@ -19,6 +19,8 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class AllocateExternalPartyResponse
{
///
+ /// The allocated party id
+ /// Required
///
[JsonPropertyName("partyId")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AllocatePartyRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AllocatePartyRequest.cs
index f30cb23..8691ddf 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AllocatePartyRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AllocatePartyRequest.cs
@@ -20,37 +20,38 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class AllocatePartyRequest
{
///
- /// A hint to the participant which party ID to allocate. It can be ignored. Must be a valid PartyIdString (as described in <c>value.proto</c>). Optional
+ /// A hint to the participant which party ID to allocate. It can be ignored. Must be a valid PartyIdString (as described in <c>value.proto</c>).
+ /// Optional
///
[JsonPropertyName("partyIdHint")]
- [Required]
public string PartyIdHint { get; set; } = null!;
///
- /// Formerly "display_name" Participant-local metadata to be stored in the <c>PartyDetails</c> of this newly allocated party. Optional
+ /// Formerly "display_name" Participant-local metadata to be stored in the <c>PartyDetails</c> of this newly allocated party.
+ /// Optional
///
[JsonPropertyName("localMetadata")]
public ObjectMeta LocalMetadata { get; set; } = null!;
///
- /// The id of the <c>Identity Provider</c> Optional, if not set, assume the party is managed by the default identity provider or party is not hosted by the participant.
+ /// The id of the <c>Identity Provider</c> If not set, assume the party is managed by the default identity provider or party is not hosted by the participant.
+ /// Optional
///
[JsonPropertyName("identityProviderId")]
- [Required]
public string IdentityProviderId { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("synchronizerId")]
- [Required]
public string SynchronizerId { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("userId")]
- [Required]
public string UserId { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AllocatePartyResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AllocatePartyResponse.cs
index 57dada9..f074868 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AllocatePartyResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AllocatePartyResponse.cs
@@ -19,8 +19,11 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class AllocatePartyResponse
{
///
+ /// The allocated party details
+ /// Required
///
[JsonPropertyName("partyDetails")]
+ [Required]
public PartyDetails PartyDetails { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ArchivedEvent.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ArchivedEvent.cs
index 67f486c..82835b4 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ArchivedEvent.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ArchivedEvent.cs
@@ -20,14 +20,16 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class ArchivedEvent
{
///
- /// 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)
+ /// 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
///
[JsonPropertyName("offset")]
[Required]
public long Offset { get; set; }
///
- /// 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)
+ /// 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
///
[JsonPropertyName("nodeId")]
[Required]
@@ -50,13 +52,16 @@ public partial class ArchivedEvent
public string TemplateId { get; set; } = null!;
///
- /// The parties that are notified of this event. For an <c>ArchivedEvent</c>, these are the intersection of the stakeholders of the contract in question and the parties specified in the <c>TransactionFilter</c>. 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 <c>value.proto</c>). Required
+ /// The parties that are notified of this event. For an <c>ArchivedEvent</c>, these are the intersection of the stakeholders of the contract in question and the parties specified in the <c>TransactionFilter</c>. 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 <c>value.proto</c>).
+ /// Required: must be non-empty
///
[JsonPropertyName("witnessParties")]
+ [Required]
public System.Collections.Generic.IList WitnessParties { get; set; } = new List();
///
- /// The package name of the contract. Required
+ /// The package name of the contract.
+ /// Required
///
[JsonPropertyName("packageName")]
[Required]
@@ -65,7 +70,7 @@ public partial class ArchivedEvent
///
/// 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
+ /// Optional: can be empty
///
[JsonPropertyName("implementedInterfaces")]
public System.Collections.Generic.IList ImplementedInterfaces { get; set; } = new List();
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AssignCommand1.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AssignCommand1.cs
index ecb6a9b..c77397d 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AssignCommand1.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/AssignCommand1.cs
@@ -20,21 +20,24 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class AssignCommand1
{
///
- /// The ID from the unassigned event to be completed by this assignment. Must be a valid LedgerString (as described in <c>value.proto</c>). Required
+ /// The ID from the unassigned event to be completed by this assignment. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("reassignmentId")]
[Required]
public string ReassignmentId { get; set; } = null!;
///
- /// The ID of the source synchronizer Must be a valid synchronizer id Required
+ /// The ID of the source synchronizer Must be a valid synchronizer id
+ /// Required
///
[JsonPropertyName("source")]
[Required]
public string Source { get; set; } = null!;
///
- /// The ID of the target synchronizer Must be a valid synchronizer id Required
+ /// The ID of the target synchronizer Must be a valid synchronizer id
+ /// Required
///
[JsonPropertyName("target")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Completion1.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Completion1.cs
index ae57572..35a6e5f 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Completion1.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Completion1.cs
@@ -20,60 +20,66 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class Completion1
{
///
- /// The ID of the succeeded or failed command. Must be a valid LedgerString (as described in <c>value.proto</c>). Required
+ /// The ID of the succeeded or failed command. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("commandId")]
[Required]
public string CommandId { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("status")]
public JsStatus Status { get; set; } = null!;
///
- /// 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 <c>value.proto</c>).
+ /// 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 <c>value.proto</c>). Optional
///
[JsonPropertyName("updateId")]
- [Required]
public string UpdateId { get; set; } = null!;
///
- /// The user-id that was used for the submission, as described in <c>commands.proto</c>. Must be a valid UserIdString (as described in <c>value.proto</c>). Optional for historic completions where this data is not available.
+ /// The user-id that was used for the submission, as described in <c>commands.proto</c>. Must be a valid UserIdString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("userId")]
[Required]
public string UserId { get; set; } = null!;
///
- /// The set of parties on whose behalf the commands were executed. Contains the <c>act_as</c> parties from <c>commands.proto</c> 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 <c>value.proto</c>). Optional for historic completions where this data is not available.
+ /// The set of parties on whose behalf the commands were executed. Contains the <c>act_as</c> parties from <c>commands.proto</c> 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 <c>value.proto</c>).
+ /// Required: must be non-empty
///
[JsonPropertyName("actAs")]
+ [Required]
public System.Collections.Generic.IList ActAs { get; set; } = new List();
///
- /// The submission ID this completion refers to, as described in <c>commands.proto</c>. Must be a valid LedgerString (as described in <c>value.proto</c>). Optional
+ /// The submission ID this completion refers to, as described in <c>commands.proto</c>. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Optional
///
[JsonPropertyName("submissionId")]
- [Required]
public string SubmissionId { get; set; } = null!;
///
///
[JsonPropertyName("deduplicationPeriod")]
- [Required]
public DeduplicationPeriod1 DeduplicationPeriod { get; set; } = null!;
///
- /// Optional; ledger API trace context
+ /// 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
///
[JsonPropertyName("traceContext")]
public TraceContext TraceContext { get; set; } = null!;
///
- /// 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).
+ /// 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
///
[JsonPropertyName("offset")]
[Required]
@@ -89,8 +95,19 @@ public partial class Completion1
/// Required
///
[JsonPropertyName("synchronizerTime")]
+ [Required]
public SynchronizerTime SynchronizerTime { get; set; } = null!;
+ ///
+ /// 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 <c>offset</c> field to retrieve the transaction using <c>UpdateService.GetUpdateByOffset</c> on the same participant node; or alternatively use the <c>update_id</c> field to retrieve the transaction using <c>UpdateService.GetUpdateById</c> 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
+ ///
+ [JsonPropertyName("paidTrafficCost")]
+ public long? PaidTrafficCost { get; set; }
+
}
}
\ No newline at end of file
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CompletionResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CompletionResponse.cs
index 5a1b2c7..b6269f1 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CompletionResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CompletionResponse.cs
@@ -14,6 +14,7 @@
namespace Trakx.Canton.ApiClient.Contracts.Ledger
{
///
+ /// Required
///
[GeneratedCode("OpenAPIComponentsGen", "1.0.0")]
public partial class CompletionResponse
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CompletionStreamRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CompletionStreamRequest.cs
index 74f8f20..f80d5f0 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CompletionStreamRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CompletionStreamRequest.cs
@@ -19,24 +19,27 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class CompletionStreamRequest
{
///
- /// Only completions of commands submitted with the same user_id will be visible in the stream. Must be a valid UserIdString (as described in <c>value.proto</c>). 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.
+ /// Only completions of commands submitted with the same user_id will be visible in the stream. Must be a valid UserIdString (as described in <c>value.proto</c>).
+ /// 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
///
[JsonPropertyName("userId")]
- [Required]
public string UserId { get; set; } = null!;
///
- /// Non-empty list of parties whose data should be included. The stream shows only completions of commands for which at least one of the <c>act_as</c> parties is in the given set of parties. Must be a valid PartyIdString (as described in <c>value.proto</c>). Required
+ /// Non-empty list of parties whose data should be included. The stream shows only completions of commands for which at least one of the <c>act_as</c> parties is in the given set of parties. Must be a valid PartyIdString (as described in <c>value.proto</c>).
+ /// Required: must be non-empty
///
[JsonPropertyName("parties")]
+ [Required]
public System.Collections.Generic.IList Parties { get; set; } = new List();
///
/// 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
///
[JsonPropertyName("beginExclusive")]
- [Required]
- public long BeginExclusive { get; set; }
+ public long? BeginExclusive { get; set; }
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CompletionStreamResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CompletionStreamResponse.cs
index b06a4d3..989e6dc 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CompletionStreamResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CompletionStreamResponse.cs
@@ -21,7 +21,6 @@ public partial class CompletionStreamResponse
///
///
[JsonPropertyName("completionResponse")]
- [Required]
public CompletionResponse CompletionResponse { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CostEstimation.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CostEstimation.cs
index 6a8e54d..f14f542 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CostEstimation.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CostEstimation.cs
@@ -21,12 +21,15 @@ public partial class CostEstimation
{
///
/// Timestamp at which the estimation was made
+ /// Required
///
[JsonPropertyName("estimationTimestamp")]
+ [Required]
public string EstimationTimestamp { get; set; } = null!;
///
/// Estimated traffic cost of the confirmation request associated with the transaction
+ /// Required
///
[JsonPropertyName("confirmationRequestTrafficCostEstimation")]
[Required]
@@ -34,6 +37,7 @@ public partial class CostEstimation
///
/// 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
+ /// Required
///
[JsonPropertyName("confirmationResponseTrafficCostEstimation")]
[Required]
@@ -41,6 +45,7 @@ public partial class CostEstimation
///
/// Sum of the fields above
+ /// Required
///
[JsonPropertyName("totalTrafficCostEstimation")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CostEstimationHints.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CostEstimationHints.cs
index 82a8f14..60adf20 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CostEstimationHints.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CostEstimationHints.cs
@@ -21,13 +21,14 @@ public partial class CostEstimationHints
{
///
/// Disable cost estimation Default (not set) is false
+ /// Optional
///
[JsonPropertyName("disabled")]
- [Required]
- public bool Disabled { get; set; }
+ public bool? Disabled { get; set; }
///
- /// 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)
+ /// 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. Empty list is equivalent to not providing this field
+ /// Optional: can be empty
///
[JsonPropertyName("expectedSignatures")]
public System.Collections.Generic.IList ExpectedSignatures { get; set; } = new List();
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateAndExerciseCommand.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateAndExerciseCommand.cs
index 7abe71e..67ca1f9 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateAndExerciseCommand.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateAndExerciseCommand.cs
@@ -28,21 +28,24 @@ public partial class CreateAndExerciseCommand
public string TemplateId { get; set; } = null!;
///
- /// The arguments required for creating a contract from this template. Required
+ /// The arguments required for creating a contract from this template.
+ /// Required
///
[JsonPropertyName("createArguments")]
[Required]
public object CreateArguments { get; set; } = null!;
///
- /// The name of the choice the client wants to exercise. Must be a valid NameString (as described in <c>value.proto</c>). Required
+ /// The name of the choice the client wants to exercise. Must be a valid NameString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("choice")]
[Required]
public string Choice { get; set; } = null!;
///
- /// The argument for this choice. Required
+ /// The argument for this choice.
+ /// Required
///
[JsonPropertyName("choiceArgument")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateCommand.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateCommand.cs
index 6a086bd..e4d63e4 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateCommand.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateCommand.cs
@@ -28,7 +28,8 @@ public partial class CreateCommand
public string TemplateId { get; set; } = null!;
///
- /// The arguments required for creating a contract from this template. Required
+ /// The arguments required for creating a contract from this template.
+ /// Required
///
[JsonPropertyName("createArguments")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateIdentityProviderConfigRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateIdentityProviderConfigRequest.cs
index 10e0d8a..971fe60 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateIdentityProviderConfigRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateIdentityProviderConfigRequest.cs
@@ -22,6 +22,7 @@ public partial class CreateIdentityProviderConfigRequest
/// Required
///
[JsonPropertyName("identityProviderConfig")]
+ [Required]
public IdentityProviderConfig IdentityProviderConfig { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateIdentityProviderConfigResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateIdentityProviderConfigResponse.cs
index 017adf9..4d5ba23 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateIdentityProviderConfigResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateIdentityProviderConfigResponse.cs
@@ -19,8 +19,10 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class CreateIdentityProviderConfigResponse
{
///
+ /// Required
///
[JsonPropertyName("identityProviderConfig")]
+ [Required]
public IdentityProviderConfig IdentityProviderConfig { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateUserRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateUserRequest.cs
index 72b09cc..b01c6d8 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateUserRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateUserRequest.cs
@@ -20,13 +20,16 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class CreateUserRequest
{
///
- /// The user to create. Required
+ /// The user to create.
+ /// Required
///
[JsonPropertyName("user")]
+ [Required]
public User User { get; set; } = null!;
///
- /// The rights to be assigned to the user upon creation, which SHOULD include appropriate rights for the <c>user.primary_party</c>. Optional
+ /// The rights to be assigned to the user upon creation, which SHOULD include appropriate rights for the <c>user.primary_party</c>.
+ /// Optional: can be empty
///
[JsonPropertyName("rights")]
public System.Collections.Generic.IList Rights { get; set; } = new List();
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateUserResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateUserResponse.cs
index 590eee5..317b59e 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateUserResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreateUserResponse.cs
@@ -20,8 +20,10 @@ public partial class CreateUserResponse
{
///
/// Created user.
+ /// Required
///
[JsonPropertyName("user")]
+ [Required]
public User User { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreatedEvent.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreatedEvent.cs
index d1cbd9b..4adb556 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreatedEvent.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CreatedEvent.cs
@@ -20,21 +20,24 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class CreatedEvent
{
///
- /// 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)
+ /// 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
///
[JsonPropertyName("offset")]
[Required]
public long Offset { get; set; }
///
- /// 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)
+ /// 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
///
[JsonPropertyName("nodeId")]
[Required]
public int NodeId { get; set; }
///
- /// The ID of the created contract. Must be a valid LedgerString (as described in <c>value.proto</c>). Required
+ /// The ID of the created contract. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("contractId")]
[Required]
@@ -49,21 +52,25 @@ public partial class CreatedEvent
public string TemplateId { get; set; } = null!;
///
- /// The key of the created contract. This will be set if and only if <c>template_id</c> defines a contract key. Optional
+ /// The key of the created contract. This will be set if and only if <c>template_id</c> defines a contract key.
+ /// Optional
///
[JsonPropertyName("contractKey")]
public object ContractKey { get; set; } = null!;
///
+ /// The arguments that have been used to create the contract.
+ /// Required
///
[JsonPropertyName("createArgument")]
+ [Required]
public object CreateArgument { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("createdEventBlob")]
- [Required]
public string CreatedEventBlob { get; set; } = null!;
///
@@ -73,7 +80,7 @@ public partial class CreatedEvent
/// - and which is implemented by the template of this event,
/// - and which has <c>include_interface_view</c> set.
///
- /// Optional
+ /// Optional: can be empty
///
[JsonPropertyName("interfaceViews")]
public System.Collections.Generic.IList InterfaceViews { get; set; } = new List();
@@ -81,32 +88,39 @@ public partial class CreatedEvent
///
/// The parties that are notified of this event. When a <c>CreatedEvent</c> is returned as part of a transaction tree or ledger-effects transaction, this will include all the parties specified in the <c>TransactionFilter</c> 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 <c>TransactionFilter</c> that are stakeholders of the contract (i.e. either signatories or observers). If the <c>CreatedEvent</c> 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 <c>TransactionFilter</c> 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 <c>TopologyEvent</c>s for that party by setting a corresponding <c>UpdateFormat</c>. 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
+ /// 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 <c>TopologyEvent</c>s for that party by setting a corresponding <c>UpdateFormat</c>. 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
///
[JsonPropertyName("witnessParties")]
+ [Required]
public System.Collections.Generic.IList WitnessParties { get; set; } = new List();
///
- /// The signatories for this contract as specified by the template. Required
+ /// The signatories for this contract as specified by the template.
+ /// Required: must be non-empty
///
[JsonPropertyName("signatories")]
+ [Required]
public System.Collections.Generic.IList Signatories { get; set; } = new List();
///
- /// 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
+ /// 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
///
[JsonPropertyName("observers")]
public System.Collections.Generic.IList Observers { get; set; } = new List();
///
- /// Ledger effective time of the transaction that created the contract. Required
+ /// Ledger effective time of the transaction that created the contract.
+ /// Required
///
[JsonPropertyName("createdAt")]
[Required]
public string CreatedAt { get; set; } = null!;
///
- /// The package name of the created contract. Required
+ /// The package name of the created contract.
+ /// Required
///
[JsonPropertyName("packageName")]
[Required]
@@ -122,7 +136,8 @@ public partial class CreatedEvent
public string RepresentativePackageId { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("acsDelta")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CumulativeFilter.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CumulativeFilter.cs
index 4788210..56b0d7e 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CumulativeFilter.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/CumulativeFilter.cs
@@ -22,7 +22,6 @@ public partial class CumulativeFilter
///
///
[JsonPropertyName("identifierFilter")]
- [Required]
public IdentifierFilter IdentifierFilter { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/DeduplicationPeriod.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/DeduplicationPeriod.cs
index cfeb4c5..621ef63 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/DeduplicationPeriod.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/DeduplicationPeriod.cs
@@ -15,6 +15,7 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
{
///
/// Specifies the deduplication period for the change ID. If omitted, the participant will assume the configured maximum deduplication time.
+ /// Optional
///
[GeneratedCode("OpenAPIComponentsGen", "1.0.0")]
public partial class DeduplicationPeriod
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/DeduplicationPeriod1.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/DeduplicationPeriod1.cs
index a121eca..ae4f1a8 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/DeduplicationPeriod1.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/DeduplicationPeriod1.cs
@@ -16,7 +16,8 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
///
/// The actual deduplication window used for the submission, which is derived from <c>Commands.deduplication_period</c>. 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 <c>commands.proto</c>.
- /// Optional; the deduplication guarantee applies even if the completion omits this field.
+ /// The deduplication guarantee applies even if the completion omits this field.
+ /// Optional
///
[GeneratedCode("OpenAPIComponentsGen", "1.0.0")]
public partial class DeduplicationPeriod1
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/DisclosedContract.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/DisclosedContract.cs
index 9e56011..ca4b39f 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/DisclosedContract.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/DisclosedContract.cs
@@ -21,31 +21,33 @@ public partial class DisclosedContract
{
///
/// 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
+ /// If provided, used to validate the template id of the contract serialized in the created_event_blob.
+ /// Optional
///
[JsonPropertyName("templateId")]
public string TemplateId { get; set; } = null!;
///
/// The contract id
- /// If provided, used to validate the contract id of the contract serialized in the created_event_blob. Optional
+ /// If provided, used to validate the contract id of the contract serialized in the created_event_blob.
+ /// Optional
///
[JsonPropertyName("contractId")]
- [Required]
public string ContractId { get; set; } = null!;
///
- /// Opaque byte string containing the complete payload required by the Daml engine to reconstruct a contract not known to the receiving participant. Required
+ /// Opaque byte string containing the complete payload required by the Daml engine to reconstruct a contract not known to the receiving participant.
+ /// Required: must be non-empty
///
[JsonPropertyName("createdEventBlob")]
[Required]
public string CreatedEventBlob { get; set; } = null!;
///
- /// The ID of the synchronizer where the contract is currently assigned Optional
+ /// The ID of the synchronizer where the contract is currently assigned
+ /// Optional
///
[JsonPropertyName("synchronizerId")]
- [Required]
public string SynchronizerId { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/EventFormat.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/EventFormat.cs
index cc14309..c48aaac 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/EventFormat.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/EventFormat.cs
@@ -23,24 +23,24 @@ public partial class EventFormat
///
/// Each key must be a valid PartyIdString (as described in <c>value.proto</c>). 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
+ /// Optional: can be empty
///
[JsonPropertyName("filtersByParty")]
- [Required]
public Map_Filters FiltersByParty { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("filtersForAnyParty")]
public Filters FiltersForAnyParty { get; set; } = null!;
///
- /// 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 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
///
[JsonPropertyName("verbose")]
- [Required]
- public bool Verbose { get; set; }
+ public bool? Verbose { get; set; }
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExecuteSubmissionAndWaitResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExecuteSubmissionAndWaitResponse.cs
index 68faaae..e17cd16 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExecuteSubmissionAndWaitResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExecuteSubmissionAndWaitResponse.cs
@@ -19,14 +19,16 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class ExecuteSubmissionAndWaitResponse
{
///
- /// The id of the transaction that resulted from the submitted command. Must be a valid LedgerString (as described in <c>value.proto</c>). Required
+ /// The id of the transaction that resulted from the submitted command. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("updateId")]
[Required]
public string UpdateId { get; set; } = null!;
///
- /// The details of the offset field are described in <c>community/ledger-api/README.md</c>. Required
+ /// The details of the offset field are described in <c>community/ledger-api/README.md</c>.
+ /// Required
///
[JsonPropertyName("completionOffset")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExerciseByKeyCommand.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExerciseByKeyCommand.cs
index 8248423..f85b7cc 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExerciseByKeyCommand.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExerciseByKeyCommand.cs
@@ -28,21 +28,24 @@ public partial class ExerciseByKeyCommand
public string TemplateId { get; set; } = null!;
///
- /// The key of the contract the client wants to exercise upon. Required
+ /// The key of the contract the client wants to exercise upon.
+ /// Required
///
[JsonPropertyName("contractKey")]
[Required]
public object ContractKey { get; set; } = null!;
///
- /// The name of the choice the client wants to exercise. Must be a valid NameString (as described in <c>value.proto</c>) Required
+ /// The name of the choice the client wants to exercise. Must be a valid NameString (as described in <c>value.proto</c>)
+ /// Required
///
[JsonPropertyName("choice")]
[Required]
public string Choice { get; set; } = null!;
///
- /// The argument for this choice. Required
+ /// The argument for this choice.
+ /// Required
///
[JsonPropertyName("choiceArgument")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExerciseCommand.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExerciseCommand.cs
index a00a673..90a52a6 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExerciseCommand.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExerciseCommand.cs
@@ -28,21 +28,24 @@ public partial class ExerciseCommand
public string TemplateId { get; set; } = null!;
///
- /// The ID of the contract the client wants to exercise upon. Must be a valid LedgerString (as described in <c>value.proto</c>). Required
+ /// The ID of the contract the client wants to exercise upon. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("contractId")]
[Required]
public string ContractId { get; set; } = null!;
///
- /// The name of the choice the client wants to exercise. Must be a valid NameString (as described in <c>value.proto</c>) Required
+ /// The name of the choice the client wants to exercise. Must be a valid NameString (as described in <c>value.proto</c>)
+ /// Required
///
[JsonPropertyName("choice")]
[Required]
public string Choice { get; set; } = null!;
///
- /// The argument for this choice. Required
+ /// The argument for this choice.
+ /// Required
///
[JsonPropertyName("choiceArgument")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExercisedEvent.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExercisedEvent.cs
index 1895e8e..b2823b2 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExercisedEvent.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExercisedEvent.cs
@@ -20,14 +20,16 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class ExercisedEvent
{
///
- /// 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)
+ /// 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
///
[JsonPropertyName("offset")]
[Required]
public long Offset { get; set; }
///
- /// 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)
+ /// 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
///
[JsonPropertyName("nodeId")]
[Required]
@@ -57,54 +59,63 @@ public partial class ExercisedEvent
public string InterfaceId { get; set; } = null!;
///
- /// The choice that was exercised on the target contract. Must be a valid NameString (as described in <c>value.proto</c>). Required
+ /// The choice that was exercised on the target contract. Must be a valid NameString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("choice")]
[Required]
public string Choice { get; set; } = null!;
///
- /// The argument of the exercised choice. Required
+ /// The argument of the exercised choice.
+ /// Required
///
[JsonPropertyName("choiceArgument")]
[Required]
public object ChoiceArgument { get; set; } = null!;
///
- /// The parties that exercised the choice. Each element must be a valid PartyIdString (as described in <c>value.proto</c>). Required
+ /// The parties that exercised the choice. Each element must be a valid PartyIdString (as described in <c>value.proto</c>).
+ /// Required: must be non-empty
///
[JsonPropertyName("actingParties")]
+ [Required]
public System.Collections.Generic.IList ActingParties { get; set; } = new List();
///
- /// If true, the target contract may no longer be exercised. Required
+ /// If true, the target contract may no longer be exercised.
+ /// Required
///
[JsonPropertyName("consuming")]
[Required]
public bool Consuming { get; set; }
///
- /// 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 <c>choice ... controller</c> syntax, and said controllers are not explicitly marked as observers. Each element must be a valid PartyIdString (as described in <c>value.proto</c>). Required
+ /// 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 <c>choice ... controller</c> syntax, and said controllers are not explicitly marked as observers. Each element must be a valid PartyIdString (as described in <c>value.proto</c>).
+ /// Required: must be non-empty
///
[JsonPropertyName("witnessParties")]
+ [Required]
public System.Collections.Generic.IList WitnessParties { get; set; } = new List();
///
- /// Specifies the upper boundary of the node ids of the events in the same transaction that appeared as a result of this <c>ExercisedEvent</c>. 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
+ /// Specifies the upper boundary of the node ids of the events in the same transaction that appeared as a result of this <c>ExercisedEvent</c>. 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
///
[JsonPropertyName("lastDescendantNodeId")]
[Required]
public int LastDescendantNodeId { get; set; }
///
- /// The result of exercising the choice. Required
+ /// The result of exercising the choice.
+ /// Optional
///
[JsonPropertyName("exerciseResult")]
- [Required]
public object ExerciseResult { get; set; } = null!;
///
- /// The package name of the contract. Required
+ /// The package name of the contract.
+ /// Required
///
[JsonPropertyName("packageName")]
[Required]
@@ -113,13 +124,14 @@ public partial class ExercisedEvent
///
/// 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
+ /// Optional: can be empty
///
[JsonPropertyName("implementedInterfaces")]
public System.Collections.Generic.IList ImplementedInterfaces { get; set; } = new List();
///
- /// 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
+ /// 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
///
[JsonPropertyName("acsDelta")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExperimentalCommandInspectionService.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExperimentalCommandInspectionService.cs
index 0341edd..bed5c0c 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExperimentalCommandInspectionService.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExperimentalCommandInspectionService.cs
@@ -20,6 +20,7 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class ExperimentalCommandInspectionService
{
///
+ /// Required
///
[JsonPropertyName("supported")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExperimentalFeatures.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExperimentalFeatures.cs
index 08b65e0..ceedb4d 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExperimentalFeatures.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExperimentalFeatures.cs
@@ -20,11 +20,13 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class ExperimentalFeatures
{
///
+ /// Optional
///
[JsonPropertyName("staticTime")]
public ExperimentalStaticTime StaticTime { get; set; } = null!;
///
+ /// Optional
///
[JsonPropertyName("commandInspectionService")]
public ExperimentalCommandInspectionService CommandInspectionService { get; set; } = null!;
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExperimentalStaticTime.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExperimentalStaticTime.cs
index 716a6b3..5ead716 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExperimentalStaticTime.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ExperimentalStaticTime.cs
@@ -20,6 +20,7 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class ExperimentalStaticTime
{
///
+ /// Required
///
[JsonPropertyName("supported")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/FeaturesDescriptor.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/FeaturesDescriptor.cs
index 2504210..3eb3adf 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/FeaturesDescriptor.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/FeaturesDescriptor.cs
@@ -21,32 +21,42 @@ public partial class FeaturesDescriptor
///
/// Features under development or features that are used for ledger implementation testing purposes only.
/// Daml applications SHOULD not depend on these in production.
+ /// Required
///
[JsonPropertyName("experimental")]
+ [Required]
public ExperimentalFeatures Experimental { get; set; } = null!;
///
/// 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.
+ /// Required
///
[JsonPropertyName("userManagement")]
+ [Required]
public UserManagementFeature UserManagement { get; set; } = null!;
///
/// 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.
+ /// Required
///
[JsonPropertyName("partyManagement")]
+ [Required]
public PartyManagementFeature PartyManagement { get; set; } = null!;
///
/// It contains the timeouts related to the periodic offset checkpoint emission
+ /// Required
///
[JsonPropertyName("offsetCheckpoint")]
+ [Required]
public OffsetCheckpointFeature OffsetCheckpoint { get; set; } = null!;
///
/// 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.
+ /// Required
///
[JsonPropertyName("packageFeature")]
+ [Required]
public PackageFeature PackageFeature { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Filters.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Filters.cs
index 02ee2af..798f932 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Filters.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Filters.cs
@@ -20,7 +20,8 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class Filters
{
///
- /// 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 <c>CumulativeFilter</c> defined, the default of a single <c>WildcardFilter</c> with include_created_event_blob unset is used.
+ /// 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 <c>CumulativeFilter</c> defined, the default of a single <c>WildcardFilter</c> with include_created_event_blob unset is used.
+ /// Optional: can be empty
///
[JsonPropertyName("cumulative")]
public System.Collections.Generic.IList Cumulative { get; set; } = new List();
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GenerateExternalPartyTopologyRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GenerateExternalPartyTopologyRequest.cs
index 947cf27..87c5999 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GenerateExternalPartyTopologyRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GenerateExternalPartyTopologyRequest.cs
@@ -19,47 +19,53 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class GenerateExternalPartyTopologyRequest
{
///
- /// TODO(#27670) support synchronizer aliases Required: synchronizer-id for which we are building this request.
+ /// Synchronizer-id for which we are building this request. TODO(#27670) support synchronizer aliases
+ /// Required
///
[JsonPropertyName("synchronizer")]
[Required]
public string Synchronizer { get; set; } = null!;
///
- /// Required: the actual party id will be constructed from this hint and a fingerprint of the public key
+ /// The actual party id will be constructed from this hint and a fingerprint of the public key
+ /// Required
///
[JsonPropertyName("partyHint")]
[Required]
public string PartyHint { get; set; } = null!;
///
- /// Required: public key
+ /// Public key
+ /// Required
///
[JsonPropertyName("publicKey")]
+ [Required]
public SigningPublicKey PublicKey { get; set; } = null!;
///
- /// Optional: if true, then the local participant will only be observing, not confirming. Default false.
+ /// If true, then the local participant will only be observing, not confirming. Default false.
+ /// Optional
///
[JsonPropertyName("localParticipantObservationOnly")]
- [Required]
- public bool LocalParticipantObservationOnly { get; set; }
+ public bool? LocalParticipantObservationOnly { get; set; }
///
- /// Optional: other participant ids which should be confirming for this party
+ /// Other participant ids which should be confirming for this party
+ /// Optional: can be empty
///
[JsonPropertyName("otherConfirmingParticipantUids")]
public System.Collections.Generic.IList OtherConfirmingParticipantUids { get; set; } = new List();
///
- /// Optional: Confirmation threshold >= 1 for the party. Defaults to all available confirmers (or if set to 0).
+ /// Confirmation threshold >= 1 for the party. Defaults to all available confirmers (or if set to 0).
+ /// Optional
///
[JsonPropertyName("confirmationThreshold")]
- [Required]
- public int ConfirmationThreshold { get; set; }
+ public int? ConfirmationThreshold { get; set; }
///
- /// Optional: other observing participant ids for this party
+ /// Other observing participant ids for this party
+ /// Optional: can be empty
///
[JsonPropertyName("observingParticipantUids")]
public System.Collections.Generic.IList ObservingParticipantUids { get; set; } = new List();
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GenerateExternalPartyTopologyResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GenerateExternalPartyTopologyResponse.cs
index c17d962..338ae79 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GenerateExternalPartyTopologyResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GenerateExternalPartyTopologyResponse.cs
@@ -20,14 +20,16 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class GenerateExternalPartyTopologyResponse
{
///
- /// the generated party id
+ /// The generated party id
+ /// Required
///
[JsonPropertyName("partyId")]
[Required]
public string PartyId { get; set; } = null!;
///
- /// the fingerprint of the supplied public key
+ /// The fingerprint of the supplied public key
+ /// Required
///
[JsonPropertyName("publicKeyFingerprint")]
[Required]
@@ -35,12 +37,15 @@ public partial class GenerateExternalPartyTopologyResponse
///
/// 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.
+ /// Required: must be non-empty
///
[JsonPropertyName("topologyTransactions")]
+ [Required]
public System.Collections.Generic.IList TopologyTransactions { get; set; } = new List();
///
/// the multi-hash which may be signed instead of each individual transaction
+ /// Required: must be non-empty
///
[JsonPropertyName("multiHash")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetActiveContractsRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetActiveContractsRequest.cs
index d9f8b03..78b8d3e 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetActiveContractsRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetActiveContractsRequest.cs
@@ -29,25 +29,22 @@ public partial class GetActiveContractsRequest
/// 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.
///
[JsonPropertyName("verbose")]
- [Required]
- public bool Verbose { get; set; }
+ public bool? Verbose { get; set; }
///
- /// 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.
+ /// 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
///
[JsonPropertyName("activeAtOffset")]
[Required]
public long ActiveAtOffset { get; set; }
///
- /// 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
- ///
+ /// Format of the contract_entries in the result. In case of CreatedEvent the presentation will be of TRANSACTION_SHAPE_ACS_DELTA.
+ /// Required
///
[JsonPropertyName("eventFormat")]
+ [Required]
public EventFormat EventFormat { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetConnectedSynchronizersResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetConnectedSynchronizersResponse.cs
index b3037b9..41a3d54 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetConnectedSynchronizersResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetConnectedSynchronizersResponse.cs
@@ -19,6 +19,7 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class GetConnectedSynchronizersResponse
{
///
+ /// Optional: can be empty
///
[JsonPropertyName("connectedSynchronizers")]
public System.Collections.Generic.IList ConnectedSynchronizers { get; set; } = new List();
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetContractRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetContractRequest.cs
index dd616b5..20bd351 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetContractRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetContractRequest.cs
@@ -19,14 +19,16 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class GetContractRequest
{
///
- /// The ID of the contract. Must be a valid LedgerString (as described in <c>value.proto</c>). Required
+ /// The ID of the contract. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("contractId")]
[Required]
public string ContractId { get; set; } = null!;
///
- /// The list of querying parties The stakeholders of the referenced contract must have an intersection with any of these parties to return the result. Optional, if no querying_parties specified, all possible contracts could be returned.
+ /// The list of querying parties The stakeholders of the referenced contract must have an intersection with any of these parties to return the result. If no querying_parties specified, all possible contracts could be returned.
+ /// Optional: can be empty
///
[JsonPropertyName("queryingParties")]
public System.Collections.Generic.IList QueryingParties { get; set; } = new List();
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetContractResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetContractResponse.cs
index 1f4f6ea..c47ce20 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetContractResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetContractResponse.cs
@@ -30,6 +30,7 @@ public partial class GetContractResponse
/// Required
///
[JsonPropertyName("createdEvent")]
+ [Required]
public CreatedEvent CreatedEvent { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetEventsByContractIdRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetEventsByContractIdRequest.cs
index 8a5e71d..5f27417 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetEventsByContractIdRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetEventsByContractIdRequest.cs
@@ -19,16 +19,19 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class GetEventsByContractIdRequest
{
///
- /// The contract id being queried. Required
+ /// The contract id being queried.
+ /// Required
///
[JsonPropertyName("contractId")]
[Required]
public string ContractId { get; set; } = null!;
///
- /// Format of the events in the result, the presentation will be of TRANSACTION_SHAPE_ACS_DELTA. Required
+ /// Format of the events in the result, the presentation will be of TRANSACTION_SHAPE_ACS_DELTA.
+ /// Required
///
[JsonPropertyName("eventFormat")]
+ [Required]
public EventFormat EventFormat { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetIdentityProviderConfigResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetIdentityProviderConfigResponse.cs
index c9211fa..092dc9a 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetIdentityProviderConfigResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetIdentityProviderConfigResponse.cs
@@ -19,8 +19,10 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class GetIdentityProviderConfigResponse
{
///
+ /// Required
///
[JsonPropertyName("identityProviderConfig")]
+ [Required]
public IdentityProviderConfig IdentityProviderConfig { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetLatestPrunedOffsetsResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetLatestPrunedOffsetsResponse.cs
index 56dc92c..6f67ca9 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetLatestPrunedOffsetsResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetLatestPrunedOffsetsResponse.cs
@@ -20,17 +20,17 @@ public partial class GetLatestPrunedOffsetsResponse
{
///
/// 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.
+ /// Optional
///
[JsonPropertyName("participantPrunedUpToInclusive")]
- [Required]
- public long ParticipantPrunedUpToInclusive { get; set; }
+ public long? ParticipantPrunedUpToInclusive { get; set; }
///
/// 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 <c>participant_pruned_up_to_inclusive</c> offset. For more details about all divulged events pruning, see <c>PruneRequest.prune_all_divulged_contracts</c> in <c>participant_pruning_service.proto</c>. If zero, the divulged events have not been pruned yet.
+ /// Optional
///
[JsonPropertyName("allDivulgedContractsPrunedUpToInclusive")]
- [Required]
- public long AllDivulgedContractsPrunedUpToInclusive { get; set; }
+ public long? AllDivulgedContractsPrunedUpToInclusive { get; set; }
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetLedgerApiVersionResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetLedgerApiVersionResponse.cs
index 6933f8c..90e2cdc 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetLedgerApiVersionResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetLedgerApiVersionResponse.cs
@@ -20,6 +20,7 @@ public partial class GetLedgerApiVersionResponse
{
///
/// The version of the ledger API.
+ /// Required
///
[JsonPropertyName("version")]
[Required]
@@ -29,8 +30,10 @@ public partial class GetLedgerApiVersionResponse
/// 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.
+ /// Required
///
[JsonPropertyName("features")]
+ [Required]
public FeaturesDescriptor Features { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetLedgerEndResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetLedgerEndResponse.cs
index e1a2260..f86d5e3 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetLedgerEndResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetLedgerEndResponse.cs
@@ -20,10 +20,10 @@ public partial class GetLedgerEndResponse
{
///
/// 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.
+ /// Optional
///
[JsonPropertyName("offset")]
- [Required]
- public long Offset { get; set; }
+ public long? Offset { get; set; }
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPackageStatusResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPackageStatusResponse.cs
index 77a1e97..b362171 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPackageStatusResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPackageStatusResponse.cs
@@ -20,6 +20,7 @@ public partial class GetPackageStatusResponse
{
///
/// The status of the package.
+ /// Required
///
[JsonPropertyName("packageStatus")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetParticipantIdResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetParticipantIdResponse.cs
index e39f284..a46d599 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetParticipantIdResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetParticipantIdResponse.cs
@@ -20,6 +20,7 @@ public partial class GetParticipantIdResponse
{
///
/// Identifier of the participant, which SHOULD be globally unique. Must be a valid LedgerString (as describe in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("participantId")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPartiesResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPartiesResponse.cs
index 84fcb97..47078c3 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPartiesResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPartiesResponse.cs
@@ -19,9 +19,10 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class GetPartiesResponse
{
///
- /// 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
+ /// 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: must be non-empty
///
[JsonPropertyName("partyDetails")]
+ [Required]
public System.Collections.Generic.IList PartyDetails { get; set; } = new List();
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPreferredPackageVersionResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPreferredPackageVersionResponse.cs
index 27e7378..29be5c6 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPreferredPackageVersionResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPreferredPackageVersionResponse.cs
@@ -19,7 +19,8 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class GetPreferredPackageVersionResponse
{
///
- /// Not populated when no preferred package is found Optional
+ /// Not populated when no preferred package is found
+ /// Optional
///
[JsonPropertyName("packagePreference")]
public PackagePreference PackagePreference { get; set; } = null!;
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPreferredPackagesRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPreferredPackagesRequest.cs
index 0078850..99b8638 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPreferredPackagesRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPreferredPackagesRequest.cs
@@ -21,20 +21,21 @@ public partial class GetPreferredPackagesRequest
///
/// 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
+ /// Required: must be non-empty
///
[JsonPropertyName("packageVettingRequirements")]
+ [Required]
public System.Collections.Generic.IList PackageVettingRequirements { get; set; } = new List();
///
/// 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
///
[JsonPropertyName("synchronizerId")]
- [Required]
public string SynchronizerId { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("vettingValidAt")]
public string VettingValidAt { get; set; } = null!;
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPreferredPackagesResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPreferredPackagesResponse.cs
index d5a078a..9038894 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPreferredPackagesResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetPreferredPackagesResponse.cs
@@ -21,13 +21,15 @@ public partial class GetPreferredPackagesResponse
///
/// 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 <c>package_id_selection_preference</c> of the command submission to avoid race conditions with concurrent changes of the on-ledger package vetting state.
- /// Required
+ /// Required: must be non-empty
///
[JsonPropertyName("packageReferences")]
+ [Required]
public System.Collections.Generic.IList PackageReferences { get; set; } = new List();
///
- /// 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
+ /// 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
///
[JsonPropertyName("synchronizerId")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetUpdateByIdRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetUpdateByIdRequest.cs
index 66eaa07..6db398e 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetUpdateByIdRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetUpdateByIdRequest.cs
@@ -19,16 +19,19 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class GetUpdateByIdRequest
{
///
- /// The ID of a particular update. Must be a valid LedgerString (as described in <c>value.proto</c>). Required
+ /// The ID of a particular update. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("updateId")]
[Required]
public string UpdateId { get; set; } = null!;
///
- /// The format for the update. Required
+ /// The format for the update.
+ /// Required
///
[JsonPropertyName("updateFormat")]
+ [Required]
public UpdateFormat UpdateFormat { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetUpdateByOffsetRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetUpdateByOffsetRequest.cs
index 5df6d01..2c4a884 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetUpdateByOffsetRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetUpdateByOffsetRequest.cs
@@ -19,16 +19,19 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class GetUpdateByOffsetRequest
{
///
- /// The offset of the update being looked up. Must be a valid absolute offset (positive integer). Required
+ /// The offset of the update being looked up. Must be a valid absolute offset (positive integer).
+ /// Required
///
[JsonPropertyName("offset")]
[Required]
public long Offset { get; set; }
///
- /// The format for the update. Required
+ /// The format for the update.
+ /// Required
///
[JsonPropertyName("updateFormat")]
+ [Required]
public UpdateFormat UpdateFormat { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetUpdatesRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetUpdatesRequest.cs
index 37d7a04..fa54275 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetUpdatesRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetUpdatesRequest.cs
@@ -19,14 +19,15 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class GetUpdatesRequest
{
///
- /// 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.
+ /// 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
///
[JsonPropertyName("beginExclusive")]
- [Required]
- public long BeginExclusive { get; set; }
+ public long? BeginExclusive { get; set; }
///
- /// 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.
+ /// 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
///
[JsonPropertyName("endInclusive")]
public long? EndInclusive { get; set; }
@@ -41,22 +42,14 @@ public partial class GetUpdatesRequest
/// 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
///
[JsonPropertyName("verbose")]
- [Required]
- public bool Verbose { get; set; }
+ public bool? Verbose { get; set; }
///
- /// 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
- ///
+ /// The update format for this request
+ /// Required
///
[JsonPropertyName("updateFormat")]
+ [Required]
public UpdateFormat UpdateFormat { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetUserResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetUserResponse.cs
index f87e9c1..bb858a5 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetUserResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GetUserResponse.cs
@@ -20,8 +20,10 @@ public partial class GetUserResponse
{
///
/// Retrieved user.
+ /// Required
///
[JsonPropertyName("user")]
+ [Required]
public User User { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GrantUserRightsRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GrantUserRightsRequest.cs
index d4edbc2..77548b0 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GrantUserRightsRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GrantUserRightsRequest.cs
@@ -21,20 +21,23 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class GrantUserRightsRequest
{
///
- /// The user to whom to grant rights. Required
+ /// The user to whom to grant rights.
+ /// Required
///
[JsonPropertyName("userId")]
[Required]
public string UserId { get; set; } = null!;
///
- /// The rights to grant. Optional
+ /// The rights to grant.
+ /// Optional: can be empty
///
[JsonPropertyName("rights")]
public System.Collections.Generic.IList Rights { get; set; } = new List();
///
- /// The id of the <c>Identity Provider</c> Optional, if not set, assume the user is managed by the default identity provider.
+ /// The id of the <c>Identity Provider</c> If not set, assume the user is managed by the default identity provider.
+ /// Optional
///
[JsonPropertyName("identityProviderId")]
public string IdentityProviderId { get; set; } = null!;
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GrantUserRightsResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GrantUserRightsResponse.cs
index 9640df9..71f1fd2 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GrantUserRightsResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/GrantUserRightsResponse.cs
@@ -20,6 +20,7 @@ public partial class GrantUserRightsResponse
{
///
/// The rights that were newly granted by the request.
+ /// Optional: can be empty
///
[JsonPropertyName("newlyGrantedRights")]
public System.Collections.Generic.IList NewlyGrantedRights { get; set; } = new List();
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/IdentityProviderConfig.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/IdentityProviderConfig.cs
index c7d3038..e48d867 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/IdentityProviderConfig.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/IdentityProviderConfig.cs
@@ -19,38 +19,42 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class IdentityProviderConfig
{
///
- /// The identity provider identifier Must be a valid LedgerString (as describe in <c>value.proto</c>). Required
+ /// The identity provider identifier Must be a valid LedgerString (as describe in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("identityProviderId")]
[Required]
public string IdentityProviderId { get; set; } = null!;
///
- /// When set, the callers using JWT tokens issued by this identity provider are denied all access to the Ledger API. Optional, Modifiable
+ /// When set, the callers using JWT tokens issued by this identity provider are denied all access to the Ledger API. Modifiable
+ /// Optional
///
[JsonPropertyName("isDeactivated")]
- [Required]
- public bool IsDeactivated { get; set; }
+ public bool? IsDeactivated { get; set; }
///
- /// 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
+ /// 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. Modifiable
+ /// Can be left empty when used in `UpdateIdentityProviderConfigRequest` if the issuer is not being updated.
+ /// Required
///
[JsonPropertyName("issuer")]
[Required]
public string Issuer { get; set; } = null!;
///
- /// 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
+ /// 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. Modifiable
+ /// Required
///
[JsonPropertyName("jwksUrl")]
[Required]
public string JwksUrl { get; set; } = null!;
///
- /// 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
+ /// 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 Modifiable
+ /// Optional
///
[JsonPropertyName("audience")]
- [Required]
public string Audience { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/InterfaceFilter1.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/InterfaceFilter1.cs
index d04aeca..736981b 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/InterfaceFilter1.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/InterfaceFilter1.cs
@@ -24,21 +24,22 @@ public partial class InterfaceFilter1
/// Required
///
[JsonPropertyName("interfaceId")]
+ [Required]
public string InterfaceId { get; set; } = null!;
///
- /// Whether to include the interface view on the contract in the returned <c>CreatedEvent</c>. Use this to access contract data in a uniform manner in your API client. Optional
+ /// Whether to include the interface view on the contract in the returned <c>CreatedEvent</c>. Use this to access contract data in a uniform manner in your API client.
+ /// Optional
///
[JsonPropertyName("includeInterfaceView")]
- [Required]
- public bool IncludeInterfaceView { get; set; }
+ public bool? IncludeInterfaceView { get; set; }
///
- /// Whether to include a <c>created_event_blob</c> in the returned <c>CreatedEvent</c>. Use this to access the contract create event payload in your API client for submitting it as a disclosed contract with future commands. Optional
+ /// Whether to include a <c>created_event_blob</c> in the returned <c>CreatedEvent</c>. Use this to access the contract create event payload in your API client for submitting it as a disclosed contract with future commands.
+ /// Optional
///
[JsonPropertyName("includeCreatedEventBlob")]
- [Required]
- public bool IncludeCreatedEventBlob { get; set; }
+ public bool? IncludeCreatedEventBlob { get; set; }
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsActiveContract.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsActiveContract.cs
index 64c14bf..b5a1bcf 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsActiveContract.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsActiveContract.cs
@@ -19,21 +19,24 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsActiveContract
{
///
- /// 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.
+ /// 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
///
[JsonPropertyName("createdEvent")]
[Required]
public CreatedEvent CreatedEvent { get; set; } = null!;
///
- /// A valid synchronizer id Required
+ /// A valid synchronizer id
+ /// Required
///
[JsonPropertyName("synchronizerId")]
[Required]
public string SynchronizerId { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("reassignmentCounter")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsArchived.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsArchived.cs
index 0dadbc1..4d8dfdc 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsArchived.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsArchived.cs
@@ -26,7 +26,8 @@ public partial class JsArchived
public ArchivedEvent ArchivedEvent { get; set; } = null!;
///
- /// Required The synchronizer which sequenced the archival of the contract
+ /// The synchronizer which sequenced the archival of the contract
+ /// Required
///
[JsonPropertyName("synchronizerId")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsAssignedEvent.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsAssignedEvent.cs
index cf99e3f..b4fd034 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsAssignedEvent.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsAssignedEvent.cs
@@ -20,42 +20,47 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsAssignedEvent
{
///
- /// The ID of the source synchronizer. Must be a valid synchronizer id. Required
+ /// The ID of the source synchronizer. Must be a valid synchronizer id.
+ /// Required
///
[JsonPropertyName("source")]
[Required]
public string Source { get; set; } = null!;
///
- /// The ID of the target synchronizer. Must be a valid synchronizer id. Required
+ /// The ID of the target synchronizer. Must be a valid synchronizer id.
+ /// Required
///
[JsonPropertyName("target")]
[Required]
public string Target { get; set; } = null!;
///
- /// The ID from the unassigned event. For correlation capabilities. Must be a valid LedgerString (as described in <c>value.proto</c>). Required
+ /// The ID from the unassigned event. For correlation capabilities. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("reassignmentId")]
[Required]
public string ReassignmentId { get; set; } = null!;
///
- /// 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 <c>value.proto</c>). Optional
+ /// 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 <c>value.proto</c>).
+ /// Optional
///
[JsonPropertyName("submitter")]
- [Required]
public string Submitter { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("reassignmentCounter")]
[Required]
public long ReassignmentCounter { get; set; }
///
- /// Required The offset of this event refers to the offset of the assignment, while the node_id is the index of within the batch.
+ /// The offset of this event refers to the offset of the assignment, while the node_id is the index of within the batch.
+ /// Required
///
[JsonPropertyName("createdEvent")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsCommands.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsCommands.cs
index 89b0ebe..aafea89 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsCommands.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsCommands.cs
@@ -20,38 +20,46 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsCommands
{
///
- /// Individual elements of this atomic command. Must be non-empty. Required
+ /// Individual elements of this atomic command. Must be non-empty.
+ /// Required: must be non-empty
///
[JsonPropertyName("commands")]
+ [Required]
public System.Collections.Generic.IList Commands { get; set; } = new List();
///
- /// 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 <c>value.proto</c>). Required
+ /// 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 <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("commandId")]
[Required]
public string CommandId { get; set; } = null!;
///
- /// 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 <c>value.proto</c>). Required, must be non-empty.
+ /// 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 <c>value.proto</c>).
+ /// Required: must be non-empty
///
[JsonPropertyName("actAs")]
+ [Required]
public System.Collections.Generic.IList ActAs { get; set; } = new List();
///
/// Uniquely identifies the participant user that issued the command. Must be a valid UserIdString (as described in <c>value.proto</c>). 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
///
[JsonPropertyName("userId")]
public string UserId { get; set; } = null!;
///
- /// Set of parties on whose behalf (in addition to all parties listed in <c>act_as</c>) contracts can be retrieved. This affects Daml operations such as <c>fetch</c>, <c>fetchByKey</c>, <c>lookupByKey</c>, <c>exercise</c>, and <c>exerciseByKey</c>. 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 <c>act_as</c> or <c>read_as</c>. 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
+ /// Set of parties on whose behalf (in addition to all parties listed in <c>act_as</c>) contracts can be retrieved. This affects Daml operations such as <c>fetch</c>, <c>fetchByKey</c>, <c>lookupByKey</c>, <c>exercise</c>, and <c>exerciseByKey</c>. 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 <c>act_as</c> or <c>read_as</c>. 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: can be empty
///
[JsonPropertyName("readAs")]
public System.Collections.Generic.IList ReadAs { get; set; } = new List();
///
- /// Identifier of the on-ledger workflow that this command is a part of. Must be a valid LedgerString (as described in <c>value.proto</c>). Optional
+ /// Identifier of the on-ledger workflow that this command is a part of. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Optional
///
[JsonPropertyName("workflowId")]
public string WorkflowId { get; set; } = null!;
@@ -62,45 +70,51 @@ public partial class JsCommands
public DeduplicationPeriod DeduplicationPeriod { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("minLedgerTimeAbs")]
public string MinLedgerTimeAbs { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("minLedgerTimeRel")]
public Duration MinLedgerTimeRel { get; set; } = null!;
///
/// 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 <c>value.proto</c>).
- /// If omitted, the participant or the committer may set a value of their choice. Optional
+ /// If omitted, the participant or the committer may set a value of their choice.
+ /// Optional
///
[JsonPropertyName("submissionId")]
public string SubmissionId { get; set; } = null!;
///
- /// Additional contracts used to resolve contract & contract key lookups. Optional
+ /// Additional contracts used to resolve contract & contract key lookups.
+ /// Optional: can be empty
///
[JsonPropertyName("disclosedContracts")]
public System.Collections.Generic.IList DisclosedContracts { get; set; } = new List();
///
- /// Must be a valid synchronizer id Optional
+ /// Must be a valid synchronizer id
+ /// Optional
///
[JsonPropertyName("synchronizerId")]
public string SynchronizerId { get; set; } = null!;
///
/// The package-id selection preference of the client for resolving package names and interface instances in command submission and interpretation
+ /// Optional: can be empty
///
[JsonPropertyName("packageIdSelectionPreference")]
public System.Collections.Generic.IList PackageIdSelectionPreference { get; set; } = new List();
///
/// 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
+ /// Optional: can be empty
///
[JsonPropertyName("prefetchContractKeys")]
public System.Collections.Generic.IList PrefetchContractKeys { get; set; } = new List();
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsContractEntry.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsContractEntry.cs
index d1be6d4..df0aefe 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsContractEntry.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsContractEntry.cs
@@ -15,6 +15,7 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
{
///
/// 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 <c>TransactionFilter</c> in the query.
+ /// Required
///
[GeneratedCode("OpenAPIComponentsGen", "1.0.0")]
public partial class JsContractEntry
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsCreated.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsCreated.cs
index 85c487e..89c107a 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsCreated.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsCreated.cs
@@ -19,14 +19,16 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsCreated
{
///
- /// 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.
+ /// 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.
+ /// Required
///
[JsonPropertyName("createdEvent")]
[Required]
public CreatedEvent CreatedEvent { get; set; } = null!;
///
- /// The synchronizer which sequenced the creation of the contract Required
+ /// The synchronizer which sequenced the creation of the contract
+ /// Required
///
[JsonPropertyName("synchronizerId")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsExecuteSubmissionAndWaitForTransactionRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsExecuteSubmissionAndWaitForTransactionRequest.cs
index d829ca9..90828a4 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsExecuteSubmissionAndWaitForTransactionRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsExecuteSubmissionAndWaitForTransactionRequest.cs
@@ -19,21 +19,24 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsExecuteSubmissionAndWaitForTransactionRequest
{
///
- /// the prepared transaction Typically this is the value of the `prepared_transaction` field in `PrepareSubmissionResponse` obtained from calling `prepareSubmission`. Required
+ /// the prepared transaction Typically this is the value of the `prepared_transaction` field in `PrepareSubmissionResponse` obtained from calling `prepareSubmission`.
+ /// Required
///
[JsonPropertyName("preparedTransaction")]
+ [Required]
public string PreparedTransaction { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("partySignatures")]
+ [Required]
public PartySignatures PartySignatures { get; set; } = null!;
///
///
[JsonPropertyName("deduplicationPeriod")]
- [Required]
public DeduplicationPeriod2 DeduplicationPeriod { get; set; } = null!;
///
@@ -45,10 +48,10 @@ public partial class JsExecuteSubmissionAndWaitForTransactionRequest
public string SubmissionId { get; set; } = null!;
///
- /// See [PrepareSubmissionRequest.user_id] Optional
+ /// See [PrepareSubmissionRequest.user_id]
+ /// Optional
///
[JsonPropertyName("userId")]
- [Required]
public string UserId { get; set; } = null!;
///
@@ -59,13 +62,15 @@ public partial class JsExecuteSubmissionAndWaitForTransactionRequest
public string HashingSchemeVersion { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("minLedgerTime")]
public MinLedgerTime MinLedgerTime { get; set; } = null!;
///
- /// If no <c>transaction_format</c> is provided, a default will be used where <c>transaction_shape</c> is set to TRANSACTION_SHAPE_ACS_DELTA, <c>event_format</c> is defined with <c>filters_by_party</c> containing wildcard-template filter for all original <c>act_as</c> and <c>read_as</c> parties and the <c>verbose</c> flag is set. When the <c>transaction_shape</c> 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
+ /// If no <c>transaction_format</c> is provided, a default will be used where <c>transaction_shape</c> is set to TRANSACTION_SHAPE_ACS_DELTA, <c>event_format</c> is defined with <c>filters_by_party</c> containing wildcard-template filter for all original <c>act_as</c> and <c>read_as</c> parties and the <c>verbose</c> flag is set. When the <c>transaction_shape</c> 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
///
[JsonPropertyName("transactionFormat")]
public TransactionFormat TransactionFormat { get; set; } = null!;
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsExecuteSubmissionAndWaitForTransactionResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsExecuteSubmissionAndWaitForTransactionResponse.cs
index 45c2653..23327bb 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsExecuteSubmissionAndWaitForTransactionResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsExecuteSubmissionAndWaitForTransactionResponse.cs
@@ -19,7 +19,8 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsExecuteSubmissionAndWaitForTransactionResponse
{
///
- /// The transaction that resulted from the submitted command. The transaction might contain no events (request conditions result in filtering out all of them). Required
+ /// The transaction that resulted from the submitted command. The transaction might contain no events (request conditions result in filtering out all of them).
+ /// Required
///
[JsonPropertyName("transaction")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsExecuteSubmissionAndWaitRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsExecuteSubmissionAndWaitRequest.cs
index 149bd95..456854f 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsExecuteSubmissionAndWaitRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsExecuteSubmissionAndWaitRequest.cs
@@ -19,21 +19,24 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsExecuteSubmissionAndWaitRequest
{
///
- /// the prepared transaction Typically this is the value of the `prepared_transaction` field in `PrepareSubmissionResponse` obtained from calling `prepareSubmission`. Required
+ /// the prepared transaction Typically this is the value of the `prepared_transaction` field in `PrepareSubmissionResponse` obtained from calling `prepareSubmission`.
+ /// Required
///
[JsonPropertyName("preparedTransaction")]
+ [Required]
public string PreparedTransaction { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("partySignatures")]
+ [Required]
public PartySignatures PartySignatures { get; set; } = null!;
///
///
[JsonPropertyName("deduplicationPeriod")]
- [Required]
public DeduplicationPeriod2 DeduplicationPeriod { get; set; } = null!;
///
@@ -45,21 +48,23 @@ public partial class JsExecuteSubmissionAndWaitRequest
public string SubmissionId { get; set; } = null!;
///
- /// See [PrepareSubmissionRequest.user_id] Optional
+ /// See [PrepareSubmissionRequest.user_id]
+ /// Optional
///
[JsonPropertyName("userId")]
- [Required]
public string UserId { get; set; } = null!;
///
- /// The hashing scheme version used when building the hash Required
+ /// The hashing scheme version used when building the hash
+ /// Required
///
[JsonPropertyName("hashingSchemeVersion")]
[Required]
public string HashingSchemeVersion { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("minLedgerTime")]
public MinLedgerTime MinLedgerTime { get; set; } = null!;
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsExecuteSubmissionRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsExecuteSubmissionRequest.cs
index 21db984..299d4c4 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsExecuteSubmissionRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsExecuteSubmissionRequest.cs
@@ -19,21 +19,24 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsExecuteSubmissionRequest
{
///
- /// the prepared transaction Typically this is the value of the `prepared_transaction` field in `PrepareSubmissionResponse` obtained from calling `prepareSubmission`. Required
+ /// the prepared transaction Typically this is the value of the `prepared_transaction` field in `PrepareSubmissionResponse` obtained from calling `prepareSubmission`.
+ /// Required
///
[JsonPropertyName("preparedTransaction")]
+ [Required]
public string PreparedTransaction { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("partySignatures")]
+ [Required]
public PartySignatures PartySignatures { get; set; } = null!;
///
///
[JsonPropertyName("deduplicationPeriod")]
- [Required]
public DeduplicationPeriod2 DeduplicationPeriod { get; set; } = null!;
///
@@ -45,21 +48,23 @@ public partial class JsExecuteSubmissionRequest
public string SubmissionId { get; set; } = null!;
///
- /// See [PrepareSubmissionRequest.user_id] Optional
+ /// See [PrepareSubmissionRequest.user_id]
+ /// Optional
///
[JsonPropertyName("userId")]
- [Required]
public string UserId { get; set; } = null!;
///
- /// The hashing scheme version used when building the hash Required
+ /// The hashing scheme version used when building the hash
+ /// Required
///
[JsonPropertyName("hashingSchemeVersion")]
[Required]
public string HashingSchemeVersion { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("minLedgerTime")]
public MinLedgerTime MinLedgerTime { get; set; } = null!;
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetActiveContractsResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetActiveContractsResponse.cs
index 20a1507..bb24ed8 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetActiveContractsResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetActiveContractsResponse.cs
@@ -19,16 +19,15 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsGetActiveContractsResponse
{
///
- /// The workflow ID used in command submission which corresponds to the contract_entry. Only set if the <c>workflow_id</c> for the command was set. Must be a valid LedgerString (as described in <c>value.proto</c>). Optional
+ /// The workflow ID used in command submission which corresponds to the contract_entry. Only set if the <c>workflow_id</c> for the command was set. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Optional
///
[JsonPropertyName("workflowId")]
- [Required]
public string WorkflowId { get; set; } = null!;
///
///
[JsonPropertyName("contractEntry")]
- [Required]
public JsContractEntry ContractEntry { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetEventsByContractIdResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetEventsByContractIdResponse.cs
index 05776d5..fde09dc 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetEventsByContractIdResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetEventsByContractIdResponse.cs
@@ -19,13 +19,15 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsGetEventsByContractIdResponse
{
///
- /// The create event for the contract with the <c>contract_id</c> given in the request provided it exists and has not yet been pruned. Optional
+ /// The create event for the contract with the <c>contract_id</c> given in the request provided it exists and has not yet been pruned.
+ /// Optional
///
[JsonPropertyName("created")]
public JsCreated Created { get; set; } = null!;
///
- /// The archive event for the contract with the <c>contract_id</c> given in the request provided such an archive event exists and it has not yet been pruned. Optional
+ /// The archive event for the contract with the <c>contract_id</c> given in the request provided such an archive event exists and it has not yet been pruned.
+ /// Optional
///
[JsonPropertyName("archived")]
public JsArchived Archived { get; set; } = null!;
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetUpdateResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetUpdateResponse.cs
index b370490..b25e810 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetUpdateResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetUpdateResponse.cs
@@ -21,7 +21,6 @@ public partial class JsGetUpdateResponse
///
///
[JsonPropertyName("update")]
- [Required]
public Update Update { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetUpdateTreesResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetUpdateTreesResponse.cs
index 817e6e1..5cd9c15 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetUpdateTreesResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetUpdateTreesResponse.cs
@@ -22,7 +22,6 @@ public partial class JsGetUpdateTreesResponse
///
///
[JsonPropertyName("update")]
- [Required]
public Update1 Update { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetUpdatesResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetUpdatesResponse.cs
index 013b05d..99bad46 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetUpdatesResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsGetUpdatesResponse.cs
@@ -21,7 +21,6 @@ public partial class JsGetUpdatesResponse
///
///
[JsonPropertyName("update")]
- [Required]
public Update Update { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsIncompleteUnassigned.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsIncompleteUnassigned.cs
index d19eb1d..1cebd88 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsIncompleteUnassigned.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsIncompleteUnassigned.cs
@@ -19,7 +19,8 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsIncompleteUnassigned
{
///
- /// 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.
+ /// 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
///
[JsonPropertyName("createdEvent")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsInterfaceView.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsInterfaceView.cs
index 3d836d4..42772c5 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsInterfaceView.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsInterfaceView.cs
@@ -28,14 +28,16 @@ public partial class JsInterfaceView
public string InterfaceId { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("viewStatus")]
[Required]
public JsStatus ViewStatus { get; set; } = null!;
///
- /// The value of the interface's view method on this event. Set if it was requested in the <c>InterfaceFilter</c> and it could be successfully computed. Optional
+ /// The value of the interface's view method on this event. Set if it was requested in the <c>InterfaceFilter</c> and it could be successfully computed.
+ /// Optional
///
[JsonPropertyName("viewValue")]
public object ViewValue { get; set; } = null!;
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsPrepareSubmissionRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsPrepareSubmissionRequest.cs
index 95126d5..b52811d 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsPrepareSubmissionRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsPrepareSubmissionRequest.cs
@@ -19,23 +19,26 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsPrepareSubmissionRequest
{
///
- /// Uniquely identifies the participant user that prepares the transaction. Must be a valid UserIdString (as described in <c>value.proto</c>). 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
+ /// Uniquely identifies the participant user that prepares the transaction. Must be a valid UserIdString (as described in <c>value.proto</c>). 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
///
[JsonPropertyName("userId")]
- [Required]
public string UserId { get; set; } = null!;
///
- /// 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 <c>value.proto</c>). Required
+ /// 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 <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("commandId")]
[Required]
public string CommandId { get; set; } = null!;
///
- /// 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
+ /// 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: must be non-empty
///
[JsonPropertyName("commands")]
+ [Required]
public System.Collections.Generic.IList Commands { get; set; } = new List();
///
@@ -45,59 +48,66 @@ public partial class JsPrepareSubmissionRequest
public MinLedgerTime MinLedgerTime { get; set; } = null!;
///
- /// 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 <c>value.proto</c>). Required, must be non-empty.
+ /// 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 <c>value.proto</c>).
+ /// Required: must be non-empty
///
[JsonPropertyName("actAs")]
+ [Required]
public System.Collections.Generic.IList ActAs { get; set; } = new List();
///
- /// Set of parties on whose behalf (in addition to all parties listed in <c>act_as</c>) contracts can be retrieved. This affects Daml operations such as <c>fetch</c>, <c>fetchByKey</c>, <c>lookupByKey</c>, <c>exercise</c>, and <c>exerciseByKey</c>. Note: A command can only use contracts that are visible to at least one of the parties in <c>act_as</c> or <c>read_as</c>. 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
+ /// Set of parties on whose behalf (in addition to all parties listed in <c>act_as</c>) contracts can be retrieved. This affects Daml operations such as <c>fetch</c>, <c>fetchByKey</c>, <c>lookupByKey</c>, <c>exercise</c>, and <c>exerciseByKey</c>. Note: A command can only use contracts that are visible to at least one of the parties in <c>act_as</c> or <c>read_as</c>. 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: can be empty
///
[JsonPropertyName("readAs")]
public System.Collections.Generic.IList ReadAs { get; set; } = new List();
///
- /// Additional contracts used to resolve contract & contract key lookups. Optional
+ /// Additional contracts used to resolve contract & contract key lookups.
+ /// Optional: can be empty
///
[JsonPropertyName("disclosedContracts")]
public System.Collections.Generic.IList DisclosedContracts { get; set; } = new List();
///
- /// Must be a valid synchronizer id If not set, a suitable synchronizer that this node is connected to will be chosen Optional
+ /// Must be a valid synchronizer id If not set, a suitable synchronizer that this node is connected to will be chosen
+ /// Optional
///
[JsonPropertyName("synchronizerId")]
- [Required]
public string SynchronizerId { get; set; } = null!;
///
- /// The package-id selection preference of the client for resolving package names and interface instances in command submission and interpretation Optional
+ /// The package-id selection preference of the client for resolving package names and interface instances in command submission and interpretation
+ /// Optional: can be empty
///
[JsonPropertyName("packageIdSelectionPreference")]
public System.Collections.Generic.IList PackageIdSelectionPreference { get; set; } = new List();
///
- /// 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
+ /// 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. Defaults to false
+ /// Optional
///
[JsonPropertyName("verboseHashing")]
- [Required]
- public bool VerboseHashing { get; set; }
+ public bool? VerboseHashing { get; set; }
///
/// 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
+ /// Optional: can be empty
///
[JsonPropertyName("prefetchContractKeys")]
public System.Collections.Generic.IList PrefetchContractKeys { get; set; } = new List();
///
- /// 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
+ /// 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
///
[JsonPropertyName("maxRecordTime")]
public string MaxRecordTime { get; set; } = null!;
///
/// 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
+ /// 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
+ /// Optional
///
[JsonPropertyName("estimateTrafficCost")]
public CostEstimationHints EstimateTrafficCost { get; set; } = null!;
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsPrepareSubmissionResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsPrepareSubmissionResponse.cs
index 73837b3..eb0603f 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsPrepareSubmissionResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsPrepareSubmissionResponse.cs
@@ -21,12 +21,15 @@ public partial class JsPrepareSubmissionResponse
{
///
/// 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.
+ /// Required
///
[JsonPropertyName("preparedTransaction")]
+ [Required]
public string PreparedTransaction { get; set; } = null!;
///
/// 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
+ /// Required: must be non-empty
///
[JsonPropertyName("preparedTransactionHash")]
[Required]
@@ -34,6 +37,7 @@ public partial class JsPrepareSubmissionResponse
///
/// The hashing scheme version used when building the hash
+ /// Required
///
[JsonPropertyName("hashingSchemeVersion")]
[Required]
@@ -41,12 +45,14 @@ public partial class JsPrepareSubmissionResponse
///
/// 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.
+ /// Optional
///
[JsonPropertyName("hashingDetails")]
public string HashingDetails { get; set; } = null!;
///
- /// Traffic cost estimation of the prepared transaction Optional
+ /// Traffic cost estimation of the prepared transaction
+ /// Optional
///
[JsonPropertyName("costEstimation")]
public CostEstimation CostEstimation { get; set; } = null!;
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsReassignment.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsReassignment.cs
index e9e624e..9945b1d 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsReassignment.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsReassignment.cs
@@ -20,60 +20,81 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsReassignment
{
///
- /// Assigned by the server. Useful for correlating logs. Must be a valid LedgerString (as described in <c>value.proto</c>). Required
+ /// Assigned by the server. Useful for correlating logs. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("updateId")]
[Required]
public string UpdateId { get; set; } = null!;
///
- /// 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 <c>value.proto</c>). Optional
+ /// 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 <c>value.proto</c>).
+ /// Optional
///
[JsonPropertyName("commandId")]
- [Required]
public string CommandId { get; set; } = null!;
///
- /// The workflow ID used in reassignment command submission. Only set if the <c>workflow_id</c> for the command was set. Must be a valid LedgerString (as described in <c>value.proto</c>). Optional
+ /// The workflow ID used in reassignment command submission. Only set if the <c>workflow_id</c> for the command was set. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Optional
///
[JsonPropertyName("workflowId")]
- [Required]
public string WorkflowId { get; set; } = null!;
///
- /// The participant's offset. The details of this field are described in <c>community/ledger-api/README.md</c>. Required, must be a valid absolute offset (positive integer).
+ /// The participant's offset. The details of this field are described in <c>community/ledger-api/README.md</c>. Must be a valid absolute offset (positive integer).
+ /// Required
///
[JsonPropertyName("offset")]
[Required]
public long Offset { get; set; }
///
- /// The collection of reassignment events. Required.
+ /// The collection of reassignment events.
+ /// Required: must be non-empty
///
[JsonPropertyName("events")]
+ [Required]
public System.Collections.Generic.IList Events { get; set; } = new List();
///
- /// Optional; ledger API trace context
+ /// 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
///
[JsonPropertyName("traceContext")]
public TraceContext TraceContext { get; set; } = null!;
///
- /// The time at which the reassignment was recorded. The record time refers to the source/target synchronizer for an unassign/assign event respectively. Required
+ /// The time at which the reassignment was recorded. The record time refers to the source/target synchronizer for an unassign/assign event respectively.
+ /// Required
///
[JsonPropertyName("recordTime")]
[Required]
public string RecordTime { get; set; } = null!;
///
- /// A valid synchronizer id. Identifies the synchronizer that synchronized this Reassignment. Required
+ /// A valid synchronizer id. Identifies the synchronizer that synchronized this Reassignment.
+ /// Required
///
[JsonPropertyName("synchronizerId")]
[Required]
public string SynchronizerId { get; set; } = null!;
+ ///
+ /// 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
+ ///
+ [JsonPropertyName("paidTrafficCost")]
+ public long? PaidTrafficCost { get; set; }
+
}
}
\ No newline at end of file
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsSubmitAndWaitForReassignmentResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsSubmitAndWaitForReassignmentResponse.cs
index 6d6341b..6b32630 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsSubmitAndWaitForReassignmentResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsSubmitAndWaitForReassignmentResponse.cs
@@ -19,7 +19,8 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsSubmitAndWaitForReassignmentResponse
{
///
- /// 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
+ /// 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
///
[JsonPropertyName("reassignment")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsSubmitAndWaitForTransactionRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsSubmitAndWaitForTransactionRequest.cs
index 435386b..6c4e3b9 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsSubmitAndWaitForTransactionRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsSubmitAndWaitForTransactionRequest.cs
@@ -20,14 +20,16 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsSubmitAndWaitForTransactionRequest
{
///
- /// The commands to be submitted. Required
+ /// The commands to be submitted.
+ /// Required
///
[JsonPropertyName("commands")]
[Required]
public JsCommands Commands { get; set; } = null!;
///
- /// If no <c>transaction_format</c> is provided, a default will be used where <c>transaction_shape</c> is set to TRANSACTION_SHAPE_ACS_DELTA, <c>event_format</c> is defined with <c>filters_by_party</c> containing wildcard-template filter for all original <c>act_as</c> and <c>read_as</c> parties and the <c>verbose</c> flag is set. Optional
+ /// If no <c>transaction_format</c> is provided, a default will be used where <c>transaction_shape</c> is set to TRANSACTION_SHAPE_ACS_DELTA, <c>event_format</c> is defined with <c>filters_by_party</c> containing wildcard-template filter for all original <c>act_as</c> and <c>read_as</c> parties and the <c>verbose</c> flag is set.
+ /// Optional
///
[JsonPropertyName("transactionFormat")]
public TransactionFormat TransactionFormat { get; set; } = null!;
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsSubmitAndWaitForTransactionResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsSubmitAndWaitForTransactionResponse.cs
index da5d574..93e2fe4 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsSubmitAndWaitForTransactionResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsSubmitAndWaitForTransactionResponse.cs
@@ -19,7 +19,8 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsSubmitAndWaitForTransactionResponse
{
///
- /// The transaction that resulted from the submitted command. The transaction might contain no events (request conditions result in filtering out all of them). Required
+ /// The transaction that resulted from the submitted command. The transaction might contain no events (request conditions result in filtering out all of them).
+ /// Required
///
[JsonPropertyName("transaction")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsSubmitAndWaitForTransactionTreeResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsSubmitAndWaitForTransactionTreeResponse.cs
index 847de62..b56d7b2 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsSubmitAndWaitForTransactionTreeResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsSubmitAndWaitForTransactionTreeResponse.cs
@@ -22,7 +22,6 @@ public partial class JsSubmitAndWaitForTransactionTreeResponse
///
///
[JsonPropertyName("transactionTree")]
- [Required]
public JsTransactionTree TransactionTree { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsTopologyTransaction.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsTopologyTransaction.cs
index a51cb64..51c7785 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsTopologyTransaction.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsTopologyTransaction.cs
@@ -19,41 +19,49 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsTopologyTransaction
{
///
- /// Assigned by the server. Useful for correlating logs. Must be a valid LedgerString (as described in <c>value.proto</c>). Required
+ /// Assigned by the server. Useful for correlating logs. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("updateId")]
[Required]
public string UpdateId { get; set; } = null!;
///
- /// The absolute offset. The details of this field are described in <c>community/ledger-api/README.md</c>. Required, it is a valid absolute offset (positive integer).
+ /// The absolute offset. The details of this field are described in <c>community/ledger-api/README.md</c>. It is a valid absolute offset (positive integer).
+ /// Required
///
[JsonPropertyName("offset")]
[Required]
public long Offset { get; set; }
///
- /// A valid synchronizer id. Identifies the synchronizer that synchronized the topology transaction. Required
+ /// A valid synchronizer id. Identifies the synchronizer that synchronized the topology transaction.
+ /// Required
///
[JsonPropertyName("synchronizerId")]
[Required]
public string SynchronizerId { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("recordTime")]
+ [Required]
public string RecordTime { get; set; } = null!;
///
- /// A non-empty list of topology events. Required
+ /// A non-empty list of topology events.
+ /// Required: must be non-empty
///
[JsonPropertyName("events")]
+ [Required]
public System.Collections.Generic.IList Events { get; set; } = new List();
///
- /// Optional; ledger API trace context
+ /// 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
///
[JsonPropertyName("traceContext")]
public TraceContext TraceContext { get; set; } = null!;
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsTransaction.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsTransaction.cs
index 579bdef..cf3f338 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsTransaction.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsTransaction.cs
@@ -20,28 +20,30 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class JsTransaction
{
///
- /// Assigned by the server. Useful for correlating logs. Must be a valid LedgerString (as described in <c>value.proto</c>). Required
+ /// Assigned by the server. Useful for correlating logs. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("updateId")]
[Required]
public string UpdateId { get; set; } = null!;
///
- /// 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 <c>value.proto</c>). Optional
+ /// 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 <c>value.proto</c>).
+ /// Optional
///
[JsonPropertyName("commandId")]
- [Required]
public string CommandId { get; set; } = null!;
///
- /// The workflow ID used in command submission. Must be a valid LedgerString (as described in <c>value.proto</c>). Optional
+ /// The workflow ID used in command submission. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Optional
///
[JsonPropertyName("workflowId")]
- [Required]
public string WorkflowId { get; set; } = null!;
///
- /// Ledger effective time. Required
+ /// Ledger effective time.
+ /// Required
///
[JsonPropertyName("effectiveAt")]
[Required]
@@ -53,45 +55,65 @@ public partial class JsTransaction
/// - <c>CreatedEvent</c> or <c>ArchivedEvent</c> in case of ACS_DELTA transaction shape
/// - <c>CreatedEvent</c> or <c>ExercisedEvent</c> in case of LEDGER_EFFECTS transaction shape
///
- /// Required
+ /// Required: must be non-empty
///
[JsonPropertyName("events")]
+ [Required]
public System.Collections.Generic.IList Events { get; set; } = new List();
///
- /// The absolute offset. The details of this field are described in <c>community/ledger-api/README.md</c>. Required, it is a valid absolute offset (positive integer).
+ /// The absolute offset. The details of this field are described in <c>community/ledger-api/README.md</c>. It is a valid absolute offset (positive integer).
+ /// Required
///
[JsonPropertyName("offset")]
[Required]
public long Offset { get; set; }
///
- /// A valid synchronizer id. Identifies the synchronizer that synchronized the transaction. Required
+ /// A valid synchronizer id. Identifies the synchronizer that synchronized the transaction.
+ /// Required
///
[JsonPropertyName("synchronizerId")]
[Required]
public string SynchronizerId { get; set; } = null!;
///
- /// Optional; ledger API trace context
+ /// 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
///
[JsonPropertyName("traceContext")]
public TraceContext TraceContext { get; set; } = null!;
///
- /// The time at which the transaction was recorded. The record time refers to the synchronizer which synchronized the transaction. Required
+ /// The time at which the transaction was recorded. The record time refers to the synchronizer which synchronized the transaction.
+ /// Required
///
[JsonPropertyName("recordTime")]
[Required]
public string RecordTime { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("externalTransactionHash")]
public string ExternalTransactionHash { get; set; } = null!;
+ ///
+ /// 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
+ ///
+ [JsonPropertyName("paidTrafficCost")]
+ public long? PaidTrafficCost { get; set; }
+
}
}
\ No newline at end of file
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsTransactionTree.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsTransactionTree.cs
index 5dd1b15..3a9e622 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsTransactionTree.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/JsTransactionTree.cs
@@ -30,20 +30,19 @@ public partial class JsTransactionTree
/// 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 <c>value.proto</c>). Optional
///
[JsonPropertyName("commandId")]
- [Required]
public string CommandId { get; set; } = null!;
///
/// The workflow ID used in command submission. Only set if the <c>workflow_id</c> for the command was set. Must be a valid LedgerString (as described in <c>value.proto</c>). Optional
///
[JsonPropertyName("workflowId")]
- [Required]
public string WorkflowId { get; set; } = null!;
///
/// Ledger effective time. Required
///
[JsonPropertyName("effectiveAt")]
+ [Required]
public string EffectiveAt { get; set; } = null!;
///
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListIdentityProviderConfigsResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListIdentityProviderConfigsResponse.cs
index 59aa2c2..40bdfc2 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListIdentityProviderConfigsResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListIdentityProviderConfigsResponse.cs
@@ -19,8 +19,11 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class ListIdentityProviderConfigsResponse
{
///
+ /// The list of identity provider configs
+ /// Required: must be non-empty
///
[JsonPropertyName("identityProviderConfigs")]
+ [Required]
public System.Collections.Generic.IList IdentityProviderConfigs { get; set; } = new List();
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListKnownPartiesResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListKnownPartiesResponse.cs
index d7be164..a37ee47 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListKnownPartiesResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListKnownPartiesResponse.cs
@@ -19,16 +19,18 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class ListKnownPartiesResponse
{
///
- /// The details of all Daml parties known by the participant. Required
+ /// The details of all Daml parties known by the participant.
+ /// Required: must be non-empty
///
[JsonPropertyName("partyDetails")]
+ [Required]
public System.Collections.Generic.IList PartyDetails { get; set; } = new List();
///
/// Pagination token to retrieve the next page. Empty, if there are no further results.
+ /// Optional
///
[JsonPropertyName("nextPageToken")]
- [Required]
public string NextPageToken { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListPackagesResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListPackagesResponse.cs
index 29fae9a..d23c892 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListPackagesResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListPackagesResponse.cs
@@ -19,9 +19,11 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class ListPackagesResponse
{
///
- /// The IDs of all Daml-LF packages supported by the server. Each element must be a valid PackageIdString (as described in <c>value.proto</c>). Required
+ /// The IDs of all Daml-LF packages supported by the server. Each element must be a valid PackageIdString (as described in <c>value.proto</c>).
+ /// Required: must be non-empty
///
[JsonPropertyName("packageIds")]
+ [Required]
public System.Collections.Generic.IList PackageIds { get; set; } = new List();
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListUserRightsResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListUserRightsResponse.cs
index bb35065..d546990 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListUserRightsResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListUserRightsResponse.cs
@@ -20,6 +20,7 @@ public partial class ListUserRightsResponse
{
///
/// All rights of the user.
+ /// Optional: can be empty
///
[JsonPropertyName("rights")]
public System.Collections.Generic.IList Rights { get; set; } = new List();
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListUsersResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListUsersResponse.cs
index f4b4dde..e7e7176 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListUsersResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListUsersResponse.cs
@@ -19,16 +19,17 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class ListUsersResponse
{
///
- /// A subset of users of the participant node that fit into this page.
+ /// A subset of users of the participant node that fit into this page. Can be empty if no more users
+ /// Optional: can be empty
///
[JsonPropertyName("users")]
public System.Collections.Generic.IList Users { get; set; } = new List();
///
/// Pagination token to retrieve the next page. Empty, if there are no further results.
+ /// Optional
///
[JsonPropertyName("nextPageToken")]
- [Required]
public string NextPageToken { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListVettedPackagesRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListVettedPackagesRequest.cs
index 4e98036..4447564 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListVettedPackagesRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListVettedPackagesRequest.cs
@@ -19,13 +19,15 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class ListVettedPackagesRequest
{
///
- /// The package metadata filter the returned vetted packages set must satisfy. Optional
+ /// The package metadata filter the returned vetted packages set must satisfy.
+ /// Optional
///
[JsonPropertyName("packageMetadataFilter")]
public PackageMetadataFilter PackageMetadataFilter { get; set; } = null!;
///
- /// The topology filter the returned vetted packages set must satisfy. Optional
+ /// The topology filter the returned vetted packages set must satisfy.
+ /// Optional
///
[JsonPropertyName("topologyStateFilter")]
public TopologyStateFilter TopologyStateFilter { get; set; } = null!;
@@ -37,7 +39,6 @@ public partial class ListVettedPackagesRequest
/// Optional
///
[JsonPropertyName("pageToken")]
- [Required]
public string PageToken { get; set; } = null!;
///
@@ -48,8 +49,7 @@ public partial class ListVettedPackagesRequest
/// Optional
///
[JsonPropertyName("pageSize")]
- [Required]
- public int PageSize { get; set; }
+ public int? PageSize { get; set; }
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListVettedPackagesResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListVettedPackagesResponse.cs
index 9fe4127..208fba7 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListVettedPackagesResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ListVettedPackagesResponse.cs
@@ -20,15 +20,16 @@ public partial class ListVettedPackagesResponse
{
///
/// All <c>VettedPackages</c> that contain at least one <c>VettedPackage</c> matching both a <c>PackageMetadataFilter</c> and a <c>TopologyStateFilter</c>. Sorted by synchronizer_id then participant_id.
+ /// Optional: can be empty
///
[JsonPropertyName("vettedPackages")]
public System.Collections.Generic.IList VettedPackages { get; set; } = new List();
///
/// Pagination token to retrieve the next page. Empty string if there are no further results.
+ /// Optional
///
[JsonPropertyName("nextPageToken")]
- [Required]
public string NextPageToken { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/MinLedgerTime.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/MinLedgerTime.cs
index e5a8270..0dafb39 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/MinLedgerTime.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/MinLedgerTime.cs
@@ -21,7 +21,6 @@ public partial class MinLedgerTime
///
///
[JsonPropertyName("time")]
- [Required]
public Time Time { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ObjectMeta.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ObjectMeta.cs
index c677413..b2ce6bf 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ObjectMeta.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ObjectMeta.cs
@@ -21,10 +21,10 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class ObjectMeta
{
///
- /// An opaque, non-empty value, populated by a participant server which represents the internal version of the resource this <c>ObjectMeta</c> 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
+ /// An opaque, non-empty value, populated by a participant server which represents the internal version of the resource this <c>ObjectMeta</c> 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
///
[JsonPropertyName("resourceVersion")]
- [Required]
public string ResourceVersion { get; set; } = null!;
///
@@ -36,10 +36,10 @@ public partial class ObjectMeta
///
/// 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
+ /// 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. Modifiable
+ /// Optional: can be empty
///
[JsonPropertyName("annotations")]
- [Required]
public Map_String Annotations { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/OffsetCheckpoint1.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/OffsetCheckpoint1.cs
index c310352..868e76c 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/OffsetCheckpoint1.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/OffsetCheckpoint1.cs
@@ -24,13 +24,16 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class OffsetCheckpoint1
{
///
- /// The participant's offset, the details of the offset field are described in <c>community/ledger-api/README.md</c>. Required, must be a valid absolute offset (positive integer).
+ /// The participant's offset, the details of the offset field are described in <c>community/ledger-api/README.md</c>. Must be a valid absolute offset (positive integer).
+ /// Required
///
[JsonPropertyName("offset")]
[Required]
public long Offset { get; set; }
///
+ /// The times associated with each synchronizer at this offset.
+ /// Optional: can be empty
///
[JsonPropertyName("synchronizerTimes")]
public System.Collections.Generic.IList SynchronizerTimes { get; set; } = new List();
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/OffsetCheckpointFeature.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/OffsetCheckpointFeature.cs
index 563e6b6..f612950 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/OffsetCheckpointFeature.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/OffsetCheckpointFeature.cs
@@ -20,8 +20,10 @@ public partial class OffsetCheckpointFeature
{
///
/// The maximum delay to emmit a new OffsetCheckpoint if it exists
+ /// Required
///
[JsonPropertyName("maxOffsetCheckpointEmissionDelay")]
+ [Required]
public Duration MaxOffsetCheckpointEmissionDelay { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Operation.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Operation.cs
index 9835b7b..89e3b4f 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Operation.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Operation.cs
@@ -14,6 +14,7 @@
namespace Trakx.Canton.ApiClient.Contracts.Ledger
{
///
+ /// Required
///
[GeneratedCode("OpenAPIComponentsGen", "1.0.0")]
public partial class Operation
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PackageFeature.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PackageFeature.cs
index 784fbfa..91910a6 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PackageFeature.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PackageFeature.cs
@@ -20,6 +20,7 @@ public partial class PackageFeature
{
///
/// The maximum number of vetted packages the server can return in a single response (page) when listing them.
+ /// Required
///
[JsonPropertyName("maxVettedPackagesPageSize")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PackageMetadataFilter.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PackageMetadataFilter.cs
index 0caef8c..3c6ed0e 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PackageMetadataFilter.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PackageMetadataFilter.cs
@@ -23,12 +23,14 @@ public partial class PackageMetadataFilter
{
///
/// If this list is non-empty, any vetted package with a package ID in this list will match the filter.
+ /// Optional: can be empty
///
[JsonPropertyName("packageIds")]
public System.Collections.Generic.IList PackageIds { get; set; } = new List();
///
/// If this list is non-empty, any vetted package with a name matching at least one prefix in this list will match the filter.
+ /// Optional: can be empty
///
[JsonPropertyName("packageNamePrefixes")]
public System.Collections.Generic.IList PackageNamePrefixes { get; set; } = new List();
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PackagePreference.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PackagePreference.cs
index 94a8c50..80a56ec 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PackagePreference.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PackagePreference.cs
@@ -19,13 +19,16 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class PackagePreference
{
///
- /// The package reference of the preferred package. Required
+ /// The package reference of the preferred package.
+ /// Required
///
[JsonPropertyName("packageReference")]
+ [Required]
public PackageReference PackageReference { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("synchronizerId")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PackageVettingRequirement.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PackageVettingRequirement.cs
index 482af34..70561d4 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PackageVettingRequirement.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PackageVettingRequirement.cs
@@ -20,13 +20,16 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class PackageVettingRequirement
{
///
- /// The parties whose participants' vetting state should be considered when resolving the preferred package. Required
+ /// The parties whose participants' vetting state should be considered when resolving the preferred package.
+ /// Required: must be non-empty
///
[JsonPropertyName("parties")]
+ [Required]
public System.Collections.Generic.IList Parties { get; set; } = new List();
///
- /// The package-name for which the preferred package should be resolved. Required
+ /// The package-name for which the preferred package should be resolved.
+ /// Required
///
[JsonPropertyName("packageName")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ParticipantAuthorizationTopologyFormat.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ParticipantAuthorizationTopologyFormat.cs
index cd9eb80..db2b163 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ParticipantAuthorizationTopologyFormat.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ParticipantAuthorizationTopologyFormat.cs
@@ -21,6 +21,7 @@ public partial class ParticipantAuthorizationTopologyFormat
{
///
/// List of parties for which the topology transactions should be sent. Empty means: for all parties.
+ /// Optional: can be empty
///
[JsonPropertyName("parties")]
public System.Collections.Generic.IList Parties { get; set; } = new List();
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PartyDetails.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PartyDetails.cs
index a7803ec..b7f9827 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PartyDetails.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PartyDetails.cs
@@ -19,21 +19,23 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class PartyDetails
{
///
- /// The stable unique identifier of a Daml party. Must be a valid PartyIdString (as described in <c>value.proto</c>). Required
+ /// The stable unique identifier of a Daml party. Must be a valid PartyIdString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("party")]
[Required]
public string Party { get; set; } = null!;
///
- /// true if party is hosted by the participant and the party shares the same identity provider as the user issuing the request. Optional
+ /// true if party is hosted by the participant and the party shares the same identity provider as the user issuing the request.
+ /// Optional
///
[JsonPropertyName("isLocal")]
- [Required]
- public bool IsLocal { get; set; }
+ public bool? IsLocal { get; set; }
///
- /// Participant-local metadata of this party. Optional, Modifiable
+ /// Participant-local metadata of this party. Modifiable
+ /// Optional
///
[JsonPropertyName("localMetadata")]
public ObjectMeta LocalMetadata { get; set; } = null!;
@@ -41,9 +43,9 @@ public partial class PartyDetails
///
/// The id of the <c>Identity Provider</c> 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.
+ /// Optional
///
[JsonPropertyName("identityProviderId")]
- [Required]
public string IdentityProviderId { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PartyManagementFeature.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PartyManagementFeature.cs
index 288d457..cd8a83e 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PartyManagementFeature.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PartyManagementFeature.cs
@@ -20,6 +20,7 @@ public partial class PartyManagementFeature
{
///
/// The maximum number of parties the server can return in a single response (page).
+ /// Required
///
[JsonPropertyName("maxPartiesPageSize")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PartySignatures.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PartySignatures.cs
index afaaeed..0318987 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PartySignatures.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PartySignatures.cs
@@ -20,9 +20,11 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class PartySignatures
{
///
- /// Additional signatures provided by all individual parties Required
+ /// Additional signatures provided by all individual parties
+ /// Required: must be non-empty
///
[JsonPropertyName("signatures")]
+ [Required]
public System.Collections.Generic.IList Signatures { get; set; } = new List();
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PrefetchContractKey.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PrefetchContractKey.cs
index e1adab2..600341f 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PrefetchContractKey.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PrefetchContractKey.cs
@@ -24,10 +24,12 @@ public partial class PrefetchContractKey
/// Required
///
[JsonPropertyName("templateId")]
+ [Required]
public string TemplateId { get; set; } = null!;
///
- /// The key of the contract the client wants to prefetch. Required
+ /// The key of the contract the client wants to prefetch.
+ /// Required
///
[JsonPropertyName("contractKey")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PriorTopologySerial.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PriorTopologySerial.cs
index 3767f49..6dd1562 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PriorTopologySerial.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/PriorTopologySerial.cs
@@ -22,7 +22,6 @@ public partial class PriorTopologySerial
///
///
[JsonPropertyName("serial")]
- [Required]
public Serial Serial { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ReassignmentCommand.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ReassignmentCommand.cs
index bc947e7..b020553 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ReassignmentCommand.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ReassignmentCommand.cs
@@ -21,7 +21,6 @@ public partial class ReassignmentCommand
///
///
[JsonPropertyName("command")]
- [Required]
public Command1 Command { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ReassignmentCommands.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ReassignmentCommands.cs
index a2937e5..710beb9 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ReassignmentCommands.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/ReassignmentCommands.cs
@@ -22,25 +22,26 @@ public partial class ReassignmentCommands
/// Identifier of the on-ledger workflow that this command is a part of. Must be a valid LedgerString (as described in <c>value.proto</c>). Optional
///
[JsonPropertyName("workflowId")]
- [Required]
public string WorkflowId { get; set; } = null!;
///
/// Uniquely identifies the participant user that issued the command. Must be a valid UserIdString (as described in <c>value.proto</c>). 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
///
[JsonPropertyName("userId")]
- [Required]
public string UserId { get; set; } = null!;
///
- /// 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 <c>value.proto</c>). Required
+ /// 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 <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("commandId")]
[Required]
public string CommandId { get; set; } = null!;
///
- /// 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 <c>value.proto</c>). Required
+ /// 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 <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("submitter")]
[Required]
@@ -51,13 +52,14 @@ public partial class ReassignmentCommands
/// If omitted, the participant or the committer may set a value of their choice. Optional
///
[JsonPropertyName("submissionId")]
- [Required]
public string SubmissionId { get; set; } = null!;
///
/// Individual elements of this reassignment. Must be non-empty.
+ /// Required: must be non-empty
///
[JsonPropertyName("commands")]
+ [Required]
public System.Collections.Generic.IList Commands { get; set; } = new List();
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/RevokeUserRightsRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/RevokeUserRightsRequest.cs
index 2754265..e1edeb1 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/RevokeUserRightsRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/RevokeUserRightsRequest.cs
@@ -21,23 +21,25 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class RevokeUserRightsRequest
{
///
- /// The user from whom to revoke rights. Required
+ /// The user from whom to revoke rights.
+ /// Required
///
[JsonPropertyName("userId")]
[Required]
public string UserId { get; set; } = null!;
///
- /// The rights to revoke. Optional
+ /// The rights to revoke.
+ /// Optional: can be empty
///
[JsonPropertyName("rights")]
public System.Collections.Generic.IList Rights { get; set; } = new List();
///
- /// The id of the <c>Identity Provider</c> Optional, if not set, assume the user is managed by the default identity provider.
+ /// The id of the <c>Identity Provider</c> If not set, assume the user is managed by the default identity provider.
+ /// Optional
///
[JsonPropertyName("identityProviderId")]
- [Required]
public string IdentityProviderId { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/RevokeUserRightsResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/RevokeUserRightsResponse.cs
index 384198d..704c14f 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/RevokeUserRightsResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/RevokeUserRightsResponse.cs
@@ -20,6 +20,7 @@ public partial class RevokeUserRightsResponse
{
///
/// The rights that were actually revoked by the request.
+ /// Optional: can be empty
///
[JsonPropertyName("newlyRevokedRights")]
public System.Collections.Generic.IList NewlyRevokedRights { get; set; } = new List();
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Right.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Right.cs
index 154cb7c..c38c17c 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Right.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Right.cs
@@ -22,7 +22,6 @@ public partial class Right
///
///
[JsonPropertyName("kind")]
- [Required]
public Kind Kind { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Serial.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Serial.cs
index 0b8a570..8e3319b 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Serial.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Serial.cs
@@ -14,6 +14,7 @@
namespace Trakx.Canton.ApiClient.Contracts.Ledger
{
///
+ /// Optional
///
[GeneratedCode("OpenAPIComponentsGen", "1.0.0")]
public partial class Serial
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Signature.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Signature.cs
index 54de3e4..e5ea0e6 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Signature.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Signature.cs
@@ -19,12 +19,14 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class Signature
{
///
+ /// Required
///
[JsonPropertyName("format")]
[Required]
public string Format { get; set; } = null!;
///
+ /// Required: must be non-empty
///
[JsonPropertyName("signature")]
[Required]
@@ -32,6 +34,7 @@ public partial class Signature
///
/// The fingerprint/id of the keypair used to create this signature and needed to verify.
+ /// Required
///
[JsonPropertyName("signedBy")]
[Required]
@@ -39,6 +42,7 @@ public partial class Signature
///
/// The signing algorithm specification used to produce this signature
+ /// Required
///
[JsonPropertyName("signingAlgorithmSpec")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SigningPublicKey.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SigningPublicKey.cs
index ab7c55d..12105fa 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SigningPublicKey.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SigningPublicKey.cs
@@ -20,6 +20,7 @@ public partial class SigningPublicKey
{
///
/// The serialization format of the public key
+ /// Required
///
[JsonPropertyName("format")]
[Required]
@@ -27,6 +28,7 @@ public partial class SigningPublicKey
///
/// Serialized public key in the format specified above
+ /// Required: must be non-empty
///
[JsonPropertyName("keyData")]
[Required]
@@ -34,6 +36,7 @@ public partial class SigningPublicKey
///
/// The key specification
+ /// Required
///
[JsonPropertyName("keySpec")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SinglePartySignatures.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SinglePartySignatures.cs
index 0b520ae..779f04d 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SinglePartySignatures.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SinglePartySignatures.cs
@@ -20,16 +20,19 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class SinglePartySignatures
{
///
- /// Submitting party Required
+ /// Submitting party
+ /// Required
///
[JsonPropertyName("party")]
[Required]
public string Party { get; set; } = null!;
///
- /// Signatures Required
+ /// Signatures
+ /// Required: must be non-empty
///
[JsonPropertyName("signatures")]
+ [Required]
public System.Collections.Generic.IList Signatures { get; set; } = new List();
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SubmitAndWaitForReassignmentRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SubmitAndWaitForReassignmentRequest.cs
index 576f47f..e5c4f2d 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SubmitAndWaitForReassignmentRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SubmitAndWaitForReassignmentRequest.cs
@@ -20,13 +20,16 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class SubmitAndWaitForReassignmentRequest
{
///
- /// The reassignment commands to be submitted. Required
+ /// The reassignment commands to be submitted.
+ /// Required
///
[JsonPropertyName("reassignmentCommands")]
+ [Required]
public ReassignmentCommands ReassignmentCommands { get; set; } = null!;
///
- /// Optional If no event_format provided, the result will contain no events. The events in the result, will take shape TRANSACTION_SHAPE_ACS_DELTA.
+ /// If no event_format provided, the result will contain no events. The events in the result, will take shape TRANSACTION_SHAPE_ACS_DELTA.
+ /// Optional
///
[JsonPropertyName("eventFormat")]
public EventFormat EventFormat { get; set; } = null!;
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SubmitAndWaitResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SubmitAndWaitResponse.cs
index bad372e..bc0af78 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SubmitAndWaitResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SubmitAndWaitResponse.cs
@@ -19,14 +19,16 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class SubmitAndWaitResponse
{
///
- /// The id of the transaction that resulted from the submitted command. Must be a valid LedgerString (as described in <c>value.proto</c>). Required
+ /// The id of the transaction that resulted from the submitted command. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("updateId")]
[Required]
public string UpdateId { get; set; } = null!;
///
- /// The details of the offset field are described in <c>community/ledger-api/README.md</c>. Required
+ /// The details of the offset field are described in <c>community/ledger-api/README.md</c>.
+ /// Required
///
[JsonPropertyName("completionOffset")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SubmitReassignmentRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SubmitReassignmentRequest.cs
index 5727410..b95c68a 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SubmitReassignmentRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SubmitReassignmentRequest.cs
@@ -19,9 +19,11 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class SubmitReassignmentRequest
{
///
- /// The reassignment command to be submitted. Required
+ /// The reassignment command to be submitted.
+ /// Required
///
[JsonPropertyName("reassignmentCommands")]
+ [Required]
public ReassignmentCommands ReassignmentCommands { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SynchronizerTime.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SynchronizerTime.cs
index b4bdeeb..f597ea3 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SynchronizerTime.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/SynchronizerTime.cs
@@ -19,16 +19,19 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class SynchronizerTime
{
///
- /// The id of the synchronizer. Required
+ /// The id of the synchronizer.
+ /// Required
///
[JsonPropertyName("synchronizerId")]
[Required]
public string SynchronizerId { get; set; } = null!;
///
- /// All commands with a maximum record time below this value MUST be considered lost if their completion has not arrived before this checkpoint. Required
+ /// All commands with a maximum record time below this value MUST be considered lost if their completion has not arrived before this checkpoint.
+ /// Required
///
[JsonPropertyName("recordTime")]
+ [Required]
public string RecordTime { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TemplateFilter1.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TemplateFilter1.cs
index 76ec766..25876e5 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TemplateFilter1.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TemplateFilter1.cs
@@ -24,14 +24,15 @@ public partial class TemplateFilter1
/// Required
///
[JsonPropertyName("templateId")]
+ [Required]
public string TemplateId { get; set; } = null!;
///
- /// Whether to include a <c>created_event_blob</c> in the returned <c>CreatedEvent</c>. Use this to access the contract event payload in your API client for submitting it as a disclosed contract with future commands. Optional
+ /// Whether to include a <c>created_event_blob</c> in the returned <c>CreatedEvent</c>. Use this to access the contract event payload in your API client for submitting it as a disclosed contract with future commands.
+ /// Optional
///
[JsonPropertyName("includeCreatedEventBlob")]
- [Required]
- public bool IncludeCreatedEventBlob { get; set; }
+ public bool? IncludeCreatedEventBlob { get; set; }
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Time.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Time.cs
index 45b9c05..04dde79 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Time.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/Time.cs
@@ -14,6 +14,7 @@
namespace Trakx.Canton.ApiClient.Contracts.Ledger
{
///
+ /// Required
///
[GeneratedCode("OpenAPIComponentsGen", "1.0.0")]
public partial class Time
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TopologyEvent.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TopologyEvent.cs
index db990d5..e1bee49 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TopologyEvent.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TopologyEvent.cs
@@ -21,7 +21,6 @@ public partial class TopologyEvent
///
///
[JsonPropertyName("event")]
- [Required]
public TopologyEventEvent Event { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TopologyFormat.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TopologyFormat.cs
index 3256220..f8e8165 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TopologyFormat.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TopologyFormat.cs
@@ -20,7 +20,8 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class TopologyFormat
{
///
- /// Include participant authorization topology events in streams. Optional, if unset no participant authorization topology events are emitted in the stream.
+ /// Include participant authorization topology events in streams. If unset, no participant authorization topology events are emitted in the stream.
+ /// Optional
///
[JsonPropertyName("includeParticipantAuthorizationEvents")]
public ParticipantAuthorizationTopologyFormat IncludeParticipantAuthorizationEvents { get; set; } = null!;
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TopologyStateFilter.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TopologyStateFilter.cs
index 991e50d..1fe1862 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TopologyStateFilter.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TopologyStateFilter.cs
@@ -23,12 +23,14 @@ public partial class TopologyStateFilter
{
///
/// 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 <c>GetParticipantId</c> command in <c>PartyManagementService</c>.
+ /// Optional: can be empty
///
[JsonPropertyName("participantIds")]
public System.Collections.Generic.IList ParticipantIds { get; set; } = new List();
///
/// If this list is non-empty, only vetted packages from the topology state of the synchronizers in this list match the filter.
+ /// Optional: can be empty
///
[JsonPropertyName("synchronizerIds")]
public System.Collections.Generic.IList SynchronizerIds { get; set; } = new List();
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TraceContext.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TraceContext.cs
index 29c37c5..ff6fc00 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TraceContext.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TraceContext.cs
@@ -19,12 +19,13 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class TraceContext
{
///
- /// https://www.w3.org/TR/trace-context/
+ /// https://www.w3.org/TR/trace-context/ Optional
///
[JsonPropertyName("traceparent")]
public string Traceparent { get; set; } = null!;
///
+ /// Optional
///
[JsonPropertyName("tracestate")]
public string Tracestate { get; set; } = null!;
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TransactionFilter.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TransactionFilter.cs
index a985c75..b43bf82 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TransactionFilter.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TransactionFilter.cs
@@ -24,7 +24,6 @@ public partial class TransactionFilter
/// 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 <c>CumulativeFilter</c>s, those will control returned <c>CreatedEvent</c> 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.
///
[JsonPropertyName("filtersByParty")]
- [Required]
public Map_Filters FiltersByParty { get; set; } = null!;
///
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TransactionFormat.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TransactionFormat.cs
index e35f94d..83c92d8 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TransactionFormat.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/TransactionFormat.cs
@@ -23,10 +23,12 @@ public partial class TransactionFormat
/// Required
///
[JsonPropertyName("eventFormat")]
+ [Required]
public EventFormat EventFormat { get; set; } = null!;
///
- /// What transaction shape to use for interpreting the filters of the event format. Required
+ /// What transaction shape to use for interpreting the filters of the event format.
+ /// Required
///
[JsonPropertyName("transactionShape")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UnassignCommand1.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UnassignCommand1.cs
index 048cb9b..16e9624 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UnassignCommand1.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UnassignCommand1.cs
@@ -20,21 +20,24 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class UnassignCommand1
{
///
- /// The ID of the contract the client wants to unassign. Must be a valid LedgerString (as described in <c>value.proto</c>). Required
+ /// The ID of the contract the client wants to unassign. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("contractId")]
[Required]
public string ContractId { get; set; } = null!;
///
- /// The ID of the source synchronizer Must be a valid synchronizer id Required
+ /// The ID of the source synchronizer Must be a valid synchronizer id
+ /// Required
///
[JsonPropertyName("source")]
[Required]
public string Source { get; set; } = null!;
///
- /// The ID of the target synchronizer Must be a valid synchronizer id Required
+ /// The ID of the target synchronizer Must be a valid synchronizer id
+ /// Required
///
[JsonPropertyName("target")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UnassignedEvent.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UnassignedEvent.cs
index 4ac66a0..ec84d48 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UnassignedEvent.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UnassignedEvent.cs
@@ -20,14 +20,16 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class UnassignedEvent
{
///
- /// 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 <c>value.proto</c>). Required
+ /// 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 <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("reassignmentId")]
[Required]
public string ReassignmentId { get; set; } = null!;
///
- /// The ID of the reassigned contract. Must be a valid LedgerString (as described in <c>value.proto</c>). Required
+ /// The ID of the reassigned contract. Must be a valid LedgerString (as described in <c>value.proto</c>).
+ /// Required
///
[JsonPropertyName("contractId")]
[Required]
@@ -38,64 +40,74 @@ public partial class UnassignedEvent
/// Required
///
[JsonPropertyName("templateId")]
+ [Required]
public string TemplateId { get; set; } = null!;
///
- /// The ID of the source synchronizer Must be a valid synchronizer id Required
+ /// The ID of the source synchronizer Must be a valid synchronizer id
+ /// Required
///
[JsonPropertyName("source")]
[Required]
public string Source { get; set; } = null!;
///
- /// The ID of the target synchronizer Must be a valid synchronizer id Required
+ /// The ID of the target synchronizer Must be a valid synchronizer id
+ /// Required
///
[JsonPropertyName("target")]
[Required]
public string Target { get; set; } = null!;
///
- /// 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 <c>value.proto</c>). Optional
+ /// 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 <c>value.proto</c>).
+ /// Optional
///
[JsonPropertyName("submitter")]
- [Required]
public string Submitter { get; set; } = null!;
///
- /// 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
+ /// 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
///
[JsonPropertyName("reassignmentCounter")]
[Required]
public long ReassignmentCounter { get; set; }
///
- /// 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
+ /// 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
///
[JsonPropertyName("assignmentExclusivity")]
public string AssignmentExclusivity { get; set; } = null!;
///
- /// The parties that are notified of this event. Required
+ /// The parties that are notified of this event.
+ /// Required: must be non-empty
///
[JsonPropertyName("witnessParties")]
+ [Required]
public System.Collections.Generic.IList WitnessParties { get; set; } = new List();
///
- /// The package name of the contract. Required
+ /// The package name of the contract.
+ /// Required
///
[JsonPropertyName("packageName")]
[Required]
public string PackageName { get; set; } = null!;
///
- /// 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)
+ /// 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
///
[JsonPropertyName("offset")]
[Required]
public long Offset { get; set; }
///
- /// 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)
+ /// 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
///
[JsonPropertyName("nodeId")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateFormat.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateFormat.cs
index 09d8a5d..b3fc4e4 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateFormat.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateFormat.cs
@@ -20,19 +20,22 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class UpdateFormat
{
///
- /// Include Daml transactions in streams. Optional, if unset, no transactions are emitted in the stream.
+ /// Include Daml transactions in streams. If unset, no transactions are emitted in the stream.
+ /// Optional
///
[JsonPropertyName("includeTransactions")]
public TransactionFormat IncludeTransactions { get; set; } = null!;
///
- /// 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.
+ /// 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
///
[JsonPropertyName("includeReassignments")]
public EventFormat IncludeReassignments { get; set; } = null!;
///
- /// Include topology events in streams. Optional, if unset no topology events are emitted in the stream.
+ /// Include topology events in streams. If unset no topology events are emitted in the stream.
+ /// Optional
///
[JsonPropertyName("includeTopologyEvents")]
public TopologyFormat IncludeTopologyEvents { get; set; } = null!;
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateIdentityProviderConfigRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateIdentityProviderConfigRequest.cs
index 5a678f9..01a2421 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateIdentityProviderConfigRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateIdentityProviderConfigRequest.cs
@@ -19,17 +19,21 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class UpdateIdentityProviderConfigRequest
{
///
- /// The identity provider config to update. Required, Modifiable
+ /// The identity provider config to update. Modifiable
+ /// Required
///
[JsonPropertyName("identityProviderConfig")]
+ [Required]
public IdentityProviderConfig IdentityProviderConfig { get; set; } = null!;
///
/// An update mask specifies how and which properties of the <c>IdentityProviderConfig</c> 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 <c>IdentityProviderConfig</c> 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 <c>Modifiable</c>. For additional information see the documentation for standard protobuf3's <c>google.protobuf.FieldMask</c>. Required
+ /// Fields that can be updated are marked as <c>Modifiable</c>. For additional information see the documentation for standard protobuf3's <c>google.protobuf.FieldMask</c>.
+ /// Required
///
[JsonPropertyName("updateMask")]
+ [Required]
public FieldMask UpdateMask { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateIdentityProviderConfigResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateIdentityProviderConfigResponse.cs
index 09bcf90..593215e 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateIdentityProviderConfigResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateIdentityProviderConfigResponse.cs
@@ -20,8 +20,10 @@ public partial class UpdateIdentityProviderConfigResponse
{
///
/// Updated identity provider config
+ /// Required
///
[JsonPropertyName("identityProviderConfig")]
+ [Required]
public IdentityProviderConfig IdentityProviderConfig { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdatePartyDetailsRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdatePartyDetailsRequest.cs
index b6dc600..89a6c0d 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdatePartyDetailsRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdatePartyDetailsRequest.cs
@@ -20,9 +20,11 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class UpdatePartyDetailsRequest
{
///
- /// Party to be updated Required, Modifiable
+ /// Party to be updated Modifiable
+ /// Required
///
[JsonPropertyName("partyDetails")]
+ [Required]
public PartyDetails PartyDetails { get; set; } = null!;
///
@@ -30,9 +32,11 @@ public partial class UpdatePartyDetailsRequest
/// 1. contain at least one update path, 2. contain only valid update paths.
/// Fields that can be updated are marked as <c>Modifiable</c>. An update path can also point to non-<c>Modifiable</c> 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-<c>Modifiable</c> 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 <c>google.protobuf.FieldMask</c>. For similar Ledger API see <c>com.daml.ledger.api.v2.admin.UpdateUserRequest</c>. Required
+ /// An update path can also point to non-<c>Modifiable</c> 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 <c>google.protobuf.FieldMask</c>. For similar Ledger API see <c>com.daml.ledger.api.v2.admin.UpdateUserRequest</c>.
+ /// Required
///
[JsonPropertyName("updateMask")]
+ [Required]
public FieldMask UpdateMask { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdatePartyDetailsResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdatePartyDetailsResponse.cs
index 55950bd..7ab7f39 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdatePartyDetailsResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdatePartyDetailsResponse.cs
@@ -20,8 +20,10 @@ public partial class UpdatePartyDetailsResponse
{
///
/// Updated party details
+ /// Required
///
[JsonPropertyName("partyDetails")]
+ [Required]
public PartyDetails PartyDetails { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateUserIdentityProviderIdRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateUserIdentityProviderIdRequest.cs
index f947dd3..e28fab1 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateUserIdentityProviderIdRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateUserIdentityProviderIdRequest.cs
@@ -21,23 +21,24 @@ public partial class UpdateUserIdentityProviderIdRequest
{
///
/// User to update
+ /// Required
///
[JsonPropertyName("userId")]
[Required]
public string UserId { get; set; } = null!;
///
- /// Current identity provider ID of the user
+ /// Current identity provider ID of the user If omitted, the default IDP is assumed
+ /// Optional
///
[JsonPropertyName("sourceIdentityProviderId")]
- [Required]
public string SourceIdentityProviderId { get; set; } = null!;
///
- /// Target identity provider ID of the user
+ /// Target identity provider ID of the user If omitted, the default IDP is assumed
+ /// Optional
///
[JsonPropertyName("targetIdentityProviderId")]
- [Required]
public string TargetIdentityProviderId { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateUserRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateUserRequest.cs
index c7a8231..31ac703 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateUserRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateUserRequest.cs
@@ -20,9 +20,11 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class UpdateUserRequest
{
///
- /// The user to update. Required, Modifiable
+ /// The user to update. Modifiable
+ /// Required
///
[JsonPropertyName("user")]
+ [Required]
public User User { get; set; } = null!;
///
@@ -30,9 +32,11 @@ public partial class UpdateUserRequest
/// 1. contain at least one update path, 2. contain only valid update paths.
/// Fields that can be updated are marked as <c>Modifiable</c>. An update path can also point to a non-<c>Modifiable</c> 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 <c>google.protobuf.FieldMask</c>. For similar Ledger API see <c>com.daml.ledger.api.v2.admin.UpdatePartyDetailsRequest</c>. Required
+ /// Examples of valid update paths: 'primary_party', 'metadata', 'metadata.annotations'. For additional information see the documentation for standard protobuf3's <c>google.protobuf.FieldMask</c>. For similar Ledger API see <c>com.daml.ledger.api.v2.admin.UpdatePartyDetailsRequest</c>.
+ /// Required
///
[JsonPropertyName("updateMask")]
+ [Required]
public FieldMask UpdateMask { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateUserResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateUserResponse.cs
index aef2ff3..3301b98 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateUserResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateUserResponse.cs
@@ -20,8 +20,10 @@ public partial class UpdateUserResponse
{
///
/// Updated user
+ /// Required
///
[JsonPropertyName("user")]
+ [Required]
public User User { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateVettedPackagesRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateVettedPackagesRequest.cs
index f7ad969..96ffc71 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateVettedPackagesRequest.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateVettedPackagesRequest.cs
@@ -20,24 +20,25 @@ public partial class UpdateVettedPackagesRequest
{
///
/// 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.
+ /// Required: must be non-empty
///
[JsonPropertyName("changes")]
+ [Required]
public System.Collections.Generic.IList Changes { get; set; } = new List();
///
/// 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.
+ /// Use this flag to preview a change before applying it. Defaults to false.
+ /// Optional
///
[JsonPropertyName("dryRun")]
- [Required]
- public bool DryRun { get; set; }
+ public bool? DryRun { get; set; }
///
/// 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
///
[JsonPropertyName("synchronizerId")]
- [Required]
public string SynchronizerId { get; set; } = null!;
///
@@ -51,7 +52,7 @@ public partial class UpdateVettedPackagesRequest
///
/// Controls whether potentially unsafe vetting updates are allowed.
- /// Optional, defaults to FORCE_FLAG_UNSPECIFIED.
+ /// Optional: can be empty
///
[JsonPropertyName("updateVettedPackagesForceFlags")]
public System.Collections.Generic.IList UpdateVettedPackagesForceFlags { get; set; } = new List();
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateVettedPackagesResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateVettedPackagesResponse.cs
index 4cff7ed..969829e 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateVettedPackagesResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UpdateVettedPackagesResponse.cs
@@ -20,14 +20,18 @@ public partial class UpdateVettedPackagesResponse
{
///
/// All vetted packages on this participant and synchronizer, before the specified changes. Empty if no vetting state existed beforehand.
+ /// Not populated if no vetted topology state exists prior to the update.
+ /// Optional
///
[JsonPropertyName("pastVettedPackages")]
public VettedPackages PastVettedPackages { get; set; } = null!;
///
/// All vetted packages on this participant and synchronizer, after the specified changes.
+ /// Required
///
[JsonPropertyName("newVettedPackages")]
+ [Required]
public VettedPackages NewVettedPackages { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/User.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/User.cs
index eb7a9e1..1a57b07 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/User.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/User.cs
@@ -20,37 +20,39 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class User
{
///
- /// 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
+ /// 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
///
[JsonPropertyName("id")]
[Required]
public string Id { get; set; } = null!;
///
- /// The primary party as which this user reads and acts by default on the ledger *provided* it has the corresponding <c>CanReadAs(primary_party)</c> or <c>CanActAs(primary_party)</c> 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
+ /// The primary party as which this user reads and acts by default on the ledger *provided* it has the corresponding <c>CanReadAs(primary_party)</c> or <c>CanActAs(primary_party)</c> 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. Modifiable
+ /// Optional
///
[JsonPropertyName("primaryParty")]
- [Required]
public string PrimaryParty { get; set; } = null!;
///
- /// 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
+ /// 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. Modifiable
+ /// Optional
///
[JsonPropertyName("isDeactivated")]
- [Required]
- public bool IsDeactivated { get; set; }
+ public bool? IsDeactivated { get; set; }
///
- /// The metadata of this user. Note that the <c>metadata.resource_version</c> tracks changes to the properties described by the <c>User</c> message and not the user's rights. Optional, Modifiable
+ /// The metadata of this user. Note that the <c>metadata.resource_version</c> tracks changes to the properties described by the <c>User</c> message and not the user's rights. Modifiable
+ /// Optional
///
[JsonPropertyName("metadata")]
public ObjectMeta Metadata { get; set; } = null!;
///
- /// The ID of the identity provider configured by <c>Identity Provider Config</c> Optional, if not set, assume the user is managed by the default identity provider.
+ /// The ID of the identity provider configured by <c>Identity Provider Config</c> If not set, assume the user is managed by the default identity provider.
+ /// Optional
///
[JsonPropertyName("identityProviderId")]
- [Required]
public string IdentityProviderId { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UserManagementFeature.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UserManagementFeature.cs
index bd4afa1..f86b4b1 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UserManagementFeature.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/UserManagementFeature.cs
@@ -20,6 +20,7 @@ public partial class UserManagementFeature
{
///
/// Whether the Ledger API server provides the user management service.
+ /// Required
///
[JsonPropertyName("supported")]
[Required]
@@ -27,6 +28,7 @@ public partial class UserManagementFeature
///
/// 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.
+ /// Required
///
[JsonPropertyName("maxRightsPerUser")]
[Required]
@@ -34,6 +36,7 @@ public partial class UserManagementFeature
///
/// 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.
+ /// Required
///
[JsonPropertyName("maxUsersPageSize")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/VettedPackage.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/VettedPackage.cs
index 4559707..43c9b9e 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/VettedPackage.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/VettedPackage.cs
@@ -20,7 +20,8 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class VettedPackage
{
///
- /// Package ID of this package. Always present.
+ /// Package ID of this package
+ /// Required
///
[JsonPropertyName("packageId")]
[Required]
@@ -28,28 +29,30 @@ public partial class VettedPackage
///
/// The time from which this package is vetted. Empty if vetting time has no lower bound.
+ /// Optional
///
[JsonPropertyName("validFromInclusive")]
public string ValidFromInclusive { get; set; } = null!;
///
/// The time until which this package is vetted. Empty if vetting time has no upper bound.
+ /// Optional
///
[JsonPropertyName("validUntilExclusive")]
public string ValidUntilExclusive { get; set; } = null!;
///
- /// Name of this package. Only available if the package has been uploaded to the current participant. If unavailable, is empty string.
+ /// Name of this package. Only available if the package has been uploaded to the current participant.
+ /// Optional
///
[JsonPropertyName("packageName")]
- [Required]
public string PackageName { get; set; } = null!;
///
- /// Version of this package. Only available if the package has been uploaded to the current participant. If unavailable, is empty string.
+ /// Version of this package. Only available if the package has been uploaded to the current participant.
+ /// Optional
///
[JsonPropertyName("packageVersion")]
- [Required]
public string PackageVersion { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/VettedPackages.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/VettedPackages.cs
index df922c9..8f1a916 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/VettedPackages.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/VettedPackages.cs
@@ -21,26 +21,31 @@ public partial class VettedPackages
{
///
/// Sorted by package_name and package_version where known, and package_id as a last resort.
+ /// Required: must be non-empty
///
[JsonPropertyName("packages")]
+ [Required]
public System.Collections.Generic.IList Packages { get; set; } = new List();
///
- /// Participant on which these packages are vetted. Always present.
+ /// Participant on which these packages are vetted.
+ /// Required
///
[JsonPropertyName("participantId")]
[Required]
public string ParticipantId { get; set; } = null!;
///
- /// Synchronizer on which these packages are vetted. Always present.
+ /// Synchronizer on which these packages are vetted.
+ /// Required
///
[JsonPropertyName("synchronizerId")]
[Required]
public string SynchronizerId { get; set; } = null!;
///
- /// Serial of last <c>VettedPackages</c> topology transaction of this participant and on this synchronizer. Always present.
+ /// Serial of last <c>VettedPackages</c> topology transaction of this participant and on this synchronizer.
+ /// Required
///
[JsonPropertyName("topologySerial")]
[Required]
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/VettedPackagesChange.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/VettedPackagesChange.cs
index c2161d7..a0a8e97 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/VettedPackagesChange.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/VettedPackagesChange.cs
@@ -22,7 +22,6 @@ public partial class VettedPackagesChange
///
///
[JsonPropertyName("operation")]
- [Required]
public Operation Operation { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/VettedPackagesRef.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/VettedPackagesRef.cs
index 3bbf135..6931202 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/VettedPackagesRef.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/VettedPackagesRef.cs
@@ -22,24 +22,24 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class VettedPackagesRef
{
///
- /// Package's package id must be the same as this field. Optional
+ /// Package's package id must be the same as this field.
+ /// Optional
///
[JsonPropertyName("packageId")]
- [Required]
public string PackageId { get; set; } = null!;
///
- /// Package's name must be the same as this field. Optional
+ /// Package's name must be the same as this field.
+ /// Optional
///
[JsonPropertyName("packageName")]
- [Required]
public string PackageName { get; set; } = null!;
///
- /// Package's version must be the same as this field. Optional
+ /// Package's version must be the same as this field.
+ /// Optional
///
[JsonPropertyName("packageVersion")]
- [Required]
public string PackageVersion { get; set; } = null!;
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/WildcardFilter1.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/WildcardFilter1.cs
index 19c6c9c..2e668d3 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/WildcardFilter1.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Ledger/WildcardFilter1.cs
@@ -20,11 +20,11 @@ namespace Trakx.Canton.ApiClient.Contracts.Ledger
public partial class WildcardFilter1
{
///
- /// Whether to include a <c>created_event_blob</c> in the returned <c>CreatedEvent</c>. Use this to access the contract create event payload in your API client for submitting it as a disclosed contract with future commands. Optional
+ /// Whether to include a <c>created_event_blob</c> in the returned <c>CreatedEvent</c>. Use this to access the contract create event payload in your API client for submitting it as a disclosed contract with future commands.
+ /// Optional
///
[JsonPropertyName("includeCreatedEventBlob")]
- [Required]
- public bool IncludeCreatedEventBlob { get; set; }
+ public bool? IncludeCreatedEventBlob { get; set; }
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/EnvelopeTrafficSummary.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/EnvelopeTrafficSummary.cs
new file mode 100644
index 0000000..da701af
--- /dev/null
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/EnvelopeTrafficSummary.cs
@@ -0,0 +1,38 @@
+//
+// Generated from OpenAPI components by generate-components-cs.py
+//
+
+#nullable enable
+
+using System;
+using System.CodeDom.Compiler;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Runtime.Serialization;
+using System.Text.Json.Serialization;
+
+namespace Trakx.Canton.ApiClient.Contracts.Splice
+{
+ ///
+ /// Traffic cost for a single envelope and the view IDs contained in it
+ ///
+ [GeneratedCode("OpenAPIComponentsGen", "1.0.0")]
+ public partial class EnvelopeTrafficSummary
+ {
+ ///
+ /// Traffic cost in bytes for this envelope.
+ ///
+ [JsonPropertyName("traffic_cost")]
+ [Required]
+ public long TrafficCost { get; set; }
+
+ ///
+ /// View IDs from the verdict contained in this envelope
+ ///
+ [JsonPropertyName("view_ids")]
+ [Required]
+ public System.Collections.Generic.IList ViewIds { get; set; } = new List();
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/EventHistoryItem.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/EventHistoryItem.cs
index 9472ba9..a2c5c90 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/EventHistoryItem.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/EventHistoryItem.cs
@@ -15,6 +15,8 @@ namespace Trakx.Canton.ApiClient.Contracts.Splice
{
///
/// An event history item may contain a transaction update, a verdict from a mediator, both, or a contract reassignment. If an event pertains to a contract reassignment, there will be no verdict data. If an event pertains to a wholly private transaction, there will only be verdict data. If an event pertains to a transaction that is partially private, it may also bear verdict information for the private portions. When both fields are present, the transaction and verdict have the same `update_id` and `record_time`.
+ /// **Experimental**: for networks where the SVs enable it a traffic summary is present when a verdict is present.
+ /// This support is experimental while the preview phase of CIP-104 is running.
///
[GeneratedCode("OpenAPIComponentsGen", "1.0.0")]
public partial class EventHistoryItem
@@ -29,6 +31,13 @@ public partial class EventHistoryItem
[JsonPropertyName("verdict")]
public EventHistoryVerdict Verdict { get; set; } = null!;
+ ///
+ /// **EXPERIMENTAL**: This property is experimental and subject to change. Data may be incomplete or missing.
+ /// This is our current best guess for how the summaries are served, but there remains a chance that the API needs to be adjusted.
+ ///
+ [JsonPropertyName("traffic_summary")]
+ public EventHistoryTrafficSummary TrafficSummary { get; set; } = null!;
+
}
}
\ No newline at end of file
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/EventHistoryTrafficSummary.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/EventHistoryTrafficSummary.cs
new file mode 100644
index 0000000..2c56e8e
--- /dev/null
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/EventHistoryTrafficSummary.cs
@@ -0,0 +1,38 @@
+//
+// Generated from OpenAPI components by generate-components-cs.py
+//
+
+#nullable enable
+
+using System;
+using System.CodeDom.Compiler;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Runtime.Serialization;
+using System.Text.Json.Serialization;
+
+namespace Trakx.Canton.ApiClient.Contracts.Splice
+{
+ ///
+ /// Traffic summary data from the sequencer for the confirmation request corresponding to an event.
+ ///
+ [GeneratedCode("OpenAPIComponentsGen", "1.0.0")]
+ public partial class EventHistoryTrafficSummary
+ {
+ ///
+ /// Total traffic cost of the confirmation request paid by the validator node that submitted it.
+ ///
+ [JsonPropertyName("total_traffic_cost")]
+ [Required]
+ public long TotalTrafficCost { get; set; }
+
+ ///
+ /// Summary of traffic-related data for all envelopes in the confirmation request.
+ ///
+ [JsonPropertyName("envelope_traffic_summaries")]
+ [Required]
+ public System.Collections.Generic.IList EnvelopeTrafficSummaries { get; set; } = new List();
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/FeatureSupportResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/FeatureSupportResponse.cs
index 4e46f14..6b92faa 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/FeatureSupportResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/FeatureSupportResponse.cs
@@ -20,9 +20,8 @@ public partial class FeatureSupportResponse
{
///
///
- [JsonPropertyName("no_holding_fees_on_transfers")]
- [Required]
- public bool NoHoldingFeesOnTransfers { get; set; }
+ [JsonPropertyName("dummy")]
+ public bool? Dummy { get; set; }
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/WalletFeatureSupportResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/WalletFeatureSupportResponse.cs
index ae9e6bc..7029ec2 100644
--- a/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/WalletFeatureSupportResponse.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Splice/WalletFeatureSupportResponse.cs
@@ -30,12 +30,6 @@ public partial class WalletFeatureSupportResponse
[Required]
public bool TransferPreapprovalDescription { get; set; }
- ///
- ///
- [JsonPropertyName("no_holding_fees_on_transfers")]
- [Required]
- public bool NoHoldingFeesOnTransfers { get; set; }
-
}
}
\ No newline at end of file
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Utilities/TransferMeta.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Utilities/TransferMeta.cs
new file mode 100644
index 0000000..2f16dfb
--- /dev/null
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Utilities/TransferMeta.cs
@@ -0,0 +1,31 @@
+//
+// Generated from OpenAPI components by generate-components-cs.py
+//
+
+#nullable enable
+
+using System;
+using System.CodeDom.Compiler;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Runtime.Serialization;
+using System.Text.Json.Serialization;
+
+namespace Trakx.Canton.ApiClient.Contracts.Utilities
+{
+ ///
+ /// Additional metadata associated with the transfer.
+ ///
+ [GeneratedCode("OpenAPIComponentsGen", "1.0.0")]
+ public partial class TransferMeta
+ {
+ ///
+ /// Arbitrary key-value metadata attached to the transfer.
+ ///
+ [JsonPropertyName("values")]
+ [Required]
+ public System.Collections.Generic.IDictionary Values { get; set; } = null!;
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Utilities/TransferObject.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Utilities/TransferObject.cs
new file mode 100644
index 0000000..b3cdf52
--- /dev/null
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Utilities/TransferObject.cs
@@ -0,0 +1,78 @@
+//
+// Generated from OpenAPI components by generate-components-cs.py
+//
+
+#nullable enable
+
+using System;
+using System.CodeDom.Compiler;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Runtime.Serialization;
+using System.Text.Json.Serialization;
+
+namespace Trakx.Canton.ApiClient.Contracts.Utilities
+{
+ ///
+ /// The transfer payload containing transaction details known only to the sender and receiver.
+ ///
+ [GeneratedCode("OpenAPIComponentsGen", "1.0.0")]
+ public partial class TransferObject
+ {
+ ///
+ /// The party ID of the transfer sender.
+ ///
+ [JsonPropertyName("sender")]
+ [Required]
+ public string Sender { get; set; } = null!;
+
+ ///
+ /// The party ID of the transfer receiver.
+ ///
+ [JsonPropertyName("receiver")]
+ [Required]
+ public string Receiver { get; set; } = null!;
+
+ ///
+ /// The transfer amount as a decimal string.
+ ///
+ [JsonPropertyName("amount")]
+ [Required]
+ public string Amount { get; set; } = null!;
+
+ ///
+ ///
+ [JsonPropertyName("instrumentId")]
+ [Required]
+ public InstrumentId InstrumentId { get; set; } = null!;
+
+ ///
+ /// The timestamp when the transfer was requested.
+ ///
+ [JsonPropertyName("requestedAt")]
+ [Required]
+ public DateTimeOffset RequestedAt { get; set; }
+
+ ///
+ /// The deadline by which the transfer must be executed.
+ ///
+ [JsonPropertyName("executeBefore")]
+ [Required]
+ public DateTimeOffset ExecuteBefore { get; set; }
+
+ ///
+ /// Contract IDs of the holdings used as inputs for the transfer.
+ ///
+ [JsonPropertyName("inputHoldingCids")]
+ [Required]
+ public System.Collections.Generic.IList InputHoldingCids { get; set; } = new List();
+
+ ///
+ ///
+ [JsonPropertyName("meta")]
+ [Required]
+ public TransferMeta Meta { get; set; } = null!;
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Utilities/TransferProofStatus.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Utilities/TransferProofStatus.cs
new file mode 100644
index 0000000..3b089ad
--- /dev/null
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Utilities/TransferProofStatus.cs
@@ -0,0 +1,42 @@
+//
+// Generated from OpenAPI components by generate-components-cs.py
+//
+
+#nullable enable
+
+using System;
+using System.CodeDom.Compiler;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Runtime.Serialization;
+using System.Text.Json.Serialization;
+
+namespace Trakx.Canton.ApiClient.Contracts.Utilities
+{
+ ///
+ /// The status of the transfer proof verification:
+ ///
+ /// - `Success`: The proof is verified and the transfer was successfully concluded
+ /// - `Failure`: The proof is verified, but the transfer did not successfully conclude.
+ /// - `Pending`: The transaction is still in progress (e.g., a transfer offer has been sent but not yet accepted in a two-step flow).
+ ///
+ ///
+ [GeneratedCode("OpenAPIComponentsGen", "1.0.0")]
+ [JsonConverter(typeof(JsonStringEnumConverter))]
+ public enum TransferProofStatus
+ {
+ ///
+ ///
+ [EnumMember(Value = "Success")]
+ Success = 0,
+ ///
+ ///
+ [EnumMember(Value = "Failure")]
+ Failure = 1,
+ ///
+ ///
+ [EnumMember(Value = "Pending")]
+ Pending = 2,
+ }
+
+}
\ No newline at end of file
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Utilities/VerifyTransferProofRequest.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Utilities/VerifyTransferProofRequest.cs
new file mode 100644
index 0000000..f8534a9
--- /dev/null
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Utilities/VerifyTransferProofRequest.cs
@@ -0,0 +1,37 @@
+//
+// Generated from OpenAPI components by generate-components-cs.py
+//
+
+#nullable enable
+
+using System;
+using System.CodeDom.Compiler;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Runtime.Serialization;
+using System.Text.Json.Serialization;
+
+namespace Trakx.Canton.ApiClient.Contracts.Utilities
+{
+ ///
+ /// Request to verify the outcome of a transfer of Registry Utility assets on Canton.
+ ///
+ [GeneratedCode("OpenAPIComponentsGen", "1.0.0")]
+ public partial class VerifyTransferProofRequest
+ {
+ ///
+ /// For the two-step transfer workflow, specifies the most recent UpdateId. If the transfer has completed its second step (accept, reject, or withdraw), use the UpdateId associated with that action. Otherwise, use the UpdateId from the initial transfer offer.
+ ///
+ [JsonPropertyName("updateId")]
+ [Required]
+ public string UpdateId { get; set; } = null!;
+
+ ///
+ ///
+ [JsonPropertyName("transfer")]
+ [Required]
+ public TransferObject Transfer { get; set; } = null!;
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/Trakx.Canton.ApiClient/Generated/Contracts/Utilities/VerifyTransferProofResponse.cs b/src/Trakx.Canton.ApiClient/Generated/Contracts/Utilities/VerifyTransferProofResponse.cs
new file mode 100644
index 0000000..8fa6127
--- /dev/null
+++ b/src/Trakx.Canton.ApiClient/Generated/Contracts/Utilities/VerifyTransferProofResponse.cs
@@ -0,0 +1,30 @@
+//
+// Generated from OpenAPI components by generate-components-cs.py
+//
+
+#nullable enable
+
+using System;
+using System.CodeDom.Compiler;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Runtime.Serialization;
+using System.Text.Json.Serialization;
+
+namespace Trakx.Canton.ApiClient.Contracts.Utilities
+{
+ ///
+ /// The outcome of verifying a transfer proof.
+ ///
+ [GeneratedCode("OpenAPIComponentsGen", "1.0.0")]
+ public partial class VerifyTransferProofResponse
+ {
+ ///
+ ///
+ [JsonPropertyName("status")]
+ [Required]
+ public TransferProofStatus Status { get; set; }
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/Trakx.Canton.ApiClient/Generated/IScanStreamServerClient.cs b/src/Trakx.Canton.ApiClient/Generated/IScanStreamServerClient.cs
new file mode 100644
index 0000000..af1ad54
--- /dev/null
+++ b/src/Trakx.Canton.ApiClient/Generated/IScanStreamServerClient.cs
@@ -0,0 +1,50 @@
+//
+// This code was generated by Refitter.
+//
+
+
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+using System.Threading;
+using System.Threading.Tasks;
+using Refit;
+using Trakx.Canton.ApiClient.Contracts.Splice;
+using Version = Trakx.Canton.ApiClient.Contracts.Splice.Version;
+
+#nullable enable annotations
+
+namespace Trakx.Canton.ApiClient
+{
+ /// Scan Streaming API
+ [System.CodeDom.Compiler.GeneratedCode("Refitter", "1.6.4.0")]
+ [ApiRouteSuffix("/scan")]
+ public partial interface IScanStreamServerClient : ICantonApiClientBase
+ {
+ /// Download a bulk storage object
+ ///
+ ///
+ ///
+ /// A representing the instance containing the result:
+ ///
+ ///
+ /// Status
+ /// Description
+ ///
+ /// -
+ /// 200
+ /// ok
+ ///
+ /// -
+ /// 404
+ /// not found
+ ///
+ ///
+ ///
+ [Headers("Accept: application/octet-stream")]
+ [Get("/v0/history/bulk/download/{object_key}")]
+ Task> BulkStorageDownload(string object_key, CancellationToken cancellationToken = default);
+
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/Trakx.Canton.ApiClient/Generated/IUtilitiesClient.cs b/src/Trakx.Canton.ApiClient/Generated/IUtilitiesClient.cs
index 90251b4..77aad2a 100644
--- a/src/Trakx.Canton.ApiClient/Generated/IUtilitiesClient.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/IUtilitiesClient.cs
@@ -480,6 +480,49 @@ public partial interface IUtilitiesClient : ICantonApiClientBase
[Post("/api/utilities/v0/registry/burn-mint-instruction/v0/burn-mint-factory")]
Task> GetBurnMintFactory([Body] GetBurnMintFactoryRequest body, CancellationToken cancellationToken = default);
+ ///
+ /// Verify the outcome of a transfer of Registry Utility assets on Canton.
+ ///
+ /// Given an UpdateID and a Transfer Object, the service looks up the corresponding
+ /// ledger transaction and verifies the transfer details against the on-chain events.
+ ///
+ /// The response status indicates the transfer outcome:
+ /// - `Success`: The transfer was executed in the referenced transaction
+ /// - `Pending`: The transfer instruction has been created but not yet settled
+ /// - `Failure`: The transfer instruction was rejected or withdrawn by one of the parties
+ ///
+ /// If none of the above conditions are met, if the provided transfer details do not match
+ /// the on-chain data, or if the original TransferInstruction contract cannot be retrieved,
+ /// a `400` is returned. No further diagnostic information is included in
+ /// the error response to prevent unintended disclosure of sensitive ledger data.
+ ///
+ ///
+ ///
+ ///
+ /// A representing the instance containing the result:
+ ///
+ ///
+ /// Status
+ /// Description
+ ///
+ /// -
+ /// 200
+ /// Transfer proof verified. The `status` field indicates the transfer outcome\n(`Success`, `Pending`, or `Failure`). See the endpoint description for details.\n
+ ///
+ /// -
+ /// 400
+ /// bad request
+ ///
+ /// -
+ /// 500
+ /// Internal server error
+ ///
+ ///
+ ///
+ [Headers("Accept: application/json", "Content-Type: application/json")]
+ [Post("/api/utilities/v0/registry/transfer/v0/proof")]
+ Task> VerifyTransferProof([Body] VerifyTransferProofRequest body, CancellationToken cancellationToken = default);
+
}
diff --git a/src/Trakx.Canton.ApiClient/Generated/IValidatorInternalClient.cs b/src/Trakx.Canton.ApiClient/Generated/IValidatorInternalClient.cs
index 4955ac9..3f57f77 100644
--- a/src/Trakx.Canton.ApiClient/Generated/IValidatorInternalClient.cs
+++ b/src/Trakx.Canton.ApiClient/Generated/IValidatorInternalClient.cs
@@ -339,7 +339,7 @@ public partial interface IValidatorInternalClient : ICantonApiClientBase
Task> ListTransferPreapprovals(CancellationToken cancellationToken = default);
///
- /// Prepare a transaction to create a TransferCommand with the given CC amount to the specified receiver
+ /// **Deprecated**. Prepare a transaction to create a TransferCommand with the given CC amount to the specified receiver
/// from the externally hosted sender.
/// The transaction then needs to be signed and submitted through
/// /v0/admin/external-party/transfer-preapproval/submit-send.
@@ -371,12 +371,13 @@ public partial interface IValidatorInternalClient : ICantonApiClientBase
///
///
///
+ [System.Obsolete]
[Headers("Accept: application/json", "Content-Type: application/json")]
[Post("/v0/admin/external-party/transfer-preapproval/prepare-send")]
Task> PrepareTransferPreapprovalSend([Body] PrepareTransferPreapprovalSendRequest body, CancellationToken cancellationToken = default);
///
- /// Submit transaction generated by /v0/admin/transfer-preapproval/prepare-send
+ /// **Deprecated**. Submit transaction generated by /v0/admin/transfer-preapproval/prepare-send
/// together with its signature. Note that this only waits until the TransferCommand is created.
/// The actual transfer will happen afterwards through automation run by the SVs.
///
@@ -407,6 +408,7 @@ public partial interface IValidatorInternalClient : ICantonApiClientBase
///
///
///
+ [System.Obsolete]
[Headers("Accept: application/json", "Content-Type: application/json")]
[Post("/v0/admin/external-party/transfer-preapproval/submit-send")]
Task> SubmitTransferPreapprovalSend([Body] SubmitTransferPreapprovalSendRequest body, CancellationToken cancellationToken = default);
diff --git a/src/Trakx.Canton.ApiClient/OpenApiSpecs/common-internal.yaml b/src/Trakx.Canton.ApiClient/OpenApiSpecs/common-internal.yaml
index 41f2f6a..cd40510 100644
--- a/src/Trakx.Canton.ApiClient/OpenApiSpecs/common-internal.yaml
+++ b/src/Trakx.Canton.ApiClient/OpenApiSpecs/common-internal.yaml
@@ -342,10 +342,9 @@ components:
If absent or `null`, there are no more pages.
FeatureSupportResponse:
type: object
- required:
- - no_holding_fees_on_transfers
+ required: []
properties:
- no_holding_fees_on_transfers:
+ dummy:
type: boolean
Contract:
type: object
diff --git a/src/Trakx.Canton.ApiClient/OpenApiSpecs/ledger-async.yaml b/src/Trakx.Canton.ApiClient/OpenApiSpecs/ledger-async.yaml
index 66547fe..176678d 100644
--- a/src/Trakx.Canton.ApiClient/OpenApiSpecs/ledger-async.yaml
+++ b/src/Trakx.Canton.ApiClient/OpenApiSpecs/ledger-async.yaml
@@ -1,7 +1,12 @@
asyncapi: 2.6.0
info:
title: JSON Ledger API WebSocket endpoints
- version: 3.4.11-SNAPSHOT
+ 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
@@ -134,22 +139,25 @@ components:
title: CompletionStreamRequest
type: object
required:
- - userId
- - beginExclusive
+ - 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
+
+ Required: must be non-empty
type: array
items:
type: string
@@ -159,6 +167,8 @@ components:
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:
@@ -174,8 +184,6 @@ components:
CompletionStreamResponse:
title: CompletionStreamResponse
type: object
- required:
- - completionResponse
properties:
completionResponse:
$ref: '#/components/schemas/CompletionResponse'
@@ -217,16 +225,16 @@ components:
type: object
required:
- commandId
- - updateId
- userId
- - submissionId
- - deduplicationPeriod
- 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:
@@ -234,18 +242,22 @@ components:
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``).
- Optional for historic completions where this data is not available.
+
+ Required
type: string
actAs:
description: |-
@@ -254,7 +266,8 @@ components:
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.
+
+ Required: must be non-empty
type: array
items:
type: string
@@ -262,6 +275,7 @@ components:
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:
@@ -269,7 +283,7 @@ components:
traceContext:
$ref: '#/components/schemas/TraceContext'
description: |-
- Optional; ledger API trace context
+ 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.
@@ -278,10 +292,14 @@ components:
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.
- Required, must be a valid absolute offset (positive integer).
+ Must be a valid absolute offset (positive integer).
+
+ Required
type: integer
format: int64
synchronizerTime:
@@ -295,6 +313,34 @@ components:
- 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
@@ -426,25 +472,30 @@ components:
type: object
properties:
traceparent:
- description: https://www.w3.org/TR/trace-context/
+ description: |-
+ https://www.w3.org/TR/trace-context/
+ Optional
type: string
tracestate:
- description: ''
+ 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:
@@ -477,11 +528,16 @@ components:
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).
+ Must be a valid absolute offset (positive integer).
+
+ Required
type: integer
format: int64
synchronizerTimes:
- description: ''
+ description: |-
+ The times associated with each synchronizer at this offset.
+
+ Optional: can be empty
type: array
items:
$ref: '#/components/schemas/SynchronizerTime'
@@ -494,8 +550,8 @@ components:
migration is not concerned with incomplete (un)assignments.
type: object
required:
- - verbose
- activeAtOffset
+ - eventFormat
properties:
filter:
$ref: '#/components/schemas/TransactionFilter'
@@ -515,8 +571,10 @@ components:
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).
+ 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:
@@ -524,19 +582,14 @@ components:
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
+ 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
- required:
- - filtersByParty
properties:
filtersByParty:
$ref: '#/components/schemas/Map_Filters'
@@ -576,8 +629,10 @@ components:
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
+ 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'
@@ -587,8 +642,6 @@ components:
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'
@@ -636,8 +689,7 @@ components:
description: This filter matches contracts that implement a specific interface.
type: object
required:
- - includeInterfaceView
- - includeCreatedEventBlob
+ - interfaceId
properties:
interfaceId:
description: |-
@@ -653,6 +705,7 @@ components:
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:
@@ -660,6 +713,7 @@ components:
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:
@@ -676,7 +730,7 @@ components:
description: This filter matches contracts of a specific template.
type: object
required:
- - includeCreatedEventBlob
+ - templateId
properties:
templateId:
description: |-
@@ -693,6 +747,7 @@ components:
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:
@@ -708,14 +763,13 @@ components:
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
EventFormat:
@@ -727,9 +781,6 @@ components:
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'
@@ -742,17 +793,19 @@ components:
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
+ 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:
@@ -763,15 +816,13 @@ components:
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:
@@ -814,15 +865,17 @@ components:
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.
+
+ Required
synchronizerId:
description: |-
A valid synchronizer id
+
Required
type: string
reassignmentCounter:
@@ -832,6 +885,7 @@ components:
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
@@ -845,18 +899,22 @@ components:
- nodeId
- contractId
- templateId
- - createdEventBlob
- 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.
- Required, it is a valid absolute offset (positive integer)
+ It is a valid absolute offset (positive integer)
+
+ Required
type: integer
format: int64
nodeId:
@@ -865,13 +923,16 @@ components:
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)
+ 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:
@@ -885,14 +946,20 @@ components:
description: |-
The key of the created contract.
This will be set if and only if ``template_id`` defines a contract key.
+
Optional
- createArgument: {}
+ 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
+
+ Optional: can be empty
type: string
interfaceViews:
description: |-
@@ -903,7 +970,7 @@ components:
- and which is implemented by the template of this event,
- and which has ``include_interface_view`` set.
- Optional
+ Optional: can be empty
type: array
items:
$ref: '#/components/schemas/JsInterfaceView'
@@ -935,14 +1002,16 @@ components:
``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
+
+ Required: must be non-empty
type: array
items:
type: string
signatories:
description: |-
The signatories for this contract as specified by the template.
- Required
+
+ Required: must be non-empty
type: array
items:
type: string
@@ -950,18 +1019,21 @@ components:
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
+
+ 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:
@@ -978,6 +1050,7 @@ components:
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:
@@ -1001,12 +1074,14 @@ components:
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
@@ -1029,7 +1104,6 @@ components:
- source
- target
- reassignmentId
- - submitter
- reassignmentCounter
- createdEvent
properties:
@@ -1037,12 +1111,14 @@ components:
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:
@@ -1050,6 +1126,7 @@ components:
The ID from the unassigned event.
For correlation capabilities.
Must be a valid LedgerString (as described in ``value.proto``).
+
Required
type: string
submitter:
@@ -1057,6 +1134,7 @@ components:
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:
@@ -1064,15 +1142,17 @@ components:
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.
+
+ Required
JsIncompleteUnassigned:
title: JsIncompleteUnassigned
type: object
@@ -1083,13 +1163,14 @@ components:
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.
+
+ Required
unassignedEvent:
$ref: '#/components/schemas/UnassignedEvent'
description: Required
@@ -1103,22 +1184,25 @@ components:
- contractId
- source
- target
- - submitter
- 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:
@@ -1132,12 +1216,14 @@ components:
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:
@@ -1145,6 +1231,7 @@ components:
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:
@@ -1152,6 +1239,7 @@ components:
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
@@ -1160,18 +1248,21 @@ components:
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
+
+ Required: must be non-empty
type: array
items:
type: string
packageName:
description: |-
The package name of the contract.
+
Required
type: string
offset:
@@ -1179,7 +1270,9 @@ components:
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)
+ Must be a valid absolute offset (positive integer)
+
+ Required
type: integer
format: int64
nodeId:
@@ -1187,31 +1280,36 @@ components:
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)
+ Must be valid node ID (non-negative integer)
+
+ Required
type: integer
format: int32
GetUpdatesRequest:
title: GetUpdatesRequest
type: object
required:
- - beginExclusive
- - verbose
+ - 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 zero, the stream will start from the beginning of the ledger.
+ 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.
- Optional, if empty, the stream will not terminate.
+ 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:
@@ -1232,16 +1330,9 @@ components:
updateFormat:
$ref: '#/components/schemas/UpdateFormat'
description: |-
- Must be unset for GetUpdateTrees request.
- Optional for backwards compatibility for GetUpdates request: defaults to an UpdateFormat where:
+ The update format for this request
- - 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
+ Required
UpdateFormat:
title: UpdateFormat
description: A format specifying what updates to include and how to render them.
@@ -1251,18 +1342,24 @@ components:
$ref: '#/components/schemas/TransactionFormat'
description: |-
Include Daml transactions in streams.
- Optional, if unset, no transactions are emitted in the stream.
+ 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.
- Optional, if unset, no (un)assignments are emitted in the stream.
+ If unset, no (un)assignments are emitted in the stream.
+
+ Optional
includeTopologyEvents:
$ref: '#/components/schemas/TopologyFormat'
description: |-
Include topology events in streams.
- Optional, if unset no topology events are emitted in the stream.
+ If unset no topology events are emitted in the stream.
+
+ Optional
TransactionFormat:
title: TransactionFormat
description: |-
@@ -1271,6 +1368,7 @@ components:
type: object
required:
- transactionShape
+ - eventFormat
properties:
eventFormat:
$ref: '#/components/schemas/EventFormat'
@@ -1278,6 +1376,7 @@ components:
transactionShape:
description: |-
What transaction shape to use for interpreting the filters of the event format.
+
Required
type: string
enum:
@@ -1294,7 +1393,9 @@ components:
$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.
+ 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
@@ -1305,6 +1406,8 @@ components:
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
@@ -1316,8 +1419,6 @@ components:
JsGetUpdatesResponse:
title: JsGetUpdatesResponse
type: object
- required:
- - update
properties:
update:
$ref: '#/components/schemas/Update'
@@ -1376,45 +1477,52 @@ components:
type: object
required:
- updateId
- - commandId
- - workflowId
- 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``.
- Required, must be a valid absolute offset (positive integer).
+ Must be a valid absolute offset (positive integer).
+
+ Required
type: integer
format: int64
events:
- description: The collection of reassignment events. Required.
+ description: |-
+ The collection of reassignment events.
+
+ Required: must be non-empty
type: array
items:
$ref: '#/components/schemas/JsReassignmentEvent'
traceContext:
$ref: '#/components/schemas/TraceContext'
description: |-
- Optional; ledger API trace context
+ 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.
@@ -1423,18 +1531,35 @@ components:
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:
@@ -1499,23 +1624,29 @@ components:
- 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``.
- Required, it is a valid absolute offset (positive integer).
+ 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:
@@ -1523,19 +1654,21 @@ components:
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
+
+ Required: must be non-empty
type: array
items:
$ref: '#/components/schemas/TopologyEvent'
traceContext:
$ref: '#/components/schemas/TraceContext'
description: |-
- Optional; ledger API trace context
+ 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.
@@ -1544,11 +1677,11 @@ components:
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
- required:
- - event
properties:
event:
$ref: '#/components/schemas/TopologyEventEvent'
@@ -1680,34 +1813,37 @@ components:
type: object
required:
- updateId
- - commandId
- - workflowId
- 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:
@@ -1718,26 +1854,29 @@ components:
- ``CreatedEvent`` or ``ArchivedEvent`` in case of ACS_DELTA transaction shape
- ``CreatedEvent`` or ``ExercisedEvent`` in case of LEDGER_EFFECTS transaction shape
- Required
+ 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``.
- Required, it is a valid absolute offset (positive integer).
+ 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: |-
- Optional; ledger API trace context
+ 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.
@@ -1746,18 +1885,36 @@ components:
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
+
+ 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: |-
@@ -1801,13 +1958,16 @@ components:
- 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.
- Required, it is a valid absolute offset (positive integer)
+ It is a valid absolute offset (positive integer)
+
+ Required
type: integer
format: int64
nodeId:
@@ -1815,7 +1975,9 @@ components:
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)
+ Must be valid node ID (non-negative integer)
+
+ Required
type: integer
format: int32
contractId:
@@ -1843,13 +2005,15 @@ components:
the contract.
Each one of its elements must be a valid PartyIdString (as described
in ``value.proto``).
- Required
+
+ Required: must be non-empty
type: array
items:
type: string
packageName:
description: |-
The package name of the contract.
+
Required
type: string
implementedInterfaces:
@@ -1860,7 +2024,7 @@ components:
If defined, the identifier uses the package-id reference format.
- Optional
+ Optional: can be empty
type: array
items:
type: string
@@ -1877,16 +2041,19 @@ components:
- choiceArgument
- consuming
- lastDescendantNodeId
- - exerciseResult
- 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.
- Required, it is a valid absolute offset (positive integer)
+ It is a valid absolute offset (positive integer)
+
+ Required
type: integer
format: int64
nodeId:
@@ -1894,7 +2061,9 @@ components:
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)
+ Must be valid node ID (non-negative integer)
+
+ Required
type: integer
format: int32
contractId:
@@ -1924,23 +2093,27 @@ components:
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
+
+ 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:
@@ -1961,7 +2134,8 @@ components:
``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
+
+ Required: must be non-empty
type: array
items:
type: string
@@ -1971,16 +2145,19 @@ components:
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
+
+ Optional
packageName:
description: |-
The package name of the contract.
+
Required
type: string
implementedInterfaces:
@@ -1991,7 +2168,7 @@ components:
The identifier uses the package-id reference format.
- Optional
+ Optional: can be empty
type: array
items:
type: string
@@ -1999,6 +2176,7 @@ components:
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:
@@ -2011,8 +2189,6 @@ components:
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'
@@ -2078,8 +2254,7 @@ components:
type: object
required:
- updateId
- - commandId
- - workflowId
+ - effectiveAt
- offset
- eventsById
- synchronizerId
diff --git a/src/Trakx.Canton.ApiClient/OpenApiSpecs/ledger.yaml b/src/Trakx.Canton.ApiClient/OpenApiSpecs/ledger.yaml
index 05c16cf..d9d8585 100644
--- a/src/Trakx.Canton.ApiClient/OpenApiSpecs/ledger.yaml
+++ b/src/Trakx.Canton.ApiClient/OpenApiSpecs/ledger.yaml
@@ -1,7 +1,12 @@
openapi: 3.0.3
info:
title: JSON Ledger API HTTP endpoints
- version: 3.4.11-SNAPSHOT
+ 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
paths:
/v2/commands/submit-and-wait:
post:
@@ -2193,12 +2198,13 @@ components:
type: object
required:
- synchronizer
- - identityProviderId
+ - onboardingTransactions
properties:
synchronizer:
description: |-
TODO(#27670) support synchronizer aliases
Synchronizer ID on which to onboard the party
+
Required
type: string
onboardingTransactions:
@@ -2213,7 +2219,8 @@ components:
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
+
+ Required: must be non-empty
type: array
items:
$ref: '#/components/schemas/SignedTransaction'
@@ -2221,6 +2228,8 @@ components:
description: |-
Optional signatures of the combined hash of all onboarding_transactions
This may be used instead of providing signatures on each individual transaction
+
+ Optional: can be empty
type: array
items:
$ref: '#/components/schemas/Signature'
@@ -2228,6 +2237,7 @@ components:
description: |-
The id of the ``Identity Provider``
If not set, assume the party is managed by the default identity provider.
+
Optional
type: string
AllocateExternalPartyResponse:
@@ -2237,23 +2247,22 @@ components:
- partyId
properties:
partyId:
- description: ''
+ description: |-
+ The allocated party id
+
+ Required
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:
@@ -2261,32 +2270,42 @@ components:
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.
+ If not set, assume the party is managed by the default identity provider or party is not hosted by the participant.
+
+ Optional
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
+ required:
+ - partyDetails
properties:
partyDetails:
$ref: '#/components/schemas/PartyDetails'
- description: ''
+ description: |-
+ The allocated party details
+
+ Required
ArchivedEvent:
title: ArchivedEvent
description: Records that a contract has been archived, and choices may no longer
@@ -2298,13 +2317,16 @@ components:
- 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.
- Required, it is a valid absolute offset (positive integer)
+ It is a valid absolute offset (positive integer)
+
+ Required
type: integer
format: int64
nodeId:
@@ -2312,7 +2334,9 @@ components:
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)
+ Must be valid node ID (non-negative integer)
+
+ Required
type: integer
format: int32
contractId:
@@ -2340,13 +2364,15 @@ components:
the contract.
Each one of its elements must be a valid PartyIdString (as described
in ``value.proto``).
- Required
+
+ Required: must be non-empty
type: array
items:
type: string
packageName:
description: |-
The package name of the contract.
+
Required
type: string
implementedInterfaces:
@@ -2357,7 +2383,7 @@ components:
If defined, the identifier uses the package-id reference format.
- Optional
+ Optional: can be empty
type: array
items:
type: string
@@ -2383,18 +2409,21 @@ components:
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:
@@ -2536,16 +2565,16 @@ components:
type: object
required:
- commandId
- - updateId
- userId
- - submissionId
- - deduplicationPeriod
- 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:
@@ -2553,18 +2582,22 @@ components:
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``).
- Optional for historic completions where this data is not available.
+
+ Required
type: string
actAs:
description: |-
@@ -2573,7 +2606,8 @@ components:
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.
+
+ Required: must be non-empty
type: array
items:
type: string
@@ -2581,6 +2615,7 @@ components:
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:
@@ -2588,7 +2623,7 @@ components:
traceContext:
$ref: '#/components/schemas/TraceContext'
description: |-
- Optional; ledger API trace context
+ 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.
@@ -2597,10 +2632,14 @@ components:
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.
- Required, must be a valid absolute offset (positive integer).
+ Must be a valid absolute offset (positive integer).
+
+ Required
type: integer
format: int64
synchronizerTime:
@@ -2614,8 +2653,37 @@ components:
- 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
CompletionResponse:
title: CompletionResponse
+ description: Required
oneOf:
- type: object
required:
@@ -2639,22 +2707,25 @@ components:
title: CompletionStreamRequest
type: object
required:
- - userId
- - beginExclusive
+ - 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
+
+ Required: must be non-empty
type: array
items:
type: string
@@ -2664,13 +2735,13 @@ components:
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
CompletionStreamResponse:
title: CompletionStreamResponse
type: object
- required:
- - completionResponse
properties:
completionResponse:
$ref: '#/components/schemas/CompletionResponse'
@@ -2705,13 +2776,19 @@ components:
- confirmationRequestTrafficCostEstimation
- confirmationResponseTrafficCostEstimation
- totalTrafficCostEstimation
+ - estimationTimestamp
properties:
estimationTimestamp:
- description: Timestamp at which the estimation was made
+ description: |-
+ Timestamp at which the estimation was made
+
+ Required
type: string
confirmationRequestTrafficCostEstimation:
- description: Estimated traffic cost of the confirmation request associated
- with the transaction
+ description: |-
+ Estimated traffic cost of the confirmation request associated with the transaction
+
+ Required
type: integer
format: int64
confirmationResponseTrafficCostEstimation:
@@ -2719,23 +2796,28 @@ components:
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
+
+ Required
type: integer
format: int64
totalTrafficCostEstimation:
- description: Sum of the fields above
+ description: |-
+ Sum of the fields above
+
+ Required
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
+
+ Optional
type: boolean
expectedSignatures:
description: |-
@@ -2743,7 +2825,9 @@ components:
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)
+ Empty list is equivalent to not providing this field
+
+ Optional: can be empty
type: array
items:
type: string
@@ -2773,16 +2857,19 @@ components:
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
@@ -2803,10 +2890,13 @@ components:
createArguments:
description: |-
The arguments required for creating a contract from this template.
+
Required
CreateIdentityProviderConfigRequest:
title: CreateIdentityProviderConfigRequest
type: object
+ required:
+ - identityProviderConfig
properties:
identityProviderConfig:
$ref: '#/components/schemas/IdentityProviderConfig'
@@ -2814,10 +2904,12 @@ components:
CreateIdentityProviderConfigResponse:
title: CreateIdentityProviderConfigResponse
type: object
+ required:
+ - identityProviderConfig
properties:
identityProviderConfig:
$ref: '#/components/schemas/IdentityProviderConfig'
- description: ''
+ description: Required
CreateUserRequest:
title: CreateUserRequest
description: |2-
@@ -2825,27 +2917,36 @@ components:
///////////////////////////
Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(user.identity_provider_id)``
type: object
+ required:
+ - user
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
+
+ Optional: can be empty
type: array
items:
$ref: '#/components/schemas/Right'
CreateUserResponse:
title: CreateUserResponse
type: object
+ required:
+ - user
properties:
user:
$ref: '#/components/schemas/User'
- description: Created user.
+ description: |-
+ Created user.
+
+ Required
CreatedEvent:
title: CreatedEvent
description: Records that a contract has been created, and choices may now be
@@ -2856,18 +2957,22 @@ components:
- nodeId
- contractId
- templateId
- - createdEventBlob
- 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.
- Required, it is a valid absolute offset (positive integer)
+ It is a valid absolute offset (positive integer)
+
+ Required
type: integer
format: int64
nodeId:
@@ -2876,13 +2981,16 @@ components:
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)
+ 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:
@@ -2896,14 +3004,20 @@ components:
description: |-
The key of the created contract.
This will be set if and only if ``template_id`` defines a contract key.
+
Optional
- createArgument: {}
+ 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
+
+ Optional: can be empty
type: string
interfaceViews:
description: |-
@@ -2914,7 +3028,7 @@ components:
- and which is implemented by the template of this event,
- and which has ``include_interface_view`` set.
- Optional
+ Optional: can be empty
type: array
items:
$ref: '#/components/schemas/JsInterfaceView'
@@ -2946,14 +3060,16 @@ components:
``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
+
+ Required: must be non-empty
type: array
items:
type: string
signatories:
description: |-
The signatories for this contract as specified by the template.
- Required
+
+ Required: must be non-empty
type: array
items:
type: string
@@ -2961,18 +3077,21 @@ components:
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
+
+ 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:
@@ -2989,6 +3108,7 @@ components:
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:
@@ -3005,8 +3125,6 @@ components:
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'
@@ -3066,6 +3184,8 @@ components:
description: |-
Specifies the deduplication period for the change ID.
If omitted, the participant will assume the configured maximum deduplication time.
+
+ Optional
oneOf:
- type: object
required:
@@ -3094,7 +3214,9 @@ components:
Used to audit the deduplication guarantee described in ``commands.proto``.
- Optional; the deduplication guarantee applies even if the completion omits this field.
+ The deduplication guarantee applies even if the completion omits this field.
+
+ Optional
oneOf:
- type: object
required:
@@ -3146,9 +3268,7 @@ components:
contract & contract key lookups.
type: object
required:
- - contractId
- createdEventBlob
- - synchronizerId
properties:
templateId:
description: |-
@@ -3156,6 +3276,7 @@ components:
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:
@@ -3163,17 +3284,20 @@ components:
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
+
+ Required: must be non-empty
type: string
synchronizerId:
description: |-
The ID of the synchronizer where the contract is currently assigned
+
Optional
type: string
Duration:
@@ -3267,9 +3391,6 @@ components:
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'
@@ -3282,17 +3403,19 @@ components:
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
+ 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
ExecuteSubmissionAndWaitResponse:
@@ -3306,11 +3429,13 @@ components:
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
@@ -3338,16 +3463,19 @@ components:
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
@@ -3372,17 +3500,20 @@ components:
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
@@ -3397,16 +3528,19 @@ components:
- choiceArgument
- consuming
- lastDescendantNodeId
- - exerciseResult
- 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.
- Required, it is a valid absolute offset (positive integer)
+ It is a valid absolute offset (positive integer)
+
+ Required
type: integer
format: int64
nodeId:
@@ -3414,7 +3548,9 @@ components:
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)
+ Must be valid node ID (non-negative integer)
+
+ Required
type: integer
format: int32
contractId:
@@ -3444,23 +3580,27 @@ components:
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
+
+ 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:
@@ -3481,7 +3621,8 @@ components:
``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
+
+ Required: must be non-empty
type: array
items:
type: string
@@ -3491,16 +3632,19 @@ components:
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
+
+ Optional
packageName:
description: |-
The package name of the contract.
+
Required
type: string
implementedInterfaces:
@@ -3511,7 +3655,7 @@ components:
The identifier uses the package-id reference format.
- Optional
+ Optional: can be empty
type: array
items:
type: string
@@ -3519,6 +3663,7 @@ components:
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:
@@ -3537,7 +3682,7 @@ components:
- supported
properties:
supported:
- description: ''
+ description: Required
type: boolean
ExperimentalFeatures:
title: ExperimentalFeatures
@@ -3546,10 +3691,10 @@ components:
properties:
staticTime:
$ref: '#/components/schemas/ExperimentalStaticTime'
- description: ''
+ description: Optional
commandInspectionService:
$ref: '#/components/schemas/ExperimentalCommandInspectionService'
- description: ''
+ description: Optional
ExperimentalStaticTime:
title: ExperimentalStaticTime
description: Ledger is in the static time mode and exposes a time service.
@@ -3558,11 +3703,17 @@ components:
- supported
properties:
supported:
- description: ''
+ description: Required
type: boolean
FeaturesDescriptor:
title: FeaturesDescriptor
type: object
+ required:
+ - experimental
+ - userManagement
+ - partyManagement
+ - offsetCheckpoint
+ - packageFeature
properties:
experimental:
$ref: '#/components/schemas/ExperimentalFeatures'
@@ -3571,28 +3722,38 @@ components:
for ledger implementation testing purposes only.
Daml applications SHOULD not depend on these in production.
+
+ Required
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.
+
+ Required
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.
+
+ Required
offsetCheckpoint:
$ref: '#/components/schemas/OffsetCheckpointFeature'
- description: It contains the timeouts related to the periodic offset checkpoint
- emission
+ description: |-
+ It contains the timeouts related to the periodic offset checkpoint emission
+
+ Required
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.
+
+ Required
Field:
title: Field
type: object
@@ -3642,8 +3803,10 @@ components:
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
+ 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'
@@ -3653,38 +3816,53 @@ components:
required:
- synchronizer
- partyHint
- - localParticipantObservationOnly
- - confirmationThreshold
+ - publicKey
properties:
synchronizer:
description: |-
+ Synchronizer-id for which we are building this request.
TODO(#27670) support synchronizer aliases
- Required: synchronizer-id for which we are building this request.
+
+ Required
type: string
partyHint:
- description: 'Required: the actual party id will be constructed from this
- hint and a fingerprint of the public key'
+ description: |-
+ The actual party id will be constructed from this hint and a fingerprint of the public key
+
+ Required
type: string
publicKey:
$ref: '#/components/schemas/SigningPublicKey'
- description: 'Required: public key'
+ description: |-
+ Public key
+
+ Required
localParticipantObservationOnly:
- description: 'Optional: if true, then the local participant will only be
- observing, not confirming. Default false.'
+ description: |-
+ If true, then the local participant will only be observing, not confirming. Default false.
+
+ Optional
type: boolean
otherConfirmingParticipantUids:
- description: 'Optional: other participant ids which should be confirming
- for this party'
+ description: |-
+ Other participant ids which should be confirming for this party
+
+ Optional: can be empty
type: array
items:
type: string
confirmationThreshold:
- description: 'Optional: Confirmation threshold >= 1 for the party. Defaults
- to all available confirmers (or if set to 0).'
+ description: |-
+ Confirmation threshold >= 1 for the party. Defaults to all available confirmers (or if set to 0).
+
+ Optional
type: integer
format: int32
observingParticipantUids:
- description: 'Optional: other observing participant ids for this party'
+ description: |-
+ Other observing participant ids for this party
+
+ Optional: can be empty
type: array
items:
type: string
@@ -3697,12 +3875,19 @@ components:
- partyId
- publicKeyFingerprint
- multiHash
+ - topologyTransactions
properties:
partyId:
- description: the generated party id
+ description: |-
+ The generated party id
+
+ Required
type: string
publicKeyFingerprint:
- description: the fingerprint of the supplied public key
+ description: |-
+ The fingerprint of the supplied public key
+
+ Required
type: string
topologyTransactions:
description: |-
@@ -3710,12 +3895,16 @@ components:
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.
+
+ Required: must be non-empty
type: array
items:
type: string
multiHash:
- description: the multi-hash which may be signed instead of each individual
- transaction
+ description: |-
+ the multi-hash which may be signed instead of each individual transaction
+
+ Required: must be non-empty
type: string
GetActiveContractsRequest:
title: GetActiveContractsRequest
@@ -3726,8 +3915,8 @@ components:
migration is not concerned with incomplete (un)assignments.
type: object
required:
- - verbose
- activeAtOffset
+ - eventFormat
properties:
filter:
$ref: '#/components/schemas/TransactionFilter'
@@ -3747,8 +3936,10 @@ components:
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).
+ 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:
@@ -3756,17 +3947,14 @@ components:
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
+ Required
GetConnectedSynchronizersResponse:
title: GetConnectedSynchronizersResponse
type: object
properties:
connectedSynchronizers:
- description: ''
+ description: 'Optional: can be empty'
type: array
items:
$ref: '#/components/schemas/ConnectedSynchronizer'
@@ -3780,6 +3968,7 @@ components:
description: |-
The ID of the contract.
Must be a valid LedgerString (as described in ``value.proto``).
+
Required
type: string
queryingParties:
@@ -3787,13 +3976,17 @@ components:
The list of querying parties
The stakeholders of the referenced contract must have an intersection with any of these parties
to return the result.
- Optional, if no querying_parties specified, all possible contracts could be returned.
+ If no querying_parties specified, all possible contracts could be returned.
+
+ Optional: can be empty
type: array
items:
type: string
GetContractResponse:
title: GetContractResponse
type: object
+ required:
+ - createdEvent
properties:
createdEvent:
$ref: '#/components/schemas/CreatedEvent'
@@ -3815,30 +4008,32 @@ components:
type: object
required:
- contractId
+ - eventFormat
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
+ required:
+ - identityProviderConfig
properties:
identityProviderConfig:
$ref: '#/components/schemas/IdentityProviderConfig'
- description: ''
+ description: Required
GetLatestPrunedOffsetsResponse:
title: GetLatestPrunedOffsetsResponse
type: object
- required:
- - participantPrunedUpToInclusive
- - allDivulgedContractsPrunedUpToInclusive
properties:
participantPrunedUpToInclusive:
description: |-
@@ -3846,6 +4041,8 @@ components:
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.
+
+ Optional
type: integer
format: int64
allDivulgedContractsPrunedUpToInclusive:
@@ -3856,6 +4053,8 @@ components:
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.
+
+ Optional
type: integer
format: int64
GetLedgerApiVersionResponse:
@@ -3863,9 +4062,13 @@ components:
type: object
required:
- version
+ - features
properties:
version:
- description: The version of the ledger API.
+ description: |-
+ The version of the ledger API.
+
+ Required
type: string
features:
$ref: '#/components/schemas/FeaturesDescriptor'
@@ -3879,17 +4082,19 @@ components:
See the feature descriptions themselves for the relation between
Ledger API versions and feature presence.
+
+ Required
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.
+
+ Optional
type: integer
format: int64
GetPackageStatusResponse:
@@ -3899,7 +4104,10 @@ components:
- packageStatus
properties:
packageStatus:
- description: The status of the package.
+ description: |-
+ The status of the package.
+
+ Required
type: string
enum:
- PACKAGE_STATUS_UNSPECIFIED
@@ -3914,16 +4122,20 @@ components:
description: |-
Identifier of the participant, which SHOULD be globally unique.
Must be a valid LedgerString (as describe in ``value.proto``).
+
+ Required
type: string
GetPartiesResponse:
title: GetPartiesResponse
type: object
+ required:
+ - partyDetails
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
+ Required: must be non-empty
type: array
items:
$ref: '#/components/schemas/PartyDetails'
@@ -3935,12 +4147,13 @@ components:
$ref: '#/components/schemas/PackagePreference'
description: |-
Not populated when no preferred package is found
+
Optional
GetPreferredPackagesRequest:
title: GetPreferredPackagesRequest
type: object
required:
- - synchronizerId
+ - packageVettingRequirements
properties:
packageVettingRequirements:
description: |-
@@ -3950,7 +4163,7 @@ components:
Additional package-name requirements can be provided when additional Daml transaction informees need to use
package dependencies of the command's root packages.
- Required
+ Required: must be non-empty
type: array
items:
$ref: '#/components/schemas/PackageVettingRequirement'
@@ -3965,6 +4178,7 @@ components:
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:
@@ -3972,6 +4186,7 @@ components:
type: object
required:
- synchronizerId
+ - packageReferences
properties:
packageReferences:
description: |-
@@ -3983,7 +4198,7 @@ components:
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
+ Required: must be non-empty
type: array
items:
$ref: '#/components/schemas/PackageReference'
@@ -3991,6 +4206,7 @@ components:
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:
@@ -4067,28 +4283,33 @@ components:
type: object
required:
- updateId
+ - updateFormat
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
+ - updateFormat
properties:
offset:
description: |-
The offset of the update being looked up.
Must be a valid absolute offset (positive integer).
+
Required
type: integer
format: int64
@@ -4096,29 +4317,33 @@ components:
$ref: '#/components/schemas/UpdateFormat'
description: |-
The format for the update.
+
Required
GetUpdatesRequest:
title: GetUpdatesRequest
type: object
required:
- - beginExclusive
- - verbose
+ - 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 zero, the stream will start from the beginning of the ledger.
+ 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.
- Optional, if empty, the stream will not terminate.
+ 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:
@@ -4139,23 +4364,21 @@ components:
updateFormat:
$ref: '#/components/schemas/UpdateFormat'
description: |-
- Must be unset for GetUpdateTrees request.
- Optional for backwards compatibility for GetUpdates request: defaults to an UpdateFormat where:
+ The update format for this request
- - 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
+ Required
GetUserResponse:
title: GetUserResponse
type: object
+ required:
+ - user
properties:
user:
$ref: '#/components/schemas/User'
- description: Retrieved user.
+ description: |-
+ Retrieved user.
+
+ Required
GrantUserRightsRequest:
title: GrantUserRightsRequest
description: |-
@@ -4165,31 +4388,37 @@ components:
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
+
+ Optional: can be empty
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.
+ If not set, assume the user is managed by the default identity provider.
+
+ Optional
type: string
GrantUserRightsResponse:
title: GrantUserRightsResponse
type: object
properties:
newlyGrantedRights:
- description: The rights that were newly granted by the request.
+ description: |-
+ The rights that were newly granted by the request.
+
+ Optional: can be empty
type: array
items:
$ref: '#/components/schemas/Right'
@@ -4250,47 +4479,52 @@ components:
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
+
+ Optional
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
+
+ Can be left empty when used in `UpdateIdentityProviderConfigRequest` if the issuer is not being updated.
+
+ Required
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
+
+ Required
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
+
+ Optional
type: string
InterfaceFilter:
title: InterfaceFilter
@@ -4306,8 +4540,7 @@ components:
description: This filter matches contracts that implement a specific interface.
type: object
required:
- - includeInterfaceView
- - includeCreatedEventBlob
+ - interfaceId
properties:
interfaceId:
description: |-
@@ -4323,6 +4556,7 @@ components:
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:
@@ -4330,6 +4564,7 @@ components:
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:
@@ -4343,15 +4578,17 @@ components:
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.
+
+ Required
synchronizerId:
description: |-
A valid synchronizer id
+
Required
type: string
reassignmentCounter:
@@ -4361,6 +4598,7 @@ components:
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
@@ -4376,8 +4614,9 @@ components:
description: Required
synchronizerId:
description: |-
- Required
The synchronizer which sequenced the archival of the contract
+
+ Required
type: string
JsAssignedEvent:
title: JsAssignedEvent
@@ -4388,7 +4627,6 @@ components:
- source
- target
- reassignmentId
- - submitter
- reassignmentCounter
- createdEvent
properties:
@@ -4396,12 +4634,14 @@ components:
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:
@@ -4409,6 +4649,7 @@ components:
The ID from the unassigned event.
For correlation capabilities.
Must be a valid LedgerString (as described in ``value.proto``).
+
Required
type: string
submitter:
@@ -4416,6 +4657,7 @@ components:
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:
@@ -4423,15 +4665,17 @@ components:
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.
+
+ Required
JsAssignmentEvent:
title: JsAssignmentEvent
type: object
@@ -4495,11 +4739,14 @@ components:
type: object
required:
- commandId
+ - commands
+ - actAs
properties:
commands:
description: |-
Individual elements of this atomic command. Must be non-empty.
- Required
+
+ Required: must be non-empty
type: array
items:
$ref: '#/components/schemas/Command'
@@ -4510,6 +4757,7 @@ components:
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:
@@ -4518,7 +4766,8 @@ components:
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.
+
+ Required: must be non-empty
type: array
items:
type: string
@@ -4528,6 +4777,8 @@ components:
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
readAs:
description: |-
@@ -4539,7 +4790,8 @@ components:
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
+
+ Optional: can be empty
type: array
items:
type: string
@@ -4547,6 +4799,7 @@ components:
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:
@@ -4558,6 +4811,7 @@ components:
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:
@@ -4565,6 +4819,7 @@ components:
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: |-
@@ -4574,24 +4829,29 @@ components:
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
+
+ Optional: can be empty
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
+
+ Optional: can be empty
type: array
items:
type: string
@@ -4601,7 +4861,7 @@ components:
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
+ Optional: can be empty
type: array
items:
$ref: '#/components/schemas/PrefetchContractKey'
@@ -4613,6 +4873,8 @@ components:
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.
+
+ Required
oneOf:
- type: object
required:
@@ -4648,13 +4910,15 @@ components:
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.
+
+ Required
synchronizerId:
description: |-
The synchronizer which sequenced the creation of the contract
+
Required
type: string
JsEmpty:
@@ -4664,9 +4928,9 @@ components:
title: JsExecuteSubmissionAndWaitForTransactionRequest
type: object
required:
- - deduplicationPeriod
+ - preparedTransaction
+ - partySignatures
- submissionId
- - userId
- hashingSchemeVersion
properties:
preparedTransaction:
@@ -4674,6 +4938,7 @@ components:
the prepared transaction
Typically this is the value of the `prepared_transaction` field in `PrepareSubmissionResponse`
obtained from calling `prepareSubmission`.
+
Required
type: string
partySignatures:
@@ -4683,6 +4948,7 @@ components:
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'
@@ -4698,6 +4964,7 @@ components:
userId:
description: |-
See [PrepareSubmissionRequest.user_id]
+
Optional
type: string
hashingSchemeVersion:
@@ -4713,6 +4980,7 @@ components:
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'
@@ -4722,6 +4990,7 @@ components:
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
@@ -4734,14 +5003,15 @@ components:
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
+ - preparedTransaction
+ - partySignatures
- submissionId
- - userId
- hashingSchemeVersion
properties:
preparedTransaction:
@@ -4749,6 +5019,7 @@ components:
the prepared transaction
Typically this is the value of the `prepared_transaction` field in `PrepareSubmissionResponse`
obtained from calling `prepareSubmission`.
+
Required
type: string
partySignatures:
@@ -4758,6 +5029,7 @@ components:
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'
@@ -4773,11 +5045,13 @@ components:
userId:
description: |-
See [PrepareSubmissionRequest.user_id]
+
Optional
type: string
hashingSchemeVersion:
description: |-
The hashing scheme version used when building the hash
+
Required
type: string
enum:
@@ -4788,14 +5062,15 @@ components:
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
+ - preparedTransaction
+ - partySignatures
- submissionId
- - userId
- hashingSchemeVersion
properties:
preparedTransaction:
@@ -4803,6 +5078,7 @@ components:
the prepared transaction
Typically this is the value of the `prepared_transaction` field in `PrepareSubmissionResponse`
obtained from calling `prepareSubmission`.
+
Required
type: string
partySignatures:
@@ -4812,6 +5088,7 @@ components:
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'
@@ -4827,11 +5104,13 @@ components:
userId:
description: |-
See [PrepareSubmissionRequest.user_id]
+
Optional
type: string
hashingSchemeVersion:
description: |-
The hashing scheme version used when building the hash
+
Required
type: string
enum:
@@ -4842,19 +5121,18 @@ components:
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:
@@ -4868,12 +5146,14 @@ components:
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
@@ -4900,8 +5180,6 @@ components:
JsGetUpdateResponse:
title: JsGetUpdateResponse
type: object
- required:
- - update
properties:
update:
$ref: '#/components/schemas/Update'
@@ -4910,16 +5188,12 @@ components:
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'
@@ -4942,13 +5216,14 @@ components:
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.
+
+ Required
unassignedEvent:
$ref: '#/components/schemas/UnassignedEvent'
description: Required
@@ -4973,21 +5248,22 @@ components:
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
+ - commands
+ - actAs
properties:
userId:
description: |-
@@ -4995,6 +5271,7 @@ components:
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:
@@ -5004,6 +5281,7 @@ components:
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:
@@ -5011,7 +5289,8 @@ components:
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
+
+ Required: must be non-empty
type: array
items:
$ref: '#/components/schemas/Command'
@@ -5026,7 +5305,8 @@ components:
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.
+
+ Required: must be non-empty
type: array
items:
type: string
@@ -5039,14 +5319,16 @@ components:
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
+
+ Optional: can be empty
type: array
items:
type: string
disclosedContracts:
description: |-
Additional contracts used to resolve contract & contract key lookups.
- Optional
+
+ Optional: can be empty
type: array
items:
$ref: '#/components/schemas/DisclosedContract'
@@ -5054,13 +5336,15 @@ components:
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
+
+ Optional: can be empty
type: array
items:
type: string
@@ -5068,7 +5352,9 @@ components:
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
+ Defaults to false
+
+ Optional
type: boolean
prefetchContractKeys:
description: |-
@@ -5076,7 +5362,7 @@ components:
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
+ Optional: can be empty
type: array
items:
$ref: '#/components/schemas/PrefetchContractKey'
@@ -5089,6 +5375,7 @@ components:
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:
@@ -5100,13 +5387,16 @@ components:
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
+ 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
+
+ Optional
JsPrepareSubmissionResponse:
title: JsPrepareSubmissionResponse
description: '[docs-entry-end: HashingSchemeVersion]'
type: object
required:
+ - preparedTransaction
- preparedTransactionHash
- hashingSchemeVersion
properties:
@@ -5114,15 +5404,22 @@ components:
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.
+
+ Required
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
+
+ Required: must be non-empty
type: string
hashingSchemeVersion:
- description: The hashing scheme version used when building the hash
+ description: |-
+ The hashing scheme version used when building the hash
+
+ Required
type: string
enum:
- HASHING_SCHEME_VERSION_UNSPECIFIED
@@ -5132,11 +5429,14 @@ components:
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.
+
+ Optional
type: string
costEstimation:
$ref: '#/components/schemas/CostEstimation'
description: |-
Traffic cost estimation of the prepared transaction
+
Optional
JsReassignment:
title: JsReassignment
@@ -5144,45 +5444,52 @@ components:
type: object
required:
- updateId
- - commandId
- - workflowId
- 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``.
- Required, must be a valid absolute offset (positive integer).
+ Must be a valid absolute offset (positive integer).
+
+ Required
type: integer
format: int64
events:
- description: The collection of reassignment events. Required.
+ description: |-
+ The collection of reassignment events.
+
+ Required: must be non-empty
type: array
items:
$ref: '#/components/schemas/JsReassignmentEvent'
traceContext:
$ref: '#/components/schemas/TraceContext'
description: |-
- Optional; ledger API trace context
+ 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.
@@ -5191,18 +5498,35 @@ components:
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:
@@ -5245,6 +5569,7 @@ components:
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
@@ -5257,6 +5582,7 @@ components:
$ref: '#/components/schemas/JsCommands'
description: |-
The commands to be submitted.
+
Required
transactionFormat:
$ref: '#/components/schemas/TransactionFormat'
@@ -5264,6 +5590,7 @@ components:
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
@@ -5276,14 +5603,13 @@ components:
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'
@@ -5294,23 +5620,29 @@ components:
- 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``.
- Required, it is a valid absolute offset (positive integer).
+ 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:
@@ -5318,19 +5650,21 @@ components:
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
+
+ Required: must be non-empty
type: array
items:
$ref: '#/components/schemas/TopologyEvent'
traceContext:
$ref: '#/components/schemas/TraceContext'
description: |-
- Optional; ledger API trace context
+ 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.
@@ -5339,6 +5673,8 @@ components:
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
JsTransaction:
title: JsTransaction
description: Filtered view of an on-ledger transaction's create and archive
@@ -5346,34 +5682,37 @@ components:
type: object
required:
- updateId
- - commandId
- - workflowId
- 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:
@@ -5384,26 +5723,29 @@ components:
- ``CreatedEvent`` or ``ArchivedEvent`` in case of ACS_DELTA transaction shape
- ``CreatedEvent`` or ``ExercisedEvent`` in case of LEDGER_EFFECTS transaction shape
- Required
+ 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``.
- Required, it is a valid absolute offset (positive integer).
+ 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: |-
- Optional; ledger API trace context
+ 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.
@@ -5412,18 +5754,36 @@ components:
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
+
+ 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
JsTransactionTree:
title: JsTransactionTree
description: |-
@@ -5432,8 +5792,7 @@ components:
type: object
required:
- updateId
- - commandId
- - workflowId
+ - effectiveAt
- offset
- eventsById
- synchronizerId
@@ -5563,9 +5922,14 @@ components:
ListIdentityProviderConfigsResponse:
title: ListIdentityProviderConfigsResponse
type: object
+ required:
+ - identityProviderConfigs
properties:
identityProviderConfigs:
- description: ''
+ description: |-
+ The list of identity provider configs
+
+ Required: must be non-empty
type: array
items:
$ref: '#/components/schemas/IdentityProviderConfig'
@@ -5573,12 +5937,13 @@ components:
title: ListKnownPartiesResponse
type: object
required:
- - nextPageToken
+ - partyDetails
properties:
partyDetails:
description: |-
The details of all Daml parties known by the participant.
- Required
+
+ Required: must be non-empty
type: array
items:
$ref: '#/components/schemas/PartyDetails'
@@ -5586,16 +5951,21 @@ components:
description: |-
Pagination token to retrieve the next page.
Empty, if there are no further results.
+
+ Optional
type: string
ListPackagesResponse:
title: ListPackagesResponse
type: object
+ required:
+ - packageIds
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
+
+ Required: must be non-empty
type: array
items:
type: string
@@ -5604,19 +5974,23 @@ components:
type: object
properties:
rights:
- description: All rights of the user.
+ description: |-
+ All rights of the user.
+
+ Optional: can be empty
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.
+ description: |-
+ A subset of users of the participant node that fit into this page.
+ Can be empty if no more users
+
+ Optional: can be empty
type: array
items:
$ref: '#/components/schemas/User'
@@ -5624,23 +5998,24 @@ components:
description: |-
Pagination token to retrieve the next page.
Empty, if there are no further results.
+
+ Optional
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: |-
@@ -5677,14 +6052,14 @@ components:
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.
+
+ Optional: can be empty
type: array
items:
$ref: '#/components/schemas/VettedPackages'
@@ -5692,6 +6067,8 @@ components:
description: |-
Pagination token to retrieve the next page.
Empty string if there are no further results.
+
+ Optional
type: string
Map_Filters:
title: Map_Filters
@@ -5716,8 +6093,6 @@ components:
MinLedgerTime:
title: MinLedgerTime
type: object
- required:
- - time
properties:
time:
$ref: '#/components/schemas/Time'
@@ -5748,9 +6123,6 @@ components:
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: |-
@@ -5766,6 +6138,7 @@ components:
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:
@@ -5791,8 +6164,9 @@ components:
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
+
+ Optional: can be empty
OffsetCheckpoint:
title: OffsetCheckpoint
description: |-
@@ -5820,11 +6194,16 @@ components:
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).
+ Must be a valid absolute offset (positive integer).
+
+ Required
type: integer
format: int64
synchronizerTimes:
- description: ''
+ description: |-
+ The times associated with each synchronizer at this offset.
+
+ Optional: can be empty
type: array
items:
$ref: '#/components/schemas/SynchronizerTime'
@@ -5857,12 +6236,18 @@ components:
OffsetCheckpointFeature:
title: OffsetCheckpointFeature
type: object
+ required:
+ - maxOffsetCheckpointEmissionDelay
properties:
maxOffsetCheckpointEmissionDelay:
$ref: '#/components/schemas/Duration'
- description: The maximum delay to emmit a new OffsetCheckpoint if it exists
+ description: |-
+ The maximum delay to emmit a new OffsetCheckpoint if it exists
+
+ Required
Operation:
title: Operation
+ description: Required
oneOf:
- type: object
required:
@@ -5892,6 +6277,8 @@ components:
description: |-
The maximum number of vetted packages the server can return in a single
response (page) when listing them.
+
+ Required
type: integer
format: int32
PackageMetadataFilter:
@@ -5910,6 +6297,8 @@ components:
description: |-
If this list is non-empty, any vetted package with a package ID in this
list will match the filter.
+
+ Optional: can be empty
type: array
items:
type: string
@@ -5917,6 +6306,8 @@ components:
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.
+
+ Optional: can be empty
type: array
items:
type: string
@@ -5925,16 +6316,19 @@ components:
type: object
required:
- synchronizerId
+ - packageReference
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:
@@ -5961,17 +6355,20 @@ components:
type: object
required:
- packageName
+ - parties
properties:
parties:
description: |-
The parties whose participants' vetting state should be considered when resolving the preferred package.
- Required
+
+ Required: must be non-empty
type: array
items:
type: string
packageName:
description: |-
The package-name for which the preferred package should be resolved.
+
Required
type: string
ParticipantAdmin:
@@ -6076,6 +6473,8 @@ components:
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
@@ -6084,26 +6483,27 @@ components:
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
+
+ Optional
identityProviderId:
description: |-
The id of the ``Identity Provider``
@@ -6112,6 +6512,8 @@ components:
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.
+
+ Optional
type: string
PartyManagementFeature:
title: PartyManagementFeature
@@ -6120,19 +6522,24 @@ components:
- maxPartiesPageSize
properties:
maxPartiesPageSize:
- description: The maximum number of parties the server can return in a single
- response (page).
+ description: |-
+ The maximum number of parties the server can return in a single response (page).
+
+ Required
type: integer
format: int32
PartySignatures:
title: PartySignatures
description: Additional signatures provided by the submitting parties
type: object
+ required:
+ - signatures
properties:
signatures:
description: |-
Additional signatures provided by all individual parties
- Required
+
+ Required: must be non-empty
type: array
items:
$ref: '#/components/schemas/SinglePartySignatures'
@@ -6142,6 +6549,7 @@ components:
type: object
required:
- contractKey
+ - templateId
properties:
templateId:
description: |-
@@ -6154,6 +6562,7 @@ components:
contractKey:
description: |-
The key of the contract the client wants to prefetch.
+
Required
Prior:
title: Prior
@@ -6170,8 +6579,6 @@ components:
The serial of last ``VettedPackages`` topology transaction on a given
participant and synchronizer.
type: object
- required:
- - serial
properties:
serial:
$ref: '#/components/schemas/Serial'
@@ -6212,8 +6619,6 @@ components:
ReassignmentCommand:
title: ReassignmentCommand
type: object
- required:
- - command
properties:
command:
$ref: '#/components/schemas/Command1'
@@ -6221,11 +6626,9 @@ components:
title: ReassignmentCommands
type: object
required:
- - workflowId
- - userId
- commandId
- submitter
- - submissionId
+ - commands
properties:
workflowId:
description: |-
@@ -6239,6 +6642,8 @@ components:
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: |-
@@ -6246,6 +6651,7 @@ components:
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:
@@ -6254,6 +6660,7 @@ components:
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:
@@ -6267,7 +6674,10 @@ components:
Optional
type: string
commands:
- description: Individual elements of this reassignment. Must be non-empty.
+ description: |-
+ Individual elements of this reassignment. Must be non-empty.
+
+ Required: must be non-empty
type: array
items:
$ref: '#/components/schemas/ReassignmentCommand'
@@ -6280,31 +6690,37 @@ components:
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
+
+ Optional: can be empty
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.
+ If not set, assume the user is managed by the default identity provider.
+
+ Optional
type: string
RevokeUserRightsResponse:
title: RevokeUserRightsResponse
type: object
properties:
newlyRevokedRights:
- description: The rights that were actually revoked by the request.
+ description: |-
+ The rights that were actually revoked by the request.
+
+ Optional: can be empty
type: array
items:
$ref: '#/components/schemas/Right'
@@ -6312,13 +6728,12 @@ components:
title: Right
description: A right granted to a user.
type: object
- required:
- - kind
properties:
kind:
$ref: '#/components/schemas/Kind'
Serial:
title: Serial
+ description: Optional
oneOf:
- type: object
required:
@@ -6348,17 +6763,22 @@ components:
- signingAlgorithmSpec
properties:
format:
- description: ''
+ description: Required
type: string
signature:
- description: ''
+ description: 'Required: must be non-empty'
type: string
signedBy:
- description: The fingerprint/id of the keypair used to create this signature
- and needed to verify.
+ description: |-
+ The fingerprint/id of the keypair used to create this signature and needed to verify.
+
+ Required
type: string
signingAlgorithmSpec:
- description: The signing algorithm specification used to produce this signature
+ description: |-
+ The signing algorithm specification used to produce this signature
+
+ Required
type: string
SignedTransaction:
title: SignedTransaction
@@ -6381,14 +6801,23 @@ components:
- keySpec
properties:
format:
- description: The serialization format of the public key
+ description: |-
+ The serialization format of the public key
+
+ Required
example: CRYPTO_KEY_FORMAT_DER_X509_SUBJECT_PUBLIC_KEY_INFO
type: string
keyData:
- description: Serialized public key in the format specified above
+ description: |-
+ Serialized public key in the format specified above
+
+ Required: must be non-empty
type: string
keySpec:
- description: The key specification
+ description: |-
+ The key specification
+
+ Required
example: SIGNING_KEY_SPEC_EC_CURVE25519
type: string
SinglePartySignatures:
@@ -6397,16 +6826,19 @@ components:
type: object
required:
- party
+ - signatures
properties:
party:
description: |-
Submitting party
+
Required
type: string
signatures:
description: |-
Signatures
- Required
+
+ Required: must be non-empty
type: array
items:
$ref: '#/components/schemas/Signature'
@@ -6414,18 +6846,22 @@ components:
title: SubmitAndWaitForReassignmentRequest
description: This reassignment is executed as a single atomic update.
type: object
+ required:
+ - reassignmentCommands
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.
+
+ Optional
SubmitAndWaitResponse:
title: SubmitAndWaitResponse
type: object
@@ -6437,22 +6873,27 @@ components:
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
+ required:
+ - reassignmentCommands
properties:
reassignmentCommands:
$ref: '#/components/schemas/ReassignmentCommands'
description: |-
The reassignment command to be submitted.
+
Required
SubmitReassignmentResponse:
title: SubmitReassignmentResponse
@@ -6465,15 +6906,18 @@ components:
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
TemplateFilter:
@@ -6490,7 +6934,7 @@ components:
description: This filter matches contracts of a specific template.
type: object
required:
- - includeCreatedEventBlob
+ - templateId
properties:
templateId:
description: |-
@@ -6507,10 +6951,12 @@ components:
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
+ description: Required
oneOf:
- type: object
required:
@@ -6533,8 +6979,6 @@ components:
TopologyEvent:
title: TopologyEvent
type: object
- required:
- - event
properties:
event:
$ref: '#/components/schemas/TopologyEventEvent'
@@ -6575,7 +7019,9 @@ components:
$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.
+ If unset, no participant authorization topology events are emitted in the stream.
+
+ Optional
TopologyStateFilter:
title: TopologyStateFilter
description: |-
@@ -6597,6 +7043,8 @@ components:
listed in this field match the filter.
Query the current Ledger API's participant's ID via the public
``GetParticipantId`` command in ``PartyManagementService``.
+
+ Optional: can be empty
type: array
items:
type: string
@@ -6604,6 +7052,8 @@ components:
description: |-
If this list is non-empty, only vetted packages from the topology state of
the synchronizers in this list match the filter.
+
+ Optional: can be empty
type: array
items:
type: string
@@ -6620,10 +7070,12 @@ components:
type: object
properties:
traceparent:
- description: https://www.w3.org/TR/trace-context/
+ description: |-
+ https://www.w3.org/TR/trace-context/
+ Optional
type: string
tracestate:
- description: ''
+ description: Optional
type: string
Transaction:
title: Transaction
@@ -6641,8 +7093,6 @@ components:
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'
@@ -6671,6 +7121,7 @@ components:
type: object
required:
- transactionShape
+ - eventFormat
properties:
eventFormat:
$ref: '#/components/schemas/EventFormat'
@@ -6678,6 +7129,7 @@ components:
transactionShape:
description: |-
What transaction shape to use for interpreting the filters of the event format.
+
Required
type: string
enum:
@@ -6748,18 +7200,21 @@ components:
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:
@@ -6772,22 +7227,25 @@ components:
- contractId
- source
- target
- - submitter
- 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:
@@ -6801,12 +7259,14 @@ components:
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:
@@ -6814,6 +7274,7 @@ components:
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:
@@ -6821,6 +7282,7 @@ components:
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
@@ -6829,18 +7291,21 @@ components:
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
+
+ Required: must be non-empty
type: array
items:
type: string
packageName:
description: |-
The package name of the contract.
+
Required
type: string
offset:
@@ -6848,7 +7313,9 @@ components:
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)
+ Must be a valid absolute offset (positive integer)
+
+ Required
type: integer
format: int64
nodeId:
@@ -6856,7 +7323,9 @@ components:
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)
+ Must be valid node ID (non-negative integer)
+
+ Required
type: integer
format: int32
UnknownFieldSet:
@@ -6940,28 +7409,38 @@ components:
$ref: '#/components/schemas/TransactionFormat'
description: |-
Include Daml transactions in streams.
- Optional, if unset, no transactions are emitted in the stream.
+ 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.
- Optional, if unset, no (un)assignments are emitted in the stream.
+ If unset, no (un)assignments are emitted in the stream.
+
+ Optional
includeTopologyEvents:
$ref: '#/components/schemas/TopologyFormat'
description: |-
Include topology events in streams.
- Optional, if unset no topology events are emitted in the stream.
+ If unset no topology events are emitted in the stream.
+
+ Optional
UpdateIdentityProviderConfigRequest:
title: UpdateIdentityProviderConfigRequest
type: object
+ required:
+ - identityProviderConfig
+ - updateMask
properties:
identityProviderConfig:
$ref: '#/components/schemas/IdentityProviderConfig'
description: |-
The identity provider config to update.
- Required,
Modifiable
+
+ Required
updateMask:
$ref: '#/components/schemas/FieldMask'
description: |-
@@ -6975,25 +7454,35 @@ components:
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
+ required:
+ - identityProviderConfig
properties:
identityProviderConfig:
$ref: '#/components/schemas/IdentityProviderConfig'
- description: Updated identity provider config
+ description: |-
+ Updated identity provider config
+
+ Required
UpdatePartyDetailsRequest:
title: UpdatePartyDetailsRequest
description: 'Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(party_details.identity_provider_id)``'
type: object
+ required:
+ - partyDetails
+ - updateMask
properties:
partyDetails:
$ref: '#/components/schemas/PartyDetails'
description: |-
Party to be updated
- Required,
Modifiable
+
+ Required
updateMask:
$ref: '#/components/schemas/FieldMask'
description: |-
@@ -7017,31 +7506,46 @@ components:
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
+ required:
+ - partyDetails
properties:
partyDetails:
$ref: '#/components/schemas/PartyDetails'
- description: Updated party details
+ description: |-
+ Updated party details
+
+ Required
UpdateUserIdentityProviderIdRequest:
title: UpdateUserIdentityProviderIdRequest
description: 'Required authorization: ``HasRight(ParticipantAdmin)``'
type: object
required:
- userId
- - sourceIdentityProviderId
- - targetIdentityProviderId
properties:
userId:
- description: User to update
+ description: |-
+ User to update
+
+ Required
type: string
sourceIdentityProviderId:
- description: Current identity provider ID of the user
+ description: |-
+ Current identity provider ID of the user
+ If omitted, the default IDP is assumed
+
+ Optional
type: string
targetIdentityProviderId:
- description: Target identity provider ID of the user
+ description: |-
+ Target identity provider ID of the user
+ If omitted, the default IDP is assumed
+
+ Optional
type: string
UpdateUserIdentityProviderIdResponse:
title: UpdateUserIdentityProviderIdResponse
@@ -7050,13 +7554,17 @@ components:
title: UpdateUserRequest
description: 'Required authorization: ``HasRight(ParticipantAdmin) OR IsAuthenticatedIdentityProviderAdmin(user.identity_provider_id)``'
type: object
+ required:
+ - user
+ - updateMask
properties:
user:
$ref: '#/components/schemas/User'
description: |-
The user to update.
- Required,
Modifiable
+
+ Required
updateMask:
$ref: '#/components/schemas/FieldMask'
description: |-
@@ -7078,26 +7586,33 @@ components:
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
+ required:
+ - user
properties:
user:
$ref: '#/components/schemas/User'
- description: Updated user
+ description: |-
+ Updated user
+
+ Required
UpdateVettedPackagesRequest:
title: UpdateVettedPackagesRequest
type: object
required:
- - dryRun
- - synchronizerId
+ - changes
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.
+
+ Required: must be non-empty
type: array
items:
$ref: '#/components/schemas/VettedPackagesChange'
@@ -7108,6 +7623,9 @@ components:
it will also trigger an error when dry_run.
Use this flag to preview a change before applying it.
+ Defaults to false.
+
+ Optional
type: boolean
synchronizerId:
description: |-
@@ -7137,7 +7655,7 @@ components:
description: |-
Controls whether potentially unsafe vetting updates are allowed.
- Optional, defaults to FORCE_FLAG_UNSPECIFIED.
+ Optional: can be empty
type: array
items:
type: string
@@ -7148,16 +7666,24 @@ components:
UpdateVettedPackagesResponse:
title: UpdateVettedPackagesResponse
type: object
+ required:
+ - newVettedPackages
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.
+
+ Not populated if no vetted topology state exists prior to the update.
+
+ Optional
newVettedPackages:
$ref: '#/components/schemas/VettedPackages'
- description: All vetted packages on this participant and synchronizer, after
- the specified changes.
+ description: |-
+ All vetted packages on this participant and synchronizer, after the specified changes.
+
+ Required
UploadDarFileResponse:
title: UploadDarFileResponse
description: A message that is received when the upload operation succeeded.
@@ -7172,14 +7698,12 @@ components:
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 "@^$.!`-#+'~_|:".
+ characters that are either alphanumeric ASCII characters or one of the symbols "@^$.!`-#+'~_|:()".
+
Required
type: string
primaryParty:
@@ -7190,27 +7714,32 @@ components:
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
+
+ Optional
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
+
+ Optional
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
+
+ Optional
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.
+ If not set, assume the user is managed by the default identity provider.
+
+ Optional
type: string
UserManagementFeature:
title: UserManagementFeature
@@ -7221,14 +7750,18 @@ components:
- maxUsersPageSize
properties:
supported:
- description: Whether the Ledger API server provides the user management
- service.
+ description: |-
+ Whether the Ledger API server provides the user management service.
+
+ Required
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.
+
+ Required
type: integer
format: int32
maxUsersPageSize:
@@ -7236,6 +7769,8 @@ components:
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.
+
+ Required
type: integer
format: int32
Vet:
@@ -7267,33 +7802,40 @@ components:
type: object
required:
- packageId
- - packageName
- - packageVersion
properties:
packageId:
- description: Package ID of this package. Always present.
+ description: |-
+ Package ID of this package
+
+ Required
type: string
validFromInclusive:
description: |-
The time from which this package is vetted. Empty if vetting time has no
lower bound.
+
+ Optional
type: string
validUntilExclusive:
description: |-
The time until which this package is vetted. Empty if vetting time has no
upper bound.
+
+ Optional
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.
+
+ Optional
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.
+
+ Optional
type: string
VettedPackages:
title: VettedPackages
@@ -7307,32 +7849,41 @@ components:
- participantId
- synchronizerId
- topologySerial
+ - packages
properties:
packages:
description: |-
Sorted by package_name and package_version where known, and package_id as a
last resort.
+
+ Required: must be non-empty
type: array
items:
$ref: '#/components/schemas/VettedPackage'
participantId:
- description: Participant on which these packages are vetted. Always present.
+ description: |-
+ Participant on which these packages are vetted.
+
+ Required
type: string
synchronizerId:
- description: Synchronizer on which these packages are vetted. Always present.
+ description: |-
+ Synchronizer on which these packages are vetted.
+
+ Required
type: string
topologySerial:
description: |-
Serial of last ``VettedPackages`` topology transaction of this participant
- and on this synchronizer. Always present.
+ and on this synchronizer.
+
+ Required
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'
@@ -7351,24 +7902,23 @@ components:
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:
@@ -7384,14 +7934,13 @@ components:
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:
diff --git a/src/Trakx.Canton.ApiClient/OpenApiSpecs/scan-stream-server.yaml b/src/Trakx.Canton.ApiClient/OpenApiSpecs/scan-stream-server.yaml
new file mode 100644
index 0000000..0524fb5
--- /dev/null
+++ b/src/Trakx.Canton.ApiClient/OpenApiSpecs/scan-stream-server.yaml
@@ -0,0 +1,61 @@
+openapi: 3.0.0
+info:
+ title: Scan Streaming API
+ version: 0.0.1
+servers:
+ - url: https://example.com/api/scan
+tags:
+ - name: external
+ description: |
+ These endpoints are intended for public usage and will remain backward-compatible.
+ - name: internal
+ description: |
+ For internal usage only, not guaranteed to be stable or backward-compatible.
+ - name: deprecated
+ description: |
+ These endpoints are deprecated and will be removed in a future release.
+ - name: scan
+ description: |
+ The internal and external endpoints.
+paths:
+ /v0/history/bulk/download/{object_key}:
+ get:
+ tags:
+ - external
+ - scan
+ x-jvm-package: scanStream
+ operationId: bulkStorageDownload
+ description: Download a bulk storage object
+ parameters:
+ - name: object_key
+ in: path
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: ok
+ content:
+ application/octet-stream:
+ schema:
+ type: string
+ format: binary
+ x-scala-type: org.apache.pekko.http.scaladsl.model.ResponseEntity
+ '404':
+ $ref: '#/components/responses/404'
+components:
+ schemas:
+ ErrorResponse:
+ type: object
+ required:
+ - error
+ properties:
+ error:
+ type: string
+ responses:
+ '404':
+ description: not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
diff --git a/src/Trakx.Canton.ApiClient/OpenApiSpecs/scan.yaml b/src/Trakx.Canton.ApiClient/OpenApiSpecs/scan.yaml
index fba1b98..c842a99 100644
--- a/src/Trakx.Canton.ApiClient/OpenApiSpecs/scan.yaml
+++ b/src/Trakx.Canton.ApiClient/OpenApiSpecs/scan.yaml
@@ -3859,6 +3859,11 @@ components:
If an event pertains to a wholly private transaction, there will only be verdict data.
If an event pertains to a transaction that is partially private, it may also bear verdict information for the private portions.
When both fields are present, the transaction and verdict have the same `update_id` and `record_time`.
+
+ **Experimental**: for networks where the SVs enable it
+ a traffic summary is present when a verdict is present.
+
+ This support is experimental while the preview phase of CIP-104 is running.
properties:
update:
$ref: '#/components/schemas/UpdateHistoryItemV2'
@@ -3866,6 +3871,13 @@ components:
verdict:
$ref: '#/components/schemas/EventHistoryVerdict'
nullable: true
+ traffic_summary:
+ description: |
+ **EXPERIMENTAL**: This property is experimental and subject to change. Data may be incomplete or missing.
+
+ This is our current best guess for how the summaries are served, but there remains a chance that the API needs to be adjusted.
+ $ref: '#/components/schemas/EventHistoryTrafficSummary'
+ nullable: true
EventHistoryVerdict:
type: object
required:
@@ -3985,6 +3997,45 @@ components:
- VERDICT_RESULT_UNSPECIFIED
- VERDICT_RESULT_ACCEPTED
- VERDICT_RESULT_REJECTED
+ EventHistoryTrafficSummary:
+ type: object
+ description: |
+ Traffic summary data from the sequencer for the confirmation request corresponding to an event.
+ required:
+ - total_traffic_cost
+ - envelope_traffic_summaries
+ properties:
+ total_traffic_cost:
+ description: |
+ Total traffic cost of the confirmation request paid by the validator node that submitted it.
+ type: integer
+ format: int64
+ envelope_traffic_summaries:
+ description: |
+ Summary of traffic-related data for all envelopes in the confirmation request.
+ type: array
+ items:
+ $ref: '#/components/schemas/EnvelopeTrafficSummary'
+ EnvelopeTrafficSummary:
+ type: object
+ description: |
+ Traffic cost for a single envelope and the view IDs contained in it
+ required:
+ - traffic_cost
+ - view_ids
+ properties:
+ traffic_cost:
+ description: |
+ Traffic cost in bytes for this envelope.
+ type: integer
+ format: int64
+ view_ids:
+ description: |
+ View IDs from the verdict contained in this envelope
+ type: array
+ items:
+ type: integer
+ format: int32
ListUnclaimedDevelopmentFundCouponsResponse:
type: object
required:
@@ -4274,10 +4325,9 @@ components:
type: object
FeatureSupportResponse:
type: object
- required:
- - no_holding_fees_on_transfers
+ required: []
properties:
- no_holding_fees_on_transfers:
+ dummy:
type: boolean
responses:
'400':
diff --git a/src/Trakx.Canton.ApiClient/OpenApiSpecs/sv-internal.yaml b/src/Trakx.Canton.ApiClient/OpenApiSpecs/sv-internal.yaml
index 54f12aa..93d4fc6 100644
--- a/src/Trakx.Canton.ApiClient/OpenApiSpecs/sv-internal.yaml
+++ b/src/Trakx.Canton.ApiClient/OpenApiSpecs/sv-internal.yaml
@@ -1605,10 +1605,9 @@ components:
type: string
FeatureSupportResponse:
type: object
- required:
- - no_holding_fees_on_transfers
+ required: []
properties:
- no_holding_fees_on_transfers:
+ dummy:
type: boolean
responses:
'400':
diff --git a/src/Trakx.Canton.ApiClient/OpenApiSpecs/utilities.yaml b/src/Trakx.Canton.ApiClient/OpenApiSpecs/utilities.yaml
index 0d631a4..b2fc3a3 100644
--- a/src/Trakx.Canton.ApiClient/OpenApiSpecs/utilities.yaml
+++ b/src/Trakx.Canton.ApiClient/OpenApiSpecs/utilities.yaml
@@ -392,6 +392,46 @@ paths:
"500":
$ref: "#/components/responses/500"
+ /api/utilities/v0/registry/transfer/v0/proof:
+ post:
+ tags: [registry]
+ operationId: "verifyTransferProof"
+ x-jvm-package: registry
+ description: |
+ Verify the outcome of a transfer of Registry Utility assets on Canton.
+
+ Given an UpdateID and a Transfer Object, the service looks up the corresponding
+ ledger transaction and verifies the transfer details against the on-chain events.
+
+ The response status indicates the transfer outcome:
+ - `Success`: The transfer was executed in the referenced transaction
+ - `Pending`: The transfer instruction has been created but not yet settled
+ - `Failure`: The transfer instruction was rejected or withdrawn by one of the parties
+
+ If none of the above conditions are met, if the provided transfer details do not match
+ the on-chain data, or if the original TransferInstruction contract cannot be retrieved,
+ a `400` is returned. No further diagnostic information is included in
+ the error response to prevent unintended disclosure of sensitive ledger data.
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/VerifyTransferProofRequest"
+ responses:
+ "200":
+ description: |
+ Transfer proof verified. The `status` field indicates the transfer outcome
+ (`Success`, `Pending`, or `Failure`). See the endpoint description for details.
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/VerifyTransferProofResponse"
+ "400":
+ $ref: "#/components/responses/400"
+ "500":
+ $ref: "#/components/responses/500"
+
components:
responses:
"400":
@@ -783,4 +823,94 @@ components:
type: string
id:
description: "The unique identifier of the instrument."
- type: string
\ No newline at end of file
+ type: string
+
+ VerifyTransferProofRequest:
+ description: "Request to verify the outcome of a transfer of Registry Utility assets on Canton."
+ type: object
+ required:
+ - updateId
+ - transfer
+ properties:
+ updateId:
+ description: |
+ For the two-step transfer workflow, specifies the most recent UpdateId.
+ If the transfer has completed its second step (accept, reject, or withdraw),
+ use the UpdateId associated with that action. Otherwise, use the UpdateId from the initial transfer offer.
+ type: string
+ transfer:
+ $ref: "#/components/schemas/TransferObject"
+
+ TransferObject:
+ description: "The transfer payload containing transaction details known only to the sender and receiver."
+ type: object
+ required:
+ - sender
+ - receiver
+ - amount
+ - instrumentId
+ - requestedAt
+ - executeBefore
+ - inputHoldingCids
+ - meta
+ properties:
+ sender:
+ description: "The party ID of the transfer sender."
+ type: string
+ receiver:
+ description: "The party ID of the transfer receiver."
+ type: string
+ amount:
+ description: "The transfer amount as a decimal string."
+ type: string
+ example: "1.0000000000"
+ instrumentId:
+ $ref: "#/components/schemas/InstrumentId"
+ requestedAt:
+ description: "The timestamp when the transfer was requested."
+ type: string
+ format: date-time
+ executeBefore:
+ description: "The deadline by which the transfer must be executed."
+ type: string
+ format: date-time
+ inputHoldingCids:
+ description: "Contract IDs of the holdings used as inputs for the transfer."
+ type: array
+ items:
+ type: string
+ meta:
+ $ref: "#/components/schemas/TransferMeta"
+
+ TransferMeta:
+ description: "Additional metadata associated with the transfer."
+ type: object
+ required:
+ - values
+ properties:
+ values:
+ description: "Arbitrary key-value metadata attached to the transfer."
+ type: object
+ additionalProperties:
+ type: string
+
+ VerifyTransferProofResponse:
+ description: "The outcome of verifying a transfer proof."
+ type: object
+ required:
+ - status
+ properties:
+ status:
+ $ref: "#/components/schemas/TransferProofStatus"
+
+ TransferProofStatus:
+ description: |
+ The status of the transfer proof verification:
+ - `Success`: The proof is verified and the transfer was successfully concluded
+ - `Failure`: The proof is verified, but the transfer did not successfully conclude.
+ - `Pending`: The transaction is still in progress (e.g., a transfer offer has been sent but not yet accepted in a two-step flow).
+ type: string
+ enum:
+ - Success
+ - Failure
+ - Pending
\ No newline at end of file
diff --git a/src/Trakx.Canton.ApiClient/OpenApiSpecs/validator-internal.yaml b/src/Trakx.Canton.ApiClient/OpenApiSpecs/validator-internal.yaml
index 9114c62..027a40a 100644
--- a/src/Trakx.Canton.ApiClient/OpenApiSpecs/validator-internal.yaml
+++ b/src/Trakx.Canton.ApiClient/OpenApiSpecs/validator-internal.yaml
@@ -298,10 +298,11 @@ paths:
post:
tags:
- validator
+ deprecated: true
x-jvm-package: validator_admin
operationId: prepareTransferPreapprovalSend
description: |
- Prepare a transaction to create a TransferCommand with the given CC amount to the specified receiver
+ **Deprecated**. Prepare a transaction to create a TransferCommand with the given CC amount to the specified receiver
from the externally hosted sender.
The transaction then needs to be signed and submitted through
/v0/admin/external-party/transfer-preapproval/submit-send.
@@ -330,10 +331,11 @@ paths:
post:
tags:
- validator
+ deprecated: true
x-jvm-package: validator_admin
operationId: submitTransferPreapprovalSend
description: |
- Submit transaction generated by /v0/admin/transfer-preapproval/prepare-send
+ **Deprecated**. Submit transaction generated by /v0/admin/transfer-preapproval/prepare-send
together with its signature. Note that this only waits until the TransferCommand is created.
The actual transfer will happen afterwards through automation run by the SVs.
security:
diff --git a/src/Trakx.Canton.ApiClient/OpenApiSpecs/wallet-internal.yaml b/src/Trakx.Canton.ApiClient/OpenApiSpecs/wallet-internal.yaml
index 1f9a7bd..4262c79 100644
--- a/src/Trakx.Canton.ApiClient/OpenApiSpecs/wallet-internal.yaml
+++ b/src/Trakx.Canton.ApiClient/OpenApiSpecs/wallet-internal.yaml
@@ -1645,14 +1645,11 @@ components:
required:
- token_standard
- transfer_preapproval_description
- - no_holding_fees_on_transfers
properties:
token_standard:
type: boolean
transfer_preapproval_description:
type: boolean
- no_holding_fees_on_transfers:
- type: boolean
AllocateAmuletRequest:
type: object
required:
diff --git a/src/Trakx.Canton.ApiClient/Trakx.Canton.ApiClient.csproj b/src/Trakx.Canton.ApiClient/Trakx.Canton.ApiClient.csproj
index 36bcc6e..f382e5b 100644
--- a/src/Trakx.Canton.ApiClient/Trakx.Canton.ApiClient.csproj
+++ b/src/Trakx.Canton.ApiClient/Trakx.Canton.ApiClient.csproj
@@ -1,7 +1,7 @@
-
-
+
+
diff --git a/src/Trakx.Canton.Repository/Trakx.Canton.Repository.csproj b/src/Trakx.Canton.Repository/Trakx.Canton.Repository.csproj
index dbca36f..ecd1bf4 100644
--- a/src/Trakx.Canton.Repository/Trakx.Canton.Repository.csproj
+++ b/src/Trakx.Canton.Repository/Trakx.Canton.Repository.csproj
@@ -1,7 +1,7 @@
-
+
diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props
index d3ded96..4cee7b4 100644
--- a/tests/Directory.Build.props
+++ b/tests/Directory.Build.props
@@ -5,18 +5,18 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/tests/Trakx.Canton.ApiClient.Tests/Auth/StaticJwtCredentialsProviderTests.cs b/tests/Trakx.Canton.ApiClient.Tests/Auth/StaticJwtCredentialsProviderTests.cs
new file mode 100644
index 0000000..507a139
--- /dev/null
+++ b/tests/Trakx.Canton.ApiClient.Tests/Auth/StaticJwtCredentialsProviderTests.cs
@@ -0,0 +1,186 @@
+using System.Net.Http.Headers;
+using Trakx.Authentication;
+
+namespace Trakx.Canton.ApiClient.Tests.Auth;
+
+public class StaticJwtCredentialsProviderTests
+{
+ [Fact]
+ public void Constructor_with_valid_token_should_create_instance()
+ {
+ // Arrange
+ const string token = "valid-jwt-token";
+
+ // Act
+ var provider = new StaticJwtCredentialsProvider(token);
+
+ // Assert
+ provider.Should().NotBeNull();
+ }
+
+ [Fact]
+ public void Constructor_with_null_token_should_throw_ArgumentException()
+ {
+ // Act
+ var act = () => new StaticJwtCredentialsProvider(null!);
+
+ // Assert
+ act.Should().Throw();
+ }
+
+ [Fact]
+ public void Constructor_with_empty_token_should_throw_ArgumentException()
+ {
+ // Act
+ var act = () => new StaticJwtCredentialsProvider("");
+
+ // Assert
+ act.Should().Throw();
+ }
+
+ [Fact]
+ public void Constructor_with_whitespace_token_should_throw_ArgumentException()
+ {
+ // Act
+ var act = () => new StaticJwtCredentialsProvider(" ");
+
+ // Assert
+ act.Should().Throw();
+ }
+
+ [Fact]
+ public void GetCredentials_should_return_credentials_with_bearer_scheme()
+ {
+ // Arrange
+ const string token = "test-jwt-token";
+ var provider = new StaticJwtCredentialsProvider(token);
+
+ // Act
+ var credentials = provider.GetCredentials();
+
+ // Assert
+ credentials.Should().NotBeNull();
+ credentials.Scheme.Should().Be(AuthenticationConstants.CredentialsScheme.Bearer);
+ credentials.Token.Should().Be(token);
+ }
+
+ [Fact]
+ public async Task GetCredentialsAsync_should_return_credentials_with_bearer_scheme()
+ {
+ // Arrange
+ const string token = "test-jwt-token";
+ var provider = new StaticJwtCredentialsProvider(token);
+
+ // Act
+ var credentials = await provider.GetCredentialsAsync();
+
+ // Assert
+ credentials.Should().NotBeNull();
+ credentials.Scheme.Should().Be(AuthenticationConstants.CredentialsScheme.Bearer);
+ credentials.Token.Should().Be(token);
+ }
+
+ [Fact]
+ public void GetCredentials_called_multiple_times_should_return_same_token()
+ {
+ // Arrange
+ const string token = "consistent-jwt-token";
+ var provider = new StaticJwtCredentialsProvider(token);
+
+ // Act
+ var credentials1 = provider.GetCredentials();
+ var credentials2 = provider.GetCredentials();
+
+ // Assert
+ credentials1.Token.Should().Be(token);
+ credentials2.Token.Should().Be(token);
+ credentials1.Token.Should().Be(credentials2.Token);
+ }
+
+ [Fact]
+ public void AddCredentials_should_set_authorization_header()
+ {
+ // Arrange
+ const string token = "test-jwt-token";
+ var provider = new StaticJwtCredentialsProvider(token);
+ var request = new HttpRequestMessage();
+
+ // Act
+ provider.AddCredentials(request);
+
+ // Assert
+ request.Headers.Authorization.Should().NotBeNull();
+ request.Headers.Authorization!.Scheme.Should().Be(AuthenticationConstants.CredentialsScheme.Bearer);
+ request.Headers.Authorization.Parameter.Should().Be(token);
+ }
+
+ [Fact]
+ public async Task AddCredentialsAsync_should_set_authorization_header()
+ {
+ // Arrange
+ const string token = "test-jwt-token";
+ var provider = new StaticJwtCredentialsProvider(token);
+ var request = new HttpRequestMessage();
+
+ // Act
+ await provider.AddCredentialsAsync(request);
+
+ // Assert
+ request.Headers.Authorization.Should().NotBeNull();
+ request.Headers.Authorization!.Scheme.Should().Be(AuthenticationConstants.CredentialsScheme.Bearer);
+ request.Headers.Authorization.Parameter.Should().Be(token);
+ }
+
+ [Fact]
+ public void AddCredentials_called_multiple_times_should_use_same_token()
+ {
+ // Arrange
+ const string token = "consistent-jwt-token";
+ var provider = new StaticJwtCredentialsProvider(token);
+ var request1 = new HttpRequestMessage();
+ var request2 = new HttpRequestMessage();
+
+ // Act
+ provider.AddCredentials(request1);
+ provider.AddCredentials(request2);
+
+ // Assert
+ request1.Headers.Authorization!.Parameter.Should().Be(token);
+ request2.Headers.Authorization!.Parameter.Should().Be(token);
+ }
+
+ [Fact]
+ public void AddCredentials_should_replace_existing_authorization_header()
+ {
+ // Arrange
+ const string token = "new-jwt-token";
+ var provider = new StaticJwtCredentialsProvider(token);
+ var request = new HttpRequestMessage();
+ request.Headers.Authorization = new AuthenticationHeaderValue("Basic", "old-credentials");
+
+ // Act
+ provider.AddCredentials(request);
+
+ // Assert
+ request.Headers.Authorization.Should().NotBeNull();
+ request.Headers.Authorization!.Scheme.Should().Be(AuthenticationConstants.CredentialsScheme.Bearer);
+ request.Headers.Authorization.Parameter.Should().Be(token);
+ }
+
+ [Fact]
+ public async Task AddCredentialsAsync_with_cancellation_token_should_complete_successfully()
+ {
+ // Arrange
+ const string token = "test-jwt-token";
+ var provider = new StaticJwtCredentialsProvider(token);
+ var request = new HttpRequestMessage();
+ var cancellationToken = CancellationToken.None;
+
+ // Act
+ await provider.AddCredentialsAsync(request, cancellationToken);
+
+ // Assert
+ request.Headers.Authorization.Should().NotBeNull();
+ request.Headers.Authorization!.Parameter.Should().Be(token);
+ }
+}
\ No newline at end of file
diff --git a/tests/Trakx.Canton.ApiClient.Tests/Configuration/CantonApiClientConfigurationTests.cs b/tests/Trakx.Canton.ApiClient.Tests/Configuration/CantonApiClientConfigurationTests.cs
index 6ea22d1..3359b04 100644
--- a/tests/Trakx.Canton.ApiClient.Tests/Configuration/CantonApiClientConfigurationTests.cs
+++ b/tests/Trakx.Canton.ApiClient.Tests/Configuration/CantonApiClientConfigurationTests.cs
@@ -22,9 +22,10 @@ public class CantonApiClientConfigurationTests
[InlineData(typeof(IAnsExternalClient), $"{SpliceApiUrl}/validator")]
[InlineData(typeof(IScanClient), $"{SpliceApiUrl}/scan")]
[InlineData(typeof(IScanProxyClient), $"{SpliceApiUrl}/validator")]
+ [InlineData(typeof(IScanStreamServerClient), $"{SpliceApiUrl}/scan")]
[InlineData(typeof(ISplitwellInternalClient), $"{SpliceApiUrl}/splitwell")]
[InlineData(typeof(ISvInternalClient), $"{SpliceApiUrl}/sv")]
- [InlineData(typeof(ITokenMetadataV1Client), SpliceApiUrl)]
+ [InlineData(typeof(ITokenMetadataV1Client), TokenStandardApiUrl)]
[InlineData(typeof(ITransferInstructionV1Client), TokenStandardApiUrl)]
[InlineData(typeof(IValidatorInternalClient), $"{SpliceApiUrl}/validator")]
[InlineData(typeof(IWalletExternalClient), $"{SpliceApiUrl}/validator")]
diff --git a/tests/Trakx.Canton.ApiClient.Tests/Factories/CantonApiClientFactoryTests.cs b/tests/Trakx.Canton.ApiClient.Tests/Factories/CantonApiClientFactoryTests.cs
index 5935bf1..5b53ee8 100644
--- a/tests/Trakx.Canton.ApiClient.Tests/Factories/CantonApiClientFactoryTests.cs
+++ b/tests/Trakx.Canton.ApiClient.Tests/Factories/CantonApiClientFactoryTests.cs
@@ -149,10 +149,10 @@ public void CreateClient_after_cache_removal_should_create_new_instance()
}
[Fact]
- public void CreateClientWithJwtAuth_should_return_client()
+ public void CreateClientWithJwtAuthFromCurrentRequest_should_return_client()
{
// Act
- var client = _factory.CreateClientWithJwtAuth();
+ var client = _factory.CreateClientWithJwtAuthFromCurrentRequest();
// Assert
client.Should().NotBeNull();
@@ -160,7 +160,7 @@ public void CreateClientWithJwtAuth_should_return_client()
}
[Fact]
- public void CreateClientWithJwtAuth_concurrent_calls_should_return_same_cached_instance()
+ public void CreateClientWithJwtAuthFromCurrentRequest_concurrent_calls_should_return_same_cached_instance()
{
// Arrange
var clients = new System.Collections.Concurrent.ConcurrentBag();
@@ -168,7 +168,7 @@ public void CreateClientWithJwtAuth_concurrent_calls_should_return_same_cached_i
// Act - Create 10 concurrent requests
Parallel.For(0, 10, _ =>
{
- var client = _factory.CreateClientWithJwtAuth();
+ var client = _factory.CreateClientWithJwtAuthFromCurrentRequest();
clients.Add(client);
});
@@ -188,12 +188,148 @@ public void GetApiKeyAuthCacheKey_should_return_the_correct_key()
cacheKey.Should().NotContain(credentials.ClientSecret, "secret should not be in cache key for security");
}
+ [Fact]
+ public void GetJwtAuthFromCurrentCacheKey_should_return_the_correct_key()
+ {
+ var cacheKey = CantonApiClientFactory.GetJwtAuthFromCurrentCacheKey();
+ cacheKey.Should().StartWith("Canton_ApiClient_JwtAuthFromRequest_");
+ cacheKey.Should().Contain(typeof(IValidatorInternalClient).FullName);
+ }
+
[Fact]
public void GetJwtAuthCacheKey_should_return_the_correct_key()
{
- var cacheKey = CantonApiClientFactory.GetJwtAuthCacheKey();
+ const string authToken = "some-jwt-token";
+ var cacheKey = CantonApiClientFactory.GetJwtAuthCacheKey(authToken);
cacheKey.Should().StartWith("Canton_ApiClient_JwtAuth_");
+ cacheKey.Should().NotContain(authToken, "token is stored in hashed form");
cacheKey.Should().Contain(typeof(IValidatorInternalClient).FullName);
+
+ var tokenHash = System.Security.Cryptography.SHA256.HashData(System.Text.Encoding.UTF8.GetBytes(authToken));
+ var tokenHashString = Convert.ToHexString(tokenHash);
+ cacheKey.Should().Contain(tokenHashString);
+ }
+
+ [Fact]
+ public void CreateClientWithJwtAuth_with_valid_token_should_return_client()
+ {
+ // Arrange
+ const string authToken = "valid-jwt-token";
+
+ // Act
+ var client = _factory.CreateClientWithJwtAuth(authToken);
+
+ // Assert
+ client.Should().NotBeNull();
+ client.Should().BeAssignableTo();
+ }
+
+ [Fact]
+ public void CreateClientWithJwtAuth_with_null_token_should_throw_ArgumentException()
+ {
+ // Act
+ var act = () => _factory.CreateClientWithJwtAuth(null!);
+
+ // Assert
+ act.Should().Throw();
+ }
+
+ [Fact]
+ public void CreateClientWithJwtAuth_with_empty_token_should_throw_ArgumentException()
+ {
+ // Act
+ var act = () => _factory.CreateClientWithJwtAuth("");
+
+ // Assert
+ act.Should().Throw();
+ }
+
+ [Fact]
+ public void CreateClientWithJwtAuth_with_whitespace_token_should_throw_ArgumentException()
+ {
+ // Act
+ var act = () => _factory.CreateClientWithJwtAuth(" ");
+
+ // Assert
+ act.Should().Throw();
+ }
+
+ [Fact]
+ public void CreateClientWithJwtAuth_called_twice_with_same_token_should_return_cached_instance()
+ {
+ // Arrange
+ const string authToken = "same-jwt-token";
+
+ // Act
+ var client1 = _factory.CreateClientWithJwtAuth(authToken);
+ var client2 = _factory.CreateClientWithJwtAuth(authToken);
+
+ // Assert
+ client1.Should().BeSameAs(client2, "same token should return cached instance");
+ }
+
+ [Fact]
+ public void CreateClientWithJwtAuth_with_different_tokens_should_return_different_instances()
+ {
+ // Arrange
+ const string token1 = "jwt-token-1";
+ const string token2 = "jwt-token-2";
+
+ // Act
+ var client1 = _factory.CreateClientWithJwtAuth(token1);
+ var client2 = _factory.CreateClientWithJwtAuth(token2);
+
+ // Assert
+ client1.Should().NotBeSameAs(client2, "different tokens should create different clients");
+ }
+
+ [Fact]
+ public void CreateClientWithJwtAuth_with_different_client_types_should_return_different_instances()
+ {
+ // Arrange
+ const string authToken = "jwt-token";
+
+ // Act
+ var validatorClient = _factory.CreateClientWithJwtAuth(authToken);
+ var walletClient = _factory.CreateClientWithJwtAuth(authToken);
+
+ // Assert
+ validatorClient.Should().NotBeSameAs(walletClient, "different client types should create different instances");
+ }
+
+ [Fact]
+ public void CreateClientWithJwtAuth_concurrent_calls_with_same_token_should_return_same_cached_instance()
+ {
+ // Arrange
+ const string authToken = "concurrent-jwt-token";
+ var clients = new System.Collections.Concurrent.ConcurrentBag();
+
+ // Act - Create 10 concurrent requests
+ Parallel.For(0, 10, _ =>
+ {
+ var client = _factory.CreateClientWithJwtAuth(authToken);
+ clients.Add(client);
+ });
+
+ // Assert - All should be the same cached instance
+ clients.Should().HaveCount(10);
+ clients.Distinct().Should().ContainSingle("all concurrent calls with same token should return the same cached instance");
+ }
+
+ [Fact]
+ public void CreateClientWithJwtAuth_after_cache_removal_should_create_new_instance()
+ {
+ // Arrange
+ const string authToken = "expiration-jwt-token";
+ var cacheKey = CantonApiClientFactory.GetJwtAuthCacheKey(authToken);
+
+ // Act
+ var client1 = _factory.CreateClientWithJwtAuth(authToken);
+ _memoryCache.Remove(cacheKey); // Simulate cache expiration
+ var client2 = _factory.CreateClientWithJwtAuth(authToken);
+
+ // Assert
+ client1.Should().NotBeSameAs(client2, "after cache removal, new instance should be created");
}
public void Dispose()
diff --git a/tests/Trakx.Canton.ApiClient.Tests/Integration/ApiClientIntegrationTestBase.cs b/tests/Trakx.Canton.ApiClient.Tests/Integration/ApiClientIntegrationTestBase.cs
index 115d3b1..b6a8ac6 100644
--- a/tests/Trakx.Canton.ApiClient.Tests/Integration/ApiClientIntegrationTestBase.cs
+++ b/tests/Trakx.Canton.ApiClient.Tests/Integration/ApiClientIntegrationTestBase.cs
@@ -25,30 +25,32 @@ protected ApiClientIntegrationTestBase(CantonApiClientFixture fixture, ITestOutp
TransferInstructionClient = Factory.CreateClient(IssuerCredentials);
}
- protected async Task GetLedgerEnfOffset(ILedgerClient? ledgerClient = null)
+ protected async Task GetLedgerEnfOffset(ILedgerClient? ledgerClient = null)
{
ledgerClient ??= LedgerClient;
var response = await ledgerClient.GetV2StateLedgerEnd();
response.IsSuccessful.Should().BeTrue();
response.Content.Should().NotBeNull();
- return response.Content;
+ response.Content.Offset.Should().NotBeNull();
+ return response.Content.Offset.Value;
}
- protected async Task> GetActiveContractsWithTemplateId(string templateId, ILedgerClient? ledgerClient = null)
+ protected async Task> GetActiveContractsWithTemplateId(string templateId, string? registrarPartyId = null, ILedgerClient? ledgerClient = null)
{
+ registrarPartyId ??= RegistrarPartyId;
ledgerClient ??= LedgerClient;
var ledgerEndOffset = await GetLedgerEnfOffset(ledgerClient);
var request = new GetActiveContractsRequest
{
Verbose = false,
- ActiveAtOffset = ledgerEndOffset.Offset,
+ ActiveAtOffset = ledgerEndOffset,
Filter = new TransactionFilter
{
FiltersByParty = new Map_Filters
{
{
- RegistrarPartyId,
+ registrarPartyId,
new Filters
{
Cumulative = new List
@@ -136,4 +138,53 @@ protected async Task GetActiveContractForTemplate(string templ
return allContractIds[0].ContractEntry.JsActiveContract!;
}
+ protected async Task GetEventByContractId(
+ string contractId,
+ string templateId,
+ string? registrarPartyId = null,
+ ILedgerClient? ledgerClient = null)
+ {
+ registrarPartyId ??= RegistrarPartyId;
+ ledgerClient ??= LedgerClient;
+
+ var request = new GetEventsByContractIdRequest
+ {
+ ContractId = contractId,
+ EventFormat = new EventFormat
+ {
+ Verbose = true,
+ FiltersByParty = new Map_Filters
+ {
+ {
+ registrarPartyId,
+ new Filters
+ {
+ Cumulative = new List
+ {
+ new()
+ {
+ IdentifierFilter = new IdentifierFilter
+ {
+ TemplateFilter = new TemplateFilter
+ {
+ Value = new TemplateFilter1
+ {
+ TemplateId = templateId,
+ IncludeCreatedEventBlob = true
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ };
+
+ var response = await ledgerClient.PostV2EventsEventsByContractId(request);
+ response.IsSuccessful.Should().BeTrue();
+ response.Content.Should().NotBeNull();
+ return response.Content;
+ }
}
\ No newline at end of file
diff --git a/tests/Trakx.Canton.ApiClient.Tests/Integration/IntegrationTests.cs b/tests/Trakx.Canton.ApiClient.Tests/Integration/IntegrationTests.cs
index 7062beb..7218ae7 100644
--- a/tests/Trakx.Canton.ApiClient.Tests/Integration/IntegrationTests.cs
+++ b/tests/Trakx.Canton.ApiClient.Tests/Integration/IntegrationTests.cs
@@ -3,7 +3,7 @@
namespace Trakx.Canton.ApiClient.Tests.Integration;
public class IntegrationTests(CantonApiClientFixture fixture, ITestOutputHelper output)
- : ApiClientTestBase(fixture, output)
+ : ApiClientIntegrationTestBase(fixture, output)
{
[Fact]
public async Task ValidatorInternalClient_IsLive_should_succeed()
@@ -40,4 +40,13 @@ public async Task LedgerClient_should_succeed()
var response = await client.GetV2Users();
response.IsSuccessful.Should().BeTrue();
}
+
+ [Fact]
+ public async Task TokenMetadataV1Client_should_return_all_instruments_metadata()
+ {
+ var client = ServiceProvider.GetRequiredService();
+ var response = await client.ListInstruments();
+ response.IsSuccessful.Should().BeTrue();
+ response.Content!.Instruments.Should().NotBeEmpty();
+ }
}
\ No newline at end of file