From c47bc8effb1afc17771758377c769b2f00f830f8 Mon Sep 17 00:00:00 2001 From: cloudpdf-sdk-bot Date: Sun, 23 Aug 2026 21:39:17 +0000 Subject: [PATCH] chore: generate CloudPDF .NET SDK 3.0.0-next.7 --- .fern/metadata.json | 6 +++--- cloudpdf-generation.json | 8 ++++---- src/CloudPDF/CloudPDF.csproj | 2 +- src/CloudPDF/Core/Public/Version.cs | 2 +- .../Requests/DocumentsImportFromRequest.cs | 15 +++++++++++++++ .../Documents/Requests/DocumentsInitRequest.cs | 3 +++ .../Types/DocumentsImportFromRequestExpected.cs | 9 +++++++++ .../Types/DocumentsImportFromRequestSource.cs | 3 +++ .../DocumentsImportFromRequestSourceConnection.cs | 12 ++++++++++++ .../Types/DocumentsImportFromRequestSourceUrl.cs | 6 ++++++ 10 files changed, 57 insertions(+), 9 deletions(-) diff --git a/.fern/metadata.json b/.fern/metadata.json index 4701f11..5bae4e5 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -10,10 +10,10 @@ "base-exception-class-name": "CloudPDFException", "base-api-exception-class-name": "CloudPDFApiException" }, - "originGitCommit": "32635f40577b214f6a6b3189a2271425c3a574fd", + "originGitCommit": "1345fb7a45ee660a352774d29decce25cb54b8ea", "originGitCommitIsDirty": false, "invokedBy": "ci", - "requestedVersion": "3.0.0-next.6", + "requestedVersion": "3.0.0-next.7", "ciProvider": "github", - "sdkVersion": "3.0.0-next.6" + "sdkVersion": "3.0.0-next.7" } \ No newline at end of file diff --git a/cloudpdf-generation.json b/cloudpdf-generation.json index 3a729ba..bdc208c 100644 --- a/cloudpdf-generation.json +++ b/cloudpdf-generation.json @@ -1,12 +1,12 @@ { "language": "csharp", - "canonicalVersion": "3.0.0-next.6", - "sdkVersion": "3.0.0-next.6", + "canonicalVersion": "3.0.0-next.7", + "sdkVersion": "3.0.0-next.7", "source": { "repository": "embedpdf/embed-pdf-viewer", "openapi": "cloudpdf/contract/openapi.json", - "openapiSha256": "b3e236a932673e27e05825352e1bc3675369d7505040bf7d7760e542aae8d38d", - "gitCommit": "32635f40577b214f6a6b3189a2271425c3a574fd", + "openapiSha256": "f6fc610bfd193f278a7e8ec063d9e96b8fef86bdec7ade5e7bc4b19879673147", + "gitCommit": "1345fb7a45ee660a352774d29decce25cb54b8ea", "gitCommitIsDirty": false }, "fern": { diff --git a/src/CloudPDF/CloudPDF.csproj b/src/CloudPDF/CloudPDF.csproj index 1631bb2..d9a48f9 100644 --- a/src/CloudPDF/CloudPDF.csproj +++ b/src/CloudPDF/CloudPDF.csproj @@ -11,7 +11,7 @@ enable 12 enable - 3.0.0-next.6 + 3.0.0-next.7 3.0.0.0 3.0.0.0 README.md diff --git a/src/CloudPDF/Core/Public/Version.cs b/src/CloudPDF/Core/Public/Version.cs index 71c600a..ba0eb12 100644 --- a/src/CloudPDF/Core/Public/Version.cs +++ b/src/CloudPDF/Core/Public/Version.cs @@ -3,5 +3,5 @@ namespace CloudPDF; [Serializable] internal class Version { - public const string Current = "3.0.0-next.6"; + public const string Current = "3.0.0-next.7"; } diff --git a/src/CloudPDF/Documents/Requests/DocumentsImportFromRequest.cs b/src/CloudPDF/Documents/Requests/DocumentsImportFromRequest.cs index eceb67b..52fb269 100644 --- a/src/CloudPDF/Documents/Requests/DocumentsImportFromRequest.cs +++ b/src/CloudPDF/Documents/Requests/DocumentsImportFromRequest.cs @@ -9,24 +9,39 @@ public record DocumentsImportFromRequest [JsonIgnore] public required string TenantId { get; set; } + /// + /// Where CloudPDF pulls the bytes from. The two shapes differ in WHO supplies the authority to read, not in which storage vendor holds the file. + /// [JsonPropertyName("source")] public required DocumentsImportFromRequestSource Source { get; set; } + /// + /// Integrity pins, enforced when present. When absent, the server-observed values become authoritative. + /// [JsonPropertyName("expected")] public DocumentsImportFromRequestExpected? Expected { get; set; } [JsonPropertyName("metadata")] public Dictionary? Metadata { get; set; } + /// + /// Retrying with the same key resumes the same document rather than importing a second copy — including after a 502. + /// [JsonPropertyName("idempotencyKey")] public string? IdempotencyKey { get; set; } + /// + /// always-create (default) creates a new document every time. reuse-existing returns a document that already holds the same content instead of storing it twice. + /// [JsonPropertyName("dedupMode")] public DocumentsImportFromRequestDedupMode? DedupMode { get; set; } [JsonPropertyName("docId")] public string? DocId { get; set; } + /// + /// sync (default) holds the response open for the whole transfer. async answers 202 with the document pending and transfers in the background; it requires a connection source, and filesystem connections additionally require expected.sha256. + /// [JsonPropertyName("mode")] public DocumentsImportFromRequestMode? Mode { get; set; } diff --git a/src/CloudPDF/Documents/Requests/DocumentsInitRequest.cs b/src/CloudPDF/Documents/Requests/DocumentsInitRequest.cs index 2a6f88c..b3bd7f6 100644 --- a/src/CloudPDF/Documents/Requests/DocumentsInitRequest.cs +++ b/src/CloudPDF/Documents/Requests/DocumentsInitRequest.cs @@ -21,6 +21,9 @@ public record DocumentsInitRequest [JsonPropertyName("idempotencyKey")] public string? IdempotencyKey { get; set; } + /// + /// always-create (default) creates a new document every time. reuse-existing returns a document that already holds the same content instead of storing it twice. + /// [JsonPropertyName("dedupMode")] public DocumentsInitRequestDedupMode? DedupMode { get; set; } diff --git a/src/CloudPDF/Documents/Types/DocumentsImportFromRequestExpected.cs b/src/CloudPDF/Documents/Types/DocumentsImportFromRequestExpected.cs index db8f9f8..0802ca2 100644 --- a/src/CloudPDF/Documents/Types/DocumentsImportFromRequestExpected.cs +++ b/src/CloudPDF/Documents/Types/DocumentsImportFromRequestExpected.cs @@ -4,6 +4,9 @@ namespace CloudPDF; +/// +/// Integrity pins, enforced when present. When absent, the server-observed values become authoritative. +/// [Serializable] public record DocumentsImportFromRequestExpected : IJsonOnDeserialized { @@ -11,9 +14,15 @@ public record DocumentsImportFromRequestExpected : IJsonOnDeserialized private readonly IDictionary _extensionData = new Dictionary(); + /// + /// Checked against the source's declared Content-Length before the transfer. + /// [JsonPropertyName("sizeBytes")] public int? SizeBytes { get; set; } + /// + /// Checked against the server-observed digest after the transfer. Required when dedupMode is reuse-existing. + /// [JsonPropertyName("sha256")] public string? Sha256 { get; set; } diff --git a/src/CloudPDF/Documents/Types/DocumentsImportFromRequestSource.cs b/src/CloudPDF/Documents/Types/DocumentsImportFromRequestSource.cs index 2a68934..ac106b2 100644 --- a/src/CloudPDF/Documents/Types/DocumentsImportFromRequestSource.cs +++ b/src/CloudPDF/Documents/Types/DocumentsImportFromRequestSource.cs @@ -8,6 +8,9 @@ namespace CloudPDF; +/// +/// Where CloudPDF pulls the bytes from. The two shapes differ in WHO supplies the authority to read, not in which storage vendor holds the file. +/// [JsonConverter(typeof(DocumentsImportFromRequestSource.JsonConverter))] [Serializable] public record DocumentsImportFromRequestSource diff --git a/src/CloudPDF/Documents/Types/DocumentsImportFromRequestSourceConnection.cs b/src/CloudPDF/Documents/Types/DocumentsImportFromRequestSourceConnection.cs index 865ab40..c92763b 100644 --- a/src/CloudPDF/Documents/Types/DocumentsImportFromRequestSourceConnection.cs +++ b/src/CloudPDF/Documents/Types/DocumentsImportFromRequestSourceConnection.cs @@ -4,6 +4,9 @@ namespace CloudPDF; +/// +/// The operator pre-registered the authority: the request names a connection and a key inside it. Which provider backs the connection (S3, GCS, Azure Blob, filesystem, ...) is deployment configuration, never wire surface. +/// [Serializable] public record DocumentsImportFromRequestSourceConnection : IJsonOnDeserialized { @@ -11,12 +14,21 @@ public record DocumentsImportFromRequestSourceConnection : IJsonOnDeserialized private readonly IDictionary _extensionData = new Dictionary(); + /// + /// The operator-registered storage connection to read from. + /// [JsonPropertyName("connectionId")] public required string ConnectionId { get; set; } + /// + /// The object key to read, inside the connection's configured scope. At most 1024 UTF-8 bytes. + /// [JsonPropertyName("key")] public required string Key { get; set; } + /// + /// Pins a specific version of the object. Provider-interpreted (S3 VersionId, GCS generation, Azure version id); providers without versioning reject it. + /// [JsonPropertyName("revision")] public string? Revision { get; set; } diff --git a/src/CloudPDF/Documents/Types/DocumentsImportFromRequestSourceUrl.cs b/src/CloudPDF/Documents/Types/DocumentsImportFromRequestSourceUrl.cs index 0bac93e..116374b 100644 --- a/src/CloudPDF/Documents/Types/DocumentsImportFromRequestSourceUrl.cs +++ b/src/CloudPDF/Documents/Types/DocumentsImportFromRequestSourceUrl.cs @@ -4,6 +4,9 @@ namespace CloudPDF; +/// +/// The caller supplies the authority: a presigned S3/GCS/Azure/R2/MinIO GET, or any HTTPS endpoint the deployment import policy allows. The URL is a capability — treat it as a secret. CloudPDF never echoes its query string back in errors, logs, or stored failure reasons. +/// [Serializable] public record DocumentsImportFromRequestSourceUrl : IJsonOnDeserialized { @@ -11,6 +14,9 @@ public record DocumentsImportFromRequestSourceUrl : IJsonOnDeserialized private readonly IDictionary _extensionData = new Dictionary(); + /// + /// The URL to fetch. Must be allowed by the deployment import policy (scheme, network range, size) and must declare a length. + /// [JsonPropertyName("url")] public required string Url { get; set; }