From 80871d4169c8ae6f5c0982088aaba2d6d5a28fe4 Mon Sep 17 00:00:00 2001 From: cloudpdf-sdk-bot Date: Thu, 20 Aug 2026 21:07:09 +0000 Subject: [PATCH] chore: generate CloudPDF Java SDK 3.0.0-alpha.6 --- .fern/metadata.json | 4 +- build.gradle | 4 +- cloudpdf-generation.json | 8 +- reference.md | 123 ++++ src/main/java/api/core/ClientOptions.java | 2 +- src/main/java/api/errors/BadGatewayError.java | 33 + .../documents/AsyncDocumentsClient.java | 18 + .../documents/AsyncRawDocumentsClient.java | 111 +++ .../resources/documents/DocumentsClient.java | 17 + .../documents/RawDocumentsClient.java | 90 +++ .../requests/DocumentsImportFromRequest.java | 308 +++++++++ .../DocumentsImportFromRequestDedupMode.java | 86 +++ .../DocumentsImportFromRequestExpected.java | 129 ++++ .../types/DocumentsImportFromRequestMode.java | 84 +++ .../DocumentsImportFromRequestSource.java | 222 ++++++ ...entsImportFromRequestSourceConnection.java | 172 +++++ .../DocumentsImportFromRequestSourceUrl.java | 119 ++++ .../types/DocumentsImportFrom200Response.java | 143 ++++ ...ocumentsImportFrom200ResponseDocument.java | 652 ++++++++++++++++++ ...ntsImportFrom200ResponseDocumentState.java | 108 +++ ...From200ResponseDocumentThumbnailState.java | 108 +++ .../DocumentsImportFrom200ResponseTag.java | 97 +++ .../types/DocumentsImportFrom202Response.java | 143 ++++ ...ocumentsImportFrom202ResponseDocument.java | 652 ++++++++++++++++++ ...ntsImportFrom202ResponseDocumentState.java | 108 +++ ...From202ResponseDocumentThumbnailState.java | 108 +++ .../DocumentsImportFrom202ResponseTag.java | 97 +++ .../types/DocumentsImportFrom400Response.java | 119 ++++ .../DocumentsImportFrom400ResponseError.java | 141 ++++ .../types/DocumentsImportFrom403Response.java | 119 ++++ .../DocumentsImportFrom403ResponseError.java | 141 ++++ .../types/DocumentsImportFrom502Response.java | 119 ++++ .../DocumentsImportFrom502ResponseError.java | 141 ++++ 33 files changed, 4517 insertions(+), 9 deletions(-) create mode 100644 src/main/java/api/errors/BadGatewayError.java create mode 100644 src/main/java/api/resources/documents/requests/DocumentsImportFromRequest.java create mode 100644 src/main/java/api/resources/documents/types/DocumentsImportFromRequestDedupMode.java create mode 100644 src/main/java/api/resources/documents/types/DocumentsImportFromRequestExpected.java create mode 100644 src/main/java/api/resources/documents/types/DocumentsImportFromRequestMode.java create mode 100644 src/main/java/api/resources/documents/types/DocumentsImportFromRequestSource.java create mode 100644 src/main/java/api/resources/documents/types/DocumentsImportFromRequestSourceConnection.java create mode 100644 src/main/java/api/resources/documents/types/DocumentsImportFromRequestSourceUrl.java create mode 100644 src/main/java/api/types/DocumentsImportFrom200Response.java create mode 100644 src/main/java/api/types/DocumentsImportFrom200ResponseDocument.java create mode 100644 src/main/java/api/types/DocumentsImportFrom200ResponseDocumentState.java create mode 100644 src/main/java/api/types/DocumentsImportFrom200ResponseDocumentThumbnailState.java create mode 100644 src/main/java/api/types/DocumentsImportFrom200ResponseTag.java create mode 100644 src/main/java/api/types/DocumentsImportFrom202Response.java create mode 100644 src/main/java/api/types/DocumentsImportFrom202ResponseDocument.java create mode 100644 src/main/java/api/types/DocumentsImportFrom202ResponseDocumentState.java create mode 100644 src/main/java/api/types/DocumentsImportFrom202ResponseDocumentThumbnailState.java create mode 100644 src/main/java/api/types/DocumentsImportFrom202ResponseTag.java create mode 100644 src/main/java/api/types/DocumentsImportFrom400Response.java create mode 100644 src/main/java/api/types/DocumentsImportFrom400ResponseError.java create mode 100644 src/main/java/api/types/DocumentsImportFrom403Response.java create mode 100644 src/main/java/api/types/DocumentsImportFrom403ResponseError.java create mode 100644 src/main/java/api/types/DocumentsImportFrom502Response.java create mode 100644 src/main/java/api/types/DocumentsImportFrom502ResponseError.java diff --git a/.fern/metadata.json b/.fern/metadata.json index 53cbf56..fe05088 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -10,9 +10,9 @@ "base-exception-class-name": "CloudPDFException", "base-api-exception-class-name": "CloudPDFApiException" }, - "originGitCommit": "81e6a2097d2997ef713a3013668e5eae0e748575", + "originGitCommit": "32635f40577b214f6a6b3189a2271425c3a574fd", "originGitCommitIsDirty": false, "invokedBy": "ci", - "requestedVersion": "3.0.0-alpha.5", + "requestedVersion": "3.0.0-alpha.6", "ciProvider": "github" } \ No newline at end of file diff --git a/build.gradle b/build.gradle index 8d84f69..9f4d9c5 100644 --- a/build.gradle +++ b/build.gradle @@ -46,7 +46,7 @@ java { group = 'com.cloudpdf' -version = '3.0.0-alpha.5' +version = '3.0.0-alpha.6' jar { dependsOn(":generatePomFileForMavenPublication") @@ -73,7 +73,7 @@ publishing { maven(MavenPublication) { groupId = 'com.cloudpdf' artifactId = 'sdk' - version = '3.0.0-alpha.5' + version = '3.0.0-alpha.6' from components.java pom { name = 'CloudPDF' diff --git a/cloudpdf-generation.json b/cloudpdf-generation.json index de3bfc1..9ce216f 100644 --- a/cloudpdf-generation.json +++ b/cloudpdf-generation.json @@ -1,12 +1,12 @@ { "language": "java", - "canonicalVersion": "3.0.0-next.5", - "sdkVersion": "3.0.0-alpha.5", + "canonicalVersion": "3.0.0-next.6", + "sdkVersion": "3.0.0-alpha.6", "source": { "repository": "embedpdf/embed-pdf-viewer", "openapi": "cloudpdf/contract/openapi.json", - "openapiSha256": "e86b3f1766a77c28cb782a6513b5a86998668cd4e688e5b5ac27342e58637cd7", - "gitCommit": "81e6a2097d2997ef713a3013668e5eae0e748575", + "openapiSha256": "b3e236a932673e27e05825352e1bc3675369d7505040bf7d7760e542aae8d38d", + "gitCommit": "32635f40577b214f6a6b3189a2271425c3a574fd", "gitCommitIsDirty": false }, "fern": { diff --git a/reference.md b/reference.md index 4728092..4026764 100644 --- a/reference.md +++ b/reference.md @@ -1628,6 +1628,129 @@ client.documents().uploadProxy( + + + + +
client.documents.importFrom(tenantId, request) -> DocumentsImportFrom200Response +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Default mode is synchronous and bounded: the response returns only after the transfer verified and committed (or failed). mode=async (connection sources only) answers 202 immediately and an in-process worker performs the transfer with leased, fenced retries; poll the document until ready/failed. The deployment import policy gates scheme, network range, and size; sources must declare a length. CloudPDF copies and owns the bytes — the source is never referenced in place. A 502 marks a retryable upstream failure: retry with the same idempotencyKey to resume the same document. URL sources are capabilities and never echoed back. Connection sources name operator-registered storage (bucket/prefix scope, allowed credential classes, and tenant bindings are deployment configuration); `revision` is provider-interpreted (S3 VersionId, GCS generation, Azure version id). +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```java +client.documents().importFrom( + "tenantId", + DocumentsImportFromRequest + .builder() + .source( + DocumentsImportFromRequestSource.url( + DocumentsImportFromRequestSourceUrl + .builder() + .url("url") + .build() + ) + ) + .build() +); +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**tenantId:** `String` + +
+
+ +
+
+ +**source:** `DocumentsImportFromRequestSource` + +
+
+ +
+
+ +**expected:** `Optional` + +
+
+ +
+
+ +**metadata:** `Optional>` + +
+
+ +
+
+ +**idempotencyKey:** `Optional` + +
+
+ +
+
+ +**dedupMode:** `Optional` + +
+
+ +
+
+ +**docId:** `Optional` + +
+
+ +
+
+ +**mode:** `Optional` + +
+
+
+
+ +
diff --git a/src/main/java/api/core/ClientOptions.java b/src/main/java/api/core/ClientOptions.java index 7956214..271062f 100644 --- a/src/main/java/api/core/ClientOptions.java +++ b/src/main/java/api/core/ClientOptions.java @@ -49,7 +49,7 @@ private ClientOptions( { put("X-Fern-Language", "JAVA"); put("X-Fern-SDK-Name", "com.cloudpdf:sdk"); - put("X-Fern-SDK-Version", "3.0.0-alpha.5"); + put("X-Fern-SDK-Version", "3.0.0-alpha.6"); } }); this.headerSuppliers = headerSuppliers; diff --git a/src/main/java/api/errors/BadGatewayError.java b/src/main/java/api/errors/BadGatewayError.java new file mode 100644 index 0000000..c0f5917 --- /dev/null +++ b/src/main/java/api/errors/BadGatewayError.java @@ -0,0 +1,33 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.errors; + +import com.cloudpdf.api.core.CloudPDFApiException; +import com.cloudpdf.api.types.DocumentsImportFrom502Response; +import okhttp3.Response; + +public final class BadGatewayError extends CloudPDFApiException { + /** + * The body of the response that triggered the exception. + */ + private final DocumentsImportFrom502Response body; + + public BadGatewayError(DocumentsImportFrom502Response body) { + super("BadGatewayError", 502, body); + this.body = body; + } + + public BadGatewayError(DocumentsImportFrom502Response body, Response rawResponse) { + super("BadGatewayError", 502, body, rawResponse); + this.body = body; + } + + /** + * @return the body + */ + @java.lang.Override + public DocumentsImportFrom502Response body() { + return this.body; + } +} diff --git a/src/main/java/api/resources/documents/AsyncDocumentsClient.java b/src/main/java/api/resources/documents/AsyncDocumentsClient.java index 3d38c6d..c51e0ae 100644 --- a/src/main/java/api/resources/documents/AsyncDocumentsClient.java +++ b/src/main/java/api/resources/documents/AsyncDocumentsClient.java @@ -7,6 +7,7 @@ import com.cloudpdf.api.core.RequestOptions; import com.cloudpdf.api.resources.documents.requests.DeleteDocumentsRequest; import com.cloudpdf.api.resources.documents.requests.DocumentsCommitRequest; +import com.cloudpdf.api.resources.documents.requests.DocumentsImportFromRequest; import com.cloudpdf.api.resources.documents.requests.DocumentsInitRequest; import com.cloudpdf.api.resources.documents.requests.DownloadDocumentsRequest; import com.cloudpdf.api.resources.documents.requests.GetDocumentsRequest; @@ -15,6 +16,7 @@ import com.cloudpdf.api.resources.documents.requests.UploadProxyDocumentsRequest; import com.cloudpdf.api.types.DocumentsCommit200Response; import com.cloudpdf.api.types.DocumentsGet200Response; +import com.cloudpdf.api.types.DocumentsImportFrom200Response; import com.cloudpdf.api.types.DocumentsInit200Response; import com.cloudpdf.api.types.DocumentsList200Response; import com.cloudpdf.api.types.DocumentsUploadProxy200Response; @@ -184,6 +186,22 @@ public CompletableFuture uploadProxy( .thenApply(response -> response.body()); } + /** + * Default mode is synchronous and bounded: the response returns only after the transfer verified and committed (or failed). mode=async (connection sources only) answers 202 immediately and an in-process worker performs the transfer with leased, fenced retries; poll the document until ready/failed. The deployment import policy gates scheme, network range, and size; sources must declare a length. CloudPDF copies and owns the bytes — the source is never referenced in place. A 502 marks a retryable upstream failure: retry with the same idempotencyKey to resume the same document. URL sources are capabilities and never echoed back. Connection sources name operator-registered storage (bucket/prefix scope, allowed credential classes, and tenant bindings are deployment configuration); revision is provider-interpreted (S3 VersionId, GCS generation, Azure version id). + */ + public CompletableFuture importFrom( + String tenantId, DocumentsImportFromRequest request) { + return this.rawClient.importFrom(tenantId, request).thenApply(response -> response.body()); + } + + /** + * Default mode is synchronous and bounded: the response returns only after the transfer verified and committed (or failed). mode=async (connection sources only) answers 202 immediately and an in-process worker performs the transfer with leased, fenced retries; poll the document until ready/failed. The deployment import policy gates scheme, network range, and size; sources must declare a length. CloudPDF copies and owns the bytes — the source is never referenced in place. A 502 marks a retryable upstream failure: retry with the same idempotencyKey to resume the same document. URL sources are capabilities and never echoed back. Connection sources name operator-registered storage (bucket/prefix scope, allowed credential classes, and tenant bindings are deployment configuration); revision is provider-interpreted (S3 VersionId, GCS generation, Azure version id). + */ + public CompletableFuture importFrom( + String tenantId, DocumentsImportFromRequest request, RequestOptions requestOptions) { + return this.rawClient.importFrom(tenantId, request, requestOptions).thenApply(response -> response.body()); + } + public CompletableFuture init(String tenantId, DocumentsInitRequest request) { return this.rawClient.init(tenantId, request).thenApply(response -> response.body()); } diff --git a/src/main/java/api/resources/documents/AsyncRawDocumentsClient.java b/src/main/java/api/resources/documents/AsyncRawDocumentsClient.java index ef9bdde..5f55c56 100644 --- a/src/main/java/api/resources/documents/AsyncRawDocumentsClient.java +++ b/src/main/java/api/resources/documents/AsyncRawDocumentsClient.java @@ -14,12 +14,14 @@ import com.cloudpdf.api.core.RequestOptions; import com.cloudpdf.api.core.ResponseBodyInputStream; import com.cloudpdf.api.core.RetryInterceptor; +import com.cloudpdf.api.errors.BadGatewayError; import com.cloudpdf.api.errors.BadRequestError; import com.cloudpdf.api.errors.ConflictError; import com.cloudpdf.api.errors.ForbiddenError; import com.cloudpdf.api.errors.NotFoundError; import com.cloudpdf.api.resources.documents.requests.DeleteDocumentsRequest; import com.cloudpdf.api.resources.documents.requests.DocumentsCommitRequest; +import com.cloudpdf.api.resources.documents.requests.DocumentsImportFromRequest; import com.cloudpdf.api.resources.documents.requests.DocumentsInitRequest; import com.cloudpdf.api.resources.documents.requests.DownloadDocumentsRequest; import com.cloudpdf.api.resources.documents.requests.GetDocumentsRequest; @@ -28,6 +30,8 @@ import com.cloudpdf.api.resources.documents.requests.UploadProxyDocumentsRequest; import com.cloudpdf.api.types.DocumentsCommit200Response; import com.cloudpdf.api.types.DocumentsGet200Response; +import com.cloudpdf.api.types.DocumentsImportFrom200Response; +import com.cloudpdf.api.types.DocumentsImportFrom502Response; import com.cloudpdf.api.types.DocumentsInit200Response; import com.cloudpdf.api.types.DocumentsList200Response; import com.cloudpdf.api.types.DocumentsUploadProxy200Response; @@ -1043,6 +1047,113 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) { return future; } + /** + * Default mode is synchronous and bounded: the response returns only after the transfer verified and committed (or failed). mode=async (connection sources only) answers 202 immediately and an in-process worker performs the transfer with leased, fenced retries; poll the document until ready/failed. The deployment import policy gates scheme, network range, and size; sources must declare a length. CloudPDF copies and owns the bytes — the source is never referenced in place. A 502 marks a retryable upstream failure: retry with the same idempotencyKey to resume the same document. URL sources are capabilities and never echoed back. Connection sources name operator-registered storage (bucket/prefix scope, allowed credential classes, and tenant bindings are deployment configuration); revision is provider-interpreted (S3 VersionId, GCS generation, Azure version id). + */ + public CompletableFuture> importFrom( + String tenantId, DocumentsImportFromRequest request) { + return importFrom(tenantId, request, null); + } + + /** + * Default mode is synchronous and bounded: the response returns only after the transfer verified and committed (or failed). mode=async (connection sources only) answers 202 immediately and an in-process worker performs the transfer with leased, fenced retries; poll the document until ready/failed. The deployment import policy gates scheme, network range, and size; sources must declare a length. CloudPDF copies and owns the bytes — the source is never referenced in place. A 502 marks a retryable upstream failure: retry with the same idempotencyKey to resume the same document. URL sources are capabilities and never echoed back. Connection sources name operator-registered storage (bucket/prefix scope, allowed credential classes, and tenant bindings are deployment configuration); revision is provider-interpreted (S3 VersionId, GCS generation, Azure version id). + */ + public CompletableFuture> importFrom( + String tenantId, DocumentsImportFromRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("v1/tenants") + .addPathSegment(tenantId) + .addPathSegments("documents") + .addPathSegments("import"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((_key, _value) -> { + httpUrl.addQueryParameter(_key, _value); + }); + } + RequestBody body; + try { + body = RequestBody.create( + ObjectMappers.JSON_MAPPER.writeValueAsBytes(request), MediaTypes.APPLICATION_JSON); + } catch (JsonProcessingException e) { + throw new CloudPDFException("Failed to serialize request", e); + } + Request okhttpRequest = new Request.Builder() + .url(httpUrl.build()) + .method("POST", body) + .headers(Headers.of(clientOptions.headers(requestOptions))) + .addHeader("Content-Type", "application/json") + .addHeader("Accept", "application/json") + .build(); + OkHttpClient client = clientOptions.httpClient(); + if (requestOptions != null && requestOptions.getTimeout().isPresent()) { + client = clientOptions.httpClientWithTimeout(requestOptions); + } + if (requestOptions != null && requestOptions.getMaxRetries().isPresent()) { + okhttpRequest = okhttpRequest + .newBuilder() + .tag( + RetryInterceptor.MaxRetriesOverride.class, + new RetryInterceptor.MaxRetriesOverride( + requestOptions.getMaxRetries().get())) + .build(); + } + CompletableFuture> future = + new CompletableFuture<>(); + client.newCall(okhttpRequest).enqueue(new Callback() { + @Override + public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException { + try (ResponseBody responseBody = response.body()) { + String responseBodyString = responseBody != null ? responseBody.string() : "{}"; + if (response.isSuccessful()) { + future.complete(new CloudPDFClientHttpResponse<>( + ObjectMappers.JSON_MAPPER.readValue( + responseBodyString, DocumentsImportFrom200Response.class), + response)); + return; + } + try { + switch (response.code()) { + case 400: + future.completeExceptionally(new BadRequestError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), + response)); + return; + case 403: + future.completeExceptionally(new ForbiddenError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), + response)); + return; + case 502: + future.completeExceptionally(new BadGatewayError( + ObjectMappers.JSON_MAPPER.readValue( + responseBodyString, DocumentsImportFrom502Response.class), + response)); + return; + } + } catch (JsonProcessingException ignored) { + // unable to map error response, throwing generic error + } + Object errorBody = ObjectMappers.parseErrorBody(responseBodyString); + future.completeExceptionally(new CloudPDFApiException( + "Error with status code " + response.code(), response.code(), errorBody, response)); + return; + } catch (JsonProcessingException e) { + future.completeExceptionally( + new CloudPDFException("Failed to deserialize response: " + e.getMessage(), e)); + } catch (IOException e) { + future.completeExceptionally(new CloudPDFException("Network error executing HTTP request", e)); + } + } + + @Override + public void onFailure(@NotNull Call call, @NotNull IOException e) { + future.completeExceptionally(new CloudPDFException("Network error executing HTTP request", e)); + } + }); + return future; + } + public CompletableFuture> init( String tenantId, DocumentsInitRequest request) { return init(tenantId, request, null); diff --git a/src/main/java/api/resources/documents/DocumentsClient.java b/src/main/java/api/resources/documents/DocumentsClient.java index 5f5788f..834e08e 100644 --- a/src/main/java/api/resources/documents/DocumentsClient.java +++ b/src/main/java/api/resources/documents/DocumentsClient.java @@ -7,6 +7,7 @@ import com.cloudpdf.api.core.RequestOptions; import com.cloudpdf.api.resources.documents.requests.DeleteDocumentsRequest; import com.cloudpdf.api.resources.documents.requests.DocumentsCommitRequest; +import com.cloudpdf.api.resources.documents.requests.DocumentsImportFromRequest; import com.cloudpdf.api.resources.documents.requests.DocumentsInitRequest; import com.cloudpdf.api.resources.documents.requests.DownloadDocumentsRequest; import com.cloudpdf.api.resources.documents.requests.GetDocumentsRequest; @@ -15,6 +16,7 @@ import com.cloudpdf.api.resources.documents.requests.UploadProxyDocumentsRequest; import com.cloudpdf.api.types.DocumentsCommit200Response; import com.cloudpdf.api.types.DocumentsGet200Response; +import com.cloudpdf.api.types.DocumentsImportFrom200Response; import com.cloudpdf.api.types.DocumentsInit200Response; import com.cloudpdf.api.types.DocumentsList200Response; import com.cloudpdf.api.types.DocumentsUploadProxy200Response; @@ -180,6 +182,21 @@ public DocumentsUploadProxy200Response uploadProxy( .body(); } + /** + * Default mode is synchronous and bounded: the response returns only after the transfer verified and committed (or failed). mode=async (connection sources only) answers 202 immediately and an in-process worker performs the transfer with leased, fenced retries; poll the document until ready/failed. The deployment import policy gates scheme, network range, and size; sources must declare a length. CloudPDF copies and owns the bytes — the source is never referenced in place. A 502 marks a retryable upstream failure: retry with the same idempotencyKey to resume the same document. URL sources are capabilities and never echoed back. Connection sources name operator-registered storage (bucket/prefix scope, allowed credential classes, and tenant bindings are deployment configuration); revision is provider-interpreted (S3 VersionId, GCS generation, Azure version id). + */ + public DocumentsImportFrom200Response importFrom(String tenantId, DocumentsImportFromRequest request) { + return this.rawClient.importFrom(tenantId, request).body(); + } + + /** + * Default mode is synchronous and bounded: the response returns only after the transfer verified and committed (or failed). mode=async (connection sources only) answers 202 immediately and an in-process worker performs the transfer with leased, fenced retries; poll the document until ready/failed. The deployment import policy gates scheme, network range, and size; sources must declare a length. CloudPDF copies and owns the bytes — the source is never referenced in place. A 502 marks a retryable upstream failure: retry with the same idempotencyKey to resume the same document. URL sources are capabilities and never echoed back. Connection sources name operator-registered storage (bucket/prefix scope, allowed credential classes, and tenant bindings are deployment configuration); revision is provider-interpreted (S3 VersionId, GCS generation, Azure version id). + */ + public DocumentsImportFrom200Response importFrom( + String tenantId, DocumentsImportFromRequest request, RequestOptions requestOptions) { + return this.rawClient.importFrom(tenantId, request, requestOptions).body(); + } + public DocumentsInit200Response init(String tenantId, DocumentsInitRequest request) { return this.rawClient.init(tenantId, request).body(); } diff --git a/src/main/java/api/resources/documents/RawDocumentsClient.java b/src/main/java/api/resources/documents/RawDocumentsClient.java index d59065f..e1737fc 100644 --- a/src/main/java/api/resources/documents/RawDocumentsClient.java +++ b/src/main/java/api/resources/documents/RawDocumentsClient.java @@ -14,12 +14,14 @@ import com.cloudpdf.api.core.RequestOptions; import com.cloudpdf.api.core.ResponseBodyInputStream; import com.cloudpdf.api.core.RetryInterceptor; +import com.cloudpdf.api.errors.BadGatewayError; import com.cloudpdf.api.errors.BadRequestError; import com.cloudpdf.api.errors.ConflictError; import com.cloudpdf.api.errors.ForbiddenError; import com.cloudpdf.api.errors.NotFoundError; import com.cloudpdf.api.resources.documents.requests.DeleteDocumentsRequest; import com.cloudpdf.api.resources.documents.requests.DocumentsCommitRequest; +import com.cloudpdf.api.resources.documents.requests.DocumentsImportFromRequest; import com.cloudpdf.api.resources.documents.requests.DocumentsInitRequest; import com.cloudpdf.api.resources.documents.requests.DownloadDocumentsRequest; import com.cloudpdf.api.resources.documents.requests.GetDocumentsRequest; @@ -28,6 +30,8 @@ import com.cloudpdf.api.resources.documents.requests.UploadProxyDocumentsRequest; import com.cloudpdf.api.types.DocumentsCommit200Response; import com.cloudpdf.api.types.DocumentsGet200Response; +import com.cloudpdf.api.types.DocumentsImportFrom200Response; +import com.cloudpdf.api.types.DocumentsImportFrom502Response; import com.cloudpdf.api.types.DocumentsInit200Response; import com.cloudpdf.api.types.DocumentsList200Response; import com.cloudpdf.api.types.DocumentsUploadProxy200Response; @@ -834,6 +838,92 @@ public CloudPDFClientHttpResponse uploadProxy( } } + /** + * Default mode is synchronous and bounded: the response returns only after the transfer verified and committed (or failed). mode=async (connection sources only) answers 202 immediately and an in-process worker performs the transfer with leased, fenced retries; poll the document until ready/failed. The deployment import policy gates scheme, network range, and size; sources must declare a length. CloudPDF copies and owns the bytes — the source is never referenced in place. A 502 marks a retryable upstream failure: retry with the same idempotencyKey to resume the same document. URL sources are capabilities and never echoed back. Connection sources name operator-registered storage (bucket/prefix scope, allowed credential classes, and tenant bindings are deployment configuration); revision is provider-interpreted (S3 VersionId, GCS generation, Azure version id). + */ + public CloudPDFClientHttpResponse importFrom( + String tenantId, DocumentsImportFromRequest request) { + return importFrom(tenantId, request, null); + } + + /** + * Default mode is synchronous and bounded: the response returns only after the transfer verified and committed (or failed). mode=async (connection sources only) answers 202 immediately and an in-process worker performs the transfer with leased, fenced retries; poll the document until ready/failed. The deployment import policy gates scheme, network range, and size; sources must declare a length. CloudPDF copies and owns the bytes — the source is never referenced in place. A 502 marks a retryable upstream failure: retry with the same idempotencyKey to resume the same document. URL sources are capabilities and never echoed back. Connection sources name operator-registered storage (bucket/prefix scope, allowed credential classes, and tenant bindings are deployment configuration); revision is provider-interpreted (S3 VersionId, GCS generation, Azure version id). + */ + public CloudPDFClientHttpResponse importFrom( + String tenantId, DocumentsImportFromRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("v1/tenants") + .addPathSegment(tenantId) + .addPathSegments("documents") + .addPathSegments("import"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((_key, _value) -> { + httpUrl.addQueryParameter(_key, _value); + }); + } + RequestBody body; + try { + body = RequestBody.create( + ObjectMappers.JSON_MAPPER.writeValueAsBytes(request), MediaTypes.APPLICATION_JSON); + } catch (JsonProcessingException e) { + throw new CloudPDFException("Failed to serialize request", e); + } + Request okhttpRequest = new Request.Builder() + .url(httpUrl.build()) + .method("POST", body) + .headers(Headers.of(clientOptions.headers(requestOptions))) + .addHeader("Content-Type", "application/json") + .addHeader("Accept", "application/json") + .build(); + OkHttpClient client = clientOptions.httpClient(); + if (requestOptions != null && requestOptions.getTimeout().isPresent()) { + client = clientOptions.httpClientWithTimeout(requestOptions); + } + if (requestOptions != null && requestOptions.getMaxRetries().isPresent()) { + okhttpRequest = okhttpRequest + .newBuilder() + .tag( + RetryInterceptor.MaxRetriesOverride.class, + new RetryInterceptor.MaxRetriesOverride( + requestOptions.getMaxRetries().get())) + .build(); + } + try (Response response = client.newCall(okhttpRequest).execute()) { + ResponseBody responseBody = response.body(); + String responseBodyString = responseBody != null ? responseBody.string() : "{}"; + if (response.isSuccessful()) { + return new CloudPDFClientHttpResponse<>( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, DocumentsImportFrom200Response.class), + response); + } + try { + switch (response.code()) { + case 400: + throw new BadRequestError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), response); + case 403: + throw new ForbiddenError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), response); + case 502: + throw new BadGatewayError( + ObjectMappers.JSON_MAPPER.readValue( + responseBodyString, DocumentsImportFrom502Response.class), + response); + } + } catch (JsonProcessingException ignored) { + // unable to map error response, throwing generic error + } + Object errorBody = ObjectMappers.parseErrorBody(responseBodyString); + throw new CloudPDFApiException( + "Error with status code " + response.code(), response.code(), errorBody, response); + } catch (JsonProcessingException e) { + throw new CloudPDFException("Failed to deserialize response: " + e.getMessage(), e); + } catch (IOException e) { + throw new CloudPDFException("Network error executing HTTP request", e); + } + } + public CloudPDFClientHttpResponse init(String tenantId, DocumentsInitRequest request) { return init(tenantId, request, null); } diff --git a/src/main/java/api/resources/documents/requests/DocumentsImportFromRequest.java b/src/main/java/api/resources/documents/requests/DocumentsImportFromRequest.java new file mode 100644 index 0000000..a190cdf --- /dev/null +++ b/src/main/java/api/resources/documents/requests/DocumentsImportFromRequest.java @@ -0,0 +1,308 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.documents.requests; + +import com.cloudpdf.api.core.ObjectMappers; +import com.cloudpdf.api.resources.documents.types.DocumentsImportFromRequestDedupMode; +import com.cloudpdf.api.resources.documents.types.DocumentsImportFromRequestExpected; +import com.cloudpdf.api.resources.documents.types.DocumentsImportFromRequestMode; +import com.cloudpdf.api.resources.documents.types.DocumentsImportFromRequestSource; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import org.jetbrains.annotations.NotNull; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DocumentsImportFromRequest.Builder.class) +public final class DocumentsImportFromRequest { + private final DocumentsImportFromRequestSource source; + + private final Optional expected; + + private final Optional> metadata; + + private final Optional idempotencyKey; + + private final Optional dedupMode; + + private final Optional docId; + + private final Optional mode; + + private final Map additionalProperties; + + private DocumentsImportFromRequest( + DocumentsImportFromRequestSource source, + Optional expected, + Optional> metadata, + Optional idempotencyKey, + Optional dedupMode, + Optional docId, + Optional mode, + Map additionalProperties) { + this.source = source; + this.expected = expected; + this.metadata = metadata; + this.idempotencyKey = idempotencyKey; + this.dedupMode = dedupMode; + this.docId = docId; + this.mode = mode; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("source") + public DocumentsImportFromRequestSource getSource() { + return source; + } + + @JsonProperty("expected") + public Optional getExpected() { + return expected; + } + + @JsonProperty("metadata") + public Optional> getMetadata() { + return metadata; + } + + @JsonProperty("idempotencyKey") + public Optional getIdempotencyKey() { + return idempotencyKey; + } + + @JsonProperty("dedupMode") + public Optional getDedupMode() { + return dedupMode; + } + + @JsonProperty("docId") + public Optional getDocId() { + return docId; + } + + @JsonProperty("mode") + public Optional getMode() { + return mode; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocumentsImportFromRequest && equalTo((DocumentsImportFromRequest) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocumentsImportFromRequest other) { + return source.equals(other.source) + && expected.equals(other.expected) + && metadata.equals(other.metadata) + && idempotencyKey.equals(other.idempotencyKey) + && dedupMode.equals(other.dedupMode) + && docId.equals(other.docId) + && mode.equals(other.mode); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash( + this.source, this.expected, this.metadata, this.idempotencyKey, this.dedupMode, this.docId, this.mode); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static SourceStage builder() { + return new Builder(); + } + + public interface SourceStage { + _FinalStage source(@NotNull DocumentsImportFromRequestSource source); + + Builder from(DocumentsImportFromRequest other); + } + + public interface _FinalStage { + DocumentsImportFromRequest build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage expected(Optional expected); + + _FinalStage expected(DocumentsImportFromRequestExpected expected); + + _FinalStage metadata(Optional> metadata); + + _FinalStage metadata(Map metadata); + + _FinalStage idempotencyKey(Optional idempotencyKey); + + _FinalStage idempotencyKey(String idempotencyKey); + + _FinalStage dedupMode(Optional dedupMode); + + _FinalStage dedupMode(DocumentsImportFromRequestDedupMode dedupMode); + + _FinalStage docId(Optional docId); + + _FinalStage docId(String docId); + + _FinalStage mode(Optional mode); + + _FinalStage mode(DocumentsImportFromRequestMode mode); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements SourceStage, _FinalStage { + private DocumentsImportFromRequestSource source; + + private Optional mode = Optional.empty(); + + private Optional docId = Optional.empty(); + + private Optional dedupMode = Optional.empty(); + + private Optional idempotencyKey = Optional.empty(); + + private Optional> metadata = Optional.empty(); + + private Optional expected = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(DocumentsImportFromRequest other) { + source(other.getSource()); + expected(other.getExpected()); + metadata(other.getMetadata()); + idempotencyKey(other.getIdempotencyKey()); + dedupMode(other.getDedupMode()); + docId(other.getDocId()); + mode(other.getMode()); + return this; + } + + @java.lang.Override + @JsonSetter("source") + public _FinalStage source(@NotNull DocumentsImportFromRequestSource source) { + this.source = Objects.requireNonNull(source, "source must not be null"); + return this; + } + + @java.lang.Override + public _FinalStage mode(DocumentsImportFromRequestMode mode) { + this.mode = Optional.ofNullable(mode); + return this; + } + + @java.lang.Override + @JsonSetter(value = "mode", nulls = Nulls.SKIP) + public _FinalStage mode(Optional mode) { + this.mode = mode; + return this; + } + + @java.lang.Override + public _FinalStage docId(String docId) { + this.docId = Optional.ofNullable(docId); + return this; + } + + @java.lang.Override + @JsonSetter(value = "docId", nulls = Nulls.SKIP) + public _FinalStage docId(Optional docId) { + this.docId = docId; + return this; + } + + @java.lang.Override + public _FinalStage dedupMode(DocumentsImportFromRequestDedupMode dedupMode) { + this.dedupMode = Optional.ofNullable(dedupMode); + return this; + } + + @java.lang.Override + @JsonSetter(value = "dedupMode", nulls = Nulls.SKIP) + public _FinalStage dedupMode(Optional dedupMode) { + this.dedupMode = dedupMode; + return this; + } + + @java.lang.Override + public _FinalStage idempotencyKey(String idempotencyKey) { + this.idempotencyKey = Optional.ofNullable(idempotencyKey); + return this; + } + + @java.lang.Override + @JsonSetter(value = "idempotencyKey", nulls = Nulls.SKIP) + public _FinalStage idempotencyKey(Optional idempotencyKey) { + this.idempotencyKey = idempotencyKey; + return this; + } + + @java.lang.Override + public _FinalStage metadata(Map metadata) { + this.metadata = Optional.ofNullable(metadata); + return this; + } + + @java.lang.Override + @JsonSetter(value = "metadata", nulls = Nulls.SKIP) + public _FinalStage metadata(Optional> metadata) { + this.metadata = metadata; + return this; + } + + @java.lang.Override + public _FinalStage expected(DocumentsImportFromRequestExpected expected) { + this.expected = Optional.ofNullable(expected); + return this; + } + + @java.lang.Override + @JsonSetter(value = "expected", nulls = Nulls.SKIP) + public _FinalStage expected(Optional expected) { + this.expected = expected; + return this; + } + + @java.lang.Override + public DocumentsImportFromRequest build() { + return new DocumentsImportFromRequest( + source, expected, metadata, idempotencyKey, dedupMode, docId, mode, additionalProperties); + } + + @java.lang.Override + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + @java.lang.Override + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/api/resources/documents/types/DocumentsImportFromRequestDedupMode.java b/src/main/java/api/resources/documents/types/DocumentsImportFromRequestDedupMode.java new file mode 100644 index 0000000..60293fc --- /dev/null +++ b/src/main/java/api/resources/documents/types/DocumentsImportFromRequestDedupMode.java @@ -0,0 +1,86 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.documents.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class DocumentsImportFromRequestDedupMode { + public static final DocumentsImportFromRequestDedupMode REUSE_EXISTING = + new DocumentsImportFromRequestDedupMode(Value.REUSE_EXISTING, "reuse-existing"); + + public static final DocumentsImportFromRequestDedupMode ALWAYS_CREATE = + new DocumentsImportFromRequestDedupMode(Value.ALWAYS_CREATE, "always-create"); + + private final Value value; + + private final String string; + + DocumentsImportFromRequestDedupMode(Value value, String string) { + this.value = value; + this.string = string; + } + + public Value getEnumValue() { + return value; + } + + @java.lang.Override + @JsonValue + public String toString() { + return this.string; + } + + @java.lang.Override + public boolean equals(Object other) { + return (this == other) + || (other instanceof DocumentsImportFromRequestDedupMode + && this.string.equals(((DocumentsImportFromRequestDedupMode) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REUSE_EXISTING: + return visitor.visitReuseExisting(); + case ALWAYS_CREATE: + return visitor.visitAlwaysCreate(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static DocumentsImportFromRequestDedupMode valueOf(String value) { + switch (value) { + case "reuse-existing": + return REUSE_EXISTING; + case "always-create": + return ALWAYS_CREATE; + default: + return new DocumentsImportFromRequestDedupMode(Value.UNKNOWN, value); + } + } + + public enum Value { + ALWAYS_CREATE, + + REUSE_EXISTING, + + UNKNOWN + } + + public interface Visitor { + T visitAlwaysCreate(); + + T visitReuseExisting(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/resources/documents/types/DocumentsImportFromRequestExpected.java b/src/main/java/api/resources/documents/types/DocumentsImportFromRequestExpected.java new file mode 100644 index 0000000..510bafc --- /dev/null +++ b/src/main/java/api/resources/documents/types/DocumentsImportFromRequestExpected.java @@ -0,0 +1,129 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.documents.types; + +import com.cloudpdf.api.core.ObjectMappers; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DocumentsImportFromRequestExpected.Builder.class) +public final class DocumentsImportFromRequestExpected { + private final Optional sizeBytes; + + private final Optional sha256; + + private final Map additionalProperties; + + private DocumentsImportFromRequestExpected( + Optional sizeBytes, Optional sha256, Map additionalProperties) { + this.sizeBytes = sizeBytes; + this.sha256 = sha256; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("sizeBytes") + public Optional getSizeBytes() { + return sizeBytes; + } + + @JsonProperty("sha256") + public Optional getSha256() { + return sha256; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocumentsImportFromRequestExpected + && equalTo((DocumentsImportFromRequestExpected) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocumentsImportFromRequestExpected other) { + return sizeBytes.equals(other.sizeBytes) && sha256.equals(other.sha256); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.sizeBytes, this.sha256); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static Builder builder() { + return new Builder(); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder { + private Optional sizeBytes = Optional.empty(); + + private Optional sha256 = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(DocumentsImportFromRequestExpected other) { + sizeBytes(other.getSizeBytes()); + sha256(other.getSha256()); + return this; + } + + @JsonSetter(value = "sizeBytes", nulls = Nulls.SKIP) + public Builder sizeBytes(Optional sizeBytes) { + this.sizeBytes = sizeBytes; + return this; + } + + public Builder sizeBytes(Integer sizeBytes) { + this.sizeBytes = Optional.ofNullable(sizeBytes); + return this; + } + + @JsonSetter(value = "sha256", nulls = Nulls.SKIP) + public Builder sha256(Optional sha256) { + this.sha256 = sha256; + return this; + } + + public Builder sha256(String sha256) { + this.sha256 = Optional.ofNullable(sha256); + return this; + } + + public DocumentsImportFromRequestExpected build() { + return new DocumentsImportFromRequestExpected(sizeBytes, sha256, additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/api/resources/documents/types/DocumentsImportFromRequestMode.java b/src/main/java/api/resources/documents/types/DocumentsImportFromRequestMode.java new file mode 100644 index 0000000..387cdb3 --- /dev/null +++ b/src/main/java/api/resources/documents/types/DocumentsImportFromRequestMode.java @@ -0,0 +1,84 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.documents.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class DocumentsImportFromRequestMode { + public static final DocumentsImportFromRequestMode SYNC = new DocumentsImportFromRequestMode(Value.SYNC, "sync"); + + public static final DocumentsImportFromRequestMode ASYNC = new DocumentsImportFromRequestMode(Value.ASYNC, "async"); + + private final Value value; + + private final String string; + + DocumentsImportFromRequestMode(Value value, String string) { + this.value = value; + this.string = string; + } + + public Value getEnumValue() { + return value; + } + + @java.lang.Override + @JsonValue + public String toString() { + return this.string; + } + + @java.lang.Override + public boolean equals(Object other) { + return (this == other) + || (other instanceof DocumentsImportFromRequestMode + && this.string.equals(((DocumentsImportFromRequestMode) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case SYNC: + return visitor.visitSync(); + case ASYNC: + return visitor.visitAsync(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static DocumentsImportFromRequestMode valueOf(String value) { + switch (value) { + case "sync": + return SYNC; + case "async": + return ASYNC; + default: + return new DocumentsImportFromRequestMode(Value.UNKNOWN, value); + } + } + + public enum Value { + SYNC, + + ASYNC, + + UNKNOWN + } + + public interface Visitor { + T visitSync(); + + T visitAsync(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/resources/documents/types/DocumentsImportFromRequestSource.java b/src/main/java/api/resources/documents/types/DocumentsImportFromRequestSource.java new file mode 100644 index 0000000..4bd7b98 --- /dev/null +++ b/src/main/java/api/resources/documents/types/DocumentsImportFromRequestSource.java @@ -0,0 +1,222 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.documents.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonUnwrapped; +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Objects; +import java.util.Optional; + +public final class DocumentsImportFromRequestSource { + private final Value value; + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + private DocumentsImportFromRequestSource(Value value) { + this.value = value; + } + + public T visit(Visitor visitor) { + return value.visit(visitor); + } + + public static DocumentsImportFromRequestSource url(DocumentsImportFromRequestSourceUrl value) { + return new DocumentsImportFromRequestSource(new UrlValue(value)); + } + + public static DocumentsImportFromRequestSource connection(DocumentsImportFromRequestSourceConnection value) { + return new DocumentsImportFromRequestSource(new ConnectionValue(value)); + } + + public boolean isUrl() { + return value instanceof UrlValue; + } + + public boolean isConnection() { + return value instanceof ConnectionValue; + } + + public boolean _isUnknown() { + return value instanceof _UnknownValue; + } + + public Optional getUrl() { + if (isUrl()) { + return Optional.of(((UrlValue) value).value); + } + return Optional.empty(); + } + + public Optional getConnection() { + if (isConnection()) { + return Optional.of(((ConnectionValue) value).value); + } + return Optional.empty(); + } + + public Optional _getUnknown() { + if (_isUnknown()) { + return Optional.of(((_UnknownValue) value).value); + } + return Optional.empty(); + } + + @Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocumentsImportFromRequestSource + && value.equals(((DocumentsImportFromRequestSource) other).value); + } + + @Override + public int hashCode() { + return Objects.hash(value); + } + + @Override + public String toString() { + return value.toString(); + } + + @JsonValue + private Value getValue() { + return this.value; + } + + public interface Visitor { + T visitUrl(DocumentsImportFromRequestSourceUrl url); + + T visitConnection(DocumentsImportFromRequestSourceConnection connection); + + T _visitUnknown(Object unknownType); + } + + @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "kind", visible = true, defaultImpl = _UnknownValue.class) + @JsonSubTypes({@JsonSubTypes.Type(UrlValue.class), @JsonSubTypes.Type(ConnectionValue.class)}) + @JsonIgnoreProperties(ignoreUnknown = true) + private interface Value { + T visit(Visitor visitor); + } + + @JsonTypeName("url") + @JsonIgnoreProperties("kind") + private static final class UrlValue implements Value { + @JsonUnwrapped + @JsonIgnoreProperties(value = "kind", allowSetters = true) + private DocumentsImportFromRequestSourceUrl value; + + @JsonCreator(mode = JsonCreator.Mode.PROPERTIES) + private UrlValue() {} + + private UrlValue(DocumentsImportFromRequestSourceUrl value) { + this.value = value; + } + + @java.lang.Override + public T visit(Visitor visitor) { + return visitor.visitUrl(value); + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof UrlValue && equalTo((UrlValue) other); + } + + private boolean equalTo(UrlValue other) { + return value.equals(other.value); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.value); + } + + @java.lang.Override + public String toString() { + return "DocumentsImportFromRequestSource{" + "value: " + value + "}"; + } + } + + @JsonTypeName("connection") + @JsonIgnoreProperties("kind") + private static final class ConnectionValue implements Value { + @JsonUnwrapped + @JsonIgnoreProperties(value = "kind", allowSetters = true) + private DocumentsImportFromRequestSourceConnection value; + + @JsonCreator(mode = JsonCreator.Mode.PROPERTIES) + private ConnectionValue() {} + + private ConnectionValue(DocumentsImportFromRequestSourceConnection value) { + this.value = value; + } + + @java.lang.Override + public T visit(Visitor visitor) { + return visitor.visitConnection(value); + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof ConnectionValue && equalTo((ConnectionValue) other); + } + + private boolean equalTo(ConnectionValue other) { + return value.equals(other.value); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.value); + } + + @java.lang.Override + public String toString() { + return "DocumentsImportFromRequestSource{" + "value: " + value + "}"; + } + } + + @JsonIgnoreProperties("kind") + private static final class _UnknownValue implements Value { + private String type; + + @JsonValue + private Object value; + + @JsonCreator(mode = JsonCreator.Mode.PROPERTIES) + private _UnknownValue(@JsonProperty("value") Object value) {} + + @java.lang.Override + public T visit(Visitor visitor) { + return visitor._visitUnknown(value); + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof _UnknownValue && equalTo((_UnknownValue) other); + } + + private boolean equalTo(_UnknownValue other) { + return type.equals(other.type) && value.equals(other.value); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.type, this.value); + } + + @java.lang.Override + public String toString() { + return "DocumentsImportFromRequestSource{" + "type: " + type + ", value: " + value + "}"; + } + } +} diff --git a/src/main/java/api/resources/documents/types/DocumentsImportFromRequestSourceConnection.java b/src/main/java/api/resources/documents/types/DocumentsImportFromRequestSourceConnection.java new file mode 100644 index 0000000..5b3432e --- /dev/null +++ b/src/main/java/api/resources/documents/types/DocumentsImportFromRequestSourceConnection.java @@ -0,0 +1,172 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.documents.types; + +import com.cloudpdf.api.core.ObjectMappers; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import org.jetbrains.annotations.NotNull; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DocumentsImportFromRequestSourceConnection.Builder.class) +public final class DocumentsImportFromRequestSourceConnection { + private final String connectionId; + + private final String key; + + private final Optional revision; + + private final Map additionalProperties; + + private DocumentsImportFromRequestSourceConnection( + String connectionId, String key, Optional revision, Map additionalProperties) { + this.connectionId = connectionId; + this.key = key; + this.revision = revision; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("connectionId") + public String getConnectionId() { + return connectionId; + } + + @JsonProperty("key") + public String getKey() { + return key; + } + + @JsonProperty("revision") + public Optional getRevision() { + return revision; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocumentsImportFromRequestSourceConnection + && equalTo((DocumentsImportFromRequestSourceConnection) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocumentsImportFromRequestSourceConnection other) { + return connectionId.equals(other.connectionId) && key.equals(other.key) && revision.equals(other.revision); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.connectionId, this.key, this.revision); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static ConnectionIdStage builder() { + return new Builder(); + } + + public interface ConnectionIdStage { + KeyStage connectionId(@NotNull String connectionId); + + Builder from(DocumentsImportFromRequestSourceConnection other); + } + + public interface KeyStage { + _FinalStage key(@NotNull String key); + } + + public interface _FinalStage { + DocumentsImportFromRequestSourceConnection build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage revision(Optional revision); + + _FinalStage revision(String revision); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements ConnectionIdStage, KeyStage, _FinalStage { + private String connectionId; + + private String key; + + private Optional revision = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(DocumentsImportFromRequestSourceConnection other) { + connectionId(other.getConnectionId()); + key(other.getKey()); + revision(other.getRevision()); + return this; + } + + @java.lang.Override + @JsonSetter("connectionId") + public KeyStage connectionId(@NotNull String connectionId) { + this.connectionId = Objects.requireNonNull(connectionId, "connectionId must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("key") + public _FinalStage key(@NotNull String key) { + this.key = Objects.requireNonNull(key, "key must not be null"); + return this; + } + + @java.lang.Override + public _FinalStage revision(String revision) { + this.revision = Optional.ofNullable(revision); + return this; + } + + @java.lang.Override + @JsonSetter(value = "revision", nulls = Nulls.SKIP) + public _FinalStage revision(Optional revision) { + this.revision = revision; + return this; + } + + @java.lang.Override + public DocumentsImportFromRequestSourceConnection build() { + return new DocumentsImportFromRequestSourceConnection(connectionId, key, revision, additionalProperties); + } + + @java.lang.Override + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + @java.lang.Override + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/api/resources/documents/types/DocumentsImportFromRequestSourceUrl.java b/src/main/java/api/resources/documents/types/DocumentsImportFromRequestSourceUrl.java new file mode 100644 index 0000000..ee06df2 --- /dev/null +++ b/src/main/java/api/resources/documents/types/DocumentsImportFromRequestSourceUrl.java @@ -0,0 +1,119 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.documents.types; + +import com.cloudpdf.api.core.ObjectMappers; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import org.jetbrains.annotations.NotNull; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DocumentsImportFromRequestSourceUrl.Builder.class) +public final class DocumentsImportFromRequestSourceUrl { + private final String url; + + private final Map additionalProperties; + + private DocumentsImportFromRequestSourceUrl(String url, Map additionalProperties) { + this.url = url; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("url") + public String getUrl() { + return url; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocumentsImportFromRequestSourceUrl + && equalTo((DocumentsImportFromRequestSourceUrl) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocumentsImportFromRequestSourceUrl other) { + return url.equals(other.url); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.url); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static UrlStage builder() { + return new Builder(); + } + + public interface UrlStage { + _FinalStage url(@NotNull String url); + + Builder from(DocumentsImportFromRequestSourceUrl other); + } + + public interface _FinalStage { + DocumentsImportFromRequestSourceUrl build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements UrlStage, _FinalStage { + private String url; + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(DocumentsImportFromRequestSourceUrl other) { + url(other.getUrl()); + return this; + } + + @java.lang.Override + @JsonSetter("url") + public _FinalStage url(@NotNull String url) { + this.url = Objects.requireNonNull(url, "url must not be null"); + return this; + } + + @java.lang.Override + public DocumentsImportFromRequestSourceUrl build() { + return new DocumentsImportFromRequestSourceUrl(url, additionalProperties); + } + + @java.lang.Override + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + @java.lang.Override + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/api/types/DocumentsImportFrom200Response.java b/src/main/java/api/types/DocumentsImportFrom200Response.java new file mode 100644 index 0000000..79c965e --- /dev/null +++ b/src/main/java/api/types/DocumentsImportFrom200Response.java @@ -0,0 +1,143 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.types; + +import com.cloudpdf.api.core.ObjectMappers; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import org.jetbrains.annotations.NotNull; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DocumentsImportFrom200Response.Builder.class) +public final class DocumentsImportFrom200Response { + private final DocumentsImportFrom200ResponseTag tag; + + private final DocumentsImportFrom200ResponseDocument document; + + private final Map additionalProperties; + + private DocumentsImportFrom200Response( + DocumentsImportFrom200ResponseTag tag, + DocumentsImportFrom200ResponseDocument document, + Map additionalProperties) { + this.tag = tag; + this.document = document; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("tag") + public DocumentsImportFrom200ResponseTag getTag() { + return tag; + } + + @JsonProperty("document") + public DocumentsImportFrom200ResponseDocument getDocument() { + return document; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocumentsImportFrom200Response && equalTo((DocumentsImportFrom200Response) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocumentsImportFrom200Response other) { + return tag.equals(other.tag) && document.equals(other.document); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.tag, this.document); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static TagStage builder() { + return new Builder(); + } + + public interface TagStage { + DocumentStage tag(@NotNull DocumentsImportFrom200ResponseTag tag); + + Builder from(DocumentsImportFrom200Response other); + } + + public interface DocumentStage { + _FinalStage document(@NotNull DocumentsImportFrom200ResponseDocument document); + } + + public interface _FinalStage { + DocumentsImportFrom200Response build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements TagStage, DocumentStage, _FinalStage { + private DocumentsImportFrom200ResponseTag tag; + + private DocumentsImportFrom200ResponseDocument document; + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(DocumentsImportFrom200Response other) { + tag(other.getTag()); + document(other.getDocument()); + return this; + } + + @java.lang.Override + @JsonSetter("tag") + public DocumentStage tag(@NotNull DocumentsImportFrom200ResponseTag tag) { + this.tag = Objects.requireNonNull(tag, "tag must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("document") + public _FinalStage document(@NotNull DocumentsImportFrom200ResponseDocument document) { + this.document = Objects.requireNonNull(document, "document must not be null"); + return this; + } + + @java.lang.Override + public DocumentsImportFrom200Response build() { + return new DocumentsImportFrom200Response(tag, document, additionalProperties); + } + + @java.lang.Override + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + @java.lang.Override + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/api/types/DocumentsImportFrom200ResponseDocument.java b/src/main/java/api/types/DocumentsImportFrom200ResponseDocument.java new file mode 100644 index 0000000..6dbd16e --- /dev/null +++ b/src/main/java/api/types/DocumentsImportFrom200ResponseDocument.java @@ -0,0 +1,652 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.types; + +import com.cloudpdf.api.core.Nullable; +import com.cloudpdf.api.core.NullableNonemptyFilter; +import com.cloudpdf.api.core.ObjectMappers; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import org.jetbrains.annotations.NotNull; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DocumentsImportFrom200ResponseDocument.Builder.class) +public final class DocumentsImportFrom200ResponseDocument { + private final String id; + + private final String tenantId; + + private final DocumentsImportFrom200ResponseDocumentState state; + + private final Optional baseSha; + + private final Optional storageSizeBytes; + + private final Optional> metadata; + + private final Optional idempotencyKey; + + private final Optional failureReason; + + private final Optional thumbnailState; + + private final Optional thumbnailUrl; + + private final double createdAt; + + private final double updatedAt; + + private final Optional createdBy; + + private final Map additionalProperties; + + private DocumentsImportFrom200ResponseDocument( + String id, + String tenantId, + DocumentsImportFrom200ResponseDocumentState state, + Optional baseSha, + Optional storageSizeBytes, + Optional> metadata, + Optional idempotencyKey, + Optional failureReason, + Optional thumbnailState, + Optional thumbnailUrl, + double createdAt, + double updatedAt, + Optional createdBy, + Map additionalProperties) { + this.id = id; + this.tenantId = tenantId; + this.state = state; + this.baseSha = baseSha; + this.storageSizeBytes = storageSizeBytes; + this.metadata = metadata; + this.idempotencyKey = idempotencyKey; + this.failureReason = failureReason; + this.thumbnailState = thumbnailState; + this.thumbnailUrl = thumbnailUrl; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.createdBy = createdBy; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("id") + public String getId() { + return id; + } + + @JsonProperty("tenantId") + public String getTenantId() { + return tenantId; + } + + @JsonProperty("state") + public DocumentsImportFrom200ResponseDocumentState getState() { + return state; + } + + @JsonIgnore + public Optional getBaseSha() { + if (baseSha == null) { + return Optional.empty(); + } + return baseSha; + } + + @JsonIgnore + public Optional getStorageSizeBytes() { + if (storageSizeBytes == null) { + return Optional.empty(); + } + return storageSizeBytes; + } + + @JsonIgnore + public Optional> getMetadata() { + if (metadata == null) { + return Optional.empty(); + } + return metadata; + } + + @JsonIgnore + public Optional getIdempotencyKey() { + if (idempotencyKey == null) { + return Optional.empty(); + } + return idempotencyKey; + } + + @JsonIgnore + public Optional getFailureReason() { + if (failureReason == null) { + return Optional.empty(); + } + return failureReason; + } + + @JsonProperty("thumbnailState") + public Optional getThumbnailState() { + return thumbnailState; + } + + @JsonIgnore + public Optional getThumbnailUrl() { + if (thumbnailUrl == null) { + return Optional.empty(); + } + return thumbnailUrl; + } + + @JsonProperty("createdAt") + public double getCreatedAt() { + return createdAt; + } + + @JsonProperty("updatedAt") + public double getUpdatedAt() { + return updatedAt; + } + + @JsonIgnore + public Optional getCreatedBy() { + if (createdBy == null) { + return Optional.empty(); + } + return createdBy; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("baseSha") + private Optional _getBaseSha() { + return baseSha; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("storageSizeBytes") + private Optional _getStorageSizeBytes() { + return storageSizeBytes; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("metadata") + private Optional> _getMetadata() { + return metadata; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("idempotencyKey") + private Optional _getIdempotencyKey() { + return idempotencyKey; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("failureReason") + private Optional _getFailureReason() { + return failureReason; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("thumbnailUrl") + private Optional _getThumbnailUrl() { + return thumbnailUrl; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("createdBy") + private Optional _getCreatedBy() { + return createdBy; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocumentsImportFrom200ResponseDocument + && equalTo((DocumentsImportFrom200ResponseDocument) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocumentsImportFrom200ResponseDocument other) { + return id.equals(other.id) + && tenantId.equals(other.tenantId) + && state.equals(other.state) + && baseSha.equals(other.baseSha) + && storageSizeBytes.equals(other.storageSizeBytes) + && metadata.equals(other.metadata) + && idempotencyKey.equals(other.idempotencyKey) + && failureReason.equals(other.failureReason) + && thumbnailState.equals(other.thumbnailState) + && thumbnailUrl.equals(other.thumbnailUrl) + && createdAt == other.createdAt + && updatedAt == other.updatedAt + && createdBy.equals(other.createdBy); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash( + this.id, + this.tenantId, + this.state, + this.baseSha, + this.storageSizeBytes, + this.metadata, + this.idempotencyKey, + this.failureReason, + this.thumbnailState, + this.thumbnailUrl, + this.createdAt, + this.updatedAt, + this.createdBy); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static IdStage builder() { + return new Builder(); + } + + public interface IdStage { + TenantIdStage id(@NotNull String id); + + Builder from(DocumentsImportFrom200ResponseDocument other); + } + + public interface TenantIdStage { + StateStage tenantId(@NotNull String tenantId); + } + + public interface StateStage { + CreatedAtStage state(@NotNull DocumentsImportFrom200ResponseDocumentState state); + } + + public interface CreatedAtStage { + UpdatedAtStage createdAt(double createdAt); + } + + public interface UpdatedAtStage { + _FinalStage updatedAt(double updatedAt); + } + + public interface _FinalStage { + DocumentsImportFrom200ResponseDocument build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage baseSha(Optional baseSha); + + _FinalStage baseSha(String baseSha); + + _FinalStage baseSha(Nullable baseSha); + + _FinalStage storageSizeBytes(Optional storageSizeBytes); + + _FinalStage storageSizeBytes(Double storageSizeBytes); + + _FinalStage storageSizeBytes(Nullable storageSizeBytes); + + _FinalStage metadata(Optional> metadata); + + _FinalStage metadata(Map metadata); + + _FinalStage metadata(Nullable> metadata); + + _FinalStage idempotencyKey(Optional idempotencyKey); + + _FinalStage idempotencyKey(String idempotencyKey); + + _FinalStage idempotencyKey(Nullable idempotencyKey); + + _FinalStage failureReason(Optional failureReason); + + _FinalStage failureReason(String failureReason); + + _FinalStage failureReason(Nullable failureReason); + + _FinalStage thumbnailState(Optional thumbnailState); + + _FinalStage thumbnailState(DocumentsImportFrom200ResponseDocumentThumbnailState thumbnailState); + + _FinalStage thumbnailUrl(Optional thumbnailUrl); + + _FinalStage thumbnailUrl(String thumbnailUrl); + + _FinalStage thumbnailUrl(Nullable thumbnailUrl); + + _FinalStage createdBy(Optional createdBy); + + _FinalStage createdBy(String createdBy); + + _FinalStage createdBy(Nullable createdBy); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder + implements IdStage, TenantIdStage, StateStage, CreatedAtStage, UpdatedAtStage, _FinalStage { + private String id; + + private String tenantId; + + private DocumentsImportFrom200ResponseDocumentState state; + + private double createdAt; + + private double updatedAt; + + private Optional createdBy = Optional.empty(); + + private Optional thumbnailUrl = Optional.empty(); + + private Optional thumbnailState = Optional.empty(); + + private Optional failureReason = Optional.empty(); + + private Optional idempotencyKey = Optional.empty(); + + private Optional> metadata = Optional.empty(); + + private Optional storageSizeBytes = Optional.empty(); + + private Optional baseSha = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(DocumentsImportFrom200ResponseDocument other) { + id(other.getId()); + tenantId(other.getTenantId()); + state(other.getState()); + baseSha(other.getBaseSha()); + storageSizeBytes(other.getStorageSizeBytes()); + metadata(other.getMetadata()); + idempotencyKey(other.getIdempotencyKey()); + failureReason(other.getFailureReason()); + thumbnailState(other.getThumbnailState()); + thumbnailUrl(other.getThumbnailUrl()); + createdAt(other.getCreatedAt()); + updatedAt(other.getUpdatedAt()); + createdBy(other.getCreatedBy()); + return this; + } + + @java.lang.Override + @JsonSetter("id") + public TenantIdStage id(@NotNull String id) { + this.id = Objects.requireNonNull(id, "id must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("tenantId") + public StateStage tenantId(@NotNull String tenantId) { + this.tenantId = Objects.requireNonNull(tenantId, "tenantId must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("state") + public CreatedAtStage state(@NotNull DocumentsImportFrom200ResponseDocumentState state) { + this.state = Objects.requireNonNull(state, "state must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("createdAt") + public UpdatedAtStage createdAt(double createdAt) { + this.createdAt = createdAt; + return this; + } + + @java.lang.Override + @JsonSetter("updatedAt") + public _FinalStage updatedAt(double updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + @java.lang.Override + public _FinalStage createdBy(Nullable createdBy) { + if (createdBy.isNull()) { + this.createdBy = null; + } else if (createdBy.isEmpty()) { + this.createdBy = Optional.empty(); + } else { + this.createdBy = Optional.of(createdBy.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage createdBy(String createdBy) { + this.createdBy = Optional.ofNullable(createdBy); + return this; + } + + @java.lang.Override + @JsonSetter(value = "createdBy", nulls = Nulls.SKIP) + public _FinalStage createdBy(Optional createdBy) { + this.createdBy = createdBy; + return this; + } + + @java.lang.Override + public _FinalStage thumbnailUrl(Nullable thumbnailUrl) { + if (thumbnailUrl.isNull()) { + this.thumbnailUrl = null; + } else if (thumbnailUrl.isEmpty()) { + this.thumbnailUrl = Optional.empty(); + } else { + this.thumbnailUrl = Optional.of(thumbnailUrl.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage thumbnailUrl(String thumbnailUrl) { + this.thumbnailUrl = Optional.ofNullable(thumbnailUrl); + return this; + } + + @java.lang.Override + @JsonSetter(value = "thumbnailUrl", nulls = Nulls.SKIP) + public _FinalStage thumbnailUrl(Optional thumbnailUrl) { + this.thumbnailUrl = thumbnailUrl; + return this; + } + + @java.lang.Override + public _FinalStage thumbnailState(DocumentsImportFrom200ResponseDocumentThumbnailState thumbnailState) { + this.thumbnailState = Optional.ofNullable(thumbnailState); + return this; + } + + @java.lang.Override + @JsonSetter(value = "thumbnailState", nulls = Nulls.SKIP) + public _FinalStage thumbnailState( + Optional thumbnailState) { + this.thumbnailState = thumbnailState; + return this; + } + + @java.lang.Override + public _FinalStage failureReason(Nullable failureReason) { + if (failureReason.isNull()) { + this.failureReason = null; + } else if (failureReason.isEmpty()) { + this.failureReason = Optional.empty(); + } else { + this.failureReason = Optional.of(failureReason.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage failureReason(String failureReason) { + this.failureReason = Optional.ofNullable(failureReason); + return this; + } + + @java.lang.Override + @JsonSetter(value = "failureReason", nulls = Nulls.SKIP) + public _FinalStage failureReason(Optional failureReason) { + this.failureReason = failureReason; + return this; + } + + @java.lang.Override + public _FinalStage idempotencyKey(Nullable idempotencyKey) { + if (idempotencyKey.isNull()) { + this.idempotencyKey = null; + } else if (idempotencyKey.isEmpty()) { + this.idempotencyKey = Optional.empty(); + } else { + this.idempotencyKey = Optional.of(idempotencyKey.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage idempotencyKey(String idempotencyKey) { + this.idempotencyKey = Optional.ofNullable(idempotencyKey); + return this; + } + + @java.lang.Override + @JsonSetter(value = "idempotencyKey", nulls = Nulls.SKIP) + public _FinalStage idempotencyKey(Optional idempotencyKey) { + this.idempotencyKey = idempotencyKey; + return this; + } + + @java.lang.Override + public _FinalStage metadata(Nullable> metadata) { + if (metadata.isNull()) { + this.metadata = null; + } else if (metadata.isEmpty()) { + this.metadata = Optional.empty(); + } else { + this.metadata = Optional.of(metadata.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage metadata(Map metadata) { + this.metadata = Optional.ofNullable(metadata); + return this; + } + + @java.lang.Override + @JsonSetter(value = "metadata", nulls = Nulls.SKIP) + public _FinalStage metadata(Optional> metadata) { + this.metadata = metadata; + return this; + } + + @java.lang.Override + public _FinalStage storageSizeBytes(Nullable storageSizeBytes) { + if (storageSizeBytes.isNull()) { + this.storageSizeBytes = null; + } else if (storageSizeBytes.isEmpty()) { + this.storageSizeBytes = Optional.empty(); + } else { + this.storageSizeBytes = Optional.of(storageSizeBytes.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage storageSizeBytes(Double storageSizeBytes) { + this.storageSizeBytes = Optional.ofNullable(storageSizeBytes); + return this; + } + + @java.lang.Override + @JsonSetter(value = "storageSizeBytes", nulls = Nulls.SKIP) + public _FinalStage storageSizeBytes(Optional storageSizeBytes) { + this.storageSizeBytes = storageSizeBytes; + return this; + } + + @java.lang.Override + public _FinalStage baseSha(Nullable baseSha) { + if (baseSha.isNull()) { + this.baseSha = null; + } else if (baseSha.isEmpty()) { + this.baseSha = Optional.empty(); + } else { + this.baseSha = Optional.of(baseSha.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage baseSha(String baseSha) { + this.baseSha = Optional.ofNullable(baseSha); + return this; + } + + @java.lang.Override + @JsonSetter(value = "baseSha", nulls = Nulls.SKIP) + public _FinalStage baseSha(Optional baseSha) { + this.baseSha = baseSha; + return this; + } + + @java.lang.Override + public DocumentsImportFrom200ResponseDocument build() { + return new DocumentsImportFrom200ResponseDocument( + id, + tenantId, + state, + baseSha, + storageSizeBytes, + metadata, + idempotencyKey, + failureReason, + thumbnailState, + thumbnailUrl, + createdAt, + updatedAt, + createdBy, + additionalProperties); + } + + @java.lang.Override + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + @java.lang.Override + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/api/types/DocumentsImportFrom200ResponseDocumentState.java b/src/main/java/api/types/DocumentsImportFrom200ResponseDocumentState.java new file mode 100644 index 0000000..bcb2b07 --- /dev/null +++ b/src/main/java/api/types/DocumentsImportFrom200ResponseDocumentState.java @@ -0,0 +1,108 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class DocumentsImportFrom200ResponseDocumentState { + public static final DocumentsImportFrom200ResponseDocumentState FAILED = + new DocumentsImportFrom200ResponseDocumentState(Value.FAILED, "failed"); + + public static final DocumentsImportFrom200ResponseDocumentState DELETING = + new DocumentsImportFrom200ResponseDocumentState(Value.DELETING, "deleting"); + + public static final DocumentsImportFrom200ResponseDocumentState PENDING = + new DocumentsImportFrom200ResponseDocumentState(Value.PENDING, "pending"); + + public static final DocumentsImportFrom200ResponseDocumentState READY = + new DocumentsImportFrom200ResponseDocumentState(Value.READY, "ready"); + + private final Value value; + + private final String string; + + DocumentsImportFrom200ResponseDocumentState(Value value, String string) { + this.value = value; + this.string = string; + } + + public Value getEnumValue() { + return value; + } + + @java.lang.Override + @JsonValue + public String toString() { + return this.string; + } + + @java.lang.Override + public boolean equals(Object other) { + return (this == other) + || (other instanceof DocumentsImportFrom200ResponseDocumentState + && this.string.equals(((DocumentsImportFrom200ResponseDocumentState) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case FAILED: + return visitor.visitFailed(); + case DELETING: + return visitor.visitDeleting(); + case PENDING: + return visitor.visitPending(); + case READY: + return visitor.visitReady(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static DocumentsImportFrom200ResponseDocumentState valueOf(String value) { + switch (value) { + case "failed": + return FAILED; + case "deleting": + return DELETING; + case "pending": + return PENDING; + case "ready": + return READY; + default: + return new DocumentsImportFrom200ResponseDocumentState(Value.UNKNOWN, value); + } + } + + public enum Value { + PENDING, + + READY, + + FAILED, + + DELETING, + + UNKNOWN + } + + public interface Visitor { + T visitPending(); + + T visitReady(); + + T visitFailed(); + + T visitDeleting(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/DocumentsImportFrom200ResponseDocumentThumbnailState.java b/src/main/java/api/types/DocumentsImportFrom200ResponseDocumentThumbnailState.java new file mode 100644 index 0000000..fe1c66c --- /dev/null +++ b/src/main/java/api/types/DocumentsImportFrom200ResponseDocumentThumbnailState.java @@ -0,0 +1,108 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class DocumentsImportFrom200ResponseDocumentThumbnailState { + public static final DocumentsImportFrom200ResponseDocumentThumbnailState FAILED = + new DocumentsImportFrom200ResponseDocumentThumbnailState(Value.FAILED, "failed"); + + public static final DocumentsImportFrom200ResponseDocumentThumbnailState PENDING = + new DocumentsImportFrom200ResponseDocumentThumbnailState(Value.PENDING, "pending"); + + public static final DocumentsImportFrom200ResponseDocumentThumbnailState READY = + new DocumentsImportFrom200ResponseDocumentThumbnailState(Value.READY, "ready"); + + public static final DocumentsImportFrom200ResponseDocumentThumbnailState LOCKED = + new DocumentsImportFrom200ResponseDocumentThumbnailState(Value.LOCKED, "locked"); + + private final Value value; + + private final String string; + + DocumentsImportFrom200ResponseDocumentThumbnailState(Value value, String string) { + this.value = value; + this.string = string; + } + + public Value getEnumValue() { + return value; + } + + @java.lang.Override + @JsonValue + public String toString() { + return this.string; + } + + @java.lang.Override + public boolean equals(Object other) { + return (this == other) + || (other instanceof DocumentsImportFrom200ResponseDocumentThumbnailState + && this.string.equals(((DocumentsImportFrom200ResponseDocumentThumbnailState) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case FAILED: + return visitor.visitFailed(); + case PENDING: + return visitor.visitPending(); + case READY: + return visitor.visitReady(); + case LOCKED: + return visitor.visitLocked(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static DocumentsImportFrom200ResponseDocumentThumbnailState valueOf(String value) { + switch (value) { + case "failed": + return FAILED; + case "pending": + return PENDING; + case "ready": + return READY; + case "locked": + return LOCKED; + default: + return new DocumentsImportFrom200ResponseDocumentThumbnailState(Value.UNKNOWN, value); + } + } + + public enum Value { + PENDING, + + READY, + + LOCKED, + + FAILED, + + UNKNOWN + } + + public interface Visitor { + T visitPending(); + + T visitReady(); + + T visitLocked(); + + T visitFailed(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/DocumentsImportFrom200ResponseTag.java b/src/main/java/api/types/DocumentsImportFrom200ResponseTag.java new file mode 100644 index 0000000..57cff1b --- /dev/null +++ b/src/main/java/api/types/DocumentsImportFrom200ResponseTag.java @@ -0,0 +1,97 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class DocumentsImportFrom200ResponseTag { + public static final DocumentsImportFrom200ResponseTag IMPORTED = + new DocumentsImportFrom200ResponseTag(Value.IMPORTED, "imported"); + + public static final DocumentsImportFrom200ResponseTag DEDUPED = + new DocumentsImportFrom200ResponseTag(Value.DEDUPED, "deduped"); + + public static final DocumentsImportFrom200ResponseTag ACCEPTED = + new DocumentsImportFrom200ResponseTag(Value.ACCEPTED, "accepted"); + + private final Value value; + + private final String string; + + DocumentsImportFrom200ResponseTag(Value value, String string) { + this.value = value; + this.string = string; + } + + public Value getEnumValue() { + return value; + } + + @java.lang.Override + @JsonValue + public String toString() { + return this.string; + } + + @java.lang.Override + public boolean equals(Object other) { + return (this == other) + || (other instanceof DocumentsImportFrom200ResponseTag + && this.string.equals(((DocumentsImportFrom200ResponseTag) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case IMPORTED: + return visitor.visitImported(); + case DEDUPED: + return visitor.visitDeduped(); + case ACCEPTED: + return visitor.visitAccepted(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static DocumentsImportFrom200ResponseTag valueOf(String value) { + switch (value) { + case "imported": + return IMPORTED; + case "deduped": + return DEDUPED; + case "accepted": + return ACCEPTED; + default: + return new DocumentsImportFrom200ResponseTag(Value.UNKNOWN, value); + } + } + + public enum Value { + IMPORTED, + + DEDUPED, + + ACCEPTED, + + UNKNOWN + } + + public interface Visitor { + T visitImported(); + + T visitDeduped(); + + T visitAccepted(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/DocumentsImportFrom202Response.java b/src/main/java/api/types/DocumentsImportFrom202Response.java new file mode 100644 index 0000000..c8bfb4e --- /dev/null +++ b/src/main/java/api/types/DocumentsImportFrom202Response.java @@ -0,0 +1,143 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.types; + +import com.cloudpdf.api.core.ObjectMappers; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import org.jetbrains.annotations.NotNull; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DocumentsImportFrom202Response.Builder.class) +public final class DocumentsImportFrom202Response { + private final DocumentsImportFrom202ResponseTag tag; + + private final DocumentsImportFrom202ResponseDocument document; + + private final Map additionalProperties; + + private DocumentsImportFrom202Response( + DocumentsImportFrom202ResponseTag tag, + DocumentsImportFrom202ResponseDocument document, + Map additionalProperties) { + this.tag = tag; + this.document = document; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("tag") + public DocumentsImportFrom202ResponseTag getTag() { + return tag; + } + + @JsonProperty("document") + public DocumentsImportFrom202ResponseDocument getDocument() { + return document; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocumentsImportFrom202Response && equalTo((DocumentsImportFrom202Response) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocumentsImportFrom202Response other) { + return tag.equals(other.tag) && document.equals(other.document); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.tag, this.document); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static TagStage builder() { + return new Builder(); + } + + public interface TagStage { + DocumentStage tag(@NotNull DocumentsImportFrom202ResponseTag tag); + + Builder from(DocumentsImportFrom202Response other); + } + + public interface DocumentStage { + _FinalStage document(@NotNull DocumentsImportFrom202ResponseDocument document); + } + + public interface _FinalStage { + DocumentsImportFrom202Response build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements TagStage, DocumentStage, _FinalStage { + private DocumentsImportFrom202ResponseTag tag; + + private DocumentsImportFrom202ResponseDocument document; + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(DocumentsImportFrom202Response other) { + tag(other.getTag()); + document(other.getDocument()); + return this; + } + + @java.lang.Override + @JsonSetter("tag") + public DocumentStage tag(@NotNull DocumentsImportFrom202ResponseTag tag) { + this.tag = Objects.requireNonNull(tag, "tag must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("document") + public _FinalStage document(@NotNull DocumentsImportFrom202ResponseDocument document) { + this.document = Objects.requireNonNull(document, "document must not be null"); + return this; + } + + @java.lang.Override + public DocumentsImportFrom202Response build() { + return new DocumentsImportFrom202Response(tag, document, additionalProperties); + } + + @java.lang.Override + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + @java.lang.Override + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/api/types/DocumentsImportFrom202ResponseDocument.java b/src/main/java/api/types/DocumentsImportFrom202ResponseDocument.java new file mode 100644 index 0000000..1541632 --- /dev/null +++ b/src/main/java/api/types/DocumentsImportFrom202ResponseDocument.java @@ -0,0 +1,652 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.types; + +import com.cloudpdf.api.core.Nullable; +import com.cloudpdf.api.core.NullableNonemptyFilter; +import com.cloudpdf.api.core.ObjectMappers; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import org.jetbrains.annotations.NotNull; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DocumentsImportFrom202ResponseDocument.Builder.class) +public final class DocumentsImportFrom202ResponseDocument { + private final String id; + + private final String tenantId; + + private final DocumentsImportFrom202ResponseDocumentState state; + + private final Optional baseSha; + + private final Optional storageSizeBytes; + + private final Optional> metadata; + + private final Optional idempotencyKey; + + private final Optional failureReason; + + private final Optional thumbnailState; + + private final Optional thumbnailUrl; + + private final double createdAt; + + private final double updatedAt; + + private final Optional createdBy; + + private final Map additionalProperties; + + private DocumentsImportFrom202ResponseDocument( + String id, + String tenantId, + DocumentsImportFrom202ResponseDocumentState state, + Optional baseSha, + Optional storageSizeBytes, + Optional> metadata, + Optional idempotencyKey, + Optional failureReason, + Optional thumbnailState, + Optional thumbnailUrl, + double createdAt, + double updatedAt, + Optional createdBy, + Map additionalProperties) { + this.id = id; + this.tenantId = tenantId; + this.state = state; + this.baseSha = baseSha; + this.storageSizeBytes = storageSizeBytes; + this.metadata = metadata; + this.idempotencyKey = idempotencyKey; + this.failureReason = failureReason; + this.thumbnailState = thumbnailState; + this.thumbnailUrl = thumbnailUrl; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.createdBy = createdBy; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("id") + public String getId() { + return id; + } + + @JsonProperty("tenantId") + public String getTenantId() { + return tenantId; + } + + @JsonProperty("state") + public DocumentsImportFrom202ResponseDocumentState getState() { + return state; + } + + @JsonIgnore + public Optional getBaseSha() { + if (baseSha == null) { + return Optional.empty(); + } + return baseSha; + } + + @JsonIgnore + public Optional getStorageSizeBytes() { + if (storageSizeBytes == null) { + return Optional.empty(); + } + return storageSizeBytes; + } + + @JsonIgnore + public Optional> getMetadata() { + if (metadata == null) { + return Optional.empty(); + } + return metadata; + } + + @JsonIgnore + public Optional getIdempotencyKey() { + if (idempotencyKey == null) { + return Optional.empty(); + } + return idempotencyKey; + } + + @JsonIgnore + public Optional getFailureReason() { + if (failureReason == null) { + return Optional.empty(); + } + return failureReason; + } + + @JsonProperty("thumbnailState") + public Optional getThumbnailState() { + return thumbnailState; + } + + @JsonIgnore + public Optional getThumbnailUrl() { + if (thumbnailUrl == null) { + return Optional.empty(); + } + return thumbnailUrl; + } + + @JsonProperty("createdAt") + public double getCreatedAt() { + return createdAt; + } + + @JsonProperty("updatedAt") + public double getUpdatedAt() { + return updatedAt; + } + + @JsonIgnore + public Optional getCreatedBy() { + if (createdBy == null) { + return Optional.empty(); + } + return createdBy; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("baseSha") + private Optional _getBaseSha() { + return baseSha; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("storageSizeBytes") + private Optional _getStorageSizeBytes() { + return storageSizeBytes; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("metadata") + private Optional> _getMetadata() { + return metadata; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("idempotencyKey") + private Optional _getIdempotencyKey() { + return idempotencyKey; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("failureReason") + private Optional _getFailureReason() { + return failureReason; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("thumbnailUrl") + private Optional _getThumbnailUrl() { + return thumbnailUrl; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("createdBy") + private Optional _getCreatedBy() { + return createdBy; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocumentsImportFrom202ResponseDocument + && equalTo((DocumentsImportFrom202ResponseDocument) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocumentsImportFrom202ResponseDocument other) { + return id.equals(other.id) + && tenantId.equals(other.tenantId) + && state.equals(other.state) + && baseSha.equals(other.baseSha) + && storageSizeBytes.equals(other.storageSizeBytes) + && metadata.equals(other.metadata) + && idempotencyKey.equals(other.idempotencyKey) + && failureReason.equals(other.failureReason) + && thumbnailState.equals(other.thumbnailState) + && thumbnailUrl.equals(other.thumbnailUrl) + && createdAt == other.createdAt + && updatedAt == other.updatedAt + && createdBy.equals(other.createdBy); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash( + this.id, + this.tenantId, + this.state, + this.baseSha, + this.storageSizeBytes, + this.metadata, + this.idempotencyKey, + this.failureReason, + this.thumbnailState, + this.thumbnailUrl, + this.createdAt, + this.updatedAt, + this.createdBy); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static IdStage builder() { + return new Builder(); + } + + public interface IdStage { + TenantIdStage id(@NotNull String id); + + Builder from(DocumentsImportFrom202ResponseDocument other); + } + + public interface TenantIdStage { + StateStage tenantId(@NotNull String tenantId); + } + + public interface StateStage { + CreatedAtStage state(@NotNull DocumentsImportFrom202ResponseDocumentState state); + } + + public interface CreatedAtStage { + UpdatedAtStage createdAt(double createdAt); + } + + public interface UpdatedAtStage { + _FinalStage updatedAt(double updatedAt); + } + + public interface _FinalStage { + DocumentsImportFrom202ResponseDocument build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage baseSha(Optional baseSha); + + _FinalStage baseSha(String baseSha); + + _FinalStage baseSha(Nullable baseSha); + + _FinalStage storageSizeBytes(Optional storageSizeBytes); + + _FinalStage storageSizeBytes(Double storageSizeBytes); + + _FinalStage storageSizeBytes(Nullable storageSizeBytes); + + _FinalStage metadata(Optional> metadata); + + _FinalStage metadata(Map metadata); + + _FinalStage metadata(Nullable> metadata); + + _FinalStage idempotencyKey(Optional idempotencyKey); + + _FinalStage idempotencyKey(String idempotencyKey); + + _FinalStage idempotencyKey(Nullable idempotencyKey); + + _FinalStage failureReason(Optional failureReason); + + _FinalStage failureReason(String failureReason); + + _FinalStage failureReason(Nullable failureReason); + + _FinalStage thumbnailState(Optional thumbnailState); + + _FinalStage thumbnailState(DocumentsImportFrom202ResponseDocumentThumbnailState thumbnailState); + + _FinalStage thumbnailUrl(Optional thumbnailUrl); + + _FinalStage thumbnailUrl(String thumbnailUrl); + + _FinalStage thumbnailUrl(Nullable thumbnailUrl); + + _FinalStage createdBy(Optional createdBy); + + _FinalStage createdBy(String createdBy); + + _FinalStage createdBy(Nullable createdBy); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder + implements IdStage, TenantIdStage, StateStage, CreatedAtStage, UpdatedAtStage, _FinalStage { + private String id; + + private String tenantId; + + private DocumentsImportFrom202ResponseDocumentState state; + + private double createdAt; + + private double updatedAt; + + private Optional createdBy = Optional.empty(); + + private Optional thumbnailUrl = Optional.empty(); + + private Optional thumbnailState = Optional.empty(); + + private Optional failureReason = Optional.empty(); + + private Optional idempotencyKey = Optional.empty(); + + private Optional> metadata = Optional.empty(); + + private Optional storageSizeBytes = Optional.empty(); + + private Optional baseSha = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(DocumentsImportFrom202ResponseDocument other) { + id(other.getId()); + tenantId(other.getTenantId()); + state(other.getState()); + baseSha(other.getBaseSha()); + storageSizeBytes(other.getStorageSizeBytes()); + metadata(other.getMetadata()); + idempotencyKey(other.getIdempotencyKey()); + failureReason(other.getFailureReason()); + thumbnailState(other.getThumbnailState()); + thumbnailUrl(other.getThumbnailUrl()); + createdAt(other.getCreatedAt()); + updatedAt(other.getUpdatedAt()); + createdBy(other.getCreatedBy()); + return this; + } + + @java.lang.Override + @JsonSetter("id") + public TenantIdStage id(@NotNull String id) { + this.id = Objects.requireNonNull(id, "id must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("tenantId") + public StateStage tenantId(@NotNull String tenantId) { + this.tenantId = Objects.requireNonNull(tenantId, "tenantId must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("state") + public CreatedAtStage state(@NotNull DocumentsImportFrom202ResponseDocumentState state) { + this.state = Objects.requireNonNull(state, "state must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("createdAt") + public UpdatedAtStage createdAt(double createdAt) { + this.createdAt = createdAt; + return this; + } + + @java.lang.Override + @JsonSetter("updatedAt") + public _FinalStage updatedAt(double updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + @java.lang.Override + public _FinalStage createdBy(Nullable createdBy) { + if (createdBy.isNull()) { + this.createdBy = null; + } else if (createdBy.isEmpty()) { + this.createdBy = Optional.empty(); + } else { + this.createdBy = Optional.of(createdBy.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage createdBy(String createdBy) { + this.createdBy = Optional.ofNullable(createdBy); + return this; + } + + @java.lang.Override + @JsonSetter(value = "createdBy", nulls = Nulls.SKIP) + public _FinalStage createdBy(Optional createdBy) { + this.createdBy = createdBy; + return this; + } + + @java.lang.Override + public _FinalStage thumbnailUrl(Nullable thumbnailUrl) { + if (thumbnailUrl.isNull()) { + this.thumbnailUrl = null; + } else if (thumbnailUrl.isEmpty()) { + this.thumbnailUrl = Optional.empty(); + } else { + this.thumbnailUrl = Optional.of(thumbnailUrl.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage thumbnailUrl(String thumbnailUrl) { + this.thumbnailUrl = Optional.ofNullable(thumbnailUrl); + return this; + } + + @java.lang.Override + @JsonSetter(value = "thumbnailUrl", nulls = Nulls.SKIP) + public _FinalStage thumbnailUrl(Optional thumbnailUrl) { + this.thumbnailUrl = thumbnailUrl; + return this; + } + + @java.lang.Override + public _FinalStage thumbnailState(DocumentsImportFrom202ResponseDocumentThumbnailState thumbnailState) { + this.thumbnailState = Optional.ofNullable(thumbnailState); + return this; + } + + @java.lang.Override + @JsonSetter(value = "thumbnailState", nulls = Nulls.SKIP) + public _FinalStage thumbnailState( + Optional thumbnailState) { + this.thumbnailState = thumbnailState; + return this; + } + + @java.lang.Override + public _FinalStage failureReason(Nullable failureReason) { + if (failureReason.isNull()) { + this.failureReason = null; + } else if (failureReason.isEmpty()) { + this.failureReason = Optional.empty(); + } else { + this.failureReason = Optional.of(failureReason.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage failureReason(String failureReason) { + this.failureReason = Optional.ofNullable(failureReason); + return this; + } + + @java.lang.Override + @JsonSetter(value = "failureReason", nulls = Nulls.SKIP) + public _FinalStage failureReason(Optional failureReason) { + this.failureReason = failureReason; + return this; + } + + @java.lang.Override + public _FinalStage idempotencyKey(Nullable idempotencyKey) { + if (idempotencyKey.isNull()) { + this.idempotencyKey = null; + } else if (idempotencyKey.isEmpty()) { + this.idempotencyKey = Optional.empty(); + } else { + this.idempotencyKey = Optional.of(idempotencyKey.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage idempotencyKey(String idempotencyKey) { + this.idempotencyKey = Optional.ofNullable(idempotencyKey); + return this; + } + + @java.lang.Override + @JsonSetter(value = "idempotencyKey", nulls = Nulls.SKIP) + public _FinalStage idempotencyKey(Optional idempotencyKey) { + this.idempotencyKey = idempotencyKey; + return this; + } + + @java.lang.Override + public _FinalStage metadata(Nullable> metadata) { + if (metadata.isNull()) { + this.metadata = null; + } else if (metadata.isEmpty()) { + this.metadata = Optional.empty(); + } else { + this.metadata = Optional.of(metadata.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage metadata(Map metadata) { + this.metadata = Optional.ofNullable(metadata); + return this; + } + + @java.lang.Override + @JsonSetter(value = "metadata", nulls = Nulls.SKIP) + public _FinalStage metadata(Optional> metadata) { + this.metadata = metadata; + return this; + } + + @java.lang.Override + public _FinalStage storageSizeBytes(Nullable storageSizeBytes) { + if (storageSizeBytes.isNull()) { + this.storageSizeBytes = null; + } else if (storageSizeBytes.isEmpty()) { + this.storageSizeBytes = Optional.empty(); + } else { + this.storageSizeBytes = Optional.of(storageSizeBytes.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage storageSizeBytes(Double storageSizeBytes) { + this.storageSizeBytes = Optional.ofNullable(storageSizeBytes); + return this; + } + + @java.lang.Override + @JsonSetter(value = "storageSizeBytes", nulls = Nulls.SKIP) + public _FinalStage storageSizeBytes(Optional storageSizeBytes) { + this.storageSizeBytes = storageSizeBytes; + return this; + } + + @java.lang.Override + public _FinalStage baseSha(Nullable baseSha) { + if (baseSha.isNull()) { + this.baseSha = null; + } else if (baseSha.isEmpty()) { + this.baseSha = Optional.empty(); + } else { + this.baseSha = Optional.of(baseSha.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage baseSha(String baseSha) { + this.baseSha = Optional.ofNullable(baseSha); + return this; + } + + @java.lang.Override + @JsonSetter(value = "baseSha", nulls = Nulls.SKIP) + public _FinalStage baseSha(Optional baseSha) { + this.baseSha = baseSha; + return this; + } + + @java.lang.Override + public DocumentsImportFrom202ResponseDocument build() { + return new DocumentsImportFrom202ResponseDocument( + id, + tenantId, + state, + baseSha, + storageSizeBytes, + metadata, + idempotencyKey, + failureReason, + thumbnailState, + thumbnailUrl, + createdAt, + updatedAt, + createdBy, + additionalProperties); + } + + @java.lang.Override + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + @java.lang.Override + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/api/types/DocumentsImportFrom202ResponseDocumentState.java b/src/main/java/api/types/DocumentsImportFrom202ResponseDocumentState.java new file mode 100644 index 0000000..f61a2da --- /dev/null +++ b/src/main/java/api/types/DocumentsImportFrom202ResponseDocumentState.java @@ -0,0 +1,108 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class DocumentsImportFrom202ResponseDocumentState { + public static final DocumentsImportFrom202ResponseDocumentState FAILED = + new DocumentsImportFrom202ResponseDocumentState(Value.FAILED, "failed"); + + public static final DocumentsImportFrom202ResponseDocumentState DELETING = + new DocumentsImportFrom202ResponseDocumentState(Value.DELETING, "deleting"); + + public static final DocumentsImportFrom202ResponseDocumentState PENDING = + new DocumentsImportFrom202ResponseDocumentState(Value.PENDING, "pending"); + + public static final DocumentsImportFrom202ResponseDocumentState READY = + new DocumentsImportFrom202ResponseDocumentState(Value.READY, "ready"); + + private final Value value; + + private final String string; + + DocumentsImportFrom202ResponseDocumentState(Value value, String string) { + this.value = value; + this.string = string; + } + + public Value getEnumValue() { + return value; + } + + @java.lang.Override + @JsonValue + public String toString() { + return this.string; + } + + @java.lang.Override + public boolean equals(Object other) { + return (this == other) + || (other instanceof DocumentsImportFrom202ResponseDocumentState + && this.string.equals(((DocumentsImportFrom202ResponseDocumentState) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case FAILED: + return visitor.visitFailed(); + case DELETING: + return visitor.visitDeleting(); + case PENDING: + return visitor.visitPending(); + case READY: + return visitor.visitReady(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static DocumentsImportFrom202ResponseDocumentState valueOf(String value) { + switch (value) { + case "failed": + return FAILED; + case "deleting": + return DELETING; + case "pending": + return PENDING; + case "ready": + return READY; + default: + return new DocumentsImportFrom202ResponseDocumentState(Value.UNKNOWN, value); + } + } + + public enum Value { + PENDING, + + READY, + + FAILED, + + DELETING, + + UNKNOWN + } + + public interface Visitor { + T visitPending(); + + T visitReady(); + + T visitFailed(); + + T visitDeleting(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/DocumentsImportFrom202ResponseDocumentThumbnailState.java b/src/main/java/api/types/DocumentsImportFrom202ResponseDocumentThumbnailState.java new file mode 100644 index 0000000..065b0b6 --- /dev/null +++ b/src/main/java/api/types/DocumentsImportFrom202ResponseDocumentThumbnailState.java @@ -0,0 +1,108 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class DocumentsImportFrom202ResponseDocumentThumbnailState { + public static final DocumentsImportFrom202ResponseDocumentThumbnailState FAILED = + new DocumentsImportFrom202ResponseDocumentThumbnailState(Value.FAILED, "failed"); + + public static final DocumentsImportFrom202ResponseDocumentThumbnailState PENDING = + new DocumentsImportFrom202ResponseDocumentThumbnailState(Value.PENDING, "pending"); + + public static final DocumentsImportFrom202ResponseDocumentThumbnailState READY = + new DocumentsImportFrom202ResponseDocumentThumbnailState(Value.READY, "ready"); + + public static final DocumentsImportFrom202ResponseDocumentThumbnailState LOCKED = + new DocumentsImportFrom202ResponseDocumentThumbnailState(Value.LOCKED, "locked"); + + private final Value value; + + private final String string; + + DocumentsImportFrom202ResponseDocumentThumbnailState(Value value, String string) { + this.value = value; + this.string = string; + } + + public Value getEnumValue() { + return value; + } + + @java.lang.Override + @JsonValue + public String toString() { + return this.string; + } + + @java.lang.Override + public boolean equals(Object other) { + return (this == other) + || (other instanceof DocumentsImportFrom202ResponseDocumentThumbnailState + && this.string.equals(((DocumentsImportFrom202ResponseDocumentThumbnailState) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case FAILED: + return visitor.visitFailed(); + case PENDING: + return visitor.visitPending(); + case READY: + return visitor.visitReady(); + case LOCKED: + return visitor.visitLocked(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static DocumentsImportFrom202ResponseDocumentThumbnailState valueOf(String value) { + switch (value) { + case "failed": + return FAILED; + case "pending": + return PENDING; + case "ready": + return READY; + case "locked": + return LOCKED; + default: + return new DocumentsImportFrom202ResponseDocumentThumbnailState(Value.UNKNOWN, value); + } + } + + public enum Value { + PENDING, + + READY, + + LOCKED, + + FAILED, + + UNKNOWN + } + + public interface Visitor { + T visitPending(); + + T visitReady(); + + T visitLocked(); + + T visitFailed(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/DocumentsImportFrom202ResponseTag.java b/src/main/java/api/types/DocumentsImportFrom202ResponseTag.java new file mode 100644 index 0000000..92e54a3 --- /dev/null +++ b/src/main/java/api/types/DocumentsImportFrom202ResponseTag.java @@ -0,0 +1,97 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class DocumentsImportFrom202ResponseTag { + public static final DocumentsImportFrom202ResponseTag IMPORTED = + new DocumentsImportFrom202ResponseTag(Value.IMPORTED, "imported"); + + public static final DocumentsImportFrom202ResponseTag DEDUPED = + new DocumentsImportFrom202ResponseTag(Value.DEDUPED, "deduped"); + + public static final DocumentsImportFrom202ResponseTag ACCEPTED = + new DocumentsImportFrom202ResponseTag(Value.ACCEPTED, "accepted"); + + private final Value value; + + private final String string; + + DocumentsImportFrom202ResponseTag(Value value, String string) { + this.value = value; + this.string = string; + } + + public Value getEnumValue() { + return value; + } + + @java.lang.Override + @JsonValue + public String toString() { + return this.string; + } + + @java.lang.Override + public boolean equals(Object other) { + return (this == other) + || (other instanceof DocumentsImportFrom202ResponseTag + && this.string.equals(((DocumentsImportFrom202ResponseTag) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case IMPORTED: + return visitor.visitImported(); + case DEDUPED: + return visitor.visitDeduped(); + case ACCEPTED: + return visitor.visitAccepted(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static DocumentsImportFrom202ResponseTag valueOf(String value) { + switch (value) { + case "imported": + return IMPORTED; + case "deduped": + return DEDUPED; + case "accepted": + return ACCEPTED; + default: + return new DocumentsImportFrom202ResponseTag(Value.UNKNOWN, value); + } + } + + public enum Value { + IMPORTED, + + DEDUPED, + + ACCEPTED, + + UNKNOWN + } + + public interface Visitor { + T visitImported(); + + T visitDeduped(); + + T visitAccepted(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/DocumentsImportFrom400Response.java b/src/main/java/api/types/DocumentsImportFrom400Response.java new file mode 100644 index 0000000..b8971e4 --- /dev/null +++ b/src/main/java/api/types/DocumentsImportFrom400Response.java @@ -0,0 +1,119 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.types; + +import com.cloudpdf.api.core.ObjectMappers; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import org.jetbrains.annotations.NotNull; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DocumentsImportFrom400Response.Builder.class) +public final class DocumentsImportFrom400Response { + private final DocumentsImportFrom400ResponseError error; + + private final Map additionalProperties; + + private DocumentsImportFrom400Response( + DocumentsImportFrom400ResponseError error, Map additionalProperties) { + this.error = error; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("error") + public DocumentsImportFrom400ResponseError getError() { + return error; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocumentsImportFrom400Response && equalTo((DocumentsImportFrom400Response) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocumentsImportFrom400Response other) { + return error.equals(other.error); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.error); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static ErrorStage builder() { + return new Builder(); + } + + public interface ErrorStage { + _FinalStage error(@NotNull DocumentsImportFrom400ResponseError error); + + Builder from(DocumentsImportFrom400Response other); + } + + public interface _FinalStage { + DocumentsImportFrom400Response build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements ErrorStage, _FinalStage { + private DocumentsImportFrom400ResponseError error; + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(DocumentsImportFrom400Response other) { + error(other.getError()); + return this; + } + + @java.lang.Override + @JsonSetter("error") + public _FinalStage error(@NotNull DocumentsImportFrom400ResponseError error) { + this.error = Objects.requireNonNull(error, "error must not be null"); + return this; + } + + @java.lang.Override + public DocumentsImportFrom400Response build() { + return new DocumentsImportFrom400Response(error, additionalProperties); + } + + @java.lang.Override + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + @java.lang.Override + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/api/types/DocumentsImportFrom400ResponseError.java b/src/main/java/api/types/DocumentsImportFrom400ResponseError.java new file mode 100644 index 0000000..7960ae9 --- /dev/null +++ b/src/main/java/api/types/DocumentsImportFrom400ResponseError.java @@ -0,0 +1,141 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.types; + +import com.cloudpdf.api.core.ObjectMappers; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import org.jetbrains.annotations.NotNull; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DocumentsImportFrom400ResponseError.Builder.class) +public final class DocumentsImportFrom400ResponseError { + private final String code; + + private final String message; + + private final Map additionalProperties; + + private DocumentsImportFrom400ResponseError(String code, String message, Map additionalProperties) { + this.code = code; + this.message = message; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("code") + public String getCode() { + return code; + } + + @JsonProperty("message") + public String getMessage() { + return message; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocumentsImportFrom400ResponseError + && equalTo((DocumentsImportFrom400ResponseError) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocumentsImportFrom400ResponseError other) { + return code.equals(other.code) && message.equals(other.message); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.code, this.message); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static CodeStage builder() { + return new Builder(); + } + + public interface CodeStage { + MessageStage code(@NotNull String code); + + Builder from(DocumentsImportFrom400ResponseError other); + } + + public interface MessageStage { + _FinalStage message(@NotNull String message); + } + + public interface _FinalStage { + DocumentsImportFrom400ResponseError build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements CodeStage, MessageStage, _FinalStage { + private String code; + + private String message; + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(DocumentsImportFrom400ResponseError other) { + code(other.getCode()); + message(other.getMessage()); + return this; + } + + @java.lang.Override + @JsonSetter("code") + public MessageStage code(@NotNull String code) { + this.code = Objects.requireNonNull(code, "code must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("message") + public _FinalStage message(@NotNull String message) { + this.message = Objects.requireNonNull(message, "message must not be null"); + return this; + } + + @java.lang.Override + public DocumentsImportFrom400ResponseError build() { + return new DocumentsImportFrom400ResponseError(code, message, additionalProperties); + } + + @java.lang.Override + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + @java.lang.Override + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/api/types/DocumentsImportFrom403Response.java b/src/main/java/api/types/DocumentsImportFrom403Response.java new file mode 100644 index 0000000..376dd70 --- /dev/null +++ b/src/main/java/api/types/DocumentsImportFrom403Response.java @@ -0,0 +1,119 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.types; + +import com.cloudpdf.api.core.ObjectMappers; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import org.jetbrains.annotations.NotNull; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DocumentsImportFrom403Response.Builder.class) +public final class DocumentsImportFrom403Response { + private final DocumentsImportFrom403ResponseError error; + + private final Map additionalProperties; + + private DocumentsImportFrom403Response( + DocumentsImportFrom403ResponseError error, Map additionalProperties) { + this.error = error; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("error") + public DocumentsImportFrom403ResponseError getError() { + return error; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocumentsImportFrom403Response && equalTo((DocumentsImportFrom403Response) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocumentsImportFrom403Response other) { + return error.equals(other.error); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.error); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static ErrorStage builder() { + return new Builder(); + } + + public interface ErrorStage { + _FinalStage error(@NotNull DocumentsImportFrom403ResponseError error); + + Builder from(DocumentsImportFrom403Response other); + } + + public interface _FinalStage { + DocumentsImportFrom403Response build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements ErrorStage, _FinalStage { + private DocumentsImportFrom403ResponseError error; + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(DocumentsImportFrom403Response other) { + error(other.getError()); + return this; + } + + @java.lang.Override + @JsonSetter("error") + public _FinalStage error(@NotNull DocumentsImportFrom403ResponseError error) { + this.error = Objects.requireNonNull(error, "error must not be null"); + return this; + } + + @java.lang.Override + public DocumentsImportFrom403Response build() { + return new DocumentsImportFrom403Response(error, additionalProperties); + } + + @java.lang.Override + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + @java.lang.Override + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/api/types/DocumentsImportFrom403ResponseError.java b/src/main/java/api/types/DocumentsImportFrom403ResponseError.java new file mode 100644 index 0000000..6d29e18 --- /dev/null +++ b/src/main/java/api/types/DocumentsImportFrom403ResponseError.java @@ -0,0 +1,141 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.types; + +import com.cloudpdf.api.core.ObjectMappers; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import org.jetbrains.annotations.NotNull; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DocumentsImportFrom403ResponseError.Builder.class) +public final class DocumentsImportFrom403ResponseError { + private final String code; + + private final String message; + + private final Map additionalProperties; + + private DocumentsImportFrom403ResponseError(String code, String message, Map additionalProperties) { + this.code = code; + this.message = message; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("code") + public String getCode() { + return code; + } + + @JsonProperty("message") + public String getMessage() { + return message; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocumentsImportFrom403ResponseError + && equalTo((DocumentsImportFrom403ResponseError) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocumentsImportFrom403ResponseError other) { + return code.equals(other.code) && message.equals(other.message); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.code, this.message); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static CodeStage builder() { + return new Builder(); + } + + public interface CodeStage { + MessageStage code(@NotNull String code); + + Builder from(DocumentsImportFrom403ResponseError other); + } + + public interface MessageStage { + _FinalStage message(@NotNull String message); + } + + public interface _FinalStage { + DocumentsImportFrom403ResponseError build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements CodeStage, MessageStage, _FinalStage { + private String code; + + private String message; + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(DocumentsImportFrom403ResponseError other) { + code(other.getCode()); + message(other.getMessage()); + return this; + } + + @java.lang.Override + @JsonSetter("code") + public MessageStage code(@NotNull String code) { + this.code = Objects.requireNonNull(code, "code must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("message") + public _FinalStage message(@NotNull String message) { + this.message = Objects.requireNonNull(message, "message must not be null"); + return this; + } + + @java.lang.Override + public DocumentsImportFrom403ResponseError build() { + return new DocumentsImportFrom403ResponseError(code, message, additionalProperties); + } + + @java.lang.Override + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + @java.lang.Override + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/api/types/DocumentsImportFrom502Response.java b/src/main/java/api/types/DocumentsImportFrom502Response.java new file mode 100644 index 0000000..b9dc079 --- /dev/null +++ b/src/main/java/api/types/DocumentsImportFrom502Response.java @@ -0,0 +1,119 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.types; + +import com.cloudpdf.api.core.ObjectMappers; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import org.jetbrains.annotations.NotNull; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DocumentsImportFrom502Response.Builder.class) +public final class DocumentsImportFrom502Response { + private final DocumentsImportFrom502ResponseError error; + + private final Map additionalProperties; + + private DocumentsImportFrom502Response( + DocumentsImportFrom502ResponseError error, Map additionalProperties) { + this.error = error; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("error") + public DocumentsImportFrom502ResponseError getError() { + return error; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocumentsImportFrom502Response && equalTo((DocumentsImportFrom502Response) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocumentsImportFrom502Response other) { + return error.equals(other.error); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.error); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static ErrorStage builder() { + return new Builder(); + } + + public interface ErrorStage { + _FinalStage error(@NotNull DocumentsImportFrom502ResponseError error); + + Builder from(DocumentsImportFrom502Response other); + } + + public interface _FinalStage { + DocumentsImportFrom502Response build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements ErrorStage, _FinalStage { + private DocumentsImportFrom502ResponseError error; + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(DocumentsImportFrom502Response other) { + error(other.getError()); + return this; + } + + @java.lang.Override + @JsonSetter("error") + public _FinalStage error(@NotNull DocumentsImportFrom502ResponseError error) { + this.error = Objects.requireNonNull(error, "error must not be null"); + return this; + } + + @java.lang.Override + public DocumentsImportFrom502Response build() { + return new DocumentsImportFrom502Response(error, additionalProperties); + } + + @java.lang.Override + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + @java.lang.Override + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/api/types/DocumentsImportFrom502ResponseError.java b/src/main/java/api/types/DocumentsImportFrom502ResponseError.java new file mode 100644 index 0000000..9c4a591 --- /dev/null +++ b/src/main/java/api/types/DocumentsImportFrom502ResponseError.java @@ -0,0 +1,141 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.types; + +import com.cloudpdf.api.core.ObjectMappers; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import org.jetbrains.annotations.NotNull; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DocumentsImportFrom502ResponseError.Builder.class) +public final class DocumentsImportFrom502ResponseError { + private final String code; + + private final String message; + + private final Map additionalProperties; + + private DocumentsImportFrom502ResponseError(String code, String message, Map additionalProperties) { + this.code = code; + this.message = message; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("code") + public String getCode() { + return code; + } + + @JsonProperty("message") + public String getMessage() { + return message; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocumentsImportFrom502ResponseError + && equalTo((DocumentsImportFrom502ResponseError) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocumentsImportFrom502ResponseError other) { + return code.equals(other.code) && message.equals(other.message); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.code, this.message); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static CodeStage builder() { + return new Builder(); + } + + public interface CodeStage { + MessageStage code(@NotNull String code); + + Builder from(DocumentsImportFrom502ResponseError other); + } + + public interface MessageStage { + _FinalStage message(@NotNull String message); + } + + public interface _FinalStage { + DocumentsImportFrom502ResponseError build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements CodeStage, MessageStage, _FinalStage { + private String code; + + private String message; + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(DocumentsImportFrom502ResponseError other) { + code(other.getCode()); + message(other.getMessage()); + return this; + } + + @java.lang.Override + @JsonSetter("code") + public MessageStage code(@NotNull String code) { + this.code = Objects.requireNonNull(code, "code must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("message") + public _FinalStage message(@NotNull String message) { + this.message = Objects.requireNonNull(message, "message must not be null"); + return this; + } + + @java.lang.Override + public DocumentsImportFrom502ResponseError build() { + return new DocumentsImportFrom502ResponseError(code, message, additionalProperties); + } + + @java.lang.Override + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + @java.lang.Override + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +}