diff --git a/.fern/metadata.json b/.fern/metadata.json index 08dbb3c..25e2eb3 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": "7ded7de29f4cc0dc9da18042fca6afd5c9557bfc", + "originGitCommit": "07aa3f26c82243b36a5ec94f7072130c7298d977", "originGitCommitIsDirty": false, "invokedBy": "ci", - "requestedVersion": "3.0.0-alpha.16", + "requestedVersion": "3.0.0-alpha.17", "ciProvider": "github" } \ No newline at end of file diff --git a/build.gradle b/build.gradle index 24ad33d..bf778e0 100644 --- a/build.gradle +++ b/build.gradle @@ -46,7 +46,7 @@ java { group = 'com.cloudpdf' -version = '3.0.0-alpha.16' +version = '3.0.0-alpha.17' jar { dependsOn(":generatePomFileForMavenPublication") @@ -73,7 +73,7 @@ publishing { maven(MavenPublication) { groupId = 'com.cloudpdf' artifactId = 'sdk' - version = '3.0.0-alpha.16' + version = '3.0.0-alpha.17' from components.java pom { name = 'CloudPDF' diff --git a/cloudpdf-generation.json b/cloudpdf-generation.json index 1c1092b..34b02b2 100644 --- a/cloudpdf-generation.json +++ b/cloudpdf-generation.json @@ -1,12 +1,12 @@ { "language": "java", - "canonicalVersion": "3.0.0-next.16", - "sdkVersion": "3.0.0-alpha.16", + "canonicalVersion": "3.0.0-next.17", + "sdkVersion": "3.0.0-alpha.17", "source": { "repository": "embedpdf/embed-pdf-viewer", "openapi": "cloudpdf/contract/openapi.json", - "openapiSha256": "06543c26918bd79d426bf242c5a3091cdb7d298d3ac3296addabee2be80edb15", - "gitCommit": "7ded7de29f4cc0dc9da18042fca6afd5c9557bfc", + "openapiSha256": "8fa53cef2776eb0de9ec50c263aa547b309a04d1a2ecb6ee54b6338d6698dc00", + "gitCommit": "07aa3f26c82243b36a5ec94f7072130c7298d977", "gitCommitIsDirty": false }, "fern": { diff --git a/reference.md b/reference.md index 3f68c26..e080525 100644 --- a/reference.md +++ b/reference.md @@ -229,6 +229,90 @@ client.doc().download( + + + + +
client.doc.downloadLink(docId, layerName, request) -> DocDownloadLink200Response +
+
+ +#### 📝 Description + +
+
+ +
+
+ +The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with `layer_name`, a `download: { docVersion, mode: "incremental" }` claim and a short `exp`, passed as `link` on the versioned download URL. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```java +client.doc().downloadLink( + "docId", + "layerName", + DocDownloadLinkRequest + .builder() + .build() +); +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**docId:** `String` + +
+
+ +
+
+ +**layerName:** `String` + +
+
+ +
+
+ +**documentPassword:** `Optional` — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + +
+
+ +
+
+ +**expiresIn:** `Optional` + +
+
+
+
+ +
@@ -464,7 +548,7 @@ client.doc().text(
-Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until `password` is supplied. Mounted only when the deployment can sign (HS256 mode). +Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until `password` is supplied. A link that asks its visitors who they are on open returns 422 VisitorIdentityRequired until the required answers are given; `error.details` carries `fields` (what the link asks), `missing`, `invalid`, `purpose` and `privacyUrl`. A link that asks before the first change issues the session at once with `visitor.identityRequest`, and writes answer 403 VisitorIdentityRequired with the same details until the visitor exchanges again with their answers. Answers that can not be taken answer 422 on any link. Mounted only when the deployment can sign (HS256 mode).
@@ -509,6 +593,30 @@ client.shares().exchange( **password:** `Optional` + + + +
+
+ +**visitorHandle:** `Optional` + +
+
+ +
+
+ +**restart:** `Optional` + +
+
+ +
+
+ +**visitorIdentity:** `Optional` +
@@ -578,6 +686,14 @@ client.shares().list( **docId:** `Optional` + + + +
+
+ +**archived:** `Optional` +
@@ -655,6 +771,14 @@ client.shares().create(
+**layerMode:** `Optional` + +
+
+ +
+
+ **layerName:** `Optional`
@@ -663,6 +787,30 @@ client.shares().create(
+**keepVisitorLayers:** `Optional` + +
+
+ +
+
+ +**visitorIdleSeconds:** `Optional` + +
+
+ +
+
+ +**visitorIdentity:** `Optional` + +
+
+ +
+
+ **scope:** `List`
@@ -865,6 +1013,46 @@ client.shares().update(
+**layerMode:** `Optional` + +
+
+ +
+
+ +**layerName:** `Optional` + +
+
+ +
+
+ +**keepVisitorLayers:** `Optional` + +
+
+ +
+
+ +**visitorIdleSeconds:** `Optional` + +
+
+ +
+
+ +**visitorIdentity:** `Optional` + +
+
+ +
+
+ **scope:** `Optional>`
@@ -913,6 +1101,74 @@ client.shares().update(
+ +
+ + +
client.shares.archive(tenantId, shareId) -> SharesArchive200Response +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (`disabled`) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```java +client.shares().archive( + "tenantId", + "shareId", + ArchiveSharesRequest + .builder() + .build() +); +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**tenantId:** `String` + +
+
+ +
+
+ +**shareId:** `String` + +
+
+
+
+ +
@@ -5598,3 +5854,307 @@ client.doc().metadata().custom().get(
+## Documents Layers +
client.documents.layers.list(tenantId, id) -> DocumentsLayersList200Response +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```java +client.documents().layers().list( + "tenantId", + "id", + ListLayersRequest + .builder() + .build() +); +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**tenantId:** `String` + +
+
+ +
+
+ +**id:** `String` + +
+
+ +
+
+ +**limit:** `Optional` + +
+
+ +
+
+ +**cursor:** `Optional` + +
+
+ +
+
+ +**shareId:** `Optional` + +
+
+
+
+ + +
+
+
+ +
client.documents.layers.delete(tenantId, id, layerName) +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```java +client.documents().layers().delete( + "tenantId", + "id", + "layerName", + DeleteLayersRequest + .builder() + .build() +); +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**tenantId:** `String` + +
+
+ +
+
+ +**id:** `String` + +
+
+ +
+
+ +**layerName:** `String` + +
+
+
+
+ + +
+
+
+ +## Shares Visitors +
client.shares.visitors.list(tenantId, shareId) -> SharesVisitorsList200Response +
+
+ +#### 📝 Description + +
+
+ +
+
+ +An archived link's visitors are listed too. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```java +client.shares().visitors().list( + "tenantId", + "shareId", + ListVisitorsRequest + .builder() + .build() +); +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**tenantId:** `String` + +
+
+ +
+
+ +**shareId:** `String` + +
+
+ +
+
+ +**limit:** `Optional` + +
+
+ +
+
+ +**cursor:** `Optional` + +
+
+
+
+ + +
+
+
+ +
client.shares.visitors.delete(tenantId, shareId, visitorId) +
+
+ +#### 📝 Description + +
+
+ +
+
+ +Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing. +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```java +client.shares().visitors().delete( + "tenantId", + "shareId", + "visitorId", + DeleteVisitorsRequest + .builder() + .build() +); +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**tenantId:** `String` + +
+
+ +
+
+ +**shareId:** `String` + +
+
+ +
+
+ +**visitorId:** `String` + +
+
+
+
+ + +
+
+
+ diff --git a/src/main/java/api/core/ClientOptions.java b/src/main/java/api/core/ClientOptions.java index 31e9533..e9cee88 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.16"); + put("X-Fern-SDK-Version", "3.0.0-alpha.17"); } }); this.headerSuppliers = headerSuppliers; diff --git a/src/main/java/api/errors/NotImplementedError.java b/src/main/java/api/errors/NotImplementedError.java new file mode 100644 index 0000000..483ab72 --- /dev/null +++ b/src/main/java/api/errors/NotImplementedError.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.EngineErrorPayload; +import okhttp3.Response; + +public final class NotImplementedError extends CloudPDFApiException { + /** + * The body of the response that triggered the exception. + */ + private final EngineErrorPayload body; + + public NotImplementedError(EngineErrorPayload body) { + super("NotImplementedError", 501, body); + this.body = body; + } + + public NotImplementedError(EngineErrorPayload body, Response rawResponse) { + super("NotImplementedError", 501, body, rawResponse); + this.body = body; + } + + /** + * @return the body + */ + @java.lang.Override + public EngineErrorPayload body() { + return this.body; + } +} diff --git a/src/main/java/api/resources/doc/AsyncDocClient.java b/src/main/java/api/resources/doc/AsyncDocClient.java index 8a3f8a6..887a5f0 100644 --- a/src/main/java/api/resources/doc/AsyncDocClient.java +++ b/src/main/java/api/resources/doc/AsyncDocClient.java @@ -14,6 +14,7 @@ import com.cloudpdf.api.resources.doc.pages.AsyncPagesClient; import com.cloudpdf.api.resources.doc.redactions.AsyncRedactionsClient; import com.cloudpdf.api.resources.doc.requests.DocChangesRequest; +import com.cloudpdf.api.resources.doc.requests.DocDownloadLinkRequest; import com.cloudpdf.api.resources.doc.requests.DownloadDocRequest; import com.cloudpdf.api.resources.doc.requests.HeadDocRequest; import com.cloudpdf.api.resources.doc.requests.ManifestDocRequest; @@ -22,6 +23,7 @@ import com.cloudpdf.api.resources.doc.signatures.AsyncSignaturesClient; import com.cloudpdf.api.resources.doc.versions.AsyncVersionsClient; import com.cloudpdf.api.types.DocChanges200Response; +import com.cloudpdf.api.types.DocDownloadLink200Response; import com.cloudpdf.api.types.DocHead200Response; import com.cloudpdf.api.types.DocManifest200Response; import com.cloudpdf.api.types.DocText200Response; @@ -124,6 +126,39 @@ public CompletableFuture download( .thenApply(response -> response.body()); } + /** + * The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with layer_name, a download: { docVersion, mode: "incremental" } claim and a short exp, passed as link on the versioned download URL. + */ + public CompletableFuture downloadLink(String docId, String layerName) { + return this.rawClient.downloadLink(docId, layerName).thenApply(response -> response.body()); + } + + /** + * The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with layer_name, a download: { docVersion, mode: "incremental" } claim and a short exp, passed as link on the versioned download URL. + */ + public CompletableFuture downloadLink( + String docId, String layerName, RequestOptions requestOptions) { + return this.rawClient.downloadLink(docId, layerName, requestOptions).thenApply(response -> response.body()); + } + + /** + * The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with layer_name, a download: { docVersion, mode: "incremental" } claim and a short exp, passed as link on the versioned download URL. + */ + public CompletableFuture downloadLink( + String docId, String layerName, DocDownloadLinkRequest request) { + return this.rawClient.downloadLink(docId, layerName, request).thenApply(response -> response.body()); + } + + /** + * The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with layer_name, a download: { docVersion, mode: "incremental" } claim and a short exp, passed as link on the versioned download URL. + */ + public CompletableFuture downloadLink( + String docId, String layerName, DocDownloadLinkRequest request, RequestOptions requestOptions) { + return this.rawClient + .downloadLink(docId, layerName, request, requestOptions) + .thenApply(response -> response.body()); + } + public CompletableFuture manifest(String docId, String layerName) { return this.rawClient.manifest(docId, layerName).thenApply(response -> response.body()); } diff --git a/src/main/java/api/resources/doc/AsyncRawDocClient.java b/src/main/java/api/resources/doc/AsyncRawDocClient.java index 35ff242..198c098 100644 --- a/src/main/java/api/resources/doc/AsyncRawDocClient.java +++ b/src/main/java/api/resources/doc/AsyncRawDocClient.java @@ -16,16 +16,20 @@ import com.cloudpdf.api.errors.ConflictError; import com.cloudpdf.api.errors.ContentTooLargeError; import com.cloudpdf.api.errors.NotFoundError; +import com.cloudpdf.api.errors.NotImplementedError; import com.cloudpdf.api.resources.doc.requests.DocChangesRequest; +import com.cloudpdf.api.resources.doc.requests.DocDownloadLinkRequest; import com.cloudpdf.api.resources.doc.requests.DownloadDocRequest; import com.cloudpdf.api.resources.doc.requests.HeadDocRequest; import com.cloudpdf.api.resources.doc.requests.ManifestDocRequest; import com.cloudpdf.api.resources.doc.requests.RenderDocRequest; import com.cloudpdf.api.resources.doc.requests.TextDocRequest; import com.cloudpdf.api.types.DocChanges200Response; +import com.cloudpdf.api.types.DocDownloadLink200Response; import com.cloudpdf.api.types.DocHead200Response; import com.cloudpdf.api.types.DocManifest200Response; import com.cloudpdf.api.types.DocText200Response; +import com.cloudpdf.api.types.EngineErrorPayload; import com.fasterxml.jackson.core.JsonProcessingException; import java.io.IOException; import java.io.InputStream; @@ -344,6 +348,128 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) { return future; } + /** + * The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with layer_name, a download: { docVersion, mode: "incremental" } claim and a short exp, passed as link on the versioned download URL. + */ + public CompletableFuture> downloadLink( + String docId, String layerName) { + return downloadLink(docId, layerName, DocDownloadLinkRequest.builder().build()); + } + + /** + * The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with layer_name, a download: { docVersion, mode: "incremental" } claim and a short exp, passed as link on the versioned download URL. + */ + public CompletableFuture> downloadLink( + String docId, String layerName, RequestOptions requestOptions) { + return downloadLink(docId, layerName, DocDownloadLinkRequest.builder().build(), requestOptions); + } + + /** + * The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with layer_name, a download: { docVersion, mode: "incremental" } claim and a short exp, passed as link on the versioned download URL. + */ + public CompletableFuture> downloadLink( + String docId, String layerName, DocDownloadLinkRequest request) { + return downloadLink(docId, layerName, request, null); + } + + /** + * The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with layer_name, a download: { docVersion, mode: "incremental" } claim and a short exp, passed as link on the versioned download URL. + */ + public CompletableFuture> downloadLink( + String docId, String layerName, DocDownloadLinkRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("v1/docs") + .addPathSegment(docId) + .addPathSegments("layers") + .addPathSegment(layerName) + .addPathSegments("download-link"); + 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 (Exception e) { + throw new RuntimeException(e); + } + Request.Builder _requestBuilder = new Request.Builder() + .url(httpUrl.build()) + .method("POST", body) + .headers(Headers.of(clientOptions.headers(requestOptions))) + .addHeader("Content-Type", "application/json") + .addHeader("Accept", "application/json"); + if (request.getDocumentPassword().isPresent()) { + _requestBuilder.addHeader( + "X-Document-Password", request.getDocumentPassword().get()); + } + Request okhttpRequest = _requestBuilder.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, DocDownloadLink200Response.class), + response)); + return; + } + try { + switch (response.code()) { + case 404: + future.completeExceptionally(new NotFoundError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), + response)); + return; + case 501: + future.completeExceptionally(new NotImplementedError( + ObjectMappers.JSON_MAPPER.readValue( + responseBodyString, EngineErrorPayload.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> manifest( String docId, String layerName) { return manifest(docId, layerName, ManifestDocRequest.builder().build()); diff --git a/src/main/java/api/resources/doc/DocClient.java b/src/main/java/api/resources/doc/DocClient.java index b0b9a2f..6c79d35 100644 --- a/src/main/java/api/resources/doc/DocClient.java +++ b/src/main/java/api/resources/doc/DocClient.java @@ -14,6 +14,7 @@ import com.cloudpdf.api.resources.doc.pages.PagesClient; import com.cloudpdf.api.resources.doc.redactions.RedactionsClient; import com.cloudpdf.api.resources.doc.requests.DocChangesRequest; +import com.cloudpdf.api.resources.doc.requests.DocDownloadLinkRequest; import com.cloudpdf.api.resources.doc.requests.DownloadDocRequest; import com.cloudpdf.api.resources.doc.requests.HeadDocRequest; import com.cloudpdf.api.resources.doc.requests.ManifestDocRequest; @@ -22,6 +23,7 @@ import com.cloudpdf.api.resources.doc.signatures.SignaturesClient; import com.cloudpdf.api.resources.doc.versions.VersionsClient; import com.cloudpdf.api.types.DocChanges200Response; +import com.cloudpdf.api.types.DocDownloadLink200Response; import com.cloudpdf.api.types.DocHead200Response; import com.cloudpdf.api.types.DocManifest200Response; import com.cloudpdf.api.types.DocText200Response; @@ -122,6 +124,37 @@ public InputStream download( .body(); } + /** + * The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with layer_name, a download: { docVersion, mode: "incremental" } claim and a short exp, passed as link on the versioned download URL. + */ + public DocDownloadLink200Response downloadLink(String docId, String layerName) { + return this.rawClient.downloadLink(docId, layerName).body(); + } + + /** + * The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with layer_name, a download: { docVersion, mode: "incremental" } claim and a short exp, passed as link on the versioned download URL. + */ + public DocDownloadLink200Response downloadLink(String docId, String layerName, RequestOptions requestOptions) { + return this.rawClient.downloadLink(docId, layerName, requestOptions).body(); + } + + /** + * The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with layer_name, a download: { docVersion, mode: "incremental" } claim and a short exp, passed as link on the versioned download URL. + */ + public DocDownloadLink200Response downloadLink(String docId, String layerName, DocDownloadLinkRequest request) { + return this.rawClient.downloadLink(docId, layerName, request).body(); + } + + /** + * The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with layer_name, a download: { docVersion, mode: "incremental" } claim and a short exp, passed as link on the versioned download URL. + */ + public DocDownloadLink200Response downloadLink( + String docId, String layerName, DocDownloadLinkRequest request, RequestOptions requestOptions) { + return this.rawClient + .downloadLink(docId, layerName, request, requestOptions) + .body(); + } + public DocManifest200Response manifest(String docId, String layerName) { return this.rawClient.manifest(docId, layerName).body(); } diff --git a/src/main/java/api/resources/doc/RawDocClient.java b/src/main/java/api/resources/doc/RawDocClient.java index 3ef810e..dee36f6 100644 --- a/src/main/java/api/resources/doc/RawDocClient.java +++ b/src/main/java/api/resources/doc/RawDocClient.java @@ -16,16 +16,20 @@ import com.cloudpdf.api.errors.ConflictError; import com.cloudpdf.api.errors.ContentTooLargeError; import com.cloudpdf.api.errors.NotFoundError; +import com.cloudpdf.api.errors.NotImplementedError; import com.cloudpdf.api.resources.doc.requests.DocChangesRequest; +import com.cloudpdf.api.resources.doc.requests.DocDownloadLinkRequest; import com.cloudpdf.api.resources.doc.requests.DownloadDocRequest; import com.cloudpdf.api.resources.doc.requests.HeadDocRequest; import com.cloudpdf.api.resources.doc.requests.ManifestDocRequest; import com.cloudpdf.api.resources.doc.requests.RenderDocRequest; import com.cloudpdf.api.resources.doc.requests.TextDocRequest; import com.cloudpdf.api.types.DocChanges200Response; +import com.cloudpdf.api.types.DocDownloadLink200Response; import com.cloudpdf.api.types.DocHead200Response; import com.cloudpdf.api.types.DocManifest200Response; import com.cloudpdf.api.types.DocText200Response; +import com.cloudpdf.api.types.EngineErrorPayload; import com.fasterxml.jackson.core.JsonProcessingException; import java.io.IOException; import java.io.InputStream; @@ -283,6 +287,108 @@ public CloudPDFClientHttpResponse download( } } + /** + * The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with layer_name, a download: { docVersion, mode: "incremental" } claim and a short exp, passed as link on the versioned download URL. + */ + public CloudPDFClientHttpResponse downloadLink(String docId, String layerName) { + return downloadLink(docId, layerName, DocDownloadLinkRequest.builder().build()); + } + + /** + * The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with layer_name, a download: { docVersion, mode: "incremental" } claim and a short exp, passed as link on the versioned download URL. + */ + public CloudPDFClientHttpResponse downloadLink( + String docId, String layerName, RequestOptions requestOptions) { + return downloadLink(docId, layerName, DocDownloadLinkRequest.builder().build(), requestOptions); + } + + /** + * The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with layer_name, a download: { docVersion, mode: "incremental" } claim and a short exp, passed as link on the versioned download URL. + */ + public CloudPDFClientHttpResponse downloadLink( + String docId, String layerName, DocDownloadLinkRequest request) { + return downloadLink(docId, layerName, request, null); + } + + /** + * The link opens the layer as it is when created: once the layer changes, it answers 404, so create it right before handing it over. It downloads that one file and nothing else, and a password-protected document is checked when the link is created. Deployments that verify tokens with their own keys (JWKS) mint links on their backend: a doc token with layer_name, a download: { docVersion, mode: "incremental" } claim and a short exp, passed as link on the versioned download URL. + */ + public CloudPDFClientHttpResponse downloadLink( + String docId, String layerName, DocDownloadLinkRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("v1/docs") + .addPathSegment(docId) + .addPathSegments("layers") + .addPathSegment(layerName) + .addPathSegments("download-link"); + 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 (Exception e) { + throw new RuntimeException(e); + } + Request.Builder _requestBuilder = new Request.Builder() + .url(httpUrl.build()) + .method("POST", body) + .headers(Headers.of(clientOptions.headers(requestOptions))) + .addHeader("Content-Type", "application/json") + .addHeader("Accept", "application/json"); + if (request.getDocumentPassword().isPresent()) { + _requestBuilder.addHeader( + "X-Document-Password", request.getDocumentPassword().get()); + } + Request okhttpRequest = _requestBuilder.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, DocDownloadLink200Response.class), + response); + } + try { + switch (response.code()) { + case 404: + throw new NotFoundError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), response); + case 501: + throw new NotImplementedError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, EngineErrorPayload.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 manifest(String docId, String layerName) { return manifest(docId, layerName, ManifestDocRequest.builder().build()); } diff --git a/src/main/java/api/resources/doc/requests/DocDownloadLinkRequest.java b/src/main/java/api/resources/doc/requests/DocDownloadLinkRequest.java new file mode 100644 index 0000000..e37df52 --- /dev/null +++ b/src/main/java/api/resources/doc/requests/DocDownloadLinkRequest.java @@ -0,0 +1,134 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.doc.requests; + +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; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DocDownloadLinkRequest.Builder.class) +public final class DocDownloadLinkRequest { + private final Optional documentPassword; + + private final Optional expiresIn; + + private final Map additionalProperties; + + private DocDownloadLinkRequest( + Optional documentPassword, Optional expiresIn, Map additionalProperties) { + this.documentPassword = documentPassword; + this.expiresIn = expiresIn; + this.additionalProperties = additionalProperties; + } + + /** + * @return Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead. + */ + @JsonIgnore + public Optional getDocumentPassword() { + return documentPassword; + } + + @JsonProperty("expiresIn") + public Optional getExpiresIn() { + return expiresIn; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocDownloadLinkRequest && equalTo((DocDownloadLinkRequest) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocDownloadLinkRequest other) { + return documentPassword.equals(other.documentPassword) && expiresIn.equals(other.expiresIn); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.documentPassword, this.expiresIn); + } + + @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 documentPassword = Optional.empty(); + + private Optional expiresIn = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(DocDownloadLinkRequest other) { + documentPassword(other.getDocumentPassword()); + expiresIn(other.getExpiresIn()); + return this; + } + + /** + *

Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

+ */ + public Builder documentPassword(Optional documentPassword) { + this.documentPassword = documentPassword; + return this; + } + + public Builder documentPassword(String documentPassword) { + this.documentPassword = Optional.ofNullable(documentPassword); + return this; + } + + @JsonSetter(value = "expiresIn", nulls = Nulls.SKIP) + public Builder expiresIn(Optional expiresIn) { + this.expiresIn = expiresIn; + return this; + } + + public Builder expiresIn(Integer expiresIn) { + this.expiresIn = Optional.ofNullable(expiresIn); + return this; + } + + public DocDownloadLinkRequest build() { + return new DocDownloadLinkRequest(documentPassword, expiresIn, 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/AsyncDocumentsClient.java b/src/main/java/api/resources/documents/AsyncDocumentsClient.java index c51e0ae..0f4ed2f 100644 --- a/src/main/java/api/resources/documents/AsyncDocumentsClient.java +++ b/src/main/java/api/resources/documents/AsyncDocumentsClient.java @@ -5,6 +5,8 @@ import com.cloudpdf.api.core.ClientOptions; import com.cloudpdf.api.core.RequestOptions; +import com.cloudpdf.api.core.Suppliers; +import com.cloudpdf.api.resources.documents.layers.AsyncLayersClient; import com.cloudpdf.api.resources.documents.requests.DeleteDocumentsRequest; import com.cloudpdf.api.resources.documents.requests.DocumentsCommitRequest; import com.cloudpdf.api.resources.documents.requests.DocumentsImportFromRequest; @@ -23,6 +25,7 @@ import java.io.File; import java.io.InputStream; import java.util.concurrent.CompletableFuture; +import java.util.function.Supplier; import okhttp3.MediaType; public class AsyncDocumentsClient { @@ -30,9 +33,12 @@ public class AsyncDocumentsClient { private final AsyncRawDocumentsClient rawClient; + protected final Supplier layersClient; + public AsyncDocumentsClient(ClientOptions clientOptions) { this.clientOptions = clientOptions; this.rawClient = new AsyncRawDocumentsClient(clientOptions); + this.layersClient = Suppliers.memoize(() -> new AsyncLayersClient(clientOptions)); } /** @@ -210,4 +216,8 @@ public CompletableFuture init( String tenantId, DocumentsInitRequest request, RequestOptions requestOptions) { return this.rawClient.init(tenantId, request, requestOptions).thenApply(response -> response.body()); } + + public AsyncLayersClient layers() { + return this.layersClient.get(); + } } diff --git a/src/main/java/api/resources/documents/DocumentsClient.java b/src/main/java/api/resources/documents/DocumentsClient.java index 834e08e..1ba8a01 100644 --- a/src/main/java/api/resources/documents/DocumentsClient.java +++ b/src/main/java/api/resources/documents/DocumentsClient.java @@ -5,6 +5,8 @@ import com.cloudpdf.api.core.ClientOptions; import com.cloudpdf.api.core.RequestOptions; +import com.cloudpdf.api.core.Suppliers; +import com.cloudpdf.api.resources.documents.layers.LayersClient; import com.cloudpdf.api.resources.documents.requests.DeleteDocumentsRequest; import com.cloudpdf.api.resources.documents.requests.DocumentsCommitRequest; import com.cloudpdf.api.resources.documents.requests.DocumentsImportFromRequest; @@ -22,6 +24,7 @@ import com.cloudpdf.api.types.DocumentsUploadProxy200Response; import java.io.File; import java.io.InputStream; +import java.util.function.Supplier; import okhttp3.MediaType; public class DocumentsClient { @@ -29,9 +32,12 @@ public class DocumentsClient { private final RawDocumentsClient rawClient; + protected final Supplier layersClient; + public DocumentsClient(ClientOptions clientOptions) { this.clientOptions = clientOptions; this.rawClient = new RawDocumentsClient(clientOptions); + this.layersClient = Suppliers.memoize(() -> new LayersClient(clientOptions)); } /** @@ -204,4 +210,8 @@ public DocumentsInit200Response init(String tenantId, DocumentsInitRequest reque public DocumentsInit200Response init(String tenantId, DocumentsInitRequest request, RequestOptions requestOptions) { return this.rawClient.init(tenantId, request, requestOptions).body(); } + + public LayersClient layers() { + return this.layersClient.get(); + } } diff --git a/src/main/java/api/resources/documents/layers/AsyncLayersClient.java b/src/main/java/api/resources/documents/layers/AsyncLayersClient.java new file mode 100644 index 0000000..44878e1 --- /dev/null +++ b/src/main/java/api/resources/documents/layers/AsyncLayersClient.java @@ -0,0 +1,67 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.documents.layers; + +import com.cloudpdf.api.core.ClientOptions; +import com.cloudpdf.api.core.RequestOptions; +import com.cloudpdf.api.resources.documents.layers.requests.DeleteLayersRequest; +import com.cloudpdf.api.resources.documents.layers.requests.ListLayersRequest; +import com.cloudpdf.api.types.DocumentsLayersList200Response; +import java.util.concurrent.CompletableFuture; + +public class AsyncLayersClient { + protected final ClientOptions clientOptions; + + private final AsyncRawLayersClient rawClient; + + public AsyncLayersClient(ClientOptions clientOptions) { + this.clientOptions = clientOptions; + this.rawClient = new AsyncRawLayersClient(clientOptions); + } + + /** + * Get responses with HTTP metadata like headers + */ + public AsyncRawLayersClient withRawResponse() { + return this.rawClient; + } + + public CompletableFuture list(String tenantId, String id) { + return this.rawClient.list(tenantId, id).thenApply(response -> response.body()); + } + + public CompletableFuture list( + String tenantId, String id, RequestOptions requestOptions) { + return this.rawClient.list(tenantId, id, requestOptions).thenApply(response -> response.body()); + } + + public CompletableFuture list( + String tenantId, String id, ListLayersRequest request) { + return this.rawClient.list(tenantId, id, request).thenApply(response -> response.body()); + } + + public CompletableFuture list( + String tenantId, String id, ListLayersRequest request, RequestOptions requestOptions) { + return this.rawClient.list(tenantId, id, request, requestOptions).thenApply(response -> response.body()); + } + + public CompletableFuture delete(String tenantId, String id, String layerName) { + return this.rawClient.delete(tenantId, id, layerName).thenApply(response -> response.body()); + } + + public CompletableFuture delete(String tenantId, String id, String layerName, RequestOptions requestOptions) { + return this.rawClient.delete(tenantId, id, layerName, requestOptions).thenApply(response -> response.body()); + } + + public CompletableFuture delete(String tenantId, String id, String layerName, DeleteLayersRequest request) { + return this.rawClient.delete(tenantId, id, layerName, request).thenApply(response -> response.body()); + } + + public CompletableFuture delete( + String tenantId, String id, String layerName, DeleteLayersRequest request, RequestOptions requestOptions) { + return this.rawClient + .delete(tenantId, id, layerName, request, requestOptions) + .thenApply(response -> response.body()); + } +} diff --git a/src/main/java/api/resources/documents/layers/AsyncRawLayersClient.java b/src/main/java/api/resources/documents/layers/AsyncRawLayersClient.java new file mode 100644 index 0000000..bdd97fb --- /dev/null +++ b/src/main/java/api/resources/documents/layers/AsyncRawLayersClient.java @@ -0,0 +1,254 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.documents.layers; + +import com.cloudpdf.api.core.ClientOptions; +import com.cloudpdf.api.core.CloudPDFApiException; +import com.cloudpdf.api.core.CloudPDFClientHttpResponse; +import com.cloudpdf.api.core.CloudPDFException; +import com.cloudpdf.api.core.ObjectMappers; +import com.cloudpdf.api.core.QueryStringMapper; +import com.cloudpdf.api.core.RequestOptions; +import com.cloudpdf.api.core.RetryInterceptor; +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.layers.requests.DeleteLayersRequest; +import com.cloudpdf.api.resources.documents.layers.requests.ListLayersRequest; +import com.cloudpdf.api.types.DocumentsLayersList200Response; +import com.fasterxml.jackson.core.JsonProcessingException; +import java.io.IOException; +import java.util.concurrent.CompletableFuture; +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.Headers; +import okhttp3.HttpUrl; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import org.jetbrains.annotations.NotNull; + +public class AsyncRawLayersClient { + protected final ClientOptions clientOptions; + + public AsyncRawLayersClient(ClientOptions clientOptions) { + this.clientOptions = clientOptions; + } + + public CompletableFuture> list( + String tenantId, String id) { + return list(tenantId, id, ListLayersRequest.builder().build()); + } + + public CompletableFuture> list( + String tenantId, String id, RequestOptions requestOptions) { + return list(tenantId, id, ListLayersRequest.builder().build(), requestOptions); + } + + public CompletableFuture> list( + String tenantId, String id, ListLayersRequest request) { + return list(tenantId, id, request, null); + } + + public CompletableFuture> list( + String tenantId, String id, ListLayersRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("v1/tenants") + .addPathSegment(tenantId) + .addPathSegments("documents") + .addPathSegment(id) + .addPathSegments("layers"); + if (request.getLimit().isPresent()) { + QueryStringMapper.addQueryParameter( + httpUrl, "limit", request.getLimit().get(), false); + } + if (request.getCursor().isPresent()) { + QueryStringMapper.addQueryParameter( + httpUrl, "cursor", request.getCursor().get(), false); + } + if (request.getShareId().isPresent()) { + QueryStringMapper.addQueryParameter( + httpUrl, "shareId", request.getShareId().get(), false); + } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((_key, _value) -> { + httpUrl.addQueryParameter(_key, _value); + }); + } + Request.Builder _requestBuilder = new Request.Builder() + .url(httpUrl.build()) + .method("GET", null) + .headers(Headers.of(clientOptions.headers(requestOptions))) + .addHeader("Accept", "application/json"); + Request okhttpRequest = _requestBuilder.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, DocumentsLayersList200Response.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 404: + future.completeExceptionally(new NotFoundError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.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> delete(String tenantId, String id, String layerName) { + return delete(tenantId, id, layerName, DeleteLayersRequest.builder().build()); + } + + public CompletableFuture> delete( + String tenantId, String id, String layerName, RequestOptions requestOptions) { + return delete(tenantId, id, layerName, DeleteLayersRequest.builder().build(), requestOptions); + } + + public CompletableFuture> delete( + String tenantId, String id, String layerName, DeleteLayersRequest request) { + return delete(tenantId, id, layerName, request, null); + } + + public CompletableFuture> delete( + String tenantId, String id, String layerName, DeleteLayersRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("v1/tenants") + .addPathSegment(tenantId) + .addPathSegments("documents") + .addPathSegment(id) + .addPathSegments("layers") + .addPathSegment(layerName); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((_key, _value) -> { + httpUrl.addQueryParameter(_key, _value); + }); + } + Request.Builder _requestBuilder = new Request.Builder() + .url(httpUrl.build()) + .method("DELETE", null) + .headers(Headers.of(clientOptions.headers(requestOptions))) + .addHeader("Accept", "application/json"); + Request okhttpRequest = _requestBuilder.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()) { + if (response.isSuccessful()) { + future.complete(new CloudPDFClientHttpResponse<>(null, response)); + return; + } + String responseBodyString = responseBody != null ? responseBody.string() : "{}"; + try { + switch (response.code()) { + case 403: + future.completeExceptionally(new ForbiddenError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), + response)); + return; + case 404: + future.completeExceptionally(new NotFoundError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), + response)); + return; + case 409: + future.completeExceptionally(new ConflictError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.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; + } +} diff --git a/src/main/java/api/resources/documents/layers/LayersClient.java b/src/main/java/api/resources/documents/layers/LayersClient.java new file mode 100644 index 0000000..a73f087 --- /dev/null +++ b/src/main/java/api/resources/documents/layers/LayersClient.java @@ -0,0 +1,62 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.documents.layers; + +import com.cloudpdf.api.core.ClientOptions; +import com.cloudpdf.api.core.RequestOptions; +import com.cloudpdf.api.resources.documents.layers.requests.DeleteLayersRequest; +import com.cloudpdf.api.resources.documents.layers.requests.ListLayersRequest; +import com.cloudpdf.api.types.DocumentsLayersList200Response; + +public class LayersClient { + protected final ClientOptions clientOptions; + + private final RawLayersClient rawClient; + + public LayersClient(ClientOptions clientOptions) { + this.clientOptions = clientOptions; + this.rawClient = new RawLayersClient(clientOptions); + } + + /** + * Get responses with HTTP metadata like headers + */ + public RawLayersClient withRawResponse() { + return this.rawClient; + } + + public DocumentsLayersList200Response list(String tenantId, String id) { + return this.rawClient.list(tenantId, id).body(); + } + + public DocumentsLayersList200Response list(String tenantId, String id, RequestOptions requestOptions) { + return this.rawClient.list(tenantId, id, requestOptions).body(); + } + + public DocumentsLayersList200Response list(String tenantId, String id, ListLayersRequest request) { + return this.rawClient.list(tenantId, id, request).body(); + } + + public DocumentsLayersList200Response list( + String tenantId, String id, ListLayersRequest request, RequestOptions requestOptions) { + return this.rawClient.list(tenantId, id, request, requestOptions).body(); + } + + public void delete(String tenantId, String id, String layerName) { + this.rawClient.delete(tenantId, id, layerName).body(); + } + + public void delete(String tenantId, String id, String layerName, RequestOptions requestOptions) { + this.rawClient.delete(tenantId, id, layerName, requestOptions).body(); + } + + public void delete(String tenantId, String id, String layerName, DeleteLayersRequest request) { + this.rawClient.delete(tenantId, id, layerName, request).body(); + } + + public void delete( + String tenantId, String id, String layerName, DeleteLayersRequest request, RequestOptions requestOptions) { + this.rawClient.delete(tenantId, id, layerName, request, requestOptions).body(); + } +} diff --git a/src/main/java/api/resources/documents/layers/RawLayersClient.java b/src/main/java/api/resources/documents/layers/RawLayersClient.java new file mode 100644 index 0000000..b75e7bf --- /dev/null +++ b/src/main/java/api/resources/documents/layers/RawLayersClient.java @@ -0,0 +1,207 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.documents.layers; + +import com.cloudpdf.api.core.ClientOptions; +import com.cloudpdf.api.core.CloudPDFApiException; +import com.cloudpdf.api.core.CloudPDFClientHttpResponse; +import com.cloudpdf.api.core.CloudPDFException; +import com.cloudpdf.api.core.ObjectMappers; +import com.cloudpdf.api.core.QueryStringMapper; +import com.cloudpdf.api.core.RequestOptions; +import com.cloudpdf.api.core.RetryInterceptor; +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.layers.requests.DeleteLayersRequest; +import com.cloudpdf.api.resources.documents.layers.requests.ListLayersRequest; +import com.cloudpdf.api.types.DocumentsLayersList200Response; +import com.fasterxml.jackson.core.JsonProcessingException; +import java.io.IOException; +import okhttp3.Headers; +import okhttp3.HttpUrl; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; + +public class RawLayersClient { + protected final ClientOptions clientOptions; + + public RawLayersClient(ClientOptions clientOptions) { + this.clientOptions = clientOptions; + } + + public CloudPDFClientHttpResponse list(String tenantId, String id) { + return list(tenantId, id, ListLayersRequest.builder().build()); + } + + public CloudPDFClientHttpResponse list( + String tenantId, String id, RequestOptions requestOptions) { + return list(tenantId, id, ListLayersRequest.builder().build(), requestOptions); + } + + public CloudPDFClientHttpResponse list( + String tenantId, String id, ListLayersRequest request) { + return list(tenantId, id, request, null); + } + + public CloudPDFClientHttpResponse list( + String tenantId, String id, ListLayersRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("v1/tenants") + .addPathSegment(tenantId) + .addPathSegments("documents") + .addPathSegment(id) + .addPathSegments("layers"); + if (request.getLimit().isPresent()) { + QueryStringMapper.addQueryParameter( + httpUrl, "limit", request.getLimit().get(), false); + } + if (request.getCursor().isPresent()) { + QueryStringMapper.addQueryParameter( + httpUrl, "cursor", request.getCursor().get(), false); + } + if (request.getShareId().isPresent()) { + QueryStringMapper.addQueryParameter( + httpUrl, "shareId", request.getShareId().get(), false); + } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((_key, _value) -> { + httpUrl.addQueryParameter(_key, _value); + }); + } + Request.Builder _requestBuilder = new Request.Builder() + .url(httpUrl.build()) + .method("GET", null) + .headers(Headers.of(clientOptions.headers(requestOptions))) + .addHeader("Accept", "application/json"); + Request okhttpRequest = _requestBuilder.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, DocumentsLayersList200Response.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 404: + throw new NotFoundError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.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 delete(String tenantId, String id, String layerName) { + return delete(tenantId, id, layerName, DeleteLayersRequest.builder().build()); + } + + public CloudPDFClientHttpResponse delete( + String tenantId, String id, String layerName, RequestOptions requestOptions) { + return delete(tenantId, id, layerName, DeleteLayersRequest.builder().build(), requestOptions); + } + + public CloudPDFClientHttpResponse delete( + String tenantId, String id, String layerName, DeleteLayersRequest request) { + return delete(tenantId, id, layerName, request, null); + } + + public CloudPDFClientHttpResponse delete( + String tenantId, String id, String layerName, DeleteLayersRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("v1/tenants") + .addPathSegment(tenantId) + .addPathSegments("documents") + .addPathSegment(id) + .addPathSegments("layers") + .addPathSegment(layerName); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((_key, _value) -> { + httpUrl.addQueryParameter(_key, _value); + }); + } + Request.Builder _requestBuilder = new Request.Builder() + .url(httpUrl.build()) + .method("DELETE", null) + .headers(Headers.of(clientOptions.headers(requestOptions))) + .addHeader("Accept", "application/json"); + Request okhttpRequest = _requestBuilder.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(); + if (response.isSuccessful()) { + return new CloudPDFClientHttpResponse<>(null, response); + } + String responseBodyString = responseBody != null ? responseBody.string() : "{}"; + try { + switch (response.code()) { + case 403: + throw new ForbiddenError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), response); + case 404: + throw new NotFoundError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), response); + case 409: + throw new ConflictError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.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); + } + } +} diff --git a/src/main/java/api/resources/documents/layers/requests/DeleteLayersRequest.java b/src/main/java/api/resources/documents/layers/requests/DeleteLayersRequest.java new file mode 100644 index 0000000..0bdab88 --- /dev/null +++ b/src/main/java/api/resources/documents/layers/requests/DeleteLayersRequest.java @@ -0,0 +1,69 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.documents.layers.requests; + +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.databind.annotation.JsonDeserialize; +import java.util.HashMap; +import java.util.Map; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DeleteLayersRequest.Builder.class) +public final class DeleteLayersRequest { + private final Map additionalProperties; + + private DeleteLayersRequest(Map additionalProperties) { + this.additionalProperties = additionalProperties; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DeleteLayersRequest; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @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 { + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(DeleteLayersRequest other) { + return this; + } + + public DeleteLayersRequest build() { + return new DeleteLayersRequest(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/layers/requests/ListLayersRequest.java b/src/main/java/api/resources/documents/layers/requests/ListLayersRequest.java new file mode 100644 index 0000000..d9f2808 --- /dev/null +++ b/src/main/java/api/resources/documents/layers/requests/ListLayersRequest.java @@ -0,0 +1,153 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.documents.layers.requests; + +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 = ListLayersRequest.Builder.class) +public final class ListLayersRequest { + private final Optional limit; + + private final Optional cursor; + + private final Optional shareId; + + private final Map additionalProperties; + + private ListLayersRequest( + Optional limit, + Optional cursor, + Optional shareId, + Map additionalProperties) { + this.limit = limit; + this.cursor = cursor; + this.shareId = shareId; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("limit") + public Optional getLimit() { + return limit; + } + + @JsonProperty("cursor") + public Optional getCursor() { + return cursor; + } + + @JsonProperty("shareId") + public Optional getShareId() { + return shareId; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof ListLayersRequest && equalTo((ListLayersRequest) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(ListLayersRequest other) { + return limit.equals(other.limit) && cursor.equals(other.cursor) && shareId.equals(other.shareId); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.limit, this.cursor, this.shareId); + } + + @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 limit = Optional.empty(); + + private Optional cursor = Optional.empty(); + + private Optional shareId = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(ListLayersRequest other) { + limit(other.getLimit()); + cursor(other.getCursor()); + shareId(other.getShareId()); + return this; + } + + @JsonSetter(value = "limit", nulls = Nulls.SKIP) + public Builder limit(Optional limit) { + this.limit = limit; + return this; + } + + public Builder limit(Integer limit) { + this.limit = Optional.ofNullable(limit); + return this; + } + + @JsonSetter(value = "cursor", nulls = Nulls.SKIP) + public Builder cursor(Optional cursor) { + this.cursor = cursor; + return this; + } + + public Builder cursor(String cursor) { + this.cursor = Optional.ofNullable(cursor); + return this; + } + + @JsonSetter(value = "shareId", nulls = Nulls.SKIP) + public Builder shareId(Optional shareId) { + this.shareId = shareId; + return this; + } + + public Builder shareId(String shareId) { + this.shareId = Optional.ofNullable(shareId); + return this; + } + + public ListLayersRequest build() { + return new ListLayersRequest(limit, cursor, shareId, 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/shares/AsyncRawSharesClient.java b/src/main/java/api/resources/shares/AsyncRawSharesClient.java index 904b21e..9fe7a2c 100644 --- a/src/main/java/api/resources/shares/AsyncRawSharesClient.java +++ b/src/main/java/api/resources/shares/AsyncRawSharesClient.java @@ -13,10 +13,12 @@ import com.cloudpdf.api.core.RequestOptions; import com.cloudpdf.api.core.RetryInterceptor; import com.cloudpdf.api.errors.BadRequestError; +import com.cloudpdf.api.errors.ConflictError; import com.cloudpdf.api.errors.ForbiddenError; import com.cloudpdf.api.errors.GoneError; import com.cloudpdf.api.errors.NotFoundError; import com.cloudpdf.api.errors.UnprocessableEntityError; +import com.cloudpdf.api.resources.shares.requests.ArchiveSharesRequest; import com.cloudpdf.api.resources.shares.requests.DeleteSharesRequest; import com.cloudpdf.api.resources.shares.requests.GetSharesRequest; import com.cloudpdf.api.resources.shares.requests.ListSharesRequest; @@ -24,6 +26,7 @@ import com.cloudpdf.api.resources.shares.requests.SharesExchangeRequest; import com.cloudpdf.api.resources.shares.requests.SharesUpdateRequest; import com.cloudpdf.api.types.AdminErrorPayload; +import com.cloudpdf.api.types.SharesArchive200Response; import com.cloudpdf.api.types.SharesCreate200Response; import com.cloudpdf.api.types.SharesExchange200Response; import com.cloudpdf.api.types.SharesGet200Response; @@ -51,7 +54,7 @@ public AsyncRawSharesClient(ClientOptions clientOptions) { } /** - * Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. Mounted only when the deployment can sign (HS256 mode). + * Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. A link that asks its visitors who they are on open returns 422 VisitorIdentityRequired until the required answers are given; error.details carries fields (what the link asks), missing, invalid, purpose and privacyUrl. A link that asks before the first change issues the session at once with visitor.identityRequest, and writes answer 403 VisitorIdentityRequired with the same details until the visitor exchanges again with their answers. Answers that can not be taken answer 422 on any link. Mounted only when the deployment can sign (HS256 mode). */ public CompletableFuture> exchange( SharesExchangeRequest request) { @@ -59,7 +62,7 @@ public CompletableFuture> } /** - * Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. Mounted only when the deployment can sign (HS256 mode). + * Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. A link that asks its visitors who they are on open returns 422 VisitorIdentityRequired until the required answers are given; error.details carries fields (what the link asks), missing, invalid, purpose and privacyUrl. A link that asks before the first change issues the session at once with visitor.identityRequest, and writes answer 403 VisitorIdentityRequired with the same details until the visitor exchanges again with their answers. Answers that can not be taken answer 422 on any link. Mounted only when the deployment can sign (HS256 mode). */ public CompletableFuture> exchange( SharesExchangeRequest request, RequestOptions requestOptions) { @@ -197,6 +200,10 @@ public CompletableFuture> list QueryStringMapper.addQueryParameter( httpUrl, "docId", request.getDocId().get(), false); } + if (request.getArchived().isPresent()) { + QueryStringMapper.addQueryParameter( + httpUrl, "archived", request.getArchived().get(), false); + } if (requestOptions != null) { requestOptions.getQueryParameters().forEach((_key, _value) -> { httpUrl.addQueryParameter(_key, _value); @@ -509,10 +516,17 @@ public void onResponse(@NotNull Call call, @NotNull Response response) throws IO } String responseBodyString = responseBody != null ? responseBody.string() : "{}"; try { - if (response.code() == 404) { - future.completeExceptionally(new NotFoundError( - ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), response)); - return; + switch (response.code()) { + case 404: + future.completeExceptionally(new NotFoundError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), + response)); + return; + case 409: + future.completeExceptionally(new ConflictError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), + response)); + return; } } catch (JsonProcessingException ignored) { // unable to map error response, throwing generic error @@ -616,6 +630,112 @@ public void onResponse(@NotNull Call call, @NotNull Response response) throws IO ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), response)); return; + case 409: + future.completeExceptionally(new ConflictError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.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; + } + + /** + * Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (disabled) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted. + */ + public CompletableFuture> archive( + String tenantId, String shareId) { + return archive(tenantId, shareId, ArchiveSharesRequest.builder().build()); + } + + /** + * Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (disabled) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted. + */ + public CompletableFuture> archive( + String tenantId, String shareId, RequestOptions requestOptions) { + return archive(tenantId, shareId, ArchiveSharesRequest.builder().build(), requestOptions); + } + + /** + * Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (disabled) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted. + */ + public CompletableFuture> archive( + String tenantId, String shareId, ArchiveSharesRequest request) { + return archive(tenantId, shareId, request, null); + } + + /** + * Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (disabled) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted. + */ + public CompletableFuture> archive( + String tenantId, String shareId, ArchiveSharesRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("v1/tenants") + .addPathSegment(tenantId) + .addPathSegments("shares") + .addPathSegment(shareId) + .addPathSegments("archive"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((_key, _value) -> { + httpUrl.addQueryParameter(_key, _value); + }); + } + Request.Builder _requestBuilder = new Request.Builder() + .url(httpUrl.build()) + .method("POST", RequestBody.create("", null)) + .headers(Headers.of(clientOptions.headers(requestOptions))) + .addHeader("Accept", "application/json"); + Request okhttpRequest = _requestBuilder.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, SharesArchive200Response.class), + response)); + return; + } + try { + if (response.code() == 404) { + future.completeExceptionally(new NotFoundError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), response)); + return; } } catch (JsonProcessingException ignored) { // unable to map error response, throwing generic error diff --git a/src/main/java/api/resources/shares/AsyncSharesClient.java b/src/main/java/api/resources/shares/AsyncSharesClient.java index e0fcadf..4d0421b 100644 --- a/src/main/java/api/resources/shares/AsyncSharesClient.java +++ b/src/main/java/api/resources/shares/AsyncSharesClient.java @@ -5,27 +5,35 @@ import com.cloudpdf.api.core.ClientOptions; import com.cloudpdf.api.core.RequestOptions; +import com.cloudpdf.api.core.Suppliers; +import com.cloudpdf.api.resources.shares.requests.ArchiveSharesRequest; import com.cloudpdf.api.resources.shares.requests.DeleteSharesRequest; import com.cloudpdf.api.resources.shares.requests.GetSharesRequest; import com.cloudpdf.api.resources.shares.requests.ListSharesRequest; import com.cloudpdf.api.resources.shares.requests.SharesCreateRequest; import com.cloudpdf.api.resources.shares.requests.SharesExchangeRequest; import com.cloudpdf.api.resources.shares.requests.SharesUpdateRequest; +import com.cloudpdf.api.resources.shares.visitors.AsyncVisitorsClient; +import com.cloudpdf.api.types.SharesArchive200Response; import com.cloudpdf.api.types.SharesCreate200Response; import com.cloudpdf.api.types.SharesExchange200Response; import com.cloudpdf.api.types.SharesGet200Response; import com.cloudpdf.api.types.SharesList200Response; import com.cloudpdf.api.types.SharesUpdate200Response; import java.util.concurrent.CompletableFuture; +import java.util.function.Supplier; public class AsyncSharesClient { protected final ClientOptions clientOptions; private final AsyncRawSharesClient rawClient; + protected final Supplier visitorsClient; + public AsyncSharesClient(ClientOptions clientOptions) { this.clientOptions = clientOptions; this.rawClient = new AsyncRawSharesClient(clientOptions); + this.visitorsClient = Suppliers.memoize(() -> new AsyncVisitorsClient(clientOptions)); } /** @@ -36,14 +44,14 @@ public AsyncRawSharesClient withRawResponse() { } /** - * Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. Mounted only when the deployment can sign (HS256 mode). + * Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. A link that asks its visitors who they are on open returns 422 VisitorIdentityRequired until the required answers are given; error.details carries fields (what the link asks), missing, invalid, purpose and privacyUrl. A link that asks before the first change issues the session at once with visitor.identityRequest, and writes answer 403 VisitorIdentityRequired with the same details until the visitor exchanges again with their answers. Answers that can not be taken answer 422 on any link. Mounted only when the deployment can sign (HS256 mode). */ public CompletableFuture exchange(SharesExchangeRequest request) { return this.rawClient.exchange(request).thenApply(response -> response.body()); } /** - * Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. Mounted only when the deployment can sign (HS256 mode). + * Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. A link that asks its visitors who they are on open returns 422 VisitorIdentityRequired until the required answers are given; error.details carries fields (what the link asks), missing, invalid, purpose and privacyUrl. A link that asks before the first change issues the session at once with visitor.identityRequest, and writes answer 403 VisitorIdentityRequired with the same details until the visitor exchanges again with their answers. Answers that can not be taken answer 422 on any link. Mounted only when the deployment can sign (HS256 mode). */ public CompletableFuture exchange( SharesExchangeRequest request, RequestOptions requestOptions) { @@ -134,4 +142,41 @@ public CompletableFuture update( String tenantId, String shareId, SharesUpdateRequest request, RequestOptions requestOptions) { return this.rawClient.update(tenantId, shareId, request, requestOptions).thenApply(response -> response.body()); } + + /** + * Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (disabled) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted. + */ + public CompletableFuture archive(String tenantId, String shareId) { + return this.rawClient.archive(tenantId, shareId).thenApply(response -> response.body()); + } + + /** + * Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (disabled) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted. + */ + public CompletableFuture archive( + String tenantId, String shareId, RequestOptions requestOptions) { + return this.rawClient.archive(tenantId, shareId, requestOptions).thenApply(response -> response.body()); + } + + /** + * Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (disabled) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted. + */ + public CompletableFuture archive( + String tenantId, String shareId, ArchiveSharesRequest request) { + return this.rawClient.archive(tenantId, shareId, request).thenApply(response -> response.body()); + } + + /** + * Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (disabled) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted. + */ + public CompletableFuture archive( + String tenantId, String shareId, ArchiveSharesRequest request, RequestOptions requestOptions) { + return this.rawClient + .archive(tenantId, shareId, request, requestOptions) + .thenApply(response -> response.body()); + } + + public AsyncVisitorsClient visitors() { + return this.visitorsClient.get(); + } } diff --git a/src/main/java/api/resources/shares/RawSharesClient.java b/src/main/java/api/resources/shares/RawSharesClient.java index db9923a..7520cb9 100644 --- a/src/main/java/api/resources/shares/RawSharesClient.java +++ b/src/main/java/api/resources/shares/RawSharesClient.java @@ -13,10 +13,12 @@ import com.cloudpdf.api.core.RequestOptions; import com.cloudpdf.api.core.RetryInterceptor; import com.cloudpdf.api.errors.BadRequestError; +import com.cloudpdf.api.errors.ConflictError; import com.cloudpdf.api.errors.ForbiddenError; import com.cloudpdf.api.errors.GoneError; import com.cloudpdf.api.errors.NotFoundError; import com.cloudpdf.api.errors.UnprocessableEntityError; +import com.cloudpdf.api.resources.shares.requests.ArchiveSharesRequest; import com.cloudpdf.api.resources.shares.requests.DeleteSharesRequest; import com.cloudpdf.api.resources.shares.requests.GetSharesRequest; import com.cloudpdf.api.resources.shares.requests.ListSharesRequest; @@ -24,6 +26,7 @@ import com.cloudpdf.api.resources.shares.requests.SharesExchangeRequest; import com.cloudpdf.api.resources.shares.requests.SharesUpdateRequest; import com.cloudpdf.api.types.AdminErrorPayload; +import com.cloudpdf.api.types.SharesArchive200Response; import com.cloudpdf.api.types.SharesCreate200Response; import com.cloudpdf.api.types.SharesExchange200Response; import com.cloudpdf.api.types.SharesGet200Response; @@ -47,14 +50,14 @@ public RawSharesClient(ClientOptions clientOptions) { } /** - * Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. Mounted only when the deployment can sign (HS256 mode). + * Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. A link that asks its visitors who they are on open returns 422 VisitorIdentityRequired until the required answers are given; error.details carries fields (what the link asks), missing, invalid, purpose and privacyUrl. A link that asks before the first change issues the session at once with visitor.identityRequest, and writes answer 403 VisitorIdentityRequired with the same details until the visitor exchanges again with their answers. Answers that can not be taken answer 422 on any link. Mounted only when the deployment can sign (HS256 mode). */ public CloudPDFClientHttpResponse exchange(SharesExchangeRequest request) { return exchange(request, null); } /** - * Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. Mounted only when the deployment can sign (HS256 mode). + * Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. A link that asks its visitors who they are on open returns 422 VisitorIdentityRequired until the required answers are given; error.details carries fields (what the link asks), missing, invalid, purpose and privacyUrl. A link that asks before the first change issues the session at once with visitor.identityRequest, and writes answer 403 VisitorIdentityRequired with the same details until the visitor exchanges again with their answers. Answers that can not be taken answer 422 on any link. Mounted only when the deployment can sign (HS256 mode). */ public CloudPDFClientHttpResponse exchange( SharesExchangeRequest request, RequestOptions requestOptions) { @@ -165,6 +168,10 @@ public CloudPDFClientHttpResponse list( QueryStringMapper.addQueryParameter( httpUrl, "docId", request.getDocId().get(), false); } + if (request.getArchived().isPresent()) { + QueryStringMapper.addQueryParameter( + httpUrl, "archived", request.getArchived().get(), false); + } if (requestOptions != null) { requestOptions.getQueryParameters().forEach((_key, _value) -> { httpUrl.addQueryParameter(_key, _value); @@ -418,9 +425,13 @@ public CloudPDFClientHttpResponse delete( } String responseBodyString = responseBody != null ? responseBody.string() : "{}"; try { - if (response.code() == 404) { - throw new NotFoundError( - ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), response); + switch (response.code()) { + case 404: + throw new NotFoundError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), response); + case 409: + throw new ConflictError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), response); } } catch (JsonProcessingException ignored) { // unable to map error response, throwing generic error @@ -505,6 +516,94 @@ public CloudPDFClientHttpResponse update( case 404: throw new NotFoundError( ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), response); + case 409: + throw new ConflictError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.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); + } + } + + /** + * Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (disabled) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted. + */ + public CloudPDFClientHttpResponse archive(String tenantId, String shareId) { + return archive(tenantId, shareId, ArchiveSharesRequest.builder().build()); + } + + /** + * Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (disabled) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted. + */ + public CloudPDFClientHttpResponse archive( + String tenantId, String shareId, RequestOptions requestOptions) { + return archive(tenantId, shareId, ArchiveSharesRequest.builder().build(), requestOptions); + } + + /** + * Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (disabled) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted. + */ + public CloudPDFClientHttpResponse archive( + String tenantId, String shareId, ArchiveSharesRequest request) { + return archive(tenantId, shareId, request, null); + } + + /** + * Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (disabled) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted. + */ + public CloudPDFClientHttpResponse archive( + String tenantId, String shareId, ArchiveSharesRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("v1/tenants") + .addPathSegment(tenantId) + .addPathSegments("shares") + .addPathSegment(shareId) + .addPathSegments("archive"); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((_key, _value) -> { + httpUrl.addQueryParameter(_key, _value); + }); + } + Request.Builder _requestBuilder = new Request.Builder() + .url(httpUrl.build()) + .method("POST", RequestBody.create("", null)) + .headers(Headers.of(clientOptions.headers(requestOptions))) + .addHeader("Accept", "application/json"); + Request okhttpRequest = _requestBuilder.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, SharesArchive200Response.class), + response); + } + try { + if (response.code() == 404) { + throw new NotFoundError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), response); } } catch (JsonProcessingException ignored) { // unable to map error response, throwing generic error diff --git a/src/main/java/api/resources/shares/SharesClient.java b/src/main/java/api/resources/shares/SharesClient.java index 8774320..82a0c24 100644 --- a/src/main/java/api/resources/shares/SharesClient.java +++ b/src/main/java/api/resources/shares/SharesClient.java @@ -5,26 +5,34 @@ import com.cloudpdf.api.core.ClientOptions; import com.cloudpdf.api.core.RequestOptions; +import com.cloudpdf.api.core.Suppliers; +import com.cloudpdf.api.resources.shares.requests.ArchiveSharesRequest; import com.cloudpdf.api.resources.shares.requests.DeleteSharesRequest; import com.cloudpdf.api.resources.shares.requests.GetSharesRequest; import com.cloudpdf.api.resources.shares.requests.ListSharesRequest; import com.cloudpdf.api.resources.shares.requests.SharesCreateRequest; import com.cloudpdf.api.resources.shares.requests.SharesExchangeRequest; import com.cloudpdf.api.resources.shares.requests.SharesUpdateRequest; +import com.cloudpdf.api.resources.shares.visitors.VisitorsClient; +import com.cloudpdf.api.types.SharesArchive200Response; import com.cloudpdf.api.types.SharesCreate200Response; import com.cloudpdf.api.types.SharesExchange200Response; import com.cloudpdf.api.types.SharesGet200Response; import com.cloudpdf.api.types.SharesList200Response; import com.cloudpdf.api.types.SharesUpdate200Response; +import java.util.function.Supplier; public class SharesClient { protected final ClientOptions clientOptions; private final RawSharesClient rawClient; + protected final Supplier visitorsClient; + public SharesClient(ClientOptions clientOptions) { this.clientOptions = clientOptions; this.rawClient = new RawSharesClient(clientOptions); + this.visitorsClient = Suppliers.memoize(() -> new VisitorsClient(clientOptions)); } /** @@ -35,14 +43,14 @@ public RawSharesClient withRawResponse() { } /** - * Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. Mounted only when the deployment can sign (HS256 mode). + * Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. A link that asks its visitors who they are on open returns 422 VisitorIdentityRequired until the required answers are given; error.details carries fields (what the link asks), missing, invalid, purpose and privacyUrl. A link that asks before the first change issues the session at once with visitor.identityRequest, and writes answer 403 VisitorIdentityRequired with the same details until the visitor exchanges again with their answers. Answers that can not be taken answer 422 on any link. Mounted only when the deployment can sign (HS256 mode). */ public SharesExchange200Response exchange(SharesExchangeRequest request) { return this.rawClient.exchange(request).body(); } /** - * Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. Mounted only when the deployment can sign (HS256 mode). + * Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. A link that asks its visitors who they are on open returns 422 VisitorIdentityRequired until the required answers are given; error.details carries fields (what the link asks), missing, invalid, purpose and privacyUrl. A link that asks before the first change issues the session at once with visitor.identityRequest, and writes answer 403 VisitorIdentityRequired with the same details until the visitor exchanges again with their answers. Answers that can not be taken answer 422 on any link. Mounted only when the deployment can sign (HS256 mode). */ public SharesExchange200Response exchange(SharesExchangeRequest request, RequestOptions requestOptions) { return this.rawClient.exchange(request, requestOptions).body(); @@ -127,4 +135,39 @@ public SharesUpdate200Response update( String tenantId, String shareId, SharesUpdateRequest request, RequestOptions requestOptions) { return this.rawClient.update(tenantId, shareId, request, requestOptions).body(); } + + /** + * Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (disabled) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted. + */ + public SharesArchive200Response archive(String tenantId, String shareId) { + return this.rawClient.archive(tenantId, shareId).body(); + } + + /** + * Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (disabled) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted. + */ + public SharesArchive200Response archive(String tenantId, String shareId, RequestOptions requestOptions) { + return this.rawClient.archive(tenantId, shareId, requestOptions).body(); + } + + /** + * Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (disabled) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted. + */ + public SharesArchive200Response archive(String tenantId, String shareId, ArchiveSharesRequest request) { + return this.rawClient.archive(tenantId, shareId, request).body(); + } + + /** + * Archiving is final: an archived link never exchanges again, and to share again you create a new link. Pausing (disabled) is the reversible stop. An archived link no longer counts as using its shared layer, so that layer can be deleted. + */ + public SharesArchive200Response archive( + String tenantId, String shareId, ArchiveSharesRequest request, RequestOptions requestOptions) { + return this.rawClient + .archive(tenantId, shareId, request, requestOptions) + .body(); + } + + public VisitorsClient visitors() { + return this.visitorsClient.get(); + } } diff --git a/src/main/java/api/resources/shares/requests/ArchiveSharesRequest.java b/src/main/java/api/resources/shares/requests/ArchiveSharesRequest.java new file mode 100644 index 0000000..57b1352 --- /dev/null +++ b/src/main/java/api/resources/shares/requests/ArchiveSharesRequest.java @@ -0,0 +1,69 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.requests; + +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.databind.annotation.JsonDeserialize; +import java.util.HashMap; +import java.util.Map; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = ArchiveSharesRequest.Builder.class) +public final class ArchiveSharesRequest { + private final Map additionalProperties; + + private ArchiveSharesRequest(Map additionalProperties) { + this.additionalProperties = additionalProperties; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof ArchiveSharesRequest; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @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 { + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(ArchiveSharesRequest other) { + return this; + } + + public ArchiveSharesRequest build() { + return new ArchiveSharesRequest(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/shares/requests/ListSharesRequest.java b/src/main/java/api/resources/shares/requests/ListSharesRequest.java index 4a828a5..d9c602f 100644 --- a/src/main/java/api/resources/shares/requests/ListSharesRequest.java +++ b/src/main/java/api/resources/shares/requests/ListSharesRequest.java @@ -26,16 +26,20 @@ public final class ListSharesRequest { private final Optional docId; + private final Optional archived; + private final Map additionalProperties; private ListSharesRequest( Optional limit, Optional cursor, Optional docId, + Optional archived, Map additionalProperties) { this.limit = limit; this.cursor = cursor; this.docId = docId; + this.archived = archived; this.additionalProperties = additionalProperties; } @@ -54,6 +58,11 @@ public Optional getDocId() { return docId; } + @JsonProperty("archived") + public Optional getArchived() { + return archived; + } + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; @@ -66,12 +75,15 @@ public Map getAdditionalProperties() { } private boolean equalTo(ListSharesRequest other) { - return limit.equals(other.limit) && cursor.equals(other.cursor) && docId.equals(other.docId); + return limit.equals(other.limit) + && cursor.equals(other.cursor) + && docId.equals(other.docId) + && archived.equals(other.archived); } @java.lang.Override public int hashCode() { - return Objects.hash(this.limit, this.cursor, this.docId); + return Objects.hash(this.limit, this.cursor, this.docId, this.archived); } @java.lang.Override @@ -91,6 +103,8 @@ public static final class Builder { private Optional docId = Optional.empty(); + private Optional archived = Optional.empty(); + @JsonAnySetter private Map additionalProperties = new HashMap<>(); @@ -100,6 +114,7 @@ public Builder from(ListSharesRequest other) { limit(other.getLimit()); cursor(other.getCursor()); docId(other.getDocId()); + archived(other.getArchived()); return this; } @@ -136,8 +151,19 @@ public Builder docId(String docId) { return this; } + @JsonSetter(value = "archived", nulls = Nulls.SKIP) + public Builder archived(Optional archived) { + this.archived = archived; + return this; + } + + public Builder archived(Boolean archived) { + this.archived = Optional.ofNullable(archived); + return this; + } + public ListSharesRequest build() { - return new ListSharesRequest(limit, cursor, docId, additionalProperties); + return new ListSharesRequest(limit, cursor, docId, archived, additionalProperties); } public Builder additionalProperty(String key, Object value) { diff --git a/src/main/java/api/resources/shares/requests/SharesCreateRequest.java b/src/main/java/api/resources/shares/requests/SharesCreateRequest.java index 80a5541..6beb901 100644 --- a/src/main/java/api/resources/shares/requests/SharesCreateRequest.java +++ b/src/main/java/api/resources/shares/requests/SharesCreateRequest.java @@ -3,9 +3,14 @@ */ package com.cloudpdf.api.resources.shares.requests; +import com.cloudpdf.api.core.Nullable; +import com.cloudpdf.api.core.NullableNonemptyFilter; import com.cloudpdf.api.core.ObjectMappers; +import com.cloudpdf.api.resources.shares.types.SharesCreateRequestLayerMode; +import com.cloudpdf.api.resources.shares.types.SharesCreateRequestVisitorIdentity; 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; @@ -25,8 +30,16 @@ public final class SharesCreateRequest { private final String docId; + private final Optional layerMode; + private final Optional layerName; + private final Optional keepVisitorLayers; + + private final Optional visitorIdleSeconds; + + private final Optional visitorIdentity; + private final List scope; private final Optional> origins; @@ -41,7 +54,11 @@ public final class SharesCreateRequest { private SharesCreateRequest( String docId, + Optional layerMode, Optional layerName, + Optional keepVisitorLayers, + Optional visitorIdleSeconds, + Optional visitorIdentity, List scope, Optional> origins, Optional password, @@ -49,7 +66,11 @@ private SharesCreateRequest( Optional expiresAt, Map additionalProperties) { this.docId = docId; + this.layerMode = layerMode; this.layerName = layerName; + this.keepVisitorLayers = keepVisitorLayers; + this.visitorIdleSeconds = visitorIdleSeconds; + this.visitorIdentity = visitorIdentity; this.scope = scope; this.origins = origins; this.password = password; @@ -63,11 +84,37 @@ public String getDocId() { return docId; } + @JsonProperty("layerMode") + public Optional getLayerMode() { + return layerMode; + } + @JsonProperty("layerName") public Optional getLayerName() { return layerName; } + @JsonProperty("keepVisitorLayers") + public Optional getKeepVisitorLayers() { + return keepVisitorLayers; + } + + @JsonIgnore + public Optional getVisitorIdleSeconds() { + if (visitorIdleSeconds == null) { + return Optional.empty(); + } + return visitorIdleSeconds; + } + + @JsonIgnore + public Optional getVisitorIdentity() { + if (visitorIdentity == null) { + return Optional.empty(); + } + return visitorIdentity; + } + @JsonProperty("scope") public List getScope() { return scope; @@ -93,6 +140,18 @@ public Optional getExpiresAt() { return expiresAt; } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("visitorIdleSeconds") + private Optional _getVisitorIdleSeconds() { + return visitorIdleSeconds; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("visitorIdentity") + private Optional _getVisitorIdentity() { + return visitorIdentity; + } + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; @@ -106,7 +165,11 @@ public Map getAdditionalProperties() { private boolean equalTo(SharesCreateRequest other) { return docId.equals(other.docId) + && layerMode.equals(other.layerMode) && layerName.equals(other.layerName) + && keepVisitorLayers.equals(other.keepVisitorLayers) + && visitorIdleSeconds.equals(other.visitorIdleSeconds) + && visitorIdentity.equals(other.visitorIdentity) && scope.equals(other.scope) && origins.equals(other.origins) && password.equals(other.password) @@ -118,7 +181,11 @@ private boolean equalTo(SharesCreateRequest other) { public int hashCode() { return Objects.hash( this.docId, + this.layerMode, this.layerName, + this.keepVisitorLayers, + this.visitorIdleSeconds, + this.visitorIdentity, this.scope, this.origins, this.password, @@ -148,10 +215,30 @@ public interface _FinalStage { _FinalStage additionalProperties(Map additionalProperties); + _FinalStage layerMode(Optional layerMode); + + _FinalStage layerMode(SharesCreateRequestLayerMode layerMode); + _FinalStage layerName(Optional layerName); _FinalStage layerName(String layerName); + _FinalStage keepVisitorLayers(Optional keepVisitorLayers); + + _FinalStage keepVisitorLayers(Boolean keepVisitorLayers); + + _FinalStage visitorIdleSeconds(Optional visitorIdleSeconds); + + _FinalStage visitorIdleSeconds(Integer visitorIdleSeconds); + + _FinalStage visitorIdleSeconds(Nullable visitorIdleSeconds); + + _FinalStage visitorIdentity(Optional visitorIdentity); + + _FinalStage visitorIdentity(SharesCreateRequestVisitorIdentity visitorIdentity); + + _FinalStage visitorIdentity(Nullable visitorIdentity); + _FinalStage scope(List scope); _FinalStage addScope(String scope); @@ -189,8 +276,16 @@ public static final class Builder implements DocIdStage, _FinalStage { private List scope = new ArrayList<>(); + private Optional visitorIdentity = Optional.empty(); + + private Optional visitorIdleSeconds = Optional.empty(); + + private Optional keepVisitorLayers = Optional.empty(); + private Optional layerName = Optional.empty(); + private Optional layerMode = Optional.empty(); + @JsonAnySetter private Map additionalProperties = new HashMap<>(); @@ -199,7 +294,11 @@ private Builder() {} @java.lang.Override public Builder from(SharesCreateRequest other) { docId(other.getDocId()); + layerMode(other.getLayerMode()); layerName(other.getLayerName()); + keepVisitorLayers(other.getKeepVisitorLayers()); + visitorIdleSeconds(other.getVisitorIdleSeconds()); + visitorIdentity(other.getVisitorIdentity()); scope(other.getScope()); origins(other.getOrigins()); password(other.getPassword()); @@ -291,6 +390,69 @@ public _FinalStage scope(List scope) { return this; } + @java.lang.Override + public _FinalStage visitorIdentity(Nullable visitorIdentity) { + if (visitorIdentity.isNull()) { + this.visitorIdentity = null; + } else if (visitorIdentity.isEmpty()) { + this.visitorIdentity = Optional.empty(); + } else { + this.visitorIdentity = Optional.of(visitorIdentity.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage visitorIdentity(SharesCreateRequestVisitorIdentity visitorIdentity) { + this.visitorIdentity = Optional.ofNullable(visitorIdentity); + return this; + } + + @java.lang.Override + @JsonSetter(value = "visitorIdentity", nulls = Nulls.SKIP) + public _FinalStage visitorIdentity(Optional visitorIdentity) { + this.visitorIdentity = visitorIdentity; + return this; + } + + @java.lang.Override + public _FinalStage visitorIdleSeconds(Nullable visitorIdleSeconds) { + if (visitorIdleSeconds.isNull()) { + this.visitorIdleSeconds = null; + } else if (visitorIdleSeconds.isEmpty()) { + this.visitorIdleSeconds = Optional.empty(); + } else { + this.visitorIdleSeconds = Optional.of(visitorIdleSeconds.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage visitorIdleSeconds(Integer visitorIdleSeconds) { + this.visitorIdleSeconds = Optional.ofNullable(visitorIdleSeconds); + return this; + } + + @java.lang.Override + @JsonSetter(value = "visitorIdleSeconds", nulls = Nulls.SKIP) + public _FinalStage visitorIdleSeconds(Optional visitorIdleSeconds) { + this.visitorIdleSeconds = visitorIdleSeconds; + return this; + } + + @java.lang.Override + public _FinalStage keepVisitorLayers(Boolean keepVisitorLayers) { + this.keepVisitorLayers = Optional.ofNullable(keepVisitorLayers); + return this; + } + + @java.lang.Override + @JsonSetter(value = "keepVisitorLayers", nulls = Nulls.SKIP) + public _FinalStage keepVisitorLayers(Optional keepVisitorLayers) { + this.keepVisitorLayers = keepVisitorLayers; + return this; + } + @java.lang.Override public _FinalStage layerName(String layerName) { this.layerName = Optional.ofNullable(layerName); @@ -304,10 +466,34 @@ public _FinalStage layerName(Optional layerName) { return this; } + @java.lang.Override + public _FinalStage layerMode(SharesCreateRequestLayerMode layerMode) { + this.layerMode = Optional.ofNullable(layerMode); + return this; + } + + @java.lang.Override + @JsonSetter(value = "layerMode", nulls = Nulls.SKIP) + public _FinalStage layerMode(Optional layerMode) { + this.layerMode = layerMode; + return this; + } + @java.lang.Override public SharesCreateRequest build() { return new SharesCreateRequest( - docId, layerName, scope, origins, password, sessionTtlSeconds, expiresAt, additionalProperties); + docId, + layerMode, + layerName, + keepVisitorLayers, + visitorIdleSeconds, + visitorIdentity, + scope, + origins, + password, + sessionTtlSeconds, + expiresAt, + additionalProperties); } @java.lang.Override diff --git a/src/main/java/api/resources/shares/requests/SharesExchangeRequest.java b/src/main/java/api/resources/shares/requests/SharesExchangeRequest.java index 6598034..08a53f3 100644 --- a/src/main/java/api/resources/shares/requests/SharesExchangeRequest.java +++ b/src/main/java/api/resources/shares/requests/SharesExchangeRequest.java @@ -4,6 +4,7 @@ package com.cloudpdf.api.resources.shares.requests; import com.cloudpdf.api.core.ObjectMappers; +import com.cloudpdf.api.resources.shares.types.SharesExchangeRequestVisitorIdentity; import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.fasterxml.jackson.annotation.JsonAnySetter; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -25,12 +26,26 @@ public final class SharesExchangeRequest { private final Optional password; + private final Optional visitorHandle; + + private final Optional restart; + + private final Optional visitorIdentity; + private final Map additionalProperties; private SharesExchangeRequest( - String shareToken, Optional password, Map additionalProperties) { + String shareToken, + Optional password, + Optional visitorHandle, + Optional restart, + Optional visitorIdentity, + Map additionalProperties) { this.shareToken = shareToken; this.password = password; + this.visitorHandle = visitorHandle; + this.restart = restart; + this.visitorIdentity = visitorIdentity; this.additionalProperties = additionalProperties; } @@ -44,6 +59,21 @@ public Optional getPassword() { return password; } + @JsonProperty("visitorHandle") + public Optional getVisitorHandle() { + return visitorHandle; + } + + @JsonProperty("restart") + public Optional getRestart() { + return restart; + } + + @JsonProperty("visitorIdentity") + public Optional getVisitorIdentity() { + return visitorIdentity; + } + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; @@ -56,12 +86,16 @@ public Map getAdditionalProperties() { } private boolean equalTo(SharesExchangeRequest other) { - return shareToken.equals(other.shareToken) && password.equals(other.password); + return shareToken.equals(other.shareToken) + && password.equals(other.password) + && visitorHandle.equals(other.visitorHandle) + && restart.equals(other.restart) + && visitorIdentity.equals(other.visitorIdentity); } @java.lang.Override public int hashCode() { - return Objects.hash(this.shareToken, this.password); + return Objects.hash(this.shareToken, this.password, this.visitorHandle, this.restart, this.visitorIdentity); } @java.lang.Override @@ -89,12 +123,30 @@ public interface _FinalStage { _FinalStage password(Optional password); _FinalStage password(String password); + + _FinalStage visitorHandle(Optional visitorHandle); + + _FinalStage visitorHandle(String visitorHandle); + + _FinalStage restart(Optional restart); + + _FinalStage restart(Boolean restart); + + _FinalStage visitorIdentity(Optional visitorIdentity); + + _FinalStage visitorIdentity(SharesExchangeRequestVisitorIdentity visitorIdentity); } @JsonIgnoreProperties(ignoreUnknown = true) public static final class Builder implements ShareTokenStage, _FinalStage { private String shareToken; + private Optional visitorIdentity = Optional.empty(); + + private Optional restart = Optional.empty(); + + private Optional visitorHandle = Optional.empty(); + private Optional password = Optional.empty(); @JsonAnySetter @@ -106,6 +158,9 @@ private Builder() {} public Builder from(SharesExchangeRequest other) { shareToken(other.getShareToken()); password(other.getPassword()); + visitorHandle(other.getVisitorHandle()); + restart(other.getRestart()); + visitorIdentity(other.getVisitorIdentity()); return this; } @@ -116,6 +171,45 @@ public _FinalStage shareToken(@NotNull String shareToken) { return this; } + @java.lang.Override + public _FinalStage visitorIdentity(SharesExchangeRequestVisitorIdentity visitorIdentity) { + this.visitorIdentity = Optional.ofNullable(visitorIdentity); + return this; + } + + @java.lang.Override + @JsonSetter(value = "visitorIdentity", nulls = Nulls.SKIP) + public _FinalStage visitorIdentity(Optional visitorIdentity) { + this.visitorIdentity = visitorIdentity; + return this; + } + + @java.lang.Override + public _FinalStage restart(Boolean restart) { + this.restart = Optional.ofNullable(restart); + return this; + } + + @java.lang.Override + @JsonSetter(value = "restart", nulls = Nulls.SKIP) + public _FinalStage restart(Optional restart) { + this.restart = restart; + return this; + } + + @java.lang.Override + public _FinalStage visitorHandle(String visitorHandle) { + this.visitorHandle = Optional.ofNullable(visitorHandle); + return this; + } + + @java.lang.Override + @JsonSetter(value = "visitorHandle", nulls = Nulls.SKIP) + public _FinalStage visitorHandle(Optional visitorHandle) { + this.visitorHandle = visitorHandle; + return this; + } + @java.lang.Override public _FinalStage password(String password) { this.password = Optional.ofNullable(password); @@ -131,7 +225,8 @@ public _FinalStage password(Optional password) { @java.lang.Override public SharesExchangeRequest build() { - return new SharesExchangeRequest(shareToken, password, additionalProperties); + return new SharesExchangeRequest( + shareToken, password, visitorHandle, restart, visitorIdentity, additionalProperties); } @java.lang.Override diff --git a/src/main/java/api/resources/shares/requests/SharesUpdateRequest.java b/src/main/java/api/resources/shares/requests/SharesUpdateRequest.java index 8890209..0954c52 100644 --- a/src/main/java/api/resources/shares/requests/SharesUpdateRequest.java +++ b/src/main/java/api/resources/shares/requests/SharesUpdateRequest.java @@ -6,6 +6,8 @@ import com.cloudpdf.api.core.Nullable; import com.cloudpdf.api.core.NullableNonemptyFilter; import com.cloudpdf.api.core.ObjectMappers; +import com.cloudpdf.api.resources.shares.types.SharesUpdateRequestLayerMode; +import com.cloudpdf.api.resources.shares.types.SharesUpdateRequestVisitorIdentity; import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.fasterxml.jackson.annotation.JsonAnySetter; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -24,6 +26,16 @@ @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = SharesUpdateRequest.Builder.class) public final class SharesUpdateRequest { + private final Optional layerMode; + + private final Optional layerName; + + private final Optional keepVisitorLayers; + + private final Optional visitorIdleSeconds; + + private final Optional visitorIdentity; + private final Optional> scope; private final Optional> origins; @@ -39,6 +51,11 @@ public final class SharesUpdateRequest { private final Map additionalProperties; private SharesUpdateRequest( + Optional layerMode, + Optional layerName, + Optional keepVisitorLayers, + Optional visitorIdleSeconds, + Optional visitorIdentity, Optional> scope, Optional> origins, Optional password, @@ -46,6 +63,11 @@ private SharesUpdateRequest( Optional disabled, Optional expiresAt, Map additionalProperties) { + this.layerMode = layerMode; + this.layerName = layerName; + this.keepVisitorLayers = keepVisitorLayers; + this.visitorIdleSeconds = visitorIdleSeconds; + this.visitorIdentity = visitorIdentity; this.scope = scope; this.origins = origins; this.password = password; @@ -55,6 +77,37 @@ private SharesUpdateRequest( this.additionalProperties = additionalProperties; } + @JsonProperty("layerMode") + public Optional getLayerMode() { + return layerMode; + } + + @JsonProperty("layerName") + public Optional getLayerName() { + return layerName; + } + + @JsonProperty("keepVisitorLayers") + public Optional getKeepVisitorLayers() { + return keepVisitorLayers; + } + + @JsonIgnore + public Optional getVisitorIdleSeconds() { + if (visitorIdleSeconds == null) { + return Optional.empty(); + } + return visitorIdleSeconds; + } + + @JsonIgnore + public Optional getVisitorIdentity() { + if (visitorIdentity == null) { + return Optional.empty(); + } + return visitorIdentity; + } + @JsonProperty("scope") public Optional> getScope() { return scope; @@ -94,6 +147,18 @@ public Optional getExpiresAt() { return expiresAt; } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("visitorIdleSeconds") + private Optional _getVisitorIdleSeconds() { + return visitorIdleSeconds; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("visitorIdentity") + private Optional _getVisitorIdentity() { + return visitorIdentity; + } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) @JsonProperty("origins") private Optional> _getOrigins() { @@ -124,7 +189,12 @@ public Map getAdditionalProperties() { } private boolean equalTo(SharesUpdateRequest other) { - return scope.equals(other.scope) + return layerMode.equals(other.layerMode) + && layerName.equals(other.layerName) + && keepVisitorLayers.equals(other.keepVisitorLayers) + && visitorIdleSeconds.equals(other.visitorIdleSeconds) + && visitorIdentity.equals(other.visitorIdentity) + && scope.equals(other.scope) && origins.equals(other.origins) && password.equals(other.password) && sessionTtlSeconds.equals(other.sessionTtlSeconds) @@ -135,7 +205,17 @@ private boolean equalTo(SharesUpdateRequest other) { @java.lang.Override public int hashCode() { return Objects.hash( - this.scope, this.origins, this.password, this.sessionTtlSeconds, this.disabled, this.expiresAt); + this.layerMode, + this.layerName, + this.keepVisitorLayers, + this.visitorIdleSeconds, + this.visitorIdentity, + this.scope, + this.origins, + this.password, + this.sessionTtlSeconds, + this.disabled, + this.expiresAt); } @java.lang.Override @@ -149,6 +229,16 @@ public static Builder builder() { @JsonIgnoreProperties(ignoreUnknown = true) public static final class Builder { + private Optional layerMode = Optional.empty(); + + private Optional layerName = Optional.empty(); + + private Optional keepVisitorLayers = Optional.empty(); + + private Optional visitorIdleSeconds = Optional.empty(); + + private Optional visitorIdentity = Optional.empty(); + private Optional> scope = Optional.empty(); private Optional> origins = Optional.empty(); @@ -167,6 +257,11 @@ public static final class Builder { private Builder() {} public Builder from(SharesUpdateRequest other) { + layerMode(other.getLayerMode()); + layerName(other.getLayerName()); + keepVisitorLayers(other.getKeepVisitorLayers()); + visitorIdleSeconds(other.getVisitorIdleSeconds()); + visitorIdentity(other.getVisitorIdentity()); scope(other.getScope()); origins(other.getOrigins()); password(other.getPassword()); @@ -176,6 +271,83 @@ public Builder from(SharesUpdateRequest other) { return this; } + @JsonSetter(value = "layerMode", nulls = Nulls.SKIP) + public Builder layerMode(Optional layerMode) { + this.layerMode = layerMode; + return this; + } + + public Builder layerMode(SharesUpdateRequestLayerMode layerMode) { + this.layerMode = Optional.ofNullable(layerMode); + return this; + } + + @JsonSetter(value = "layerName", nulls = Nulls.SKIP) + public Builder layerName(Optional layerName) { + this.layerName = layerName; + return this; + } + + public Builder layerName(String layerName) { + this.layerName = Optional.ofNullable(layerName); + return this; + } + + @JsonSetter(value = "keepVisitorLayers", nulls = Nulls.SKIP) + public Builder keepVisitorLayers(Optional keepVisitorLayers) { + this.keepVisitorLayers = keepVisitorLayers; + return this; + } + + public Builder keepVisitorLayers(Boolean keepVisitorLayers) { + this.keepVisitorLayers = Optional.ofNullable(keepVisitorLayers); + return this; + } + + @JsonSetter(value = "visitorIdleSeconds", nulls = Nulls.SKIP) + public Builder visitorIdleSeconds(Optional visitorIdleSeconds) { + this.visitorIdleSeconds = visitorIdleSeconds; + return this; + } + + public Builder visitorIdleSeconds(Integer visitorIdleSeconds) { + this.visitorIdleSeconds = Optional.ofNullable(visitorIdleSeconds); + return this; + } + + public Builder visitorIdleSeconds(Nullable visitorIdleSeconds) { + if (visitorIdleSeconds.isNull()) { + this.visitorIdleSeconds = null; + } else if (visitorIdleSeconds.isEmpty()) { + this.visitorIdleSeconds = Optional.empty(); + } else { + this.visitorIdleSeconds = Optional.of(visitorIdleSeconds.get()); + } + return this; + } + + @JsonSetter(value = "visitorIdentity", nulls = Nulls.SKIP) + public Builder visitorIdentity(Optional visitorIdentity) { + this.visitorIdentity = visitorIdentity; + return this; + } + + public Builder visitorIdentity(SharesUpdateRequestVisitorIdentity visitorIdentity) { + this.visitorIdentity = Optional.ofNullable(visitorIdentity); + return this; + } + + public Builder visitorIdentity(Nullable visitorIdentity) { + if (visitorIdentity.isNull()) { + this.visitorIdentity = null; + } else if (visitorIdentity.isEmpty()) { + this.visitorIdentity = Optional.empty(); + } else { + this.visitorIdentity = Optional.of(visitorIdentity.get()); + } + return this; + } + @JsonSetter(value = "scope", nulls = Nulls.SKIP) public Builder scope(Optional> scope) { this.scope = scope; @@ -277,7 +449,18 @@ public Builder expiresAt(Nullable expiresAt) { public SharesUpdateRequest build() { return new SharesUpdateRequest( - scope, origins, password, sessionTtlSeconds, disabled, expiresAt, additionalProperties); + layerMode, + layerName, + keepVisitorLayers, + visitorIdleSeconds, + visitorIdentity, + scope, + origins, + password, + sessionTtlSeconds, + disabled, + expiresAt, + additionalProperties); } public Builder additionalProperty(String key, Object value) { diff --git a/src/main/java/api/resources/shares/types/SharesCreateRequestLayerMode.java b/src/main/java/api/resources/shares/types/SharesCreateRequestLayerMode.java new file mode 100644 index 0000000..f8ffe39 --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesCreateRequestLayerMode.java @@ -0,0 +1,85 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class SharesCreateRequestLayerMode { + public static final SharesCreateRequestLayerMode PER_VISITOR = + new SharesCreateRequestLayerMode(Value.PER_VISITOR, "per-visitor"); + + public static final SharesCreateRequestLayerMode SHARED = new SharesCreateRequestLayerMode(Value.SHARED, "shared"); + + private final Value value; + + private final String string; + + SharesCreateRequestLayerMode(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 SharesCreateRequestLayerMode + && this.string.equals(((SharesCreateRequestLayerMode) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case PER_VISITOR: + return visitor.visitPerVisitor(); + case SHARED: + return visitor.visitShared(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesCreateRequestLayerMode valueOf(String value) { + switch (value) { + case "per-visitor": + return PER_VISITOR; + case "shared": + return SHARED; + default: + return new SharesCreateRequestLayerMode(Value.UNKNOWN, value); + } + } + + public enum Value { + SHARED, + + PER_VISITOR, + + UNKNOWN + } + + public interface Visitor { + T visitShared(); + + T visitPerVisitor(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentity.java b/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentity.java new file mode 100644 index 0000000..bd7d21a --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentity.java @@ -0,0 +1,207 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.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 = SharesCreateRequestVisitorIdentity.Builder.class) +public final class SharesCreateRequestVisitorIdentity { + private final SharesCreateRequestVisitorIdentityFields fields; + + private final SharesCreateRequestVisitorIdentityAsk ask; + + private final Optional purpose; + + private final Optional privacyUrl; + + private final Map additionalProperties; + + private SharesCreateRequestVisitorIdentity( + SharesCreateRequestVisitorIdentityFields fields, + SharesCreateRequestVisitorIdentityAsk ask, + Optional purpose, + Optional privacyUrl, + Map additionalProperties) { + this.fields = fields; + this.ask = ask; + this.purpose = purpose; + this.privacyUrl = privacyUrl; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("fields") + public SharesCreateRequestVisitorIdentityFields getFields() { + return fields; + } + + @JsonProperty("ask") + public SharesCreateRequestVisitorIdentityAsk getAsk() { + return ask; + } + + @JsonProperty("purpose") + public Optional getPurpose() { + return purpose; + } + + @JsonProperty("privacyUrl") + public Optional getPrivacyUrl() { + return privacyUrl; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesCreateRequestVisitorIdentity + && equalTo((SharesCreateRequestVisitorIdentity) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesCreateRequestVisitorIdentity other) { + return fields.equals(other.fields) + && ask.equals(other.ask) + && purpose.equals(other.purpose) + && privacyUrl.equals(other.privacyUrl); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.fields, this.ask, this.purpose, this.privacyUrl); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static FieldsStage builder() { + return new Builder(); + } + + public interface FieldsStage { + AskStage fields(@NotNull SharesCreateRequestVisitorIdentityFields fields); + + Builder from(SharesCreateRequestVisitorIdentity other); + } + + public interface AskStage { + _FinalStage ask(@NotNull SharesCreateRequestVisitorIdentityAsk ask); + } + + public interface _FinalStage { + SharesCreateRequestVisitorIdentity build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage purpose(Optional purpose); + + _FinalStage purpose(String purpose); + + _FinalStage privacyUrl(Optional privacyUrl); + + _FinalStage privacyUrl(String privacyUrl); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements FieldsStage, AskStage, _FinalStage { + private SharesCreateRequestVisitorIdentityFields fields; + + private SharesCreateRequestVisitorIdentityAsk ask; + + private Optional privacyUrl = Optional.empty(); + + private Optional purpose = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(SharesCreateRequestVisitorIdentity other) { + fields(other.getFields()); + ask(other.getAsk()); + purpose(other.getPurpose()); + privacyUrl(other.getPrivacyUrl()); + return this; + } + + @java.lang.Override + @JsonSetter("fields") + public AskStage fields(@NotNull SharesCreateRequestVisitorIdentityFields fields) { + this.fields = Objects.requireNonNull(fields, "fields must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("ask") + public _FinalStage ask(@NotNull SharesCreateRequestVisitorIdentityAsk ask) { + this.ask = Objects.requireNonNull(ask, "ask must not be null"); + return this; + } + + @java.lang.Override + public _FinalStage privacyUrl(String privacyUrl) { + this.privacyUrl = Optional.ofNullable(privacyUrl); + return this; + } + + @java.lang.Override + @JsonSetter(value = "privacyUrl", nulls = Nulls.SKIP) + public _FinalStage privacyUrl(Optional privacyUrl) { + this.privacyUrl = privacyUrl; + return this; + } + + @java.lang.Override + public _FinalStage purpose(String purpose) { + this.purpose = Optional.ofNullable(purpose); + return this; + } + + @java.lang.Override + @JsonSetter(value = "purpose", nulls = Nulls.SKIP) + public _FinalStage purpose(Optional purpose) { + this.purpose = purpose; + return this; + } + + @java.lang.Override + public SharesCreateRequestVisitorIdentity build() { + return new SharesCreateRequestVisitorIdentity(fields, ask, purpose, privacyUrl, 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/shares/types/SharesCreateRequestVisitorIdentityAsk.java b/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityAsk.java new file mode 100644 index 0000000..f3d92a2 --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityAsk.java @@ -0,0 +1,86 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class SharesCreateRequestVisitorIdentityAsk { + public static final SharesCreateRequestVisitorIdentityAsk ON_OPEN = + new SharesCreateRequestVisitorIdentityAsk(Value.ON_OPEN, "on-open"); + + public static final SharesCreateRequestVisitorIdentityAsk BEFORE_FIRST_CHANGE = + new SharesCreateRequestVisitorIdentityAsk(Value.BEFORE_FIRST_CHANGE, "before-first-change"); + + private final Value value; + + private final String string; + + SharesCreateRequestVisitorIdentityAsk(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 SharesCreateRequestVisitorIdentityAsk + && this.string.equals(((SharesCreateRequestVisitorIdentityAsk) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case ON_OPEN: + return visitor.visitOnOpen(); + case BEFORE_FIRST_CHANGE: + return visitor.visitBeforeFirstChange(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesCreateRequestVisitorIdentityAsk valueOf(String value) { + switch (value) { + case "on-open": + return ON_OPEN; + case "before-first-change": + return BEFORE_FIRST_CHANGE; + default: + return new SharesCreateRequestVisitorIdentityAsk(Value.UNKNOWN, value); + } + } + + public enum Value { + ON_OPEN, + + BEFORE_FIRST_CHANGE, + + UNKNOWN + } + + public interface Visitor { + T visitOnOpen(); + + T visitBeforeFirstChange(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityFields.java b/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityFields.java new file mode 100644 index 0000000..241c060 --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityFields.java @@ -0,0 +1,208 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.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 = SharesCreateRequestVisitorIdentityFields.Builder.class) +public final class SharesCreateRequestVisitorIdentityFields { + private final Optional displayName; + + private final Optional email; + + private final Optional title; + + private final Optional organization; + + private final Optional organizationalUnit; + + private final Map additionalProperties; + + private SharesCreateRequestVisitorIdentityFields( + Optional displayName, + Optional email, + Optional title, + Optional organization, + Optional organizationalUnit, + Map additionalProperties) { + this.displayName = displayName; + this.email = email; + this.title = title; + this.organization = organization; + this.organizationalUnit = organizationalUnit; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("displayName") + public Optional getDisplayName() { + return displayName; + } + + @JsonProperty("email") + public Optional getEmail() { + return email; + } + + @JsonProperty("title") + public Optional getTitle() { + return title; + } + + @JsonProperty("organization") + public Optional getOrganization() { + return organization; + } + + @JsonProperty("organizationalUnit") + public Optional getOrganizationalUnit() { + return organizationalUnit; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesCreateRequestVisitorIdentityFields + && equalTo((SharesCreateRequestVisitorIdentityFields) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesCreateRequestVisitorIdentityFields other) { + return displayName.equals(other.displayName) + && email.equals(other.email) + && title.equals(other.title) + && organization.equals(other.organization) + && organizationalUnit.equals(other.organizationalUnit); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.displayName, this.email, this.title, this.organization, this.organizationalUnit); + } + + @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 displayName = Optional.empty(); + + private Optional email = Optional.empty(); + + private Optional title = Optional.empty(); + + private Optional organization = Optional.empty(); + + private Optional organizationalUnit = + Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(SharesCreateRequestVisitorIdentityFields other) { + displayName(other.getDisplayName()); + email(other.getEmail()); + title(other.getTitle()); + organization(other.getOrganization()); + organizationalUnit(other.getOrganizationalUnit()); + return this; + } + + @JsonSetter(value = "displayName", nulls = Nulls.SKIP) + public Builder displayName(Optional displayName) { + this.displayName = displayName; + return this; + } + + public Builder displayName(SharesCreateRequestVisitorIdentityFieldsDisplayName displayName) { + this.displayName = Optional.ofNullable(displayName); + return this; + } + + @JsonSetter(value = "email", nulls = Nulls.SKIP) + public Builder email(Optional email) { + this.email = email; + return this; + } + + public Builder email(SharesCreateRequestVisitorIdentityFieldsEmail email) { + this.email = Optional.ofNullable(email); + return this; + } + + @JsonSetter(value = "title", nulls = Nulls.SKIP) + public Builder title(Optional title) { + this.title = title; + return this; + } + + public Builder title(SharesCreateRequestVisitorIdentityFieldsTitle title) { + this.title = Optional.ofNullable(title); + return this; + } + + @JsonSetter(value = "organization", nulls = Nulls.SKIP) + public Builder organization(Optional organization) { + this.organization = organization; + return this; + } + + public Builder organization(SharesCreateRequestVisitorIdentityFieldsOrganization organization) { + this.organization = Optional.ofNullable(organization); + return this; + } + + @JsonSetter(value = "organizationalUnit", nulls = Nulls.SKIP) + public Builder organizationalUnit( + Optional organizationalUnit) { + this.organizationalUnit = organizationalUnit; + return this; + } + + public Builder organizationalUnit( + SharesCreateRequestVisitorIdentityFieldsOrganizationalUnit organizationalUnit) { + this.organizationalUnit = Optional.ofNullable(organizationalUnit); + return this; + } + + public SharesCreateRequestVisitorIdentityFields build() { + return new SharesCreateRequestVisitorIdentityFields( + displayName, email, title, organization, organizationalUnit, 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/shares/types/SharesCreateRequestVisitorIdentityFieldsDisplayName.java b/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityFieldsDisplayName.java new file mode 100644 index 0000000..df398f4 --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityFieldsDisplayName.java @@ -0,0 +1,86 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class SharesCreateRequestVisitorIdentityFieldsDisplayName { + public static final SharesCreateRequestVisitorIdentityFieldsDisplayName REQUIRED = + new SharesCreateRequestVisitorIdentityFieldsDisplayName(Value.REQUIRED, "required"); + + public static final SharesCreateRequestVisitorIdentityFieldsDisplayName OPTIONAL = + new SharesCreateRequestVisitorIdentityFieldsDisplayName(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesCreateRequestVisitorIdentityFieldsDisplayName(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 SharesCreateRequestVisitorIdentityFieldsDisplayName + && this.string.equals(((SharesCreateRequestVisitorIdentityFieldsDisplayName) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesCreateRequestVisitorIdentityFieldsDisplayName valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesCreateRequestVisitorIdentityFieldsDisplayName(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityFieldsEmail.java b/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityFieldsEmail.java new file mode 100644 index 0000000..5b736b5 --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityFieldsEmail.java @@ -0,0 +1,86 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class SharesCreateRequestVisitorIdentityFieldsEmail { + public static final SharesCreateRequestVisitorIdentityFieldsEmail REQUIRED = + new SharesCreateRequestVisitorIdentityFieldsEmail(Value.REQUIRED, "required"); + + public static final SharesCreateRequestVisitorIdentityFieldsEmail OPTIONAL = + new SharesCreateRequestVisitorIdentityFieldsEmail(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesCreateRequestVisitorIdentityFieldsEmail(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 SharesCreateRequestVisitorIdentityFieldsEmail + && this.string.equals(((SharesCreateRequestVisitorIdentityFieldsEmail) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesCreateRequestVisitorIdentityFieldsEmail valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesCreateRequestVisitorIdentityFieldsEmail(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityFieldsOrganization.java b/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityFieldsOrganization.java new file mode 100644 index 0000000..2c9cf5d --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityFieldsOrganization.java @@ -0,0 +1,86 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class SharesCreateRequestVisitorIdentityFieldsOrganization { + public static final SharesCreateRequestVisitorIdentityFieldsOrganization REQUIRED = + new SharesCreateRequestVisitorIdentityFieldsOrganization(Value.REQUIRED, "required"); + + public static final SharesCreateRequestVisitorIdentityFieldsOrganization OPTIONAL = + new SharesCreateRequestVisitorIdentityFieldsOrganization(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesCreateRequestVisitorIdentityFieldsOrganization(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 SharesCreateRequestVisitorIdentityFieldsOrganization + && this.string.equals(((SharesCreateRequestVisitorIdentityFieldsOrganization) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesCreateRequestVisitorIdentityFieldsOrganization valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesCreateRequestVisitorIdentityFieldsOrganization(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityFieldsOrganizationalUnit.java b/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityFieldsOrganizationalUnit.java new file mode 100644 index 0000000..ffe0c9a --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityFieldsOrganizationalUnit.java @@ -0,0 +1,87 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class SharesCreateRequestVisitorIdentityFieldsOrganizationalUnit { + public static final SharesCreateRequestVisitorIdentityFieldsOrganizationalUnit REQUIRED = + new SharesCreateRequestVisitorIdentityFieldsOrganizationalUnit(Value.REQUIRED, "required"); + + public static final SharesCreateRequestVisitorIdentityFieldsOrganizationalUnit OPTIONAL = + new SharesCreateRequestVisitorIdentityFieldsOrganizationalUnit(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesCreateRequestVisitorIdentityFieldsOrganizationalUnit(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 SharesCreateRequestVisitorIdentityFieldsOrganizationalUnit + && this.string.equals( + ((SharesCreateRequestVisitorIdentityFieldsOrganizationalUnit) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesCreateRequestVisitorIdentityFieldsOrganizationalUnit valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesCreateRequestVisitorIdentityFieldsOrganizationalUnit(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityFieldsTitle.java b/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityFieldsTitle.java new file mode 100644 index 0000000..cfa8ab1 --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesCreateRequestVisitorIdentityFieldsTitle.java @@ -0,0 +1,86 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class SharesCreateRequestVisitorIdentityFieldsTitle { + public static final SharesCreateRequestVisitorIdentityFieldsTitle REQUIRED = + new SharesCreateRequestVisitorIdentityFieldsTitle(Value.REQUIRED, "required"); + + public static final SharesCreateRequestVisitorIdentityFieldsTitle OPTIONAL = + new SharesCreateRequestVisitorIdentityFieldsTitle(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesCreateRequestVisitorIdentityFieldsTitle(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 SharesCreateRequestVisitorIdentityFieldsTitle + && this.string.equals(((SharesCreateRequestVisitorIdentityFieldsTitle) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesCreateRequestVisitorIdentityFieldsTitle valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesCreateRequestVisitorIdentityFieldsTitle(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/resources/shares/types/SharesExchangeRequestVisitorIdentity.java b/src/main/java/api/resources/shares/types/SharesExchangeRequestVisitorIdentity.java new file mode 100644 index 0000000..b510084 --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesExchangeRequestVisitorIdentity.java @@ -0,0 +1,205 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.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 = SharesExchangeRequestVisitorIdentity.Builder.class) +public final class SharesExchangeRequestVisitorIdentity { + private final Optional displayName; + + private final Optional email; + + private final Optional title; + + private final Optional organization; + + private final Optional organizationalUnit; + + private final Map additionalProperties; + + private SharesExchangeRequestVisitorIdentity( + Optional displayName, + Optional email, + Optional title, + Optional organization, + Optional organizationalUnit, + Map additionalProperties) { + this.displayName = displayName; + this.email = email; + this.title = title; + this.organization = organization; + this.organizationalUnit = organizationalUnit; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("displayName") + public Optional getDisplayName() { + return displayName; + } + + @JsonProperty("email") + public Optional getEmail() { + return email; + } + + @JsonProperty("title") + public Optional getTitle() { + return title; + } + + @JsonProperty("organization") + public Optional getOrganization() { + return organization; + } + + @JsonProperty("organizationalUnit") + public Optional getOrganizationalUnit() { + return organizationalUnit; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesExchangeRequestVisitorIdentity + && equalTo((SharesExchangeRequestVisitorIdentity) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesExchangeRequestVisitorIdentity other) { + return displayName.equals(other.displayName) + && email.equals(other.email) + && title.equals(other.title) + && organization.equals(other.organization) + && organizationalUnit.equals(other.organizationalUnit); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.displayName, this.email, this.title, this.organization, this.organizationalUnit); + } + + @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 displayName = Optional.empty(); + + private Optional email = Optional.empty(); + + private Optional title = Optional.empty(); + + private Optional organization = Optional.empty(); + + private Optional organizationalUnit = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(SharesExchangeRequestVisitorIdentity other) { + displayName(other.getDisplayName()); + email(other.getEmail()); + title(other.getTitle()); + organization(other.getOrganization()); + organizationalUnit(other.getOrganizationalUnit()); + return this; + } + + @JsonSetter(value = "displayName", nulls = Nulls.SKIP) + public Builder displayName(Optional displayName) { + this.displayName = displayName; + return this; + } + + public Builder displayName(String displayName) { + this.displayName = Optional.ofNullable(displayName); + return this; + } + + @JsonSetter(value = "email", nulls = Nulls.SKIP) + public Builder email(Optional email) { + this.email = email; + return this; + } + + public Builder email(String email) { + this.email = Optional.ofNullable(email); + return this; + } + + @JsonSetter(value = "title", nulls = Nulls.SKIP) + public Builder title(Optional title) { + this.title = title; + return this; + } + + public Builder title(String title) { + this.title = Optional.ofNullable(title); + return this; + } + + @JsonSetter(value = "organization", nulls = Nulls.SKIP) + public Builder organization(Optional organization) { + this.organization = organization; + return this; + } + + public Builder organization(String organization) { + this.organization = Optional.ofNullable(organization); + return this; + } + + @JsonSetter(value = "organizationalUnit", nulls = Nulls.SKIP) + public Builder organizationalUnit(Optional organizationalUnit) { + this.organizationalUnit = organizationalUnit; + return this; + } + + public Builder organizationalUnit(String organizationalUnit) { + this.organizationalUnit = Optional.ofNullable(organizationalUnit); + return this; + } + + public SharesExchangeRequestVisitorIdentity build() { + return new SharesExchangeRequestVisitorIdentity( + displayName, email, title, organization, organizationalUnit, 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/shares/types/SharesUpdateRequestLayerMode.java b/src/main/java/api/resources/shares/types/SharesUpdateRequestLayerMode.java new file mode 100644 index 0000000..0d41c61 --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesUpdateRequestLayerMode.java @@ -0,0 +1,85 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class SharesUpdateRequestLayerMode { + public static final SharesUpdateRequestLayerMode PER_VISITOR = + new SharesUpdateRequestLayerMode(Value.PER_VISITOR, "per-visitor"); + + public static final SharesUpdateRequestLayerMode SHARED = new SharesUpdateRequestLayerMode(Value.SHARED, "shared"); + + private final Value value; + + private final String string; + + SharesUpdateRequestLayerMode(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 SharesUpdateRequestLayerMode + && this.string.equals(((SharesUpdateRequestLayerMode) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case PER_VISITOR: + return visitor.visitPerVisitor(); + case SHARED: + return visitor.visitShared(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesUpdateRequestLayerMode valueOf(String value) { + switch (value) { + case "per-visitor": + return PER_VISITOR; + case "shared": + return SHARED; + default: + return new SharesUpdateRequestLayerMode(Value.UNKNOWN, value); + } + } + + public enum Value { + SHARED, + + PER_VISITOR, + + UNKNOWN + } + + public interface Visitor { + T visitShared(); + + T visitPerVisitor(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentity.java b/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentity.java new file mode 100644 index 0000000..9714be5 --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentity.java @@ -0,0 +1,207 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.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 = SharesUpdateRequestVisitorIdentity.Builder.class) +public final class SharesUpdateRequestVisitorIdentity { + private final SharesUpdateRequestVisitorIdentityFields fields; + + private final SharesUpdateRequestVisitorIdentityAsk ask; + + private final Optional purpose; + + private final Optional privacyUrl; + + private final Map additionalProperties; + + private SharesUpdateRequestVisitorIdentity( + SharesUpdateRequestVisitorIdentityFields fields, + SharesUpdateRequestVisitorIdentityAsk ask, + Optional purpose, + Optional privacyUrl, + Map additionalProperties) { + this.fields = fields; + this.ask = ask; + this.purpose = purpose; + this.privacyUrl = privacyUrl; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("fields") + public SharesUpdateRequestVisitorIdentityFields getFields() { + return fields; + } + + @JsonProperty("ask") + public SharesUpdateRequestVisitorIdentityAsk getAsk() { + return ask; + } + + @JsonProperty("purpose") + public Optional getPurpose() { + return purpose; + } + + @JsonProperty("privacyUrl") + public Optional getPrivacyUrl() { + return privacyUrl; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesUpdateRequestVisitorIdentity + && equalTo((SharesUpdateRequestVisitorIdentity) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesUpdateRequestVisitorIdentity other) { + return fields.equals(other.fields) + && ask.equals(other.ask) + && purpose.equals(other.purpose) + && privacyUrl.equals(other.privacyUrl); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.fields, this.ask, this.purpose, this.privacyUrl); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static FieldsStage builder() { + return new Builder(); + } + + public interface FieldsStage { + AskStage fields(@NotNull SharesUpdateRequestVisitorIdentityFields fields); + + Builder from(SharesUpdateRequestVisitorIdentity other); + } + + public interface AskStage { + _FinalStage ask(@NotNull SharesUpdateRequestVisitorIdentityAsk ask); + } + + public interface _FinalStage { + SharesUpdateRequestVisitorIdentity build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage purpose(Optional purpose); + + _FinalStage purpose(String purpose); + + _FinalStage privacyUrl(Optional privacyUrl); + + _FinalStage privacyUrl(String privacyUrl); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements FieldsStage, AskStage, _FinalStage { + private SharesUpdateRequestVisitorIdentityFields fields; + + private SharesUpdateRequestVisitorIdentityAsk ask; + + private Optional privacyUrl = Optional.empty(); + + private Optional purpose = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(SharesUpdateRequestVisitorIdentity other) { + fields(other.getFields()); + ask(other.getAsk()); + purpose(other.getPurpose()); + privacyUrl(other.getPrivacyUrl()); + return this; + } + + @java.lang.Override + @JsonSetter("fields") + public AskStage fields(@NotNull SharesUpdateRequestVisitorIdentityFields fields) { + this.fields = Objects.requireNonNull(fields, "fields must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("ask") + public _FinalStage ask(@NotNull SharesUpdateRequestVisitorIdentityAsk ask) { + this.ask = Objects.requireNonNull(ask, "ask must not be null"); + return this; + } + + @java.lang.Override + public _FinalStage privacyUrl(String privacyUrl) { + this.privacyUrl = Optional.ofNullable(privacyUrl); + return this; + } + + @java.lang.Override + @JsonSetter(value = "privacyUrl", nulls = Nulls.SKIP) + public _FinalStage privacyUrl(Optional privacyUrl) { + this.privacyUrl = privacyUrl; + return this; + } + + @java.lang.Override + public _FinalStage purpose(String purpose) { + this.purpose = Optional.ofNullable(purpose); + return this; + } + + @java.lang.Override + @JsonSetter(value = "purpose", nulls = Nulls.SKIP) + public _FinalStage purpose(Optional purpose) { + this.purpose = purpose; + return this; + } + + @java.lang.Override + public SharesUpdateRequestVisitorIdentity build() { + return new SharesUpdateRequestVisitorIdentity(fields, ask, purpose, privacyUrl, 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/shares/types/SharesUpdateRequestVisitorIdentityAsk.java b/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityAsk.java new file mode 100644 index 0000000..8cac38a --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityAsk.java @@ -0,0 +1,86 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class SharesUpdateRequestVisitorIdentityAsk { + public static final SharesUpdateRequestVisitorIdentityAsk ON_OPEN = + new SharesUpdateRequestVisitorIdentityAsk(Value.ON_OPEN, "on-open"); + + public static final SharesUpdateRequestVisitorIdentityAsk BEFORE_FIRST_CHANGE = + new SharesUpdateRequestVisitorIdentityAsk(Value.BEFORE_FIRST_CHANGE, "before-first-change"); + + private final Value value; + + private final String string; + + SharesUpdateRequestVisitorIdentityAsk(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 SharesUpdateRequestVisitorIdentityAsk + && this.string.equals(((SharesUpdateRequestVisitorIdentityAsk) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case ON_OPEN: + return visitor.visitOnOpen(); + case BEFORE_FIRST_CHANGE: + return visitor.visitBeforeFirstChange(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesUpdateRequestVisitorIdentityAsk valueOf(String value) { + switch (value) { + case "on-open": + return ON_OPEN; + case "before-first-change": + return BEFORE_FIRST_CHANGE; + default: + return new SharesUpdateRequestVisitorIdentityAsk(Value.UNKNOWN, value); + } + } + + public enum Value { + ON_OPEN, + + BEFORE_FIRST_CHANGE, + + UNKNOWN + } + + public interface Visitor { + T visitOnOpen(); + + T visitBeforeFirstChange(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityFields.java b/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityFields.java new file mode 100644 index 0000000..c687684 --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityFields.java @@ -0,0 +1,208 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.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 = SharesUpdateRequestVisitorIdentityFields.Builder.class) +public final class SharesUpdateRequestVisitorIdentityFields { + private final Optional displayName; + + private final Optional email; + + private final Optional title; + + private final Optional organization; + + private final Optional organizationalUnit; + + private final Map additionalProperties; + + private SharesUpdateRequestVisitorIdentityFields( + Optional displayName, + Optional email, + Optional title, + Optional organization, + Optional organizationalUnit, + Map additionalProperties) { + this.displayName = displayName; + this.email = email; + this.title = title; + this.organization = organization; + this.organizationalUnit = organizationalUnit; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("displayName") + public Optional getDisplayName() { + return displayName; + } + + @JsonProperty("email") + public Optional getEmail() { + return email; + } + + @JsonProperty("title") + public Optional getTitle() { + return title; + } + + @JsonProperty("organization") + public Optional getOrganization() { + return organization; + } + + @JsonProperty("organizationalUnit") + public Optional getOrganizationalUnit() { + return organizationalUnit; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesUpdateRequestVisitorIdentityFields + && equalTo((SharesUpdateRequestVisitorIdentityFields) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesUpdateRequestVisitorIdentityFields other) { + return displayName.equals(other.displayName) + && email.equals(other.email) + && title.equals(other.title) + && organization.equals(other.organization) + && organizationalUnit.equals(other.organizationalUnit); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.displayName, this.email, this.title, this.organization, this.organizationalUnit); + } + + @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 displayName = Optional.empty(); + + private Optional email = Optional.empty(); + + private Optional title = Optional.empty(); + + private Optional organization = Optional.empty(); + + private Optional organizationalUnit = + Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(SharesUpdateRequestVisitorIdentityFields other) { + displayName(other.getDisplayName()); + email(other.getEmail()); + title(other.getTitle()); + organization(other.getOrganization()); + organizationalUnit(other.getOrganizationalUnit()); + return this; + } + + @JsonSetter(value = "displayName", nulls = Nulls.SKIP) + public Builder displayName(Optional displayName) { + this.displayName = displayName; + return this; + } + + public Builder displayName(SharesUpdateRequestVisitorIdentityFieldsDisplayName displayName) { + this.displayName = Optional.ofNullable(displayName); + return this; + } + + @JsonSetter(value = "email", nulls = Nulls.SKIP) + public Builder email(Optional email) { + this.email = email; + return this; + } + + public Builder email(SharesUpdateRequestVisitorIdentityFieldsEmail email) { + this.email = Optional.ofNullable(email); + return this; + } + + @JsonSetter(value = "title", nulls = Nulls.SKIP) + public Builder title(Optional title) { + this.title = title; + return this; + } + + public Builder title(SharesUpdateRequestVisitorIdentityFieldsTitle title) { + this.title = Optional.ofNullable(title); + return this; + } + + @JsonSetter(value = "organization", nulls = Nulls.SKIP) + public Builder organization(Optional organization) { + this.organization = organization; + return this; + } + + public Builder organization(SharesUpdateRequestVisitorIdentityFieldsOrganization organization) { + this.organization = Optional.ofNullable(organization); + return this; + } + + @JsonSetter(value = "organizationalUnit", nulls = Nulls.SKIP) + public Builder organizationalUnit( + Optional organizationalUnit) { + this.organizationalUnit = organizationalUnit; + return this; + } + + public Builder organizationalUnit( + SharesUpdateRequestVisitorIdentityFieldsOrganizationalUnit organizationalUnit) { + this.organizationalUnit = Optional.ofNullable(organizationalUnit); + return this; + } + + public SharesUpdateRequestVisitorIdentityFields build() { + return new SharesUpdateRequestVisitorIdentityFields( + displayName, email, title, organization, organizationalUnit, 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/shares/types/SharesUpdateRequestVisitorIdentityFieldsDisplayName.java b/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityFieldsDisplayName.java new file mode 100644 index 0000000..2afc47a --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityFieldsDisplayName.java @@ -0,0 +1,86 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class SharesUpdateRequestVisitorIdentityFieldsDisplayName { + public static final SharesUpdateRequestVisitorIdentityFieldsDisplayName REQUIRED = + new SharesUpdateRequestVisitorIdentityFieldsDisplayName(Value.REQUIRED, "required"); + + public static final SharesUpdateRequestVisitorIdentityFieldsDisplayName OPTIONAL = + new SharesUpdateRequestVisitorIdentityFieldsDisplayName(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesUpdateRequestVisitorIdentityFieldsDisplayName(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 SharesUpdateRequestVisitorIdentityFieldsDisplayName + && this.string.equals(((SharesUpdateRequestVisitorIdentityFieldsDisplayName) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesUpdateRequestVisitorIdentityFieldsDisplayName valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesUpdateRequestVisitorIdentityFieldsDisplayName(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityFieldsEmail.java b/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityFieldsEmail.java new file mode 100644 index 0000000..3233203 --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityFieldsEmail.java @@ -0,0 +1,86 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class SharesUpdateRequestVisitorIdentityFieldsEmail { + public static final SharesUpdateRequestVisitorIdentityFieldsEmail REQUIRED = + new SharesUpdateRequestVisitorIdentityFieldsEmail(Value.REQUIRED, "required"); + + public static final SharesUpdateRequestVisitorIdentityFieldsEmail OPTIONAL = + new SharesUpdateRequestVisitorIdentityFieldsEmail(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesUpdateRequestVisitorIdentityFieldsEmail(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 SharesUpdateRequestVisitorIdentityFieldsEmail + && this.string.equals(((SharesUpdateRequestVisitorIdentityFieldsEmail) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesUpdateRequestVisitorIdentityFieldsEmail valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesUpdateRequestVisitorIdentityFieldsEmail(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityFieldsOrganization.java b/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityFieldsOrganization.java new file mode 100644 index 0000000..6334b07 --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityFieldsOrganization.java @@ -0,0 +1,86 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class SharesUpdateRequestVisitorIdentityFieldsOrganization { + public static final SharesUpdateRequestVisitorIdentityFieldsOrganization REQUIRED = + new SharesUpdateRequestVisitorIdentityFieldsOrganization(Value.REQUIRED, "required"); + + public static final SharesUpdateRequestVisitorIdentityFieldsOrganization OPTIONAL = + new SharesUpdateRequestVisitorIdentityFieldsOrganization(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesUpdateRequestVisitorIdentityFieldsOrganization(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 SharesUpdateRequestVisitorIdentityFieldsOrganization + && this.string.equals(((SharesUpdateRequestVisitorIdentityFieldsOrganization) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesUpdateRequestVisitorIdentityFieldsOrganization valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesUpdateRequestVisitorIdentityFieldsOrganization(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityFieldsOrganizationalUnit.java b/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityFieldsOrganizationalUnit.java new file mode 100644 index 0000000..5b3a350 --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityFieldsOrganizationalUnit.java @@ -0,0 +1,87 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class SharesUpdateRequestVisitorIdentityFieldsOrganizationalUnit { + public static final SharesUpdateRequestVisitorIdentityFieldsOrganizationalUnit REQUIRED = + new SharesUpdateRequestVisitorIdentityFieldsOrganizationalUnit(Value.REQUIRED, "required"); + + public static final SharesUpdateRequestVisitorIdentityFieldsOrganizationalUnit OPTIONAL = + new SharesUpdateRequestVisitorIdentityFieldsOrganizationalUnit(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesUpdateRequestVisitorIdentityFieldsOrganizationalUnit(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 SharesUpdateRequestVisitorIdentityFieldsOrganizationalUnit + && this.string.equals( + ((SharesUpdateRequestVisitorIdentityFieldsOrganizationalUnit) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesUpdateRequestVisitorIdentityFieldsOrganizationalUnit valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesUpdateRequestVisitorIdentityFieldsOrganizationalUnit(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityFieldsTitle.java b/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityFieldsTitle.java new file mode 100644 index 0000000..cc9979b --- /dev/null +++ b/src/main/java/api/resources/shares/types/SharesUpdateRequestVisitorIdentityFieldsTitle.java @@ -0,0 +1,86 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class SharesUpdateRequestVisitorIdentityFieldsTitle { + public static final SharesUpdateRequestVisitorIdentityFieldsTitle REQUIRED = + new SharesUpdateRequestVisitorIdentityFieldsTitle(Value.REQUIRED, "required"); + + public static final SharesUpdateRequestVisitorIdentityFieldsTitle OPTIONAL = + new SharesUpdateRequestVisitorIdentityFieldsTitle(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesUpdateRequestVisitorIdentityFieldsTitle(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 SharesUpdateRequestVisitorIdentityFieldsTitle + && this.string.equals(((SharesUpdateRequestVisitorIdentityFieldsTitle) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesUpdateRequestVisitorIdentityFieldsTitle valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesUpdateRequestVisitorIdentityFieldsTitle(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/resources/shares/visitors/AsyncRawVisitorsClient.java b/src/main/java/api/resources/shares/visitors/AsyncRawVisitorsClient.java new file mode 100644 index 0000000..7184fd6 --- /dev/null +++ b/src/main/java/api/resources/shares/visitors/AsyncRawVisitorsClient.java @@ -0,0 +1,261 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.visitors; + +import com.cloudpdf.api.core.ClientOptions; +import com.cloudpdf.api.core.CloudPDFApiException; +import com.cloudpdf.api.core.CloudPDFClientHttpResponse; +import com.cloudpdf.api.core.CloudPDFException; +import com.cloudpdf.api.core.ObjectMappers; +import com.cloudpdf.api.core.QueryStringMapper; +import com.cloudpdf.api.core.RequestOptions; +import com.cloudpdf.api.core.RetryInterceptor; +import com.cloudpdf.api.errors.BadRequestError; +import com.cloudpdf.api.errors.NotFoundError; +import com.cloudpdf.api.resources.shares.visitors.requests.DeleteVisitorsRequest; +import com.cloudpdf.api.resources.shares.visitors.requests.ListVisitorsRequest; +import com.cloudpdf.api.types.SharesVisitorsList200Response; +import com.fasterxml.jackson.core.JsonProcessingException; +import java.io.IOException; +import java.util.concurrent.CompletableFuture; +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.Headers; +import okhttp3.HttpUrl; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import org.jetbrains.annotations.NotNull; + +public class AsyncRawVisitorsClient { + protected final ClientOptions clientOptions; + + public AsyncRawVisitorsClient(ClientOptions clientOptions) { + this.clientOptions = clientOptions; + } + + /** + * An archived link's visitors are listed too. + */ + public CompletableFuture> list( + String tenantId, String shareId) { + return list(tenantId, shareId, ListVisitorsRequest.builder().build()); + } + + /** + * An archived link's visitors are listed too. + */ + public CompletableFuture> list( + String tenantId, String shareId, RequestOptions requestOptions) { + return list(tenantId, shareId, ListVisitorsRequest.builder().build(), requestOptions); + } + + /** + * An archived link's visitors are listed too. + */ + public CompletableFuture> list( + String tenantId, String shareId, ListVisitorsRequest request) { + return list(tenantId, shareId, request, null); + } + + /** + * An archived link's visitors are listed too. + */ + public CompletableFuture> list( + String tenantId, String shareId, ListVisitorsRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("v1/tenants") + .addPathSegment(tenantId) + .addPathSegments("shares") + .addPathSegment(shareId) + .addPathSegments("visitors"); + if (request.getLimit().isPresent()) { + QueryStringMapper.addQueryParameter( + httpUrl, "limit", request.getLimit().get(), false); + } + if (request.getCursor().isPresent()) { + QueryStringMapper.addQueryParameter( + httpUrl, "cursor", request.getCursor().get(), false); + } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((_key, _value) -> { + httpUrl.addQueryParameter(_key, _value); + }); + } + Request.Builder _requestBuilder = new Request.Builder() + .url(httpUrl.build()) + .method("GET", null) + .headers(Headers.of(clientOptions.headers(requestOptions))) + .addHeader("Accept", "application/json"); + Request okhttpRequest = _requestBuilder.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, SharesVisitorsList200Response.class), + response)); + return; + } + try { + switch (response.code()) { + case 400: + future.completeExceptionally(new BadRequestError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), + response)); + return; + case 404: + future.completeExceptionally(new NotFoundError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.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; + } + + /** + * Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing. + */ + public CompletableFuture> delete( + String tenantId, String shareId, String visitorId) { + return delete( + tenantId, shareId, visitorId, DeleteVisitorsRequest.builder().build()); + } + + /** + * Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing. + */ + public CompletableFuture> delete( + String tenantId, String shareId, String visitorId, RequestOptions requestOptions) { + return delete( + tenantId, shareId, visitorId, DeleteVisitorsRequest.builder().build(), requestOptions); + } + + /** + * Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing. + */ + public CompletableFuture> delete( + String tenantId, String shareId, String visitorId, DeleteVisitorsRequest request) { + return delete(tenantId, shareId, visitorId, request, null); + } + + /** + * Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing. + */ + public CompletableFuture> delete( + String tenantId, + String shareId, + String visitorId, + DeleteVisitorsRequest request, + RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("v1/tenants") + .addPathSegment(tenantId) + .addPathSegments("shares") + .addPathSegment(shareId) + .addPathSegments("visitors") + .addPathSegment(visitorId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((_key, _value) -> { + httpUrl.addQueryParameter(_key, _value); + }); + } + Request.Builder _requestBuilder = new Request.Builder() + .url(httpUrl.build()) + .method("DELETE", null) + .headers(Headers.of(clientOptions.headers(requestOptions))) + .addHeader("Accept", "application/json"); + Request okhttpRequest = _requestBuilder.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()) { + if (response.isSuccessful()) { + future.complete(new CloudPDFClientHttpResponse<>(null, response)); + return; + } + String responseBodyString = responseBody != null ? responseBody.string() : "{}"; + try { + if (response.code() == 404) { + future.completeExceptionally(new NotFoundError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.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; + } +} diff --git a/src/main/java/api/resources/shares/visitors/AsyncVisitorsClient.java b/src/main/java/api/resources/shares/visitors/AsyncVisitorsClient.java new file mode 100644 index 0000000..819c0d6 --- /dev/null +++ b/src/main/java/api/resources/shares/visitors/AsyncVisitorsClient.java @@ -0,0 +1,99 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.visitors; + +import com.cloudpdf.api.core.ClientOptions; +import com.cloudpdf.api.core.RequestOptions; +import com.cloudpdf.api.resources.shares.visitors.requests.DeleteVisitorsRequest; +import com.cloudpdf.api.resources.shares.visitors.requests.ListVisitorsRequest; +import com.cloudpdf.api.types.SharesVisitorsList200Response; +import java.util.concurrent.CompletableFuture; + +public class AsyncVisitorsClient { + protected final ClientOptions clientOptions; + + private final AsyncRawVisitorsClient rawClient; + + public AsyncVisitorsClient(ClientOptions clientOptions) { + this.clientOptions = clientOptions; + this.rawClient = new AsyncRawVisitorsClient(clientOptions); + } + + /** + * Get responses with HTTP metadata like headers + */ + public AsyncRawVisitorsClient withRawResponse() { + return this.rawClient; + } + + /** + * An archived link's visitors are listed too. + */ + public CompletableFuture list(String tenantId, String shareId) { + return this.rawClient.list(tenantId, shareId).thenApply(response -> response.body()); + } + + /** + * An archived link's visitors are listed too. + */ + public CompletableFuture list( + String tenantId, String shareId, RequestOptions requestOptions) { + return this.rawClient.list(tenantId, shareId, requestOptions).thenApply(response -> response.body()); + } + + /** + * An archived link's visitors are listed too. + */ + public CompletableFuture list( + String tenantId, String shareId, ListVisitorsRequest request) { + return this.rawClient.list(tenantId, shareId, request).thenApply(response -> response.body()); + } + + /** + * An archived link's visitors are listed too. + */ + public CompletableFuture list( + String tenantId, String shareId, ListVisitorsRequest request, RequestOptions requestOptions) { + return this.rawClient.list(tenantId, shareId, request, requestOptions).thenApply(response -> response.body()); + } + + /** + * Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing. + */ + public CompletableFuture delete(String tenantId, String shareId, String visitorId) { + return this.rawClient.delete(tenantId, shareId, visitorId).thenApply(response -> response.body()); + } + + /** + * Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing. + */ + public CompletableFuture delete( + String tenantId, String shareId, String visitorId, RequestOptions requestOptions) { + return this.rawClient + .delete(tenantId, shareId, visitorId, requestOptions) + .thenApply(response -> response.body()); + } + + /** + * Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing. + */ + public CompletableFuture delete( + String tenantId, String shareId, String visitorId, DeleteVisitorsRequest request) { + return this.rawClient.delete(tenantId, shareId, visitorId, request).thenApply(response -> response.body()); + } + + /** + * Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing. + */ + public CompletableFuture delete( + String tenantId, + String shareId, + String visitorId, + DeleteVisitorsRequest request, + RequestOptions requestOptions) { + return this.rawClient + .delete(tenantId, shareId, visitorId, request, requestOptions) + .thenApply(response -> response.body()); + } +} diff --git a/src/main/java/api/resources/shares/visitors/RawVisitorsClient.java b/src/main/java/api/resources/shares/visitors/RawVisitorsClient.java new file mode 100644 index 0000000..da4c50b --- /dev/null +++ b/src/main/java/api/resources/shares/visitors/RawVisitorsClient.java @@ -0,0 +1,221 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.visitors; + +import com.cloudpdf.api.core.ClientOptions; +import com.cloudpdf.api.core.CloudPDFApiException; +import com.cloudpdf.api.core.CloudPDFClientHttpResponse; +import com.cloudpdf.api.core.CloudPDFException; +import com.cloudpdf.api.core.ObjectMappers; +import com.cloudpdf.api.core.QueryStringMapper; +import com.cloudpdf.api.core.RequestOptions; +import com.cloudpdf.api.core.RetryInterceptor; +import com.cloudpdf.api.errors.BadRequestError; +import com.cloudpdf.api.errors.NotFoundError; +import com.cloudpdf.api.resources.shares.visitors.requests.DeleteVisitorsRequest; +import com.cloudpdf.api.resources.shares.visitors.requests.ListVisitorsRequest; +import com.cloudpdf.api.types.SharesVisitorsList200Response; +import com.fasterxml.jackson.core.JsonProcessingException; +import java.io.IOException; +import okhttp3.Headers; +import okhttp3.HttpUrl; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; + +public class RawVisitorsClient { + protected final ClientOptions clientOptions; + + public RawVisitorsClient(ClientOptions clientOptions) { + this.clientOptions = clientOptions; + } + + /** + * An archived link's visitors are listed too. + */ + public CloudPDFClientHttpResponse list(String tenantId, String shareId) { + return list(tenantId, shareId, ListVisitorsRequest.builder().build()); + } + + /** + * An archived link's visitors are listed too. + */ + public CloudPDFClientHttpResponse list( + String tenantId, String shareId, RequestOptions requestOptions) { + return list(tenantId, shareId, ListVisitorsRequest.builder().build(), requestOptions); + } + + /** + * An archived link's visitors are listed too. + */ + public CloudPDFClientHttpResponse list( + String tenantId, String shareId, ListVisitorsRequest request) { + return list(tenantId, shareId, request, null); + } + + /** + * An archived link's visitors are listed too. + */ + public CloudPDFClientHttpResponse list( + String tenantId, String shareId, ListVisitorsRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("v1/tenants") + .addPathSegment(tenantId) + .addPathSegments("shares") + .addPathSegment(shareId) + .addPathSegments("visitors"); + if (request.getLimit().isPresent()) { + QueryStringMapper.addQueryParameter( + httpUrl, "limit", request.getLimit().get(), false); + } + if (request.getCursor().isPresent()) { + QueryStringMapper.addQueryParameter( + httpUrl, "cursor", request.getCursor().get(), false); + } + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((_key, _value) -> { + httpUrl.addQueryParameter(_key, _value); + }); + } + Request.Builder _requestBuilder = new Request.Builder() + .url(httpUrl.build()) + .method("GET", null) + .headers(Headers.of(clientOptions.headers(requestOptions))) + .addHeader("Accept", "application/json"); + Request okhttpRequest = _requestBuilder.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, SharesVisitorsList200Response.class), + response); + } + try { + switch (response.code()) { + case 400: + throw new BadRequestError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), response); + case 404: + throw new NotFoundError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.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); + } + } + + /** + * Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing. + */ + public CloudPDFClientHttpResponse delete(String tenantId, String shareId, String visitorId) { + return delete( + tenantId, shareId, visitorId, DeleteVisitorsRequest.builder().build()); + } + + /** + * Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing. + */ + public CloudPDFClientHttpResponse delete( + String tenantId, String shareId, String visitorId, RequestOptions requestOptions) { + return delete( + tenantId, shareId, visitorId, DeleteVisitorsRequest.builder().build(), requestOptions); + } + + /** + * Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing. + */ + public CloudPDFClientHttpResponse delete( + String tenantId, String shareId, String visitorId, DeleteVisitorsRequest request) { + return delete(tenantId, shareId, visitorId, request, null); + } + + /** + * Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing. + */ + public CloudPDFClientHttpResponse delete( + String tenantId, + String shareId, + String visitorId, + DeleteVisitorsRequest request, + RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("v1/tenants") + .addPathSegment(tenantId) + .addPathSegments("shares") + .addPathSegment(shareId) + .addPathSegments("visitors") + .addPathSegment(visitorId); + if (requestOptions != null) { + requestOptions.getQueryParameters().forEach((_key, _value) -> { + httpUrl.addQueryParameter(_key, _value); + }); + } + Request.Builder _requestBuilder = new Request.Builder() + .url(httpUrl.build()) + .method("DELETE", null) + .headers(Headers.of(clientOptions.headers(requestOptions))) + .addHeader("Accept", "application/json"); + Request okhttpRequest = _requestBuilder.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(); + if (response.isSuccessful()) { + return new CloudPDFClientHttpResponse<>(null, response); + } + String responseBodyString = responseBody != null ? responseBody.string() : "{}"; + try { + if (response.code() == 404) { + throw new NotFoundError( + ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.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); + } + } +} diff --git a/src/main/java/api/resources/shares/visitors/VisitorsClient.java b/src/main/java/api/resources/shares/visitors/VisitorsClient.java new file mode 100644 index 0000000..ac334a1 --- /dev/null +++ b/src/main/java/api/resources/shares/visitors/VisitorsClient.java @@ -0,0 +1,92 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.visitors; + +import com.cloudpdf.api.core.ClientOptions; +import com.cloudpdf.api.core.RequestOptions; +import com.cloudpdf.api.resources.shares.visitors.requests.DeleteVisitorsRequest; +import com.cloudpdf.api.resources.shares.visitors.requests.ListVisitorsRequest; +import com.cloudpdf.api.types.SharesVisitorsList200Response; + +public class VisitorsClient { + protected final ClientOptions clientOptions; + + private final RawVisitorsClient rawClient; + + public VisitorsClient(ClientOptions clientOptions) { + this.clientOptions = clientOptions; + this.rawClient = new RawVisitorsClient(clientOptions); + } + + /** + * Get responses with HTTP metadata like headers + */ + public RawVisitorsClient withRawResponse() { + return this.rawClient; + } + + /** + * An archived link's visitors are listed too. + */ + public SharesVisitorsList200Response list(String tenantId, String shareId) { + return this.rawClient.list(tenantId, shareId).body(); + } + + /** + * An archived link's visitors are listed too. + */ + public SharesVisitorsList200Response list(String tenantId, String shareId, RequestOptions requestOptions) { + return this.rawClient.list(tenantId, shareId, requestOptions).body(); + } + + /** + * An archived link's visitors are listed too. + */ + public SharesVisitorsList200Response list(String tenantId, String shareId, ListVisitorsRequest request) { + return this.rawClient.list(tenantId, shareId, request).body(); + } + + /** + * An archived link's visitors are listed too. + */ + public SharesVisitorsList200Response list( + String tenantId, String shareId, ListVisitorsRequest request, RequestOptions requestOptions) { + return this.rawClient.list(tenantId, shareId, request, requestOptions).body(); + } + + /** + * Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing. + */ + public void delete(String tenantId, String shareId, String visitorId) { + this.rawClient.delete(tenantId, shareId, visitorId).body(); + } + + /** + * Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing. + */ + public void delete(String tenantId, String shareId, String visitorId, RequestOptions requestOptions) { + this.rawClient.delete(tenantId, shareId, visitorId, requestOptions).body(); + } + + /** + * Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing. + */ + public void delete(String tenantId, String shareId, String visitorId, DeleteVisitorsRequest request) { + this.rawClient.delete(tenantId, shareId, visitorId, request).body(); + } + + /** + * Their handle brings them back as a new visitor, who is asked again. Deleting a visitor already deleted changes nothing. + */ + public void delete( + String tenantId, + String shareId, + String visitorId, + DeleteVisitorsRequest request, + RequestOptions requestOptions) { + this.rawClient + .delete(tenantId, shareId, visitorId, request, requestOptions) + .body(); + } +} diff --git a/src/main/java/api/resources/shares/visitors/requests/DeleteVisitorsRequest.java b/src/main/java/api/resources/shares/visitors/requests/DeleteVisitorsRequest.java new file mode 100644 index 0000000..7cdbc67 --- /dev/null +++ b/src/main/java/api/resources/shares/visitors/requests/DeleteVisitorsRequest.java @@ -0,0 +1,69 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.visitors.requests; + +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.databind.annotation.JsonDeserialize; +import java.util.HashMap; +import java.util.Map; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DeleteVisitorsRequest.Builder.class) +public final class DeleteVisitorsRequest { + private final Map additionalProperties; + + private DeleteVisitorsRequest(Map additionalProperties) { + this.additionalProperties = additionalProperties; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DeleteVisitorsRequest; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @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 { + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(DeleteVisitorsRequest other) { + return this; + } + + public DeleteVisitorsRequest build() { + return new DeleteVisitorsRequest(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/shares/visitors/requests/ListVisitorsRequest.java b/src/main/java/api/resources/shares/visitors/requests/ListVisitorsRequest.java new file mode 100644 index 0000000..f44b3ca --- /dev/null +++ b/src/main/java/api/resources/shares/visitors/requests/ListVisitorsRequest.java @@ -0,0 +1,128 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.cloudpdf.api.resources.shares.visitors.requests; + +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 = ListVisitorsRequest.Builder.class) +public final class ListVisitorsRequest { + private final Optional limit; + + private final Optional cursor; + + private final Map additionalProperties; + + private ListVisitorsRequest( + Optional limit, Optional cursor, Map additionalProperties) { + this.limit = limit; + this.cursor = cursor; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("limit") + public Optional getLimit() { + return limit; + } + + @JsonProperty("cursor") + public Optional getCursor() { + return cursor; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof ListVisitorsRequest && equalTo((ListVisitorsRequest) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(ListVisitorsRequest other) { + return limit.equals(other.limit) && cursor.equals(other.cursor); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.limit, this.cursor); + } + + @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 limit = Optional.empty(); + + private Optional cursor = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(ListVisitorsRequest other) { + limit(other.getLimit()); + cursor(other.getCursor()); + return this; + } + + @JsonSetter(value = "limit", nulls = Nulls.SKIP) + public Builder limit(Optional limit) { + this.limit = limit; + return this; + } + + public Builder limit(Integer limit) { + this.limit = Optional.ofNullable(limit); + return this; + } + + @JsonSetter(value = "cursor", nulls = Nulls.SKIP) + public Builder cursor(Optional cursor) { + this.cursor = cursor; + return this; + } + + public Builder cursor(String cursor) { + this.cursor = Optional.ofNullable(cursor); + return this; + } + + public ListVisitorsRequest build() { + return new ListVisitorsRequest(limit, cursor, 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/types/AdminErrorPayloadError.java b/src/main/java/api/types/AdminErrorPayloadError.java index db14e61..d75c548 100644 --- a/src/main/java/api/types/AdminErrorPayloadError.java +++ b/src/main/java/api/types/AdminErrorPayloadError.java @@ -10,10 +10,12 @@ 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) @@ -23,11 +25,18 @@ public final class AdminErrorPayloadError { private final String message; + private final Optional> details; + private final Map additionalProperties; - private AdminErrorPayloadError(String code, String message, Map additionalProperties) { + private AdminErrorPayloadError( + String code, + String message, + Optional> details, + Map additionalProperties) { this.code = code; this.message = message; + this.details = details; this.additionalProperties = additionalProperties; } @@ -41,6 +50,11 @@ public String getMessage() { return message; } + @JsonProperty("details") + public Optional> getDetails() { + return details; + } + @java.lang.Override public boolean equals(Object other) { if (this == other) return true; @@ -53,12 +67,12 @@ public Map getAdditionalProperties() { } private boolean equalTo(AdminErrorPayloadError other) { - return code.equals(other.code) && message.equals(other.message); + return code.equals(other.code) && message.equals(other.message) && details.equals(other.details); } @java.lang.Override public int hashCode() { - return Objects.hash(this.code, this.message); + return Objects.hash(this.code, this.message, this.details); } @java.lang.Override @@ -86,6 +100,10 @@ public interface _FinalStage { _FinalStage additionalProperty(String key, Object value); _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage details(Optional> details); + + _FinalStage details(Map details); } @JsonIgnoreProperties(ignoreUnknown = true) @@ -94,6 +112,8 @@ public static final class Builder implements CodeStage, MessageStage, _FinalStag private String message; + private Optional> details = Optional.empty(); + @JsonAnySetter private Map additionalProperties = new HashMap<>(); @@ -103,6 +123,7 @@ private Builder() {} public Builder from(AdminErrorPayloadError other) { code(other.getCode()); message(other.getMessage()); + details(other.getDetails()); return this; } @@ -120,9 +141,22 @@ public _FinalStage message(@NotNull String message) { return this; } + @java.lang.Override + public _FinalStage details(Map details) { + this.details = Optional.ofNullable(details); + return this; + } + + @java.lang.Override + @JsonSetter(value = "details", nulls = Nulls.SKIP) + public _FinalStage details(Optional> details) { + this.details = details; + return this; + } + @java.lang.Override public AdminErrorPayloadError build() { - return new AdminErrorPayloadError(code, message, additionalProperties); + return new AdminErrorPayloadError(code, message, details, additionalProperties); } @java.lang.Override diff --git a/src/main/java/api/types/DocDownloadLink200Response.java b/src/main/java/api/types/DocDownloadLink200Response.java new file mode 100644 index 0000000..54bff32 --- /dev/null +++ b/src/main/java/api/types/DocDownloadLink200Response.java @@ -0,0 +1,140 @@ +/** + * 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 = DocDownloadLink200Response.Builder.class) +public final class DocDownloadLink200Response { + private final String url; + + private final double expiresAt; + + private final Map additionalProperties; + + private DocDownloadLink200Response(String url, double expiresAt, Map additionalProperties) { + this.url = url; + this.expiresAt = expiresAt; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("url") + public String getUrl() { + return url; + } + + @JsonProperty("expiresAt") + public double getExpiresAt() { + return expiresAt; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocDownloadLink200Response && equalTo((DocDownloadLink200Response) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocDownloadLink200Response other) { + return url.equals(other.url) && expiresAt == other.expiresAt; + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.url, this.expiresAt); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static UrlStage builder() { + return new Builder(); + } + + public interface UrlStage { + ExpiresAtStage url(@NotNull String url); + + Builder from(DocDownloadLink200Response other); + } + + public interface ExpiresAtStage { + _FinalStage expiresAt(double expiresAt); + } + + public interface _FinalStage { + DocDownloadLink200Response build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements UrlStage, ExpiresAtStage, _FinalStage { + private String url; + + private double expiresAt; + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(DocDownloadLink200Response other) { + url(other.getUrl()); + expiresAt(other.getExpiresAt()); + return this; + } + + @java.lang.Override + @JsonSetter("url") + public ExpiresAtStage url(@NotNull String url) { + this.url = Objects.requireNonNull(url, "url must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("expiresAt") + public _FinalStage expiresAt(double expiresAt) { + this.expiresAt = expiresAt; + return this; + } + + @java.lang.Override + public DocDownloadLink200Response build() { + return new DocDownloadLink200Response(url, expiresAt, 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/DocumentsLayersList200Response.java b/src/main/java/api/types/DocumentsLayersList200Response.java new file mode 100644 index 0000000..8f316cc --- /dev/null +++ b/src/main/java/api/types/DocumentsLayersList200Response.java @@ -0,0 +1,165 @@ +/** + * 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.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DocumentsLayersList200Response.Builder.class) +public final class DocumentsLayersList200Response { + private final List layers; + + private final Optional nextCursor; + + private final Map additionalProperties; + + private DocumentsLayersList200Response( + List layers, + Optional nextCursor, + Map additionalProperties) { + this.layers = layers; + this.nextCursor = nextCursor; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("layers") + public List getLayers() { + return layers; + } + + @JsonIgnore + public Optional getNextCursor() { + if (nextCursor == null) { + return Optional.empty(); + } + return nextCursor; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("nextCursor") + private Optional _getNextCursor() { + return nextCursor; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocumentsLayersList200Response && equalTo((DocumentsLayersList200Response) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocumentsLayersList200Response other) { + return layers.equals(other.layers) && nextCursor.equals(other.nextCursor); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.layers, this.nextCursor); + } + + @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 List layers = new ArrayList<>(); + + private Optional nextCursor = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(DocumentsLayersList200Response other) { + layers(other.getLayers()); + nextCursor(other.getNextCursor()); + return this; + } + + @JsonSetter(value = "layers", nulls = Nulls.SKIP) + public Builder layers(List layers) { + this.layers.clear(); + if (layers != null) { + this.layers.addAll(layers); + } + return this; + } + + public Builder addLayers(DocumentsLayersList200ResponseLayersItem layers) { + this.layers.add(layers); + return this; + } + + public Builder addAllLayers(List layers) { + if (layers != null) { + this.layers.addAll(layers); + } + return this; + } + + @JsonSetter(value = "nextCursor", nulls = Nulls.SKIP) + public Builder nextCursor(Optional nextCursor) { + this.nextCursor = nextCursor; + return this; + } + + public Builder nextCursor(String nextCursor) { + this.nextCursor = Optional.ofNullable(nextCursor); + return this; + } + + public Builder nextCursor(Nullable nextCursor) { + if (nextCursor.isNull()) { + this.nextCursor = null; + } else if (nextCursor.isEmpty()) { + this.nextCursor = Optional.empty(); + } else { + this.nextCursor = Optional.of(nextCursor.get()); + } + return this; + } + + public DocumentsLayersList200Response build() { + return new DocumentsLayersList200Response(layers, nextCursor, 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/types/DocumentsLayersList200ResponseLayersItem.java b/src/main/java/api/types/DocumentsLayersList200ResponseLayersItem.java new file mode 100644 index 0000000..cc823d7 --- /dev/null +++ b/src/main/java/api/types/DocumentsLayersList200ResponseLayersItem.java @@ -0,0 +1,428 @@ +/** + * 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 = DocumentsLayersList200ResponseLayersItem.Builder.class) +public final class DocumentsLayersList200ResponseLayersItem { + private final String docId; + + private final String layerName; + + private final Optional shareId; + + private final Optional visitorId; + + private final Optional storageSizeBytes; + + private final double createdAt; + + private final double updatedAt; + + private final Optional lastSeenAt; + + private final Map additionalProperties; + + private DocumentsLayersList200ResponseLayersItem( + String docId, + String layerName, + Optional shareId, + Optional visitorId, + Optional storageSizeBytes, + double createdAt, + double updatedAt, + Optional lastSeenAt, + Map additionalProperties) { + this.docId = docId; + this.layerName = layerName; + this.shareId = shareId; + this.visitorId = visitorId; + this.storageSizeBytes = storageSizeBytes; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.lastSeenAt = lastSeenAt; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("docId") + public String getDocId() { + return docId; + } + + @JsonProperty("layerName") + public String getLayerName() { + return layerName; + } + + @JsonIgnore + public Optional getShareId() { + if (shareId == null) { + return Optional.empty(); + } + return shareId; + } + + @JsonIgnore + public Optional getVisitorId() { + if (visitorId == null) { + return Optional.empty(); + } + return visitorId; + } + + @JsonIgnore + public Optional getStorageSizeBytes() { + if (storageSizeBytes == null) { + return Optional.empty(); + } + return storageSizeBytes; + } + + @JsonProperty("createdAt") + public double getCreatedAt() { + return createdAt; + } + + @JsonProperty("updatedAt") + public double getUpdatedAt() { + return updatedAt; + } + + @JsonIgnore + public Optional getLastSeenAt() { + if (lastSeenAt == null) { + return Optional.empty(); + } + return lastSeenAt; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("shareId") + private Optional _getShareId() { + return shareId; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("visitorId") + private Optional _getVisitorId() { + return visitorId; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("storageSizeBytes") + private Optional _getStorageSizeBytes() { + return storageSizeBytes; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("lastSeenAt") + private Optional _getLastSeenAt() { + return lastSeenAt; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DocumentsLayersList200ResponseLayersItem + && equalTo((DocumentsLayersList200ResponseLayersItem) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DocumentsLayersList200ResponseLayersItem other) { + return docId.equals(other.docId) + && layerName.equals(other.layerName) + && shareId.equals(other.shareId) + && visitorId.equals(other.visitorId) + && storageSizeBytes.equals(other.storageSizeBytes) + && createdAt == other.createdAt + && updatedAt == other.updatedAt + && lastSeenAt.equals(other.lastSeenAt); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash( + this.docId, + this.layerName, + this.shareId, + this.visitorId, + this.storageSizeBytes, + this.createdAt, + this.updatedAt, + this.lastSeenAt); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static DocIdStage builder() { + return new Builder(); + } + + public interface DocIdStage { + LayerNameStage docId(@NotNull String docId); + + Builder from(DocumentsLayersList200ResponseLayersItem other); + } + + public interface LayerNameStage { + CreatedAtStage layerName(@NotNull String layerName); + } + + public interface CreatedAtStage { + UpdatedAtStage createdAt(double createdAt); + } + + public interface UpdatedAtStage { + _FinalStage updatedAt(double updatedAt); + } + + public interface _FinalStage { + DocumentsLayersList200ResponseLayersItem build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage shareId(Optional shareId); + + _FinalStage shareId(String shareId); + + _FinalStage shareId(Nullable shareId); + + _FinalStage visitorId(Optional visitorId); + + _FinalStage visitorId(String visitorId); + + _FinalStage visitorId(Nullable visitorId); + + _FinalStage storageSizeBytes(Optional storageSizeBytes); + + _FinalStage storageSizeBytes(Double storageSizeBytes); + + _FinalStage storageSizeBytes(Nullable storageSizeBytes); + + _FinalStage lastSeenAt(Optional lastSeenAt); + + _FinalStage lastSeenAt(Double lastSeenAt); + + _FinalStage lastSeenAt(Nullable lastSeenAt); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder + implements DocIdStage, LayerNameStage, CreatedAtStage, UpdatedAtStage, _FinalStage { + private String docId; + + private String layerName; + + private double createdAt; + + private double updatedAt; + + private Optional lastSeenAt = Optional.empty(); + + private Optional storageSizeBytes = Optional.empty(); + + private Optional visitorId = Optional.empty(); + + private Optional shareId = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(DocumentsLayersList200ResponseLayersItem other) { + docId(other.getDocId()); + layerName(other.getLayerName()); + shareId(other.getShareId()); + visitorId(other.getVisitorId()); + storageSizeBytes(other.getStorageSizeBytes()); + createdAt(other.getCreatedAt()); + updatedAt(other.getUpdatedAt()); + lastSeenAt(other.getLastSeenAt()); + return this; + } + + @java.lang.Override + @JsonSetter("docId") + public LayerNameStage docId(@NotNull String docId) { + this.docId = Objects.requireNonNull(docId, "docId must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("layerName") + public CreatedAtStage layerName(@NotNull String layerName) { + this.layerName = Objects.requireNonNull(layerName, "layerName 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 lastSeenAt(Nullable lastSeenAt) { + if (lastSeenAt.isNull()) { + this.lastSeenAt = null; + } else if (lastSeenAt.isEmpty()) { + this.lastSeenAt = Optional.empty(); + } else { + this.lastSeenAt = Optional.of(lastSeenAt.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage lastSeenAt(Double lastSeenAt) { + this.lastSeenAt = Optional.ofNullable(lastSeenAt); + return this; + } + + @java.lang.Override + @JsonSetter(value = "lastSeenAt", nulls = Nulls.SKIP) + public _FinalStage lastSeenAt(Optional lastSeenAt) { + this.lastSeenAt = lastSeenAt; + 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 visitorId(Nullable visitorId) { + if (visitorId.isNull()) { + this.visitorId = null; + } else if (visitorId.isEmpty()) { + this.visitorId = Optional.empty(); + } else { + this.visitorId = Optional.of(visitorId.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage visitorId(String visitorId) { + this.visitorId = Optional.ofNullable(visitorId); + return this; + } + + @java.lang.Override + @JsonSetter(value = "visitorId", nulls = Nulls.SKIP) + public _FinalStage visitorId(Optional visitorId) { + this.visitorId = visitorId; + return this; + } + + @java.lang.Override + public _FinalStage shareId(Nullable shareId) { + if (shareId.isNull()) { + this.shareId = null; + } else if (shareId.isEmpty()) { + this.shareId = Optional.empty(); + } else { + this.shareId = Optional.of(shareId.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage shareId(String shareId) { + this.shareId = Optional.ofNullable(shareId); + return this; + } + + @java.lang.Override + @JsonSetter(value = "shareId", nulls = Nulls.SKIP) + public _FinalStage shareId(Optional shareId) { + this.shareId = shareId; + return this; + } + + @java.lang.Override + public DocumentsLayersList200ResponseLayersItem build() { + return new DocumentsLayersList200ResponseLayersItem( + docId, + layerName, + shareId, + visitorId, + storageSizeBytes, + createdAt, + updatedAt, + lastSeenAt, + 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/EngineErrorPayloadCode.java b/src/main/java/api/types/EngineErrorPayloadCode.java index c3a61b3..f20934e 100644 --- a/src/main/java/api/types/EngineErrorPayloadCode.java +++ b/src/main/java/api/types/EngineErrorPayloadCode.java @@ -35,6 +35,12 @@ public final class EngineErrorPayloadCode { public static final EngineErrorPayloadCode NETWORK = new EngineErrorPayloadCode(Value.NETWORK, "Network"); + public static final EngineErrorPayloadCode LAYER_DELETED = + new EngineErrorPayloadCode(Value.LAYER_DELETED, "LayerDeleted"); + + public static final EngineErrorPayloadCode VISITOR_IDENTITY_REQUIRED = + new EngineErrorPayloadCode(Value.VISITOR_IDENTITY_REQUIRED, "VisitorIdentityRequired"); + public static final EngineErrorPayloadCode DOC_PASSWORD_INCORRECT = new EngineErrorPayloadCode(Value.DOC_PASSWORD_INCORRECT, "DocPasswordIncorrect"); @@ -142,6 +148,10 @@ public T visit(Visitor visitor) { return visitor.visitSharePasswordRequired(); case NETWORK: return visitor.visitNetwork(); + case LAYER_DELETED: + return visitor.visitLayerDeleted(); + case VISITOR_IDENTITY_REQUIRED: + return visitor.visitVisitorIdentityRequired(); case DOC_PASSWORD_INCORRECT: return visitor.visitDocPasswordIncorrect(); case LAYER_VERSION_CONFLICT: @@ -209,6 +219,10 @@ public static EngineErrorPayloadCode valueOf(String value) { return SHARE_PASSWORD_REQUIRED; case "Network": return NETWORK; + case "LayerDeleted": + return LAYER_DELETED; + case "VisitorIdentityRequired": + return VISITOR_IDENTITY_REQUIRED; case "DocPasswordIncorrect": return DOC_PASSWORD_INCORRECT; case "LayerVersionConflict": @@ -309,6 +323,10 @@ public enum Value { IDEMPOTENCY_KEY_REUSED, + LAYER_DELETED, + + VISITOR_IDENTITY_REQUIRED, + _UNKNOWN } @@ -371,6 +389,10 @@ public interface Visitor { T visitIdempotencyKeyReused(); + T visitLayerDeleted(); + + T visitVisitorIdentityRequired(); + T visitUnknown(String unknownType); } } diff --git a/src/main/java/api/types/SharesArchive200Response.java b/src/main/java/api/types/SharesArchive200Response.java new file mode 100644 index 0000000..a1f8345 --- /dev/null +++ b/src/main/java/api/types/SharesArchive200Response.java @@ -0,0 +1,118 @@ +/** + * 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 = SharesArchive200Response.Builder.class) +public final class SharesArchive200Response { + private final SharesArchive200ResponseShare share; + + private final Map additionalProperties; + + private SharesArchive200Response(SharesArchive200ResponseShare share, Map additionalProperties) { + this.share = share; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("share") + public SharesArchive200ResponseShare getShare() { + return share; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesArchive200Response && equalTo((SharesArchive200Response) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesArchive200Response other) { + return share.equals(other.share); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.share); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static ShareStage builder() { + return new Builder(); + } + + public interface ShareStage { + _FinalStage share(@NotNull SharesArchive200ResponseShare share); + + Builder from(SharesArchive200Response other); + } + + public interface _FinalStage { + SharesArchive200Response build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements ShareStage, _FinalStage { + private SharesArchive200ResponseShare share; + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(SharesArchive200Response other) { + share(other.getShare()); + return this; + } + + @java.lang.Override + @JsonSetter("share") + public _FinalStage share(@NotNull SharesArchive200ResponseShare share) { + this.share = Objects.requireNonNull(share, "share must not be null"); + return this; + } + + @java.lang.Override + public SharesArchive200Response build() { + return new SharesArchive200Response(share, 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/SharesArchive200ResponseShare.java b/src/main/java/api/types/SharesArchive200ResponseShare.java new file mode 100644 index 0000000..5989ae9 --- /dev/null +++ b/src/main/java/api/types/SharesArchive200ResponseShare.java @@ -0,0 +1,859 @@ +/** + * 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.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import org.jetbrains.annotations.NotNull; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = SharesArchive200ResponseShare.Builder.class) +public final class SharesArchive200ResponseShare { + private final String id; + + private final String tenantId; + + private final String docId; + + private final SharesArchive200ResponseShareLayerMode layerMode; + + private final Optional layerName; + + private final boolean keepVisitorLayers; + + private final Optional visitorIdleSeconds; + + private final Optional visitorIdentity; + + private final List scope; + + private final Optional> origins; + + private final boolean passwordProtected; + + private final double sessionTtlSeconds; + + private final boolean disabled; + + private final Optional archivedAt; + + private final Optional expiresAt; + + private final double exchangeCount; + + private final Optional lastExchangedAt; + + private final String createdBy; + + private final double createdAt; + + private final double updatedAt; + + private final Map additionalProperties; + + private SharesArchive200ResponseShare( + String id, + String tenantId, + String docId, + SharesArchive200ResponseShareLayerMode layerMode, + Optional layerName, + boolean keepVisitorLayers, + Optional visitorIdleSeconds, + Optional visitorIdentity, + List scope, + Optional> origins, + boolean passwordProtected, + double sessionTtlSeconds, + boolean disabled, + Optional archivedAt, + Optional expiresAt, + double exchangeCount, + Optional lastExchangedAt, + String createdBy, + double createdAt, + double updatedAt, + Map additionalProperties) { + this.id = id; + this.tenantId = tenantId; + this.docId = docId; + this.layerMode = layerMode; + this.layerName = layerName; + this.keepVisitorLayers = keepVisitorLayers; + this.visitorIdleSeconds = visitorIdleSeconds; + this.visitorIdentity = visitorIdentity; + this.scope = scope; + this.origins = origins; + this.passwordProtected = passwordProtected; + this.sessionTtlSeconds = sessionTtlSeconds; + this.disabled = disabled; + this.archivedAt = archivedAt; + this.expiresAt = expiresAt; + this.exchangeCount = exchangeCount; + this.lastExchangedAt = lastExchangedAt; + this.createdBy = createdBy; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("id") + public String getId() { + return id; + } + + @JsonProperty("tenantId") + public String getTenantId() { + return tenantId; + } + + @JsonProperty("docId") + public String getDocId() { + return docId; + } + + @JsonProperty("layerMode") + public SharesArchive200ResponseShareLayerMode getLayerMode() { + return layerMode; + } + + @JsonIgnore + public Optional getLayerName() { + if (layerName == null) { + return Optional.empty(); + } + return layerName; + } + + @JsonProperty("keepVisitorLayers") + public boolean getKeepVisitorLayers() { + return keepVisitorLayers; + } + + @JsonIgnore + public Optional getVisitorIdleSeconds() { + if (visitorIdleSeconds == null) { + return Optional.empty(); + } + return visitorIdleSeconds; + } + + @JsonIgnore + public Optional getVisitorIdentity() { + if (visitorIdentity == null) { + return Optional.empty(); + } + return visitorIdentity; + } + + @JsonProperty("scope") + public List getScope() { + return scope; + } + + @JsonIgnore + public Optional> getOrigins() { + if (origins == null) { + return Optional.empty(); + } + return origins; + } + + @JsonProperty("passwordProtected") + public boolean getPasswordProtected() { + return passwordProtected; + } + + @JsonProperty("sessionTtlSeconds") + public double getSessionTtlSeconds() { + return sessionTtlSeconds; + } + + @JsonProperty("disabled") + public boolean getDisabled() { + return disabled; + } + + @JsonIgnore + public Optional getArchivedAt() { + if (archivedAt == null) { + return Optional.empty(); + } + return archivedAt; + } + + @JsonIgnore + public Optional getExpiresAt() { + if (expiresAt == null) { + return Optional.empty(); + } + return expiresAt; + } + + @JsonProperty("exchangeCount") + public double getExchangeCount() { + return exchangeCount; + } + + @JsonIgnore + public Optional getLastExchangedAt() { + if (lastExchangedAt == null) { + return Optional.empty(); + } + return lastExchangedAt; + } + + @JsonProperty("createdBy") + public String getCreatedBy() { + return createdBy; + } + + @JsonProperty("createdAt") + public double getCreatedAt() { + return createdAt; + } + + @JsonProperty("updatedAt") + public double getUpdatedAt() { + return updatedAt; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("layerName") + private Optional _getLayerName() { + return layerName; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("visitorIdleSeconds") + private Optional _getVisitorIdleSeconds() { + return visitorIdleSeconds; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("visitorIdentity") + private Optional _getVisitorIdentity() { + return visitorIdentity; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("origins") + private Optional> _getOrigins() { + return origins; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("archivedAt") + private Optional _getArchivedAt() { + return archivedAt; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("expiresAt") + private Optional _getExpiresAt() { + return expiresAt; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("lastExchangedAt") + private Optional _getLastExchangedAt() { + return lastExchangedAt; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesArchive200ResponseShare && equalTo((SharesArchive200ResponseShare) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesArchive200ResponseShare other) { + return id.equals(other.id) + && tenantId.equals(other.tenantId) + && docId.equals(other.docId) + && layerMode.equals(other.layerMode) + && layerName.equals(other.layerName) + && keepVisitorLayers == other.keepVisitorLayers + && visitorIdleSeconds.equals(other.visitorIdleSeconds) + && visitorIdentity.equals(other.visitorIdentity) + && scope.equals(other.scope) + && origins.equals(other.origins) + && passwordProtected == other.passwordProtected + && sessionTtlSeconds == other.sessionTtlSeconds + && disabled == other.disabled + && archivedAt.equals(other.archivedAt) + && expiresAt.equals(other.expiresAt) + && exchangeCount == other.exchangeCount + && lastExchangedAt.equals(other.lastExchangedAt) + && createdBy.equals(other.createdBy) + && createdAt == other.createdAt + && updatedAt == other.updatedAt; + } + + @java.lang.Override + public int hashCode() { + return Objects.hash( + this.id, + this.tenantId, + this.docId, + this.layerMode, + this.layerName, + this.keepVisitorLayers, + this.visitorIdleSeconds, + this.visitorIdentity, + this.scope, + this.origins, + this.passwordProtected, + this.sessionTtlSeconds, + this.disabled, + this.archivedAt, + this.expiresAt, + this.exchangeCount, + this.lastExchangedAt, + this.createdBy, + this.createdAt, + this.updatedAt); + } + + @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(SharesArchive200ResponseShare other); + } + + public interface TenantIdStage { + DocIdStage tenantId(@NotNull String tenantId); + } + + public interface DocIdStage { + LayerModeStage docId(@NotNull String docId); + } + + public interface LayerModeStage { + KeepVisitorLayersStage layerMode(@NotNull SharesArchive200ResponseShareLayerMode layerMode); + } + + public interface KeepVisitorLayersStage { + PasswordProtectedStage keepVisitorLayers(boolean keepVisitorLayers); + } + + public interface PasswordProtectedStage { + SessionTtlSecondsStage passwordProtected(boolean passwordProtected); + } + + public interface SessionTtlSecondsStage { + DisabledStage sessionTtlSeconds(double sessionTtlSeconds); + } + + public interface DisabledStage { + ExchangeCountStage disabled(boolean disabled); + } + + public interface ExchangeCountStage { + CreatedByStage exchangeCount(double exchangeCount); + } + + public interface CreatedByStage { + CreatedAtStage createdBy(@NotNull String createdBy); + } + + public interface CreatedAtStage { + UpdatedAtStage createdAt(double createdAt); + } + + public interface UpdatedAtStage { + _FinalStage updatedAt(double updatedAt); + } + + public interface _FinalStage { + SharesArchive200ResponseShare build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage layerName(Optional layerName); + + _FinalStage layerName(String layerName); + + _FinalStage layerName(Nullable layerName); + + _FinalStage visitorIdleSeconds(Optional visitorIdleSeconds); + + _FinalStage visitorIdleSeconds(Double visitorIdleSeconds); + + _FinalStage visitorIdleSeconds(Nullable visitorIdleSeconds); + + _FinalStage visitorIdentity(Optional visitorIdentity); + + _FinalStage visitorIdentity(SharesArchive200ResponseShareVisitorIdentity visitorIdentity); + + _FinalStage visitorIdentity(Nullable visitorIdentity); + + _FinalStage scope(List scope); + + _FinalStage addScope(String scope); + + _FinalStage addAllScope(List scope); + + _FinalStage origins(Optional> origins); + + _FinalStage origins(List origins); + + _FinalStage origins(Nullable> origins); + + _FinalStage archivedAt(Optional archivedAt); + + _FinalStage archivedAt(Double archivedAt); + + _FinalStage archivedAt(Nullable archivedAt); + + _FinalStage expiresAt(Optional expiresAt); + + _FinalStage expiresAt(Double expiresAt); + + _FinalStage expiresAt(Nullable expiresAt); + + _FinalStage lastExchangedAt(Optional lastExchangedAt); + + _FinalStage lastExchangedAt(Double lastExchangedAt); + + _FinalStage lastExchangedAt(Nullable lastExchangedAt); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder + implements IdStage, + TenantIdStage, + DocIdStage, + LayerModeStage, + KeepVisitorLayersStage, + PasswordProtectedStage, + SessionTtlSecondsStage, + DisabledStage, + ExchangeCountStage, + CreatedByStage, + CreatedAtStage, + UpdatedAtStage, + _FinalStage { + private String id; + + private String tenantId; + + private String docId; + + private SharesArchive200ResponseShareLayerMode layerMode; + + private boolean keepVisitorLayers; + + private boolean passwordProtected; + + private double sessionTtlSeconds; + + private boolean disabled; + + private double exchangeCount; + + private String createdBy; + + private double createdAt; + + private double updatedAt; + + private Optional lastExchangedAt = Optional.empty(); + + private Optional expiresAt = Optional.empty(); + + private Optional archivedAt = Optional.empty(); + + private Optional> origins = Optional.empty(); + + private List scope = new ArrayList<>(); + + private Optional visitorIdentity = Optional.empty(); + + private Optional visitorIdleSeconds = Optional.empty(); + + private Optional layerName = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(SharesArchive200ResponseShare other) { + id(other.getId()); + tenantId(other.getTenantId()); + docId(other.getDocId()); + layerMode(other.getLayerMode()); + layerName(other.getLayerName()); + keepVisitorLayers(other.getKeepVisitorLayers()); + visitorIdleSeconds(other.getVisitorIdleSeconds()); + visitorIdentity(other.getVisitorIdentity()); + scope(other.getScope()); + origins(other.getOrigins()); + passwordProtected(other.getPasswordProtected()); + sessionTtlSeconds(other.getSessionTtlSeconds()); + disabled(other.getDisabled()); + archivedAt(other.getArchivedAt()); + expiresAt(other.getExpiresAt()); + exchangeCount(other.getExchangeCount()); + lastExchangedAt(other.getLastExchangedAt()); + createdBy(other.getCreatedBy()); + createdAt(other.getCreatedAt()); + updatedAt(other.getUpdatedAt()); + 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 DocIdStage tenantId(@NotNull String tenantId) { + this.tenantId = Objects.requireNonNull(tenantId, "tenantId must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("docId") + public LayerModeStage docId(@NotNull String docId) { + this.docId = Objects.requireNonNull(docId, "docId must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("layerMode") + public KeepVisitorLayersStage layerMode(@NotNull SharesArchive200ResponseShareLayerMode layerMode) { + this.layerMode = Objects.requireNonNull(layerMode, "layerMode must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("keepVisitorLayers") + public PasswordProtectedStage keepVisitorLayers(boolean keepVisitorLayers) { + this.keepVisitorLayers = keepVisitorLayers; + return this; + } + + @java.lang.Override + @JsonSetter("passwordProtected") + public SessionTtlSecondsStage passwordProtected(boolean passwordProtected) { + this.passwordProtected = passwordProtected; + return this; + } + + @java.lang.Override + @JsonSetter("sessionTtlSeconds") + public DisabledStage sessionTtlSeconds(double sessionTtlSeconds) { + this.sessionTtlSeconds = sessionTtlSeconds; + return this; + } + + @java.lang.Override + @JsonSetter("disabled") + public ExchangeCountStage disabled(boolean disabled) { + this.disabled = disabled; + return this; + } + + @java.lang.Override + @JsonSetter("exchangeCount") + public CreatedByStage exchangeCount(double exchangeCount) { + this.exchangeCount = exchangeCount; + return this; + } + + @java.lang.Override + @JsonSetter("createdBy") + public CreatedAtStage createdBy(@NotNull String createdBy) { + this.createdBy = Objects.requireNonNull(createdBy, "createdBy 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 lastExchangedAt(Nullable lastExchangedAt) { + if (lastExchangedAt.isNull()) { + this.lastExchangedAt = null; + } else if (lastExchangedAt.isEmpty()) { + this.lastExchangedAt = Optional.empty(); + } else { + this.lastExchangedAt = Optional.of(lastExchangedAt.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage lastExchangedAt(Double lastExchangedAt) { + this.lastExchangedAt = Optional.ofNullable(lastExchangedAt); + return this; + } + + @java.lang.Override + @JsonSetter(value = "lastExchangedAt", nulls = Nulls.SKIP) + public _FinalStage lastExchangedAt(Optional lastExchangedAt) { + this.lastExchangedAt = lastExchangedAt; + return this; + } + + @java.lang.Override + public _FinalStage expiresAt(Nullable expiresAt) { + if (expiresAt.isNull()) { + this.expiresAt = null; + } else if (expiresAt.isEmpty()) { + this.expiresAt = Optional.empty(); + } else { + this.expiresAt = Optional.of(expiresAt.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage expiresAt(Double expiresAt) { + this.expiresAt = Optional.ofNullable(expiresAt); + return this; + } + + @java.lang.Override + @JsonSetter(value = "expiresAt", nulls = Nulls.SKIP) + public _FinalStage expiresAt(Optional expiresAt) { + this.expiresAt = expiresAt; + return this; + } + + @java.lang.Override + public _FinalStage archivedAt(Nullable archivedAt) { + if (archivedAt.isNull()) { + this.archivedAt = null; + } else if (archivedAt.isEmpty()) { + this.archivedAt = Optional.empty(); + } else { + this.archivedAt = Optional.of(archivedAt.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage archivedAt(Double archivedAt) { + this.archivedAt = Optional.ofNullable(archivedAt); + return this; + } + + @java.lang.Override + @JsonSetter(value = "archivedAt", nulls = Nulls.SKIP) + public _FinalStage archivedAt(Optional archivedAt) { + this.archivedAt = archivedAt; + return this; + } + + @java.lang.Override + public _FinalStage origins(Nullable> origins) { + if (origins.isNull()) { + this.origins = null; + } else if (origins.isEmpty()) { + this.origins = Optional.empty(); + } else { + this.origins = Optional.of(origins.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage origins(List origins) { + this.origins = Optional.ofNullable(origins); + return this; + } + + @java.lang.Override + @JsonSetter(value = "origins", nulls = Nulls.SKIP) + public _FinalStage origins(Optional> origins) { + this.origins = origins; + return this; + } + + @java.lang.Override + public _FinalStage addAllScope(List scope) { + if (scope != null) { + this.scope.addAll(scope); + } + return this; + } + + @java.lang.Override + public _FinalStage addScope(String scope) { + this.scope.add(scope); + return this; + } + + @java.lang.Override + @JsonSetter(value = "scope", nulls = Nulls.SKIP) + public _FinalStage scope(List scope) { + this.scope.clear(); + if (scope != null) { + this.scope.addAll(scope); + } + return this; + } + + @java.lang.Override + public _FinalStage visitorIdentity(Nullable visitorIdentity) { + if (visitorIdentity.isNull()) { + this.visitorIdentity = null; + } else if (visitorIdentity.isEmpty()) { + this.visitorIdentity = Optional.empty(); + } else { + this.visitorIdentity = Optional.of(visitorIdentity.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage visitorIdentity(SharesArchive200ResponseShareVisitorIdentity visitorIdentity) { + this.visitorIdentity = Optional.ofNullable(visitorIdentity); + return this; + } + + @java.lang.Override + @JsonSetter(value = "visitorIdentity", nulls = Nulls.SKIP) + public _FinalStage visitorIdentity(Optional visitorIdentity) { + this.visitorIdentity = visitorIdentity; + return this; + } + + @java.lang.Override + public _FinalStage visitorIdleSeconds(Nullable visitorIdleSeconds) { + if (visitorIdleSeconds.isNull()) { + this.visitorIdleSeconds = null; + } else if (visitorIdleSeconds.isEmpty()) { + this.visitorIdleSeconds = Optional.empty(); + } else { + this.visitorIdleSeconds = Optional.of(visitorIdleSeconds.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage visitorIdleSeconds(Double visitorIdleSeconds) { + this.visitorIdleSeconds = Optional.ofNullable(visitorIdleSeconds); + return this; + } + + @java.lang.Override + @JsonSetter(value = "visitorIdleSeconds", nulls = Nulls.SKIP) + public _FinalStage visitorIdleSeconds(Optional visitorIdleSeconds) { + this.visitorIdleSeconds = visitorIdleSeconds; + return this; + } + + @java.lang.Override + public _FinalStage layerName(Nullable layerName) { + if (layerName.isNull()) { + this.layerName = null; + } else if (layerName.isEmpty()) { + this.layerName = Optional.empty(); + } else { + this.layerName = Optional.of(layerName.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage layerName(String layerName) { + this.layerName = Optional.ofNullable(layerName); + return this; + } + + @java.lang.Override + @JsonSetter(value = "layerName", nulls = Nulls.SKIP) + public _FinalStage layerName(Optional layerName) { + this.layerName = layerName; + return this; + } + + @java.lang.Override + public SharesArchive200ResponseShare build() { + return new SharesArchive200ResponseShare( + id, + tenantId, + docId, + layerMode, + layerName, + keepVisitorLayers, + visitorIdleSeconds, + visitorIdentity, + scope, + origins, + passwordProtected, + sessionTtlSeconds, + disabled, + archivedAt, + expiresAt, + exchangeCount, + lastExchangedAt, + createdBy, + createdAt, + updatedAt, + 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/SharesArchive200ResponseShareLayerMode.java b/src/main/java/api/types/SharesArchive200ResponseShareLayerMode.java new file mode 100644 index 0000000..6be11f2 --- /dev/null +++ b/src/main/java/api/types/SharesArchive200ResponseShareLayerMode.java @@ -0,0 +1,86 @@ +/** + * 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 SharesArchive200ResponseShareLayerMode { + public static final SharesArchive200ResponseShareLayerMode PER_VISITOR = + new SharesArchive200ResponseShareLayerMode(Value.PER_VISITOR, "per-visitor"); + + public static final SharesArchive200ResponseShareLayerMode SHARED = + new SharesArchive200ResponseShareLayerMode(Value.SHARED, "shared"); + + private final Value value; + + private final String string; + + SharesArchive200ResponseShareLayerMode(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 SharesArchive200ResponseShareLayerMode + && this.string.equals(((SharesArchive200ResponseShareLayerMode) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case PER_VISITOR: + return visitor.visitPerVisitor(); + case SHARED: + return visitor.visitShared(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesArchive200ResponseShareLayerMode valueOf(String value) { + switch (value) { + case "per-visitor": + return PER_VISITOR; + case "shared": + return SHARED; + default: + return new SharesArchive200ResponseShareLayerMode(Value.UNKNOWN, value); + } + } + + public enum Value { + SHARED, + + PER_VISITOR, + + UNKNOWN + } + + public interface Visitor { + T visitShared(); + + T visitPerVisitor(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentity.java b/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentity.java new file mode 100644 index 0000000..86c6fbe --- /dev/null +++ b/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentity.java @@ -0,0 +1,208 @@ +/** + * 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.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 = SharesArchive200ResponseShareVisitorIdentity.Builder.class) +public final class SharesArchive200ResponseShareVisitorIdentity { + private final SharesArchive200ResponseShareVisitorIdentityFields fields; + + private final SharesArchive200ResponseShareVisitorIdentityAsk ask; + + private final Optional purpose; + + private final Optional privacyUrl; + + private final Map additionalProperties; + + private SharesArchive200ResponseShareVisitorIdentity( + SharesArchive200ResponseShareVisitorIdentityFields fields, + SharesArchive200ResponseShareVisitorIdentityAsk ask, + Optional purpose, + Optional privacyUrl, + Map additionalProperties) { + this.fields = fields; + this.ask = ask; + this.purpose = purpose; + this.privacyUrl = privacyUrl; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("fields") + public SharesArchive200ResponseShareVisitorIdentityFields getFields() { + return fields; + } + + @JsonProperty("ask") + public SharesArchive200ResponseShareVisitorIdentityAsk getAsk() { + return ask; + } + + @JsonProperty("purpose") + public Optional getPurpose() { + return purpose; + } + + @JsonProperty("privacyUrl") + public Optional getPrivacyUrl() { + return privacyUrl; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesArchive200ResponseShareVisitorIdentity + && equalTo((SharesArchive200ResponseShareVisitorIdentity) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesArchive200ResponseShareVisitorIdentity other) { + return fields.equals(other.fields) + && ask.equals(other.ask) + && purpose.equals(other.purpose) + && privacyUrl.equals(other.privacyUrl); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.fields, this.ask, this.purpose, this.privacyUrl); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static FieldsStage builder() { + return new Builder(); + } + + public interface FieldsStage { + AskStage fields(@NotNull SharesArchive200ResponseShareVisitorIdentityFields fields); + + Builder from(SharesArchive200ResponseShareVisitorIdentity other); + } + + public interface AskStage { + _FinalStage ask(@NotNull SharesArchive200ResponseShareVisitorIdentityAsk ask); + } + + public interface _FinalStage { + SharesArchive200ResponseShareVisitorIdentity build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage purpose(Optional purpose); + + _FinalStage purpose(String purpose); + + _FinalStage privacyUrl(Optional privacyUrl); + + _FinalStage privacyUrl(String privacyUrl); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements FieldsStage, AskStage, _FinalStage { + private SharesArchive200ResponseShareVisitorIdentityFields fields; + + private SharesArchive200ResponseShareVisitorIdentityAsk ask; + + private Optional privacyUrl = Optional.empty(); + + private Optional purpose = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(SharesArchive200ResponseShareVisitorIdentity other) { + fields(other.getFields()); + ask(other.getAsk()); + purpose(other.getPurpose()); + privacyUrl(other.getPrivacyUrl()); + return this; + } + + @java.lang.Override + @JsonSetter("fields") + public AskStage fields(@NotNull SharesArchive200ResponseShareVisitorIdentityFields fields) { + this.fields = Objects.requireNonNull(fields, "fields must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("ask") + public _FinalStage ask(@NotNull SharesArchive200ResponseShareVisitorIdentityAsk ask) { + this.ask = Objects.requireNonNull(ask, "ask must not be null"); + return this; + } + + @java.lang.Override + public _FinalStage privacyUrl(String privacyUrl) { + this.privacyUrl = Optional.ofNullable(privacyUrl); + return this; + } + + @java.lang.Override + @JsonSetter(value = "privacyUrl", nulls = Nulls.SKIP) + public _FinalStage privacyUrl(Optional privacyUrl) { + this.privacyUrl = privacyUrl; + return this; + } + + @java.lang.Override + public _FinalStage purpose(String purpose) { + this.purpose = Optional.ofNullable(purpose); + return this; + } + + @java.lang.Override + @JsonSetter(value = "purpose", nulls = Nulls.SKIP) + public _FinalStage purpose(Optional purpose) { + this.purpose = purpose; + return this; + } + + @java.lang.Override + public SharesArchive200ResponseShareVisitorIdentity build() { + return new SharesArchive200ResponseShareVisitorIdentity( + fields, ask, purpose, privacyUrl, 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/SharesArchive200ResponseShareVisitorIdentityAsk.java b/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityAsk.java new file mode 100644 index 0000000..d1c5876 --- /dev/null +++ b/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityAsk.java @@ -0,0 +1,86 @@ +/** + * 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 SharesArchive200ResponseShareVisitorIdentityAsk { + public static final SharesArchive200ResponseShareVisitorIdentityAsk ON_OPEN = + new SharesArchive200ResponseShareVisitorIdentityAsk(Value.ON_OPEN, "on-open"); + + public static final SharesArchive200ResponseShareVisitorIdentityAsk BEFORE_FIRST_CHANGE = + new SharesArchive200ResponseShareVisitorIdentityAsk(Value.BEFORE_FIRST_CHANGE, "before-first-change"); + + private final Value value; + + private final String string; + + SharesArchive200ResponseShareVisitorIdentityAsk(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 SharesArchive200ResponseShareVisitorIdentityAsk + && this.string.equals(((SharesArchive200ResponseShareVisitorIdentityAsk) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case ON_OPEN: + return visitor.visitOnOpen(); + case BEFORE_FIRST_CHANGE: + return visitor.visitBeforeFirstChange(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesArchive200ResponseShareVisitorIdentityAsk valueOf(String value) { + switch (value) { + case "on-open": + return ON_OPEN; + case "before-first-change": + return BEFORE_FIRST_CHANGE; + default: + return new SharesArchive200ResponseShareVisitorIdentityAsk(Value.UNKNOWN, value); + } + } + + public enum Value { + ON_OPEN, + + BEFORE_FIRST_CHANGE, + + UNKNOWN + } + + public interface Visitor { + T visitOnOpen(); + + T visitBeforeFirstChange(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityFields.java b/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityFields.java new file mode 100644 index 0000000..cd824ca --- /dev/null +++ b/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityFields.java @@ -0,0 +1,211 @@ +/** + * 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.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 = SharesArchive200ResponseShareVisitorIdentityFields.Builder.class) +public final class SharesArchive200ResponseShareVisitorIdentityFields { + private final Optional displayName; + + private final Optional email; + + private final Optional title; + + private final Optional organization; + + private final Optional organizationalUnit; + + private final Map additionalProperties; + + private SharesArchive200ResponseShareVisitorIdentityFields( + Optional displayName, + Optional email, + Optional title, + Optional organization, + Optional organizationalUnit, + Map additionalProperties) { + this.displayName = displayName; + this.email = email; + this.title = title; + this.organization = organization; + this.organizationalUnit = organizationalUnit; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("displayName") + public Optional getDisplayName() { + return displayName; + } + + @JsonProperty("email") + public Optional getEmail() { + return email; + } + + @JsonProperty("title") + public Optional getTitle() { + return title; + } + + @JsonProperty("organization") + public Optional getOrganization() { + return organization; + } + + @JsonProperty("organizationalUnit") + public Optional getOrganizationalUnit() { + return organizationalUnit; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesArchive200ResponseShareVisitorIdentityFields + && equalTo((SharesArchive200ResponseShareVisitorIdentityFields) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesArchive200ResponseShareVisitorIdentityFields other) { + return displayName.equals(other.displayName) + && email.equals(other.email) + && title.equals(other.title) + && organization.equals(other.organization) + && organizationalUnit.equals(other.organizationalUnit); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.displayName, this.email, this.title, this.organization, this.organizationalUnit); + } + + @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 displayName = Optional.empty(); + + private Optional email = Optional.empty(); + + private Optional title = Optional.empty(); + + private Optional organization = + Optional.empty(); + + private Optional organizationalUnit = + Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(SharesArchive200ResponseShareVisitorIdentityFields other) { + displayName(other.getDisplayName()); + email(other.getEmail()); + title(other.getTitle()); + organization(other.getOrganization()); + organizationalUnit(other.getOrganizationalUnit()); + return this; + } + + @JsonSetter(value = "displayName", nulls = Nulls.SKIP) + public Builder displayName( + Optional displayName) { + this.displayName = displayName; + return this; + } + + public Builder displayName(SharesArchive200ResponseShareVisitorIdentityFieldsDisplayName displayName) { + this.displayName = Optional.ofNullable(displayName); + return this; + } + + @JsonSetter(value = "email", nulls = Nulls.SKIP) + public Builder email(Optional email) { + this.email = email; + return this; + } + + public Builder email(SharesArchive200ResponseShareVisitorIdentityFieldsEmail email) { + this.email = Optional.ofNullable(email); + return this; + } + + @JsonSetter(value = "title", nulls = Nulls.SKIP) + public Builder title(Optional title) { + this.title = title; + return this; + } + + public Builder title(SharesArchive200ResponseShareVisitorIdentityFieldsTitle title) { + this.title = Optional.ofNullable(title); + return this; + } + + @JsonSetter(value = "organization", nulls = Nulls.SKIP) + public Builder organization( + Optional organization) { + this.organization = organization; + return this; + } + + public Builder organization(SharesArchive200ResponseShareVisitorIdentityFieldsOrganization organization) { + this.organization = Optional.ofNullable(organization); + return this; + } + + @JsonSetter(value = "organizationalUnit", nulls = Nulls.SKIP) + public Builder organizationalUnit( + Optional organizationalUnit) { + this.organizationalUnit = organizationalUnit; + return this; + } + + public Builder organizationalUnit( + SharesArchive200ResponseShareVisitorIdentityFieldsOrganizationalUnit organizationalUnit) { + this.organizationalUnit = Optional.ofNullable(organizationalUnit); + return this; + } + + public SharesArchive200ResponseShareVisitorIdentityFields build() { + return new SharesArchive200ResponseShareVisitorIdentityFields( + displayName, email, title, organization, organizationalUnit, 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/types/SharesArchive200ResponseShareVisitorIdentityFieldsDisplayName.java b/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityFieldsDisplayName.java new file mode 100644 index 0000000..3bd026c --- /dev/null +++ b/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityFieldsDisplayName.java @@ -0,0 +1,87 @@ +/** + * 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 SharesArchive200ResponseShareVisitorIdentityFieldsDisplayName { + public static final SharesArchive200ResponseShareVisitorIdentityFieldsDisplayName REQUIRED = + new SharesArchive200ResponseShareVisitorIdentityFieldsDisplayName(Value.REQUIRED, "required"); + + public static final SharesArchive200ResponseShareVisitorIdentityFieldsDisplayName OPTIONAL = + new SharesArchive200ResponseShareVisitorIdentityFieldsDisplayName(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesArchive200ResponseShareVisitorIdentityFieldsDisplayName(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 SharesArchive200ResponseShareVisitorIdentityFieldsDisplayName + && this.string.equals( + ((SharesArchive200ResponseShareVisitorIdentityFieldsDisplayName) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesArchive200ResponseShareVisitorIdentityFieldsDisplayName valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesArchive200ResponseShareVisitorIdentityFieldsDisplayName(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityFieldsEmail.java b/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityFieldsEmail.java new file mode 100644 index 0000000..63968ca --- /dev/null +++ b/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityFieldsEmail.java @@ -0,0 +1,87 @@ +/** + * 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 SharesArchive200ResponseShareVisitorIdentityFieldsEmail { + public static final SharesArchive200ResponseShareVisitorIdentityFieldsEmail REQUIRED = + new SharesArchive200ResponseShareVisitorIdentityFieldsEmail(Value.REQUIRED, "required"); + + public static final SharesArchive200ResponseShareVisitorIdentityFieldsEmail OPTIONAL = + new SharesArchive200ResponseShareVisitorIdentityFieldsEmail(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesArchive200ResponseShareVisitorIdentityFieldsEmail(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 SharesArchive200ResponseShareVisitorIdentityFieldsEmail + && this.string.equals( + ((SharesArchive200ResponseShareVisitorIdentityFieldsEmail) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesArchive200ResponseShareVisitorIdentityFieldsEmail valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesArchive200ResponseShareVisitorIdentityFieldsEmail(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityFieldsOrganization.java b/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityFieldsOrganization.java new file mode 100644 index 0000000..a24f340 --- /dev/null +++ b/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityFieldsOrganization.java @@ -0,0 +1,87 @@ +/** + * 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 SharesArchive200ResponseShareVisitorIdentityFieldsOrganization { + public static final SharesArchive200ResponseShareVisitorIdentityFieldsOrganization REQUIRED = + new SharesArchive200ResponseShareVisitorIdentityFieldsOrganization(Value.REQUIRED, "required"); + + public static final SharesArchive200ResponseShareVisitorIdentityFieldsOrganization OPTIONAL = + new SharesArchive200ResponseShareVisitorIdentityFieldsOrganization(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesArchive200ResponseShareVisitorIdentityFieldsOrganization(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 SharesArchive200ResponseShareVisitorIdentityFieldsOrganization + && this.string.equals( + ((SharesArchive200ResponseShareVisitorIdentityFieldsOrganization) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesArchive200ResponseShareVisitorIdentityFieldsOrganization valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesArchive200ResponseShareVisitorIdentityFieldsOrganization(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityFieldsOrganizationalUnit.java b/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityFieldsOrganizationalUnit.java new file mode 100644 index 0000000..38131aa --- /dev/null +++ b/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityFieldsOrganizationalUnit.java @@ -0,0 +1,87 @@ +/** + * 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 SharesArchive200ResponseShareVisitorIdentityFieldsOrganizationalUnit { + public static final SharesArchive200ResponseShareVisitorIdentityFieldsOrganizationalUnit REQUIRED = + new SharesArchive200ResponseShareVisitorIdentityFieldsOrganizationalUnit(Value.REQUIRED, "required"); + + public static final SharesArchive200ResponseShareVisitorIdentityFieldsOrganizationalUnit OPTIONAL = + new SharesArchive200ResponseShareVisitorIdentityFieldsOrganizationalUnit(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesArchive200ResponseShareVisitorIdentityFieldsOrganizationalUnit(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 SharesArchive200ResponseShareVisitorIdentityFieldsOrganizationalUnit + && this.string.equals( + ((SharesArchive200ResponseShareVisitorIdentityFieldsOrganizationalUnit) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesArchive200ResponseShareVisitorIdentityFieldsOrganizationalUnit valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesArchive200ResponseShareVisitorIdentityFieldsOrganizationalUnit(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityFieldsTitle.java b/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityFieldsTitle.java new file mode 100644 index 0000000..80a653d --- /dev/null +++ b/src/main/java/api/types/SharesArchive200ResponseShareVisitorIdentityFieldsTitle.java @@ -0,0 +1,87 @@ +/** + * 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 SharesArchive200ResponseShareVisitorIdentityFieldsTitle { + public static final SharesArchive200ResponseShareVisitorIdentityFieldsTitle REQUIRED = + new SharesArchive200ResponseShareVisitorIdentityFieldsTitle(Value.REQUIRED, "required"); + + public static final SharesArchive200ResponseShareVisitorIdentityFieldsTitle OPTIONAL = + new SharesArchive200ResponseShareVisitorIdentityFieldsTitle(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesArchive200ResponseShareVisitorIdentityFieldsTitle(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 SharesArchive200ResponseShareVisitorIdentityFieldsTitle + && this.string.equals( + ((SharesArchive200ResponseShareVisitorIdentityFieldsTitle) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesArchive200ResponseShareVisitorIdentityFieldsTitle valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesArchive200ResponseShareVisitorIdentityFieldsTitle(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesCreate200ResponseShare.java b/src/main/java/api/types/SharesCreate200ResponseShare.java index 63b6cfe..4fa50f3 100644 --- a/src/main/java/api/types/SharesCreate200ResponseShare.java +++ b/src/main/java/api/types/SharesCreate200ResponseShare.java @@ -32,7 +32,15 @@ public final class SharesCreate200ResponseShare { private final String docId; - private final String layerName; + private final SharesCreate200ResponseShareLayerMode layerMode; + + private final Optional layerName; + + private final boolean keepVisitorLayers; + + private final Optional visitorIdleSeconds; + + private final Optional visitorIdentity; private final List scope; @@ -44,6 +52,8 @@ public final class SharesCreate200ResponseShare { private final boolean disabled; + private final Optional archivedAt; + private final Optional expiresAt; private final double exchangeCount; @@ -62,12 +72,17 @@ private SharesCreate200ResponseShare( String id, String tenantId, String docId, - String layerName, + SharesCreate200ResponseShareLayerMode layerMode, + Optional layerName, + boolean keepVisitorLayers, + Optional visitorIdleSeconds, + Optional visitorIdentity, List scope, Optional> origins, boolean passwordProtected, double sessionTtlSeconds, boolean disabled, + Optional archivedAt, Optional expiresAt, double exchangeCount, Optional lastExchangedAt, @@ -78,12 +93,17 @@ private SharesCreate200ResponseShare( this.id = id; this.tenantId = tenantId; this.docId = docId; + this.layerMode = layerMode; this.layerName = layerName; + this.keepVisitorLayers = keepVisitorLayers; + this.visitorIdleSeconds = visitorIdleSeconds; + this.visitorIdentity = visitorIdentity; this.scope = scope; this.origins = origins; this.passwordProtected = passwordProtected; this.sessionTtlSeconds = sessionTtlSeconds; this.disabled = disabled; + this.archivedAt = archivedAt; this.expiresAt = expiresAt; this.exchangeCount = exchangeCount; this.lastExchangedAt = lastExchangedAt; @@ -108,11 +128,40 @@ public String getDocId() { return docId; } - @JsonProperty("layerName") - public String getLayerName() { + @JsonProperty("layerMode") + public SharesCreate200ResponseShareLayerMode getLayerMode() { + return layerMode; + } + + @JsonIgnore + public Optional getLayerName() { + if (layerName == null) { + return Optional.empty(); + } return layerName; } + @JsonProperty("keepVisitorLayers") + public boolean getKeepVisitorLayers() { + return keepVisitorLayers; + } + + @JsonIgnore + public Optional getVisitorIdleSeconds() { + if (visitorIdleSeconds == null) { + return Optional.empty(); + } + return visitorIdleSeconds; + } + + @JsonIgnore + public Optional getVisitorIdentity() { + if (visitorIdentity == null) { + return Optional.empty(); + } + return visitorIdentity; + } + @JsonProperty("scope") public List getScope() { return scope; @@ -141,6 +190,14 @@ public boolean getDisabled() { return disabled; } + @JsonIgnore + public Optional getArchivedAt() { + if (archivedAt == null) { + return Optional.empty(); + } + return archivedAt; + } + @JsonIgnore public Optional getExpiresAt() { if (expiresAt == null) { @@ -177,12 +234,36 @@ public double getUpdatedAt() { return updatedAt; } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("layerName") + private Optional _getLayerName() { + return layerName; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("visitorIdleSeconds") + private Optional _getVisitorIdleSeconds() { + return visitorIdleSeconds; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("visitorIdentity") + private Optional _getVisitorIdentity() { + return visitorIdentity; + } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) @JsonProperty("origins") private Optional> _getOrigins() { return origins; } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("archivedAt") + private Optional _getArchivedAt() { + return archivedAt; + } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) @JsonProperty("expiresAt") private Optional _getExpiresAt() { @@ -210,12 +291,17 @@ private boolean equalTo(SharesCreate200ResponseShare other) { return id.equals(other.id) && tenantId.equals(other.tenantId) && docId.equals(other.docId) + && layerMode.equals(other.layerMode) && layerName.equals(other.layerName) + && keepVisitorLayers == other.keepVisitorLayers + && visitorIdleSeconds.equals(other.visitorIdleSeconds) + && visitorIdentity.equals(other.visitorIdentity) && scope.equals(other.scope) && origins.equals(other.origins) && passwordProtected == other.passwordProtected && sessionTtlSeconds == other.sessionTtlSeconds && disabled == other.disabled + && archivedAt.equals(other.archivedAt) && expiresAt.equals(other.expiresAt) && exchangeCount == other.exchangeCount && lastExchangedAt.equals(other.lastExchangedAt) @@ -230,12 +316,17 @@ public int hashCode() { this.id, this.tenantId, this.docId, + this.layerMode, this.layerName, + this.keepVisitorLayers, + this.visitorIdleSeconds, + this.visitorIdentity, this.scope, this.origins, this.passwordProtected, this.sessionTtlSeconds, this.disabled, + this.archivedAt, this.expiresAt, this.exchangeCount, this.lastExchangedAt, @@ -264,11 +355,15 @@ public interface TenantIdStage { } public interface DocIdStage { - LayerNameStage docId(@NotNull String docId); + LayerModeStage docId(@NotNull String docId); } - public interface LayerNameStage { - PasswordProtectedStage layerName(@NotNull String layerName); + public interface LayerModeStage { + KeepVisitorLayersStage layerMode(@NotNull SharesCreate200ResponseShareLayerMode layerMode); + } + + public interface KeepVisitorLayersStage { + PasswordProtectedStage keepVisitorLayers(boolean keepVisitorLayers); } public interface PasswordProtectedStage { @@ -306,6 +401,24 @@ public interface _FinalStage { _FinalStage additionalProperties(Map additionalProperties); + _FinalStage layerName(Optional layerName); + + _FinalStage layerName(String layerName); + + _FinalStage layerName(Nullable layerName); + + _FinalStage visitorIdleSeconds(Optional visitorIdleSeconds); + + _FinalStage visitorIdleSeconds(Double visitorIdleSeconds); + + _FinalStage visitorIdleSeconds(Nullable visitorIdleSeconds); + + _FinalStage visitorIdentity(Optional visitorIdentity); + + _FinalStage visitorIdentity(SharesCreate200ResponseShareVisitorIdentity visitorIdentity); + + _FinalStage visitorIdentity(Nullable visitorIdentity); + _FinalStage scope(List scope); _FinalStage addScope(String scope); @@ -318,6 +431,12 @@ public interface _FinalStage { _FinalStage origins(Nullable> origins); + _FinalStage archivedAt(Optional archivedAt); + + _FinalStage archivedAt(Double archivedAt); + + _FinalStage archivedAt(Nullable archivedAt); + _FinalStage expiresAt(Optional expiresAt); _FinalStage expiresAt(Double expiresAt); @@ -336,7 +455,8 @@ public static final class Builder implements IdStage, TenantIdStage, DocIdStage, - LayerNameStage, + LayerModeStage, + KeepVisitorLayersStage, PasswordProtectedStage, SessionTtlSecondsStage, DisabledStage, @@ -351,7 +471,9 @@ public static final class Builder private String docId; - private String layerName; + private SharesCreate200ResponseShareLayerMode layerMode; + + private boolean keepVisitorLayers; private boolean passwordProtected; @@ -371,10 +493,18 @@ public static final class Builder private Optional expiresAt = Optional.empty(); + private Optional archivedAt = Optional.empty(); + private Optional> origins = Optional.empty(); private List scope = new ArrayList<>(); + private Optional visitorIdentity = Optional.empty(); + + private Optional visitorIdleSeconds = Optional.empty(); + + private Optional layerName = Optional.empty(); + @JsonAnySetter private Map additionalProperties = new HashMap<>(); @@ -385,12 +515,17 @@ public Builder from(SharesCreate200ResponseShare other) { id(other.getId()); tenantId(other.getTenantId()); docId(other.getDocId()); + layerMode(other.getLayerMode()); layerName(other.getLayerName()); + keepVisitorLayers(other.getKeepVisitorLayers()); + visitorIdleSeconds(other.getVisitorIdleSeconds()); + visitorIdentity(other.getVisitorIdentity()); scope(other.getScope()); origins(other.getOrigins()); passwordProtected(other.getPasswordProtected()); sessionTtlSeconds(other.getSessionTtlSeconds()); disabled(other.getDisabled()); + archivedAt(other.getArchivedAt()); expiresAt(other.getExpiresAt()); exchangeCount(other.getExchangeCount()); lastExchangedAt(other.getLastExchangedAt()); @@ -416,15 +551,22 @@ public DocIdStage tenantId(@NotNull String tenantId) { @java.lang.Override @JsonSetter("docId") - public LayerNameStage docId(@NotNull String docId) { + public LayerModeStage docId(@NotNull String docId) { this.docId = Objects.requireNonNull(docId, "docId must not be null"); return this; } @java.lang.Override - @JsonSetter("layerName") - public PasswordProtectedStage layerName(@NotNull String layerName) { - this.layerName = Objects.requireNonNull(layerName, "layerName must not be null"); + @JsonSetter("layerMode") + public KeepVisitorLayersStage layerMode(@NotNull SharesCreate200ResponseShareLayerMode layerMode) { + this.layerMode = Objects.requireNonNull(layerMode, "layerMode must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("keepVisitorLayers") + public PasswordProtectedStage keepVisitorLayers(boolean keepVisitorLayers) { + this.keepVisitorLayers = keepVisitorLayers; return this; } @@ -527,6 +669,31 @@ public _FinalStage expiresAt(Optional expiresAt) { return this; } + @java.lang.Override + public _FinalStage archivedAt(Nullable archivedAt) { + if (archivedAt.isNull()) { + this.archivedAt = null; + } else if (archivedAt.isEmpty()) { + this.archivedAt = Optional.empty(); + } else { + this.archivedAt = Optional.of(archivedAt.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage archivedAt(Double archivedAt) { + this.archivedAt = Optional.ofNullable(archivedAt); + return this; + } + + @java.lang.Override + @JsonSetter(value = "archivedAt", nulls = Nulls.SKIP) + public _FinalStage archivedAt(Optional archivedAt) { + this.archivedAt = archivedAt; + return this; + } + @java.lang.Override public _FinalStage origins(Nullable> origins) { if (origins.isNull()) { @@ -576,18 +743,98 @@ public _FinalStage scope(List scope) { return this; } + @java.lang.Override + public _FinalStage visitorIdentity(Nullable visitorIdentity) { + if (visitorIdentity.isNull()) { + this.visitorIdentity = null; + } else if (visitorIdentity.isEmpty()) { + this.visitorIdentity = Optional.empty(); + } else { + this.visitorIdentity = Optional.of(visitorIdentity.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage visitorIdentity(SharesCreate200ResponseShareVisitorIdentity visitorIdentity) { + this.visitorIdentity = Optional.ofNullable(visitorIdentity); + return this; + } + + @java.lang.Override + @JsonSetter(value = "visitorIdentity", nulls = Nulls.SKIP) + public _FinalStage visitorIdentity(Optional visitorIdentity) { + this.visitorIdentity = visitorIdentity; + return this; + } + + @java.lang.Override + public _FinalStage visitorIdleSeconds(Nullable visitorIdleSeconds) { + if (visitorIdleSeconds.isNull()) { + this.visitorIdleSeconds = null; + } else if (visitorIdleSeconds.isEmpty()) { + this.visitorIdleSeconds = Optional.empty(); + } else { + this.visitorIdleSeconds = Optional.of(visitorIdleSeconds.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage visitorIdleSeconds(Double visitorIdleSeconds) { + this.visitorIdleSeconds = Optional.ofNullable(visitorIdleSeconds); + return this; + } + + @java.lang.Override + @JsonSetter(value = "visitorIdleSeconds", nulls = Nulls.SKIP) + public _FinalStage visitorIdleSeconds(Optional visitorIdleSeconds) { + this.visitorIdleSeconds = visitorIdleSeconds; + return this; + } + + @java.lang.Override + public _FinalStage layerName(Nullable layerName) { + if (layerName.isNull()) { + this.layerName = null; + } else if (layerName.isEmpty()) { + this.layerName = Optional.empty(); + } else { + this.layerName = Optional.of(layerName.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage layerName(String layerName) { + this.layerName = Optional.ofNullable(layerName); + return this; + } + + @java.lang.Override + @JsonSetter(value = "layerName", nulls = Nulls.SKIP) + public _FinalStage layerName(Optional layerName) { + this.layerName = layerName; + return this; + } + @java.lang.Override public SharesCreate200ResponseShare build() { return new SharesCreate200ResponseShare( id, tenantId, docId, + layerMode, layerName, + keepVisitorLayers, + visitorIdleSeconds, + visitorIdentity, scope, origins, passwordProtected, sessionTtlSeconds, disabled, + archivedAt, expiresAt, exchangeCount, lastExchangedAt, diff --git a/src/main/java/api/types/SharesCreate200ResponseShareLayerMode.java b/src/main/java/api/types/SharesCreate200ResponseShareLayerMode.java new file mode 100644 index 0000000..0789888 --- /dev/null +++ b/src/main/java/api/types/SharesCreate200ResponseShareLayerMode.java @@ -0,0 +1,86 @@ +/** + * 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 SharesCreate200ResponseShareLayerMode { + public static final SharesCreate200ResponseShareLayerMode PER_VISITOR = + new SharesCreate200ResponseShareLayerMode(Value.PER_VISITOR, "per-visitor"); + + public static final SharesCreate200ResponseShareLayerMode SHARED = + new SharesCreate200ResponseShareLayerMode(Value.SHARED, "shared"); + + private final Value value; + + private final String string; + + SharesCreate200ResponseShareLayerMode(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 SharesCreate200ResponseShareLayerMode + && this.string.equals(((SharesCreate200ResponseShareLayerMode) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case PER_VISITOR: + return visitor.visitPerVisitor(); + case SHARED: + return visitor.visitShared(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesCreate200ResponseShareLayerMode valueOf(String value) { + switch (value) { + case "per-visitor": + return PER_VISITOR; + case "shared": + return SHARED; + default: + return new SharesCreate200ResponseShareLayerMode(Value.UNKNOWN, value); + } + } + + public enum Value { + SHARED, + + PER_VISITOR, + + UNKNOWN + } + + public interface Visitor { + T visitShared(); + + T visitPerVisitor(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentity.java b/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentity.java new file mode 100644 index 0000000..4b699da --- /dev/null +++ b/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentity.java @@ -0,0 +1,208 @@ +/** + * 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.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 = SharesCreate200ResponseShareVisitorIdentity.Builder.class) +public final class SharesCreate200ResponseShareVisitorIdentity { + private final SharesCreate200ResponseShareVisitorIdentityFields fields; + + private final SharesCreate200ResponseShareVisitorIdentityAsk ask; + + private final Optional purpose; + + private final Optional privacyUrl; + + private final Map additionalProperties; + + private SharesCreate200ResponseShareVisitorIdentity( + SharesCreate200ResponseShareVisitorIdentityFields fields, + SharesCreate200ResponseShareVisitorIdentityAsk ask, + Optional purpose, + Optional privacyUrl, + Map additionalProperties) { + this.fields = fields; + this.ask = ask; + this.purpose = purpose; + this.privacyUrl = privacyUrl; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("fields") + public SharesCreate200ResponseShareVisitorIdentityFields getFields() { + return fields; + } + + @JsonProperty("ask") + public SharesCreate200ResponseShareVisitorIdentityAsk getAsk() { + return ask; + } + + @JsonProperty("purpose") + public Optional getPurpose() { + return purpose; + } + + @JsonProperty("privacyUrl") + public Optional getPrivacyUrl() { + return privacyUrl; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesCreate200ResponseShareVisitorIdentity + && equalTo((SharesCreate200ResponseShareVisitorIdentity) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesCreate200ResponseShareVisitorIdentity other) { + return fields.equals(other.fields) + && ask.equals(other.ask) + && purpose.equals(other.purpose) + && privacyUrl.equals(other.privacyUrl); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.fields, this.ask, this.purpose, this.privacyUrl); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static FieldsStage builder() { + return new Builder(); + } + + public interface FieldsStage { + AskStage fields(@NotNull SharesCreate200ResponseShareVisitorIdentityFields fields); + + Builder from(SharesCreate200ResponseShareVisitorIdentity other); + } + + public interface AskStage { + _FinalStage ask(@NotNull SharesCreate200ResponseShareVisitorIdentityAsk ask); + } + + public interface _FinalStage { + SharesCreate200ResponseShareVisitorIdentity build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage purpose(Optional purpose); + + _FinalStage purpose(String purpose); + + _FinalStage privacyUrl(Optional privacyUrl); + + _FinalStage privacyUrl(String privacyUrl); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements FieldsStage, AskStage, _FinalStage { + private SharesCreate200ResponseShareVisitorIdentityFields fields; + + private SharesCreate200ResponseShareVisitorIdentityAsk ask; + + private Optional privacyUrl = Optional.empty(); + + private Optional purpose = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(SharesCreate200ResponseShareVisitorIdentity other) { + fields(other.getFields()); + ask(other.getAsk()); + purpose(other.getPurpose()); + privacyUrl(other.getPrivacyUrl()); + return this; + } + + @java.lang.Override + @JsonSetter("fields") + public AskStage fields(@NotNull SharesCreate200ResponseShareVisitorIdentityFields fields) { + this.fields = Objects.requireNonNull(fields, "fields must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("ask") + public _FinalStage ask(@NotNull SharesCreate200ResponseShareVisitorIdentityAsk ask) { + this.ask = Objects.requireNonNull(ask, "ask must not be null"); + return this; + } + + @java.lang.Override + public _FinalStage privacyUrl(String privacyUrl) { + this.privacyUrl = Optional.ofNullable(privacyUrl); + return this; + } + + @java.lang.Override + @JsonSetter(value = "privacyUrl", nulls = Nulls.SKIP) + public _FinalStage privacyUrl(Optional privacyUrl) { + this.privacyUrl = privacyUrl; + return this; + } + + @java.lang.Override + public _FinalStage purpose(String purpose) { + this.purpose = Optional.ofNullable(purpose); + return this; + } + + @java.lang.Override + @JsonSetter(value = "purpose", nulls = Nulls.SKIP) + public _FinalStage purpose(Optional purpose) { + this.purpose = purpose; + return this; + } + + @java.lang.Override + public SharesCreate200ResponseShareVisitorIdentity build() { + return new SharesCreate200ResponseShareVisitorIdentity( + fields, ask, purpose, privacyUrl, 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/SharesCreate200ResponseShareVisitorIdentityAsk.java b/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityAsk.java new file mode 100644 index 0000000..24277da --- /dev/null +++ b/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityAsk.java @@ -0,0 +1,86 @@ +/** + * 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 SharesCreate200ResponseShareVisitorIdentityAsk { + public static final SharesCreate200ResponseShareVisitorIdentityAsk ON_OPEN = + new SharesCreate200ResponseShareVisitorIdentityAsk(Value.ON_OPEN, "on-open"); + + public static final SharesCreate200ResponseShareVisitorIdentityAsk BEFORE_FIRST_CHANGE = + new SharesCreate200ResponseShareVisitorIdentityAsk(Value.BEFORE_FIRST_CHANGE, "before-first-change"); + + private final Value value; + + private final String string; + + SharesCreate200ResponseShareVisitorIdentityAsk(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 SharesCreate200ResponseShareVisitorIdentityAsk + && this.string.equals(((SharesCreate200ResponseShareVisitorIdentityAsk) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case ON_OPEN: + return visitor.visitOnOpen(); + case BEFORE_FIRST_CHANGE: + return visitor.visitBeforeFirstChange(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesCreate200ResponseShareVisitorIdentityAsk valueOf(String value) { + switch (value) { + case "on-open": + return ON_OPEN; + case "before-first-change": + return BEFORE_FIRST_CHANGE; + default: + return new SharesCreate200ResponseShareVisitorIdentityAsk(Value.UNKNOWN, value); + } + } + + public enum Value { + ON_OPEN, + + BEFORE_FIRST_CHANGE, + + UNKNOWN + } + + public interface Visitor { + T visitOnOpen(); + + T visitBeforeFirstChange(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityFields.java b/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityFields.java new file mode 100644 index 0000000..ebd0df6 --- /dev/null +++ b/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityFields.java @@ -0,0 +1,209 @@ +/** + * 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.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 = SharesCreate200ResponseShareVisitorIdentityFields.Builder.class) +public final class SharesCreate200ResponseShareVisitorIdentityFields { + private final Optional displayName; + + private final Optional email; + + private final Optional title; + + private final Optional organization; + + private final Optional organizationalUnit; + + private final Map additionalProperties; + + private SharesCreate200ResponseShareVisitorIdentityFields( + Optional displayName, + Optional email, + Optional title, + Optional organization, + Optional organizationalUnit, + Map additionalProperties) { + this.displayName = displayName; + this.email = email; + this.title = title; + this.organization = organization; + this.organizationalUnit = organizationalUnit; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("displayName") + public Optional getDisplayName() { + return displayName; + } + + @JsonProperty("email") + public Optional getEmail() { + return email; + } + + @JsonProperty("title") + public Optional getTitle() { + return title; + } + + @JsonProperty("organization") + public Optional getOrganization() { + return organization; + } + + @JsonProperty("organizationalUnit") + public Optional getOrganizationalUnit() { + return organizationalUnit; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesCreate200ResponseShareVisitorIdentityFields + && equalTo((SharesCreate200ResponseShareVisitorIdentityFields) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesCreate200ResponseShareVisitorIdentityFields other) { + return displayName.equals(other.displayName) + && email.equals(other.email) + && title.equals(other.title) + && organization.equals(other.organization) + && organizationalUnit.equals(other.organizationalUnit); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.displayName, this.email, this.title, this.organization, this.organizationalUnit); + } + + @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 displayName = Optional.empty(); + + private Optional email = Optional.empty(); + + private Optional title = Optional.empty(); + + private Optional organization = Optional.empty(); + + private Optional organizationalUnit = + Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(SharesCreate200ResponseShareVisitorIdentityFields other) { + displayName(other.getDisplayName()); + email(other.getEmail()); + title(other.getTitle()); + organization(other.getOrganization()); + organizationalUnit(other.getOrganizationalUnit()); + return this; + } + + @JsonSetter(value = "displayName", nulls = Nulls.SKIP) + public Builder displayName(Optional displayName) { + this.displayName = displayName; + return this; + } + + public Builder displayName(SharesCreate200ResponseShareVisitorIdentityFieldsDisplayName displayName) { + this.displayName = Optional.ofNullable(displayName); + return this; + } + + @JsonSetter(value = "email", nulls = Nulls.SKIP) + public Builder email(Optional email) { + this.email = email; + return this; + } + + public Builder email(SharesCreate200ResponseShareVisitorIdentityFieldsEmail email) { + this.email = Optional.ofNullable(email); + return this; + } + + @JsonSetter(value = "title", nulls = Nulls.SKIP) + public Builder title(Optional title) { + this.title = title; + return this; + } + + public Builder title(SharesCreate200ResponseShareVisitorIdentityFieldsTitle title) { + this.title = Optional.ofNullable(title); + return this; + } + + @JsonSetter(value = "organization", nulls = Nulls.SKIP) + public Builder organization( + Optional organization) { + this.organization = organization; + return this; + } + + public Builder organization(SharesCreate200ResponseShareVisitorIdentityFieldsOrganization organization) { + this.organization = Optional.ofNullable(organization); + return this; + } + + @JsonSetter(value = "organizationalUnit", nulls = Nulls.SKIP) + public Builder organizationalUnit( + Optional organizationalUnit) { + this.organizationalUnit = organizationalUnit; + return this; + } + + public Builder organizationalUnit( + SharesCreate200ResponseShareVisitorIdentityFieldsOrganizationalUnit organizationalUnit) { + this.organizationalUnit = Optional.ofNullable(organizationalUnit); + return this; + } + + public SharesCreate200ResponseShareVisitorIdentityFields build() { + return new SharesCreate200ResponseShareVisitorIdentityFields( + displayName, email, title, organization, organizationalUnit, 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/types/SharesCreate200ResponseShareVisitorIdentityFieldsDisplayName.java b/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityFieldsDisplayName.java new file mode 100644 index 0000000..f7d621a --- /dev/null +++ b/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityFieldsDisplayName.java @@ -0,0 +1,87 @@ +/** + * 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 SharesCreate200ResponseShareVisitorIdentityFieldsDisplayName { + public static final SharesCreate200ResponseShareVisitorIdentityFieldsDisplayName REQUIRED = + new SharesCreate200ResponseShareVisitorIdentityFieldsDisplayName(Value.REQUIRED, "required"); + + public static final SharesCreate200ResponseShareVisitorIdentityFieldsDisplayName OPTIONAL = + new SharesCreate200ResponseShareVisitorIdentityFieldsDisplayName(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesCreate200ResponseShareVisitorIdentityFieldsDisplayName(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 SharesCreate200ResponseShareVisitorIdentityFieldsDisplayName + && this.string.equals( + ((SharesCreate200ResponseShareVisitorIdentityFieldsDisplayName) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesCreate200ResponseShareVisitorIdentityFieldsDisplayName valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesCreate200ResponseShareVisitorIdentityFieldsDisplayName(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityFieldsEmail.java b/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityFieldsEmail.java new file mode 100644 index 0000000..116e9aa --- /dev/null +++ b/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityFieldsEmail.java @@ -0,0 +1,86 @@ +/** + * 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 SharesCreate200ResponseShareVisitorIdentityFieldsEmail { + public static final SharesCreate200ResponseShareVisitorIdentityFieldsEmail REQUIRED = + new SharesCreate200ResponseShareVisitorIdentityFieldsEmail(Value.REQUIRED, "required"); + + public static final SharesCreate200ResponseShareVisitorIdentityFieldsEmail OPTIONAL = + new SharesCreate200ResponseShareVisitorIdentityFieldsEmail(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesCreate200ResponseShareVisitorIdentityFieldsEmail(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 SharesCreate200ResponseShareVisitorIdentityFieldsEmail + && this.string.equals(((SharesCreate200ResponseShareVisitorIdentityFieldsEmail) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesCreate200ResponseShareVisitorIdentityFieldsEmail valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesCreate200ResponseShareVisitorIdentityFieldsEmail(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityFieldsOrganization.java b/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityFieldsOrganization.java new file mode 100644 index 0000000..ca37df6 --- /dev/null +++ b/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityFieldsOrganization.java @@ -0,0 +1,87 @@ +/** + * 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 SharesCreate200ResponseShareVisitorIdentityFieldsOrganization { + public static final SharesCreate200ResponseShareVisitorIdentityFieldsOrganization REQUIRED = + new SharesCreate200ResponseShareVisitorIdentityFieldsOrganization(Value.REQUIRED, "required"); + + public static final SharesCreate200ResponseShareVisitorIdentityFieldsOrganization OPTIONAL = + new SharesCreate200ResponseShareVisitorIdentityFieldsOrganization(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesCreate200ResponseShareVisitorIdentityFieldsOrganization(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 SharesCreate200ResponseShareVisitorIdentityFieldsOrganization + && this.string.equals( + ((SharesCreate200ResponseShareVisitorIdentityFieldsOrganization) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesCreate200ResponseShareVisitorIdentityFieldsOrganization valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesCreate200ResponseShareVisitorIdentityFieldsOrganization(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityFieldsOrganizationalUnit.java b/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityFieldsOrganizationalUnit.java new file mode 100644 index 0000000..dcd4be5 --- /dev/null +++ b/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityFieldsOrganizationalUnit.java @@ -0,0 +1,87 @@ +/** + * 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 SharesCreate200ResponseShareVisitorIdentityFieldsOrganizationalUnit { + public static final SharesCreate200ResponseShareVisitorIdentityFieldsOrganizationalUnit REQUIRED = + new SharesCreate200ResponseShareVisitorIdentityFieldsOrganizationalUnit(Value.REQUIRED, "required"); + + public static final SharesCreate200ResponseShareVisitorIdentityFieldsOrganizationalUnit OPTIONAL = + new SharesCreate200ResponseShareVisitorIdentityFieldsOrganizationalUnit(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesCreate200ResponseShareVisitorIdentityFieldsOrganizationalUnit(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 SharesCreate200ResponseShareVisitorIdentityFieldsOrganizationalUnit + && this.string.equals( + ((SharesCreate200ResponseShareVisitorIdentityFieldsOrganizationalUnit) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesCreate200ResponseShareVisitorIdentityFieldsOrganizationalUnit valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesCreate200ResponseShareVisitorIdentityFieldsOrganizationalUnit(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityFieldsTitle.java b/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityFieldsTitle.java new file mode 100644 index 0000000..99f6c92 --- /dev/null +++ b/src/main/java/api/types/SharesCreate200ResponseShareVisitorIdentityFieldsTitle.java @@ -0,0 +1,86 @@ +/** + * 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 SharesCreate200ResponseShareVisitorIdentityFieldsTitle { + public static final SharesCreate200ResponseShareVisitorIdentityFieldsTitle REQUIRED = + new SharesCreate200ResponseShareVisitorIdentityFieldsTitle(Value.REQUIRED, "required"); + + public static final SharesCreate200ResponseShareVisitorIdentityFieldsTitle OPTIONAL = + new SharesCreate200ResponseShareVisitorIdentityFieldsTitle(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesCreate200ResponseShareVisitorIdentityFieldsTitle(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 SharesCreate200ResponseShareVisitorIdentityFieldsTitle + && this.string.equals(((SharesCreate200ResponseShareVisitorIdentityFieldsTitle) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesCreate200ResponseShareVisitorIdentityFieldsTitle valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesCreate200ResponseShareVisitorIdentityFieldsTitle(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesExchange200Response.java b/src/main/java/api/types/SharesExchange200Response.java index d037cef..f7e1a54 100644 --- a/src/main/java/api/types/SharesExchange200Response.java +++ b/src/main/java/api/types/SharesExchange200Response.java @@ -25,15 +25,27 @@ public final class SharesExchange200Response { private final String layerName; + private final SharesExchange200ResponseLayerMode layerMode; + + private final SharesExchange200ResponseVisitor visitor; + private final double expiresAt; private final Map additionalProperties; private SharesExchange200Response( - String token, String docId, String layerName, double expiresAt, Map additionalProperties) { + String token, + String docId, + String layerName, + SharesExchange200ResponseLayerMode layerMode, + SharesExchange200ResponseVisitor visitor, + double expiresAt, + Map additionalProperties) { this.token = token; this.docId = docId; this.layerName = layerName; + this.layerMode = layerMode; + this.visitor = visitor; this.expiresAt = expiresAt; this.additionalProperties = additionalProperties; } @@ -53,6 +65,16 @@ public String getLayerName() { return layerName; } + @JsonProperty("layerMode") + public SharesExchange200ResponseLayerMode getLayerMode() { + return layerMode; + } + + @JsonProperty("visitor") + public SharesExchange200ResponseVisitor getVisitor() { + return visitor; + } + @JsonProperty("expiresAt") public double getExpiresAt() { return expiresAt; @@ -73,12 +95,14 @@ private boolean equalTo(SharesExchange200Response other) { return token.equals(other.token) && docId.equals(other.docId) && layerName.equals(other.layerName) + && layerMode.equals(other.layerMode) + && visitor.equals(other.visitor) && expiresAt == other.expiresAt; } @java.lang.Override public int hashCode() { - return Objects.hash(this.token, this.docId, this.layerName, this.expiresAt); + return Objects.hash(this.token, this.docId, this.layerName, this.layerMode, this.visitor, this.expiresAt); } @java.lang.Override @@ -101,7 +125,15 @@ public interface DocIdStage { } public interface LayerNameStage { - ExpiresAtStage layerName(@NotNull String layerName); + LayerModeStage layerName(@NotNull String layerName); + } + + public interface LayerModeStage { + VisitorStage layerMode(@NotNull SharesExchange200ResponseLayerMode layerMode); + } + + public interface VisitorStage { + ExpiresAtStage visitor(@NotNull SharesExchange200ResponseVisitor visitor); } public interface ExpiresAtStage { @@ -117,13 +149,24 @@ public interface _FinalStage { } @JsonIgnoreProperties(ignoreUnknown = true) - public static final class Builder implements TokenStage, DocIdStage, LayerNameStage, ExpiresAtStage, _FinalStage { + public static final class Builder + implements TokenStage, + DocIdStage, + LayerNameStage, + LayerModeStage, + VisitorStage, + ExpiresAtStage, + _FinalStage { private String token; private String docId; private String layerName; + private SharesExchange200ResponseLayerMode layerMode; + + private SharesExchange200ResponseVisitor visitor; + private double expiresAt; @JsonAnySetter @@ -136,6 +179,8 @@ public Builder from(SharesExchange200Response other) { token(other.getToken()); docId(other.getDocId()); layerName(other.getLayerName()); + layerMode(other.getLayerMode()); + visitor(other.getVisitor()); expiresAt(other.getExpiresAt()); return this; } @@ -156,11 +201,25 @@ public LayerNameStage docId(@NotNull String docId) { @java.lang.Override @JsonSetter("layerName") - public ExpiresAtStage layerName(@NotNull String layerName) { + public LayerModeStage layerName(@NotNull String layerName) { this.layerName = Objects.requireNonNull(layerName, "layerName must not be null"); return this; } + @java.lang.Override + @JsonSetter("layerMode") + public VisitorStage layerMode(@NotNull SharesExchange200ResponseLayerMode layerMode) { + this.layerMode = Objects.requireNonNull(layerMode, "layerMode must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("visitor") + public ExpiresAtStage visitor(@NotNull SharesExchange200ResponseVisitor visitor) { + this.visitor = Objects.requireNonNull(visitor, "visitor must not be null"); + return this; + } + @java.lang.Override @JsonSetter("expiresAt") public _FinalStage expiresAt(double expiresAt) { @@ -170,7 +229,8 @@ public _FinalStage expiresAt(double expiresAt) { @java.lang.Override public SharesExchange200Response build() { - return new SharesExchange200Response(token, docId, layerName, expiresAt, additionalProperties); + return new SharesExchange200Response( + token, docId, layerName, layerMode, visitor, expiresAt, additionalProperties); } @java.lang.Override diff --git a/src/main/java/api/types/SharesExchange200ResponseLayerMode.java b/src/main/java/api/types/SharesExchange200ResponseLayerMode.java new file mode 100644 index 0000000..78e8518 --- /dev/null +++ b/src/main/java/api/types/SharesExchange200ResponseLayerMode.java @@ -0,0 +1,86 @@ +/** + * 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 SharesExchange200ResponseLayerMode { + public static final SharesExchange200ResponseLayerMode PER_VISITOR = + new SharesExchange200ResponseLayerMode(Value.PER_VISITOR, "per-visitor"); + + public static final SharesExchange200ResponseLayerMode SHARED = + new SharesExchange200ResponseLayerMode(Value.SHARED, "shared"); + + private final Value value; + + private final String string; + + SharesExchange200ResponseLayerMode(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 SharesExchange200ResponseLayerMode + && this.string.equals(((SharesExchange200ResponseLayerMode) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case PER_VISITOR: + return visitor.visitPerVisitor(); + case SHARED: + return visitor.visitShared(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesExchange200ResponseLayerMode valueOf(String value) { + switch (value) { + case "per-visitor": + return PER_VISITOR; + case "shared": + return SHARED; + default: + return new SharesExchange200ResponseLayerMode(Value.UNKNOWN, value); + } + } + + public enum Value { + SHARED, + + PER_VISITOR, + + UNKNOWN + } + + public interface Visitor { + T visitShared(); + + T visitPerVisitor(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesExchange200ResponseVisitor.java b/src/main/java/api/types/SharesExchange200ResponseVisitor.java new file mode 100644 index 0000000..428484b --- /dev/null +++ b/src/main/java/api/types/SharesExchange200ResponseVisitor.java @@ -0,0 +1,200 @@ +/** + * 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 = SharesExchange200ResponseVisitor.Builder.class) +public final class SharesExchange200ResponseVisitor { + private final String handle; + + private final boolean keep; + + private final Optional identityRequest; + + private final Map additionalProperties; + + private SharesExchange200ResponseVisitor( + String handle, + boolean keep, + Optional identityRequest, + Map additionalProperties) { + this.handle = handle; + this.keep = keep; + this.identityRequest = identityRequest; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("handle") + public String getHandle() { + return handle; + } + + @JsonProperty("keep") + public boolean getKeep() { + return keep; + } + + @JsonIgnore + public Optional getIdentityRequest() { + if (identityRequest == null) { + return Optional.empty(); + } + return identityRequest; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("identityRequest") + private Optional _getIdentityRequest() { + return identityRequest; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesExchange200ResponseVisitor && equalTo((SharesExchange200ResponseVisitor) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesExchange200ResponseVisitor other) { + return handle.equals(other.handle) && keep == other.keep && identityRequest.equals(other.identityRequest); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.handle, this.keep, this.identityRequest); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static HandleStage builder() { + return new Builder(); + } + + public interface HandleStage { + KeepStage handle(@NotNull String handle); + + Builder from(SharesExchange200ResponseVisitor other); + } + + public interface KeepStage { + _FinalStage keep(boolean keep); + } + + public interface _FinalStage { + SharesExchange200ResponseVisitor build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage identityRequest(Optional identityRequest); + + _FinalStage identityRequest(SharesExchange200ResponseVisitorIdentityRequest identityRequest); + + _FinalStage identityRequest(Nullable identityRequest); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements HandleStage, KeepStage, _FinalStage { + private String handle; + + private boolean keep; + + private Optional identityRequest = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(SharesExchange200ResponseVisitor other) { + handle(other.getHandle()); + keep(other.getKeep()); + identityRequest(other.getIdentityRequest()); + return this; + } + + @java.lang.Override + @JsonSetter("handle") + public KeepStage handle(@NotNull String handle) { + this.handle = Objects.requireNonNull(handle, "handle must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("keep") + public _FinalStage keep(boolean keep) { + this.keep = keep; + return this; + } + + @java.lang.Override + public _FinalStage identityRequest(Nullable identityRequest) { + if (identityRequest.isNull()) { + this.identityRequest = null; + } else if (identityRequest.isEmpty()) { + this.identityRequest = Optional.empty(); + } else { + this.identityRequest = Optional.of(identityRequest.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage identityRequest(SharesExchange200ResponseVisitorIdentityRequest identityRequest) { + this.identityRequest = Optional.ofNullable(identityRequest); + return this; + } + + @java.lang.Override + @JsonSetter(value = "identityRequest", nulls = Nulls.SKIP) + public _FinalStage identityRequest(Optional identityRequest) { + this.identityRequest = identityRequest; + return this; + } + + @java.lang.Override + public SharesExchange200ResponseVisitor build() { + return new SharesExchange200ResponseVisitor(handle, keep, identityRequest, 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/SharesExchange200ResponseVisitorIdentityRequest.java b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequest.java new file mode 100644 index 0000000..63a687c --- /dev/null +++ b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequest.java @@ -0,0 +1,272 @@ +/** + * 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.annotation.Nulls; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import org.jetbrains.annotations.NotNull; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = SharesExchange200ResponseVisitorIdentityRequest.Builder.class) +public final class SharesExchange200ResponseVisitorIdentityRequest { + private final SharesExchange200ResponseVisitorIdentityRequestFields fields; + + private final List missing; + + private final List invalid; + + private final Optional purpose; + + private final Optional privacyUrl; + + private final Map additionalProperties; + + private SharesExchange200ResponseVisitorIdentityRequest( + SharesExchange200ResponseVisitorIdentityRequestFields fields, + List missing, + List invalid, + Optional purpose, + Optional privacyUrl, + Map additionalProperties) { + this.fields = fields; + this.missing = missing; + this.invalid = invalid; + this.purpose = purpose; + this.privacyUrl = privacyUrl; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("fields") + public SharesExchange200ResponseVisitorIdentityRequestFields getFields() { + return fields; + } + + @JsonProperty("missing") + public List getMissing() { + return missing; + } + + @JsonProperty("invalid") + public List getInvalid() { + return invalid; + } + + @JsonProperty("purpose") + public Optional getPurpose() { + return purpose; + } + + @JsonProperty("privacyUrl") + public Optional getPrivacyUrl() { + return privacyUrl; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesExchange200ResponseVisitorIdentityRequest + && equalTo((SharesExchange200ResponseVisitorIdentityRequest) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesExchange200ResponseVisitorIdentityRequest other) { + return fields.equals(other.fields) + && missing.equals(other.missing) + && invalid.equals(other.invalid) + && purpose.equals(other.purpose) + && privacyUrl.equals(other.privacyUrl); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.fields, this.missing, this.invalid, this.purpose, this.privacyUrl); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static FieldsStage builder() { + return new Builder(); + } + + public interface FieldsStage { + _FinalStage fields(@NotNull SharesExchange200ResponseVisitorIdentityRequestFields fields); + + Builder from(SharesExchange200ResponseVisitorIdentityRequest other); + } + + public interface _FinalStage { + SharesExchange200ResponseVisitorIdentityRequest build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage missing(List missing); + + _FinalStage addMissing(SharesExchange200ResponseVisitorIdentityRequestMissingItem missing); + + _FinalStage addAllMissing(List missing); + + _FinalStage invalid(List invalid); + + _FinalStage addInvalid(SharesExchange200ResponseVisitorIdentityRequestInvalidItem invalid); + + _FinalStage addAllInvalid(List invalid); + + _FinalStage purpose(Optional purpose); + + _FinalStage purpose(String purpose); + + _FinalStage privacyUrl(Optional privacyUrl); + + _FinalStage privacyUrl(String privacyUrl); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements FieldsStage, _FinalStage { + private SharesExchange200ResponseVisitorIdentityRequestFields fields; + + private Optional privacyUrl = Optional.empty(); + + private Optional purpose = Optional.empty(); + + private List invalid = new ArrayList<>(); + + private List missing = new ArrayList<>(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(SharesExchange200ResponseVisitorIdentityRequest other) { + fields(other.getFields()); + missing(other.getMissing()); + invalid(other.getInvalid()); + purpose(other.getPurpose()); + privacyUrl(other.getPrivacyUrl()); + return this; + } + + @java.lang.Override + @JsonSetter("fields") + public _FinalStage fields(@NotNull SharesExchange200ResponseVisitorIdentityRequestFields fields) { + this.fields = Objects.requireNonNull(fields, "fields must not be null"); + return this; + } + + @java.lang.Override + public _FinalStage privacyUrl(String privacyUrl) { + this.privacyUrl = Optional.ofNullable(privacyUrl); + return this; + } + + @java.lang.Override + @JsonSetter(value = "privacyUrl", nulls = Nulls.SKIP) + public _FinalStage privacyUrl(Optional privacyUrl) { + this.privacyUrl = privacyUrl; + return this; + } + + @java.lang.Override + public _FinalStage purpose(String purpose) { + this.purpose = Optional.ofNullable(purpose); + return this; + } + + @java.lang.Override + @JsonSetter(value = "purpose", nulls = Nulls.SKIP) + public _FinalStage purpose(Optional purpose) { + this.purpose = purpose; + return this; + } + + @java.lang.Override + public _FinalStage addAllInvalid(List invalid) { + if (invalid != null) { + this.invalid.addAll(invalid); + } + return this; + } + + @java.lang.Override + public _FinalStage addInvalid(SharesExchange200ResponseVisitorIdentityRequestInvalidItem invalid) { + this.invalid.add(invalid); + return this; + } + + @java.lang.Override + @JsonSetter(value = "invalid", nulls = Nulls.SKIP) + public _FinalStage invalid(List invalid) { + this.invalid.clear(); + if (invalid != null) { + this.invalid.addAll(invalid); + } + return this; + } + + @java.lang.Override + public _FinalStage addAllMissing(List missing) { + if (missing != null) { + this.missing.addAll(missing); + } + return this; + } + + @java.lang.Override + public _FinalStage addMissing(SharesExchange200ResponseVisitorIdentityRequestMissingItem missing) { + this.missing.add(missing); + return this; + } + + @java.lang.Override + @JsonSetter(value = "missing", nulls = Nulls.SKIP) + public _FinalStage missing(List missing) { + this.missing.clear(); + if (missing != null) { + this.missing.addAll(missing); + } + return this; + } + + @java.lang.Override + public SharesExchange200ResponseVisitorIdentityRequest build() { + return new SharesExchange200ResponseVisitorIdentityRequest( + fields, missing, invalid, purpose, privacyUrl, 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/SharesExchange200ResponseVisitorIdentityRequestFields.java b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestFields.java new file mode 100644 index 0000000..c69bcf4 --- /dev/null +++ b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestFields.java @@ -0,0 +1,212 @@ +/** + * 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.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 = SharesExchange200ResponseVisitorIdentityRequestFields.Builder.class) +public final class SharesExchange200ResponseVisitorIdentityRequestFields { + private final Optional displayName; + + private final Optional email; + + private final Optional title; + + private final Optional organization; + + private final Optional organizationalUnit; + + private final Map additionalProperties; + + private SharesExchange200ResponseVisitorIdentityRequestFields( + Optional displayName, + Optional email, + Optional title, + Optional organization, + Optional organizationalUnit, + Map additionalProperties) { + this.displayName = displayName; + this.email = email; + this.title = title; + this.organization = organization; + this.organizationalUnit = organizationalUnit; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("displayName") + public Optional getDisplayName() { + return displayName; + } + + @JsonProperty("email") + public Optional getEmail() { + return email; + } + + @JsonProperty("title") + public Optional getTitle() { + return title; + } + + @JsonProperty("organization") + public Optional getOrganization() { + return organization; + } + + @JsonProperty("organizationalUnit") + public Optional getOrganizationalUnit() { + return organizationalUnit; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesExchange200ResponseVisitorIdentityRequestFields + && equalTo((SharesExchange200ResponseVisitorIdentityRequestFields) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesExchange200ResponseVisitorIdentityRequestFields other) { + return displayName.equals(other.displayName) + && email.equals(other.email) + && title.equals(other.title) + && organization.equals(other.organization) + && organizationalUnit.equals(other.organizationalUnit); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.displayName, this.email, this.title, this.organization, this.organizationalUnit); + } + + @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 displayName = + Optional.empty(); + + private Optional email = Optional.empty(); + + private Optional title = Optional.empty(); + + private Optional organization = + Optional.empty(); + + private Optional organizationalUnit = + Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(SharesExchange200ResponseVisitorIdentityRequestFields other) { + displayName(other.getDisplayName()); + email(other.getEmail()); + title(other.getTitle()); + organization(other.getOrganization()); + organizationalUnit(other.getOrganizationalUnit()); + return this; + } + + @JsonSetter(value = "displayName", nulls = Nulls.SKIP) + public Builder displayName( + Optional displayName) { + this.displayName = displayName; + return this; + } + + public Builder displayName(SharesExchange200ResponseVisitorIdentityRequestFieldsDisplayName displayName) { + this.displayName = Optional.ofNullable(displayName); + return this; + } + + @JsonSetter(value = "email", nulls = Nulls.SKIP) + public Builder email(Optional email) { + this.email = email; + return this; + } + + public Builder email(SharesExchange200ResponseVisitorIdentityRequestFieldsEmail email) { + this.email = Optional.ofNullable(email); + return this; + } + + @JsonSetter(value = "title", nulls = Nulls.SKIP) + public Builder title(Optional title) { + this.title = title; + return this; + } + + public Builder title(SharesExchange200ResponseVisitorIdentityRequestFieldsTitle title) { + this.title = Optional.ofNullable(title); + return this; + } + + @JsonSetter(value = "organization", nulls = Nulls.SKIP) + public Builder organization( + Optional organization) { + this.organization = organization; + return this; + } + + public Builder organization(SharesExchange200ResponseVisitorIdentityRequestFieldsOrganization organization) { + this.organization = Optional.ofNullable(organization); + return this; + } + + @JsonSetter(value = "organizationalUnit", nulls = Nulls.SKIP) + public Builder organizationalUnit( + Optional organizationalUnit) { + this.organizationalUnit = organizationalUnit; + return this; + } + + public Builder organizationalUnit( + SharesExchange200ResponseVisitorIdentityRequestFieldsOrganizationalUnit organizationalUnit) { + this.organizationalUnit = Optional.ofNullable(organizationalUnit); + return this; + } + + public SharesExchange200ResponseVisitorIdentityRequestFields build() { + return new SharesExchange200ResponseVisitorIdentityRequestFields( + displayName, email, title, organization, organizationalUnit, 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/types/SharesExchange200ResponseVisitorIdentityRequestFieldsDisplayName.java b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestFieldsDisplayName.java new file mode 100644 index 0000000..c5e5109 --- /dev/null +++ b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestFieldsDisplayName.java @@ -0,0 +1,87 @@ +/** + * 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 SharesExchange200ResponseVisitorIdentityRequestFieldsDisplayName { + public static final SharesExchange200ResponseVisitorIdentityRequestFieldsDisplayName REQUIRED = + new SharesExchange200ResponseVisitorIdentityRequestFieldsDisplayName(Value.REQUIRED, "required"); + + public static final SharesExchange200ResponseVisitorIdentityRequestFieldsDisplayName OPTIONAL = + new SharesExchange200ResponseVisitorIdentityRequestFieldsDisplayName(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesExchange200ResponseVisitorIdentityRequestFieldsDisplayName(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 SharesExchange200ResponseVisitorIdentityRequestFieldsDisplayName + && this.string.equals( + ((SharesExchange200ResponseVisitorIdentityRequestFieldsDisplayName) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesExchange200ResponseVisitorIdentityRequestFieldsDisplayName valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesExchange200ResponseVisitorIdentityRequestFieldsDisplayName(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestFieldsEmail.java b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestFieldsEmail.java new file mode 100644 index 0000000..710d29e --- /dev/null +++ b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestFieldsEmail.java @@ -0,0 +1,87 @@ +/** + * 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 SharesExchange200ResponseVisitorIdentityRequestFieldsEmail { + public static final SharesExchange200ResponseVisitorIdentityRequestFieldsEmail REQUIRED = + new SharesExchange200ResponseVisitorIdentityRequestFieldsEmail(Value.REQUIRED, "required"); + + public static final SharesExchange200ResponseVisitorIdentityRequestFieldsEmail OPTIONAL = + new SharesExchange200ResponseVisitorIdentityRequestFieldsEmail(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesExchange200ResponseVisitorIdentityRequestFieldsEmail(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 SharesExchange200ResponseVisitorIdentityRequestFieldsEmail + && this.string.equals( + ((SharesExchange200ResponseVisitorIdentityRequestFieldsEmail) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesExchange200ResponseVisitorIdentityRequestFieldsEmail valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesExchange200ResponseVisitorIdentityRequestFieldsEmail(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestFieldsOrganization.java b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestFieldsOrganization.java new file mode 100644 index 0000000..820dfa2 --- /dev/null +++ b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestFieldsOrganization.java @@ -0,0 +1,87 @@ +/** + * 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 SharesExchange200ResponseVisitorIdentityRequestFieldsOrganization { + public static final SharesExchange200ResponseVisitorIdentityRequestFieldsOrganization REQUIRED = + new SharesExchange200ResponseVisitorIdentityRequestFieldsOrganization(Value.REQUIRED, "required"); + + public static final SharesExchange200ResponseVisitorIdentityRequestFieldsOrganization OPTIONAL = + new SharesExchange200ResponseVisitorIdentityRequestFieldsOrganization(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesExchange200ResponseVisitorIdentityRequestFieldsOrganization(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 SharesExchange200ResponseVisitorIdentityRequestFieldsOrganization + && this.string.equals( + ((SharesExchange200ResponseVisitorIdentityRequestFieldsOrganization) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesExchange200ResponseVisitorIdentityRequestFieldsOrganization valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesExchange200ResponseVisitorIdentityRequestFieldsOrganization(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestFieldsOrganizationalUnit.java b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestFieldsOrganizationalUnit.java new file mode 100644 index 0000000..81c4a04 --- /dev/null +++ b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestFieldsOrganizationalUnit.java @@ -0,0 +1,89 @@ +/** + * 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 SharesExchange200ResponseVisitorIdentityRequestFieldsOrganizationalUnit { + public static final SharesExchange200ResponseVisitorIdentityRequestFieldsOrganizationalUnit REQUIRED = + new SharesExchange200ResponseVisitorIdentityRequestFieldsOrganizationalUnit(Value.REQUIRED, "required"); + + public static final SharesExchange200ResponseVisitorIdentityRequestFieldsOrganizationalUnit OPTIONAL = + new SharesExchange200ResponseVisitorIdentityRequestFieldsOrganizationalUnit(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesExchange200ResponseVisitorIdentityRequestFieldsOrganizationalUnit(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 SharesExchange200ResponseVisitorIdentityRequestFieldsOrganizationalUnit + && this.string.equals( + ((SharesExchange200ResponseVisitorIdentityRequestFieldsOrganizationalUnit) other) + .string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesExchange200ResponseVisitorIdentityRequestFieldsOrganizationalUnit valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesExchange200ResponseVisitorIdentityRequestFieldsOrganizationalUnit( + Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestFieldsTitle.java b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestFieldsTitle.java new file mode 100644 index 0000000..29adb48 --- /dev/null +++ b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestFieldsTitle.java @@ -0,0 +1,87 @@ +/** + * 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 SharesExchange200ResponseVisitorIdentityRequestFieldsTitle { + public static final SharesExchange200ResponseVisitorIdentityRequestFieldsTitle REQUIRED = + new SharesExchange200ResponseVisitorIdentityRequestFieldsTitle(Value.REQUIRED, "required"); + + public static final SharesExchange200ResponseVisitorIdentityRequestFieldsTitle OPTIONAL = + new SharesExchange200ResponseVisitorIdentityRequestFieldsTitle(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesExchange200ResponseVisitorIdentityRequestFieldsTitle(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 SharesExchange200ResponseVisitorIdentityRequestFieldsTitle + && this.string.equals( + ((SharesExchange200ResponseVisitorIdentityRequestFieldsTitle) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesExchange200ResponseVisitorIdentityRequestFieldsTitle valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesExchange200ResponseVisitorIdentityRequestFieldsTitle(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestInvalidItem.java b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestInvalidItem.java new file mode 100644 index 0000000..2482372 --- /dev/null +++ b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestInvalidItem.java @@ -0,0 +1,121 @@ +/** + * 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 SharesExchange200ResponseVisitorIdentityRequestInvalidItem { + public static final SharesExchange200ResponseVisitorIdentityRequestInvalidItem EMAIL = + new SharesExchange200ResponseVisitorIdentityRequestInvalidItem(Value.EMAIL, "email"); + + public static final SharesExchange200ResponseVisitorIdentityRequestInvalidItem ORGANIZATIONAL_UNIT = + new SharesExchange200ResponseVisitorIdentityRequestInvalidItem( + Value.ORGANIZATIONAL_UNIT, "organizationalUnit"); + + public static final SharesExchange200ResponseVisitorIdentityRequestInvalidItem DISPLAY_NAME = + new SharesExchange200ResponseVisitorIdentityRequestInvalidItem(Value.DISPLAY_NAME, "displayName"); + + public static final SharesExchange200ResponseVisitorIdentityRequestInvalidItem ORGANIZATION = + new SharesExchange200ResponseVisitorIdentityRequestInvalidItem(Value.ORGANIZATION, "organization"); + + public static final SharesExchange200ResponseVisitorIdentityRequestInvalidItem TITLE = + new SharesExchange200ResponseVisitorIdentityRequestInvalidItem(Value.TITLE, "title"); + + private final Value value; + + private final String string; + + SharesExchange200ResponseVisitorIdentityRequestInvalidItem(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 SharesExchange200ResponseVisitorIdentityRequestInvalidItem + && this.string.equals( + ((SharesExchange200ResponseVisitorIdentityRequestInvalidItem) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case EMAIL: + return visitor.visitEmail(); + case ORGANIZATIONAL_UNIT: + return visitor.visitOrganizationalUnit(); + case DISPLAY_NAME: + return visitor.visitDisplayName(); + case ORGANIZATION: + return visitor.visitOrganization(); + case TITLE: + return visitor.visitTitle(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesExchange200ResponseVisitorIdentityRequestInvalidItem valueOf(String value) { + switch (value) { + case "email": + return EMAIL; + case "organizationalUnit": + return ORGANIZATIONAL_UNIT; + case "displayName": + return DISPLAY_NAME; + case "organization": + return ORGANIZATION; + case "title": + return TITLE; + default: + return new SharesExchange200ResponseVisitorIdentityRequestInvalidItem(Value.UNKNOWN, value); + } + } + + public enum Value { + DISPLAY_NAME, + + EMAIL, + + TITLE, + + ORGANIZATION, + + ORGANIZATIONAL_UNIT, + + UNKNOWN + } + + public interface Visitor { + T visitDisplayName(); + + T visitEmail(); + + T visitTitle(); + + T visitOrganization(); + + T visitOrganizationalUnit(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestMissingItem.java b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestMissingItem.java new file mode 100644 index 0000000..3ad606a --- /dev/null +++ b/src/main/java/api/types/SharesExchange200ResponseVisitorIdentityRequestMissingItem.java @@ -0,0 +1,121 @@ +/** + * 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 SharesExchange200ResponseVisitorIdentityRequestMissingItem { + public static final SharesExchange200ResponseVisitorIdentityRequestMissingItem EMAIL = + new SharesExchange200ResponseVisitorIdentityRequestMissingItem(Value.EMAIL, "email"); + + public static final SharesExchange200ResponseVisitorIdentityRequestMissingItem ORGANIZATIONAL_UNIT = + new SharesExchange200ResponseVisitorIdentityRequestMissingItem( + Value.ORGANIZATIONAL_UNIT, "organizationalUnit"); + + public static final SharesExchange200ResponseVisitorIdentityRequestMissingItem DISPLAY_NAME = + new SharesExchange200ResponseVisitorIdentityRequestMissingItem(Value.DISPLAY_NAME, "displayName"); + + public static final SharesExchange200ResponseVisitorIdentityRequestMissingItem ORGANIZATION = + new SharesExchange200ResponseVisitorIdentityRequestMissingItem(Value.ORGANIZATION, "organization"); + + public static final SharesExchange200ResponseVisitorIdentityRequestMissingItem TITLE = + new SharesExchange200ResponseVisitorIdentityRequestMissingItem(Value.TITLE, "title"); + + private final Value value; + + private final String string; + + SharesExchange200ResponseVisitorIdentityRequestMissingItem(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 SharesExchange200ResponseVisitorIdentityRequestMissingItem + && this.string.equals( + ((SharesExchange200ResponseVisitorIdentityRequestMissingItem) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case EMAIL: + return visitor.visitEmail(); + case ORGANIZATIONAL_UNIT: + return visitor.visitOrganizationalUnit(); + case DISPLAY_NAME: + return visitor.visitDisplayName(); + case ORGANIZATION: + return visitor.visitOrganization(); + case TITLE: + return visitor.visitTitle(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesExchange200ResponseVisitorIdentityRequestMissingItem valueOf(String value) { + switch (value) { + case "email": + return EMAIL; + case "organizationalUnit": + return ORGANIZATIONAL_UNIT; + case "displayName": + return DISPLAY_NAME; + case "organization": + return ORGANIZATION; + case "title": + return TITLE; + default: + return new SharesExchange200ResponseVisitorIdentityRequestMissingItem(Value.UNKNOWN, value); + } + } + + public enum Value { + DISPLAY_NAME, + + EMAIL, + + TITLE, + + ORGANIZATION, + + ORGANIZATIONAL_UNIT, + + UNKNOWN + } + + public interface Visitor { + T visitDisplayName(); + + T visitEmail(); + + T visitTitle(); + + T visitOrganization(); + + T visitOrganizationalUnit(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesGet200ResponseShare.java b/src/main/java/api/types/SharesGet200ResponseShare.java index 8936b9e..65b5c76 100644 --- a/src/main/java/api/types/SharesGet200ResponseShare.java +++ b/src/main/java/api/types/SharesGet200ResponseShare.java @@ -32,7 +32,15 @@ public final class SharesGet200ResponseShare { private final String docId; - private final String layerName; + private final SharesGet200ResponseShareLayerMode layerMode; + + private final Optional layerName; + + private final boolean keepVisitorLayers; + + private final Optional visitorIdleSeconds; + + private final Optional visitorIdentity; private final List scope; @@ -44,6 +52,8 @@ public final class SharesGet200ResponseShare { private final boolean disabled; + private final Optional archivedAt; + private final Optional expiresAt; private final double exchangeCount; @@ -62,12 +72,17 @@ private SharesGet200ResponseShare( String id, String tenantId, String docId, - String layerName, + SharesGet200ResponseShareLayerMode layerMode, + Optional layerName, + boolean keepVisitorLayers, + Optional visitorIdleSeconds, + Optional visitorIdentity, List scope, Optional> origins, boolean passwordProtected, double sessionTtlSeconds, boolean disabled, + Optional archivedAt, Optional expiresAt, double exchangeCount, Optional lastExchangedAt, @@ -78,12 +93,17 @@ private SharesGet200ResponseShare( this.id = id; this.tenantId = tenantId; this.docId = docId; + this.layerMode = layerMode; this.layerName = layerName; + this.keepVisitorLayers = keepVisitorLayers; + this.visitorIdleSeconds = visitorIdleSeconds; + this.visitorIdentity = visitorIdentity; this.scope = scope; this.origins = origins; this.passwordProtected = passwordProtected; this.sessionTtlSeconds = sessionTtlSeconds; this.disabled = disabled; + this.archivedAt = archivedAt; this.expiresAt = expiresAt; this.exchangeCount = exchangeCount; this.lastExchangedAt = lastExchangedAt; @@ -108,11 +128,40 @@ public String getDocId() { return docId; } - @JsonProperty("layerName") - public String getLayerName() { + @JsonProperty("layerMode") + public SharesGet200ResponseShareLayerMode getLayerMode() { + return layerMode; + } + + @JsonIgnore + public Optional getLayerName() { + if (layerName == null) { + return Optional.empty(); + } return layerName; } + @JsonProperty("keepVisitorLayers") + public boolean getKeepVisitorLayers() { + return keepVisitorLayers; + } + + @JsonIgnore + public Optional getVisitorIdleSeconds() { + if (visitorIdleSeconds == null) { + return Optional.empty(); + } + return visitorIdleSeconds; + } + + @JsonIgnore + public Optional getVisitorIdentity() { + if (visitorIdentity == null) { + return Optional.empty(); + } + return visitorIdentity; + } + @JsonProperty("scope") public List getScope() { return scope; @@ -141,6 +190,14 @@ public boolean getDisabled() { return disabled; } + @JsonIgnore + public Optional getArchivedAt() { + if (archivedAt == null) { + return Optional.empty(); + } + return archivedAt; + } + @JsonIgnore public Optional getExpiresAt() { if (expiresAt == null) { @@ -177,12 +234,36 @@ public double getUpdatedAt() { return updatedAt; } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("layerName") + private Optional _getLayerName() { + return layerName; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("visitorIdleSeconds") + private Optional _getVisitorIdleSeconds() { + return visitorIdleSeconds; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("visitorIdentity") + private Optional _getVisitorIdentity() { + return visitorIdentity; + } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) @JsonProperty("origins") private Optional> _getOrigins() { return origins; } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("archivedAt") + private Optional _getArchivedAt() { + return archivedAt; + } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) @JsonProperty("expiresAt") private Optional _getExpiresAt() { @@ -210,12 +291,17 @@ private boolean equalTo(SharesGet200ResponseShare other) { return id.equals(other.id) && tenantId.equals(other.tenantId) && docId.equals(other.docId) + && layerMode.equals(other.layerMode) && layerName.equals(other.layerName) + && keepVisitorLayers == other.keepVisitorLayers + && visitorIdleSeconds.equals(other.visitorIdleSeconds) + && visitorIdentity.equals(other.visitorIdentity) && scope.equals(other.scope) && origins.equals(other.origins) && passwordProtected == other.passwordProtected && sessionTtlSeconds == other.sessionTtlSeconds && disabled == other.disabled + && archivedAt.equals(other.archivedAt) && expiresAt.equals(other.expiresAt) && exchangeCount == other.exchangeCount && lastExchangedAt.equals(other.lastExchangedAt) @@ -230,12 +316,17 @@ public int hashCode() { this.id, this.tenantId, this.docId, + this.layerMode, this.layerName, + this.keepVisitorLayers, + this.visitorIdleSeconds, + this.visitorIdentity, this.scope, this.origins, this.passwordProtected, this.sessionTtlSeconds, this.disabled, + this.archivedAt, this.expiresAt, this.exchangeCount, this.lastExchangedAt, @@ -264,11 +355,15 @@ public interface TenantIdStage { } public interface DocIdStage { - LayerNameStage docId(@NotNull String docId); + LayerModeStage docId(@NotNull String docId); } - public interface LayerNameStage { - PasswordProtectedStage layerName(@NotNull String layerName); + public interface LayerModeStage { + KeepVisitorLayersStage layerMode(@NotNull SharesGet200ResponseShareLayerMode layerMode); + } + + public interface KeepVisitorLayersStage { + PasswordProtectedStage keepVisitorLayers(boolean keepVisitorLayers); } public interface PasswordProtectedStage { @@ -306,6 +401,24 @@ public interface _FinalStage { _FinalStage additionalProperties(Map additionalProperties); + _FinalStage layerName(Optional layerName); + + _FinalStage layerName(String layerName); + + _FinalStage layerName(Nullable layerName); + + _FinalStage visitorIdleSeconds(Optional visitorIdleSeconds); + + _FinalStage visitorIdleSeconds(Double visitorIdleSeconds); + + _FinalStage visitorIdleSeconds(Nullable visitorIdleSeconds); + + _FinalStage visitorIdentity(Optional visitorIdentity); + + _FinalStage visitorIdentity(SharesGet200ResponseShareVisitorIdentity visitorIdentity); + + _FinalStage visitorIdentity(Nullable visitorIdentity); + _FinalStage scope(List scope); _FinalStage addScope(String scope); @@ -318,6 +431,12 @@ public interface _FinalStage { _FinalStage origins(Nullable> origins); + _FinalStage archivedAt(Optional archivedAt); + + _FinalStage archivedAt(Double archivedAt); + + _FinalStage archivedAt(Nullable archivedAt); + _FinalStage expiresAt(Optional expiresAt); _FinalStage expiresAt(Double expiresAt); @@ -336,7 +455,8 @@ public static final class Builder implements IdStage, TenantIdStage, DocIdStage, - LayerNameStage, + LayerModeStage, + KeepVisitorLayersStage, PasswordProtectedStage, SessionTtlSecondsStage, DisabledStage, @@ -351,7 +471,9 @@ public static final class Builder private String docId; - private String layerName; + private SharesGet200ResponseShareLayerMode layerMode; + + private boolean keepVisitorLayers; private boolean passwordProtected; @@ -371,10 +493,18 @@ public static final class Builder private Optional expiresAt = Optional.empty(); + private Optional archivedAt = Optional.empty(); + private Optional> origins = Optional.empty(); private List scope = new ArrayList<>(); + private Optional visitorIdentity = Optional.empty(); + + private Optional visitorIdleSeconds = Optional.empty(); + + private Optional layerName = Optional.empty(); + @JsonAnySetter private Map additionalProperties = new HashMap<>(); @@ -385,12 +515,17 @@ public Builder from(SharesGet200ResponseShare other) { id(other.getId()); tenantId(other.getTenantId()); docId(other.getDocId()); + layerMode(other.getLayerMode()); layerName(other.getLayerName()); + keepVisitorLayers(other.getKeepVisitorLayers()); + visitorIdleSeconds(other.getVisitorIdleSeconds()); + visitorIdentity(other.getVisitorIdentity()); scope(other.getScope()); origins(other.getOrigins()); passwordProtected(other.getPasswordProtected()); sessionTtlSeconds(other.getSessionTtlSeconds()); disabled(other.getDisabled()); + archivedAt(other.getArchivedAt()); expiresAt(other.getExpiresAt()); exchangeCount(other.getExchangeCount()); lastExchangedAt(other.getLastExchangedAt()); @@ -416,15 +551,22 @@ public DocIdStage tenantId(@NotNull String tenantId) { @java.lang.Override @JsonSetter("docId") - public LayerNameStage docId(@NotNull String docId) { + public LayerModeStage docId(@NotNull String docId) { this.docId = Objects.requireNonNull(docId, "docId must not be null"); return this; } @java.lang.Override - @JsonSetter("layerName") - public PasswordProtectedStage layerName(@NotNull String layerName) { - this.layerName = Objects.requireNonNull(layerName, "layerName must not be null"); + @JsonSetter("layerMode") + public KeepVisitorLayersStage layerMode(@NotNull SharesGet200ResponseShareLayerMode layerMode) { + this.layerMode = Objects.requireNonNull(layerMode, "layerMode must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("keepVisitorLayers") + public PasswordProtectedStage keepVisitorLayers(boolean keepVisitorLayers) { + this.keepVisitorLayers = keepVisitorLayers; return this; } @@ -527,6 +669,31 @@ public _FinalStage expiresAt(Optional expiresAt) { return this; } + @java.lang.Override + public _FinalStage archivedAt(Nullable archivedAt) { + if (archivedAt.isNull()) { + this.archivedAt = null; + } else if (archivedAt.isEmpty()) { + this.archivedAt = Optional.empty(); + } else { + this.archivedAt = Optional.of(archivedAt.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage archivedAt(Double archivedAt) { + this.archivedAt = Optional.ofNullable(archivedAt); + return this; + } + + @java.lang.Override + @JsonSetter(value = "archivedAt", nulls = Nulls.SKIP) + public _FinalStage archivedAt(Optional archivedAt) { + this.archivedAt = archivedAt; + return this; + } + @java.lang.Override public _FinalStage origins(Nullable> origins) { if (origins.isNull()) { @@ -576,18 +743,98 @@ public _FinalStage scope(List scope) { return this; } + @java.lang.Override + public _FinalStage visitorIdentity(Nullable visitorIdentity) { + if (visitorIdentity.isNull()) { + this.visitorIdentity = null; + } else if (visitorIdentity.isEmpty()) { + this.visitorIdentity = Optional.empty(); + } else { + this.visitorIdentity = Optional.of(visitorIdentity.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage visitorIdentity(SharesGet200ResponseShareVisitorIdentity visitorIdentity) { + this.visitorIdentity = Optional.ofNullable(visitorIdentity); + return this; + } + + @java.lang.Override + @JsonSetter(value = "visitorIdentity", nulls = Nulls.SKIP) + public _FinalStage visitorIdentity(Optional visitorIdentity) { + this.visitorIdentity = visitorIdentity; + return this; + } + + @java.lang.Override + public _FinalStage visitorIdleSeconds(Nullable visitorIdleSeconds) { + if (visitorIdleSeconds.isNull()) { + this.visitorIdleSeconds = null; + } else if (visitorIdleSeconds.isEmpty()) { + this.visitorIdleSeconds = Optional.empty(); + } else { + this.visitorIdleSeconds = Optional.of(visitorIdleSeconds.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage visitorIdleSeconds(Double visitorIdleSeconds) { + this.visitorIdleSeconds = Optional.ofNullable(visitorIdleSeconds); + return this; + } + + @java.lang.Override + @JsonSetter(value = "visitorIdleSeconds", nulls = Nulls.SKIP) + public _FinalStage visitorIdleSeconds(Optional visitorIdleSeconds) { + this.visitorIdleSeconds = visitorIdleSeconds; + return this; + } + + @java.lang.Override + public _FinalStage layerName(Nullable layerName) { + if (layerName.isNull()) { + this.layerName = null; + } else if (layerName.isEmpty()) { + this.layerName = Optional.empty(); + } else { + this.layerName = Optional.of(layerName.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage layerName(String layerName) { + this.layerName = Optional.ofNullable(layerName); + return this; + } + + @java.lang.Override + @JsonSetter(value = "layerName", nulls = Nulls.SKIP) + public _FinalStage layerName(Optional layerName) { + this.layerName = layerName; + return this; + } + @java.lang.Override public SharesGet200ResponseShare build() { return new SharesGet200ResponseShare( id, tenantId, docId, + layerMode, layerName, + keepVisitorLayers, + visitorIdleSeconds, + visitorIdentity, scope, origins, passwordProtected, sessionTtlSeconds, disabled, + archivedAt, expiresAt, exchangeCount, lastExchangedAt, diff --git a/src/main/java/api/types/SharesGet200ResponseShareLayerMode.java b/src/main/java/api/types/SharesGet200ResponseShareLayerMode.java new file mode 100644 index 0000000..027446b --- /dev/null +++ b/src/main/java/api/types/SharesGet200ResponseShareLayerMode.java @@ -0,0 +1,86 @@ +/** + * 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 SharesGet200ResponseShareLayerMode { + public static final SharesGet200ResponseShareLayerMode PER_VISITOR = + new SharesGet200ResponseShareLayerMode(Value.PER_VISITOR, "per-visitor"); + + public static final SharesGet200ResponseShareLayerMode SHARED = + new SharesGet200ResponseShareLayerMode(Value.SHARED, "shared"); + + private final Value value; + + private final String string; + + SharesGet200ResponseShareLayerMode(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 SharesGet200ResponseShareLayerMode + && this.string.equals(((SharesGet200ResponseShareLayerMode) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case PER_VISITOR: + return visitor.visitPerVisitor(); + case SHARED: + return visitor.visitShared(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesGet200ResponseShareLayerMode valueOf(String value) { + switch (value) { + case "per-visitor": + return PER_VISITOR; + case "shared": + return SHARED; + default: + return new SharesGet200ResponseShareLayerMode(Value.UNKNOWN, value); + } + } + + public enum Value { + SHARED, + + PER_VISITOR, + + UNKNOWN + } + + public interface Visitor { + T visitShared(); + + T visitPerVisitor(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentity.java b/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentity.java new file mode 100644 index 0000000..756c9c3 --- /dev/null +++ b/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentity.java @@ -0,0 +1,207 @@ +/** + * 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.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 = SharesGet200ResponseShareVisitorIdentity.Builder.class) +public final class SharesGet200ResponseShareVisitorIdentity { + private final SharesGet200ResponseShareVisitorIdentityFields fields; + + private final SharesGet200ResponseShareVisitorIdentityAsk ask; + + private final Optional purpose; + + private final Optional privacyUrl; + + private final Map additionalProperties; + + private SharesGet200ResponseShareVisitorIdentity( + SharesGet200ResponseShareVisitorIdentityFields fields, + SharesGet200ResponseShareVisitorIdentityAsk ask, + Optional purpose, + Optional privacyUrl, + Map additionalProperties) { + this.fields = fields; + this.ask = ask; + this.purpose = purpose; + this.privacyUrl = privacyUrl; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("fields") + public SharesGet200ResponseShareVisitorIdentityFields getFields() { + return fields; + } + + @JsonProperty("ask") + public SharesGet200ResponseShareVisitorIdentityAsk getAsk() { + return ask; + } + + @JsonProperty("purpose") + public Optional getPurpose() { + return purpose; + } + + @JsonProperty("privacyUrl") + public Optional getPrivacyUrl() { + return privacyUrl; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesGet200ResponseShareVisitorIdentity + && equalTo((SharesGet200ResponseShareVisitorIdentity) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesGet200ResponseShareVisitorIdentity other) { + return fields.equals(other.fields) + && ask.equals(other.ask) + && purpose.equals(other.purpose) + && privacyUrl.equals(other.privacyUrl); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.fields, this.ask, this.purpose, this.privacyUrl); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static FieldsStage builder() { + return new Builder(); + } + + public interface FieldsStage { + AskStage fields(@NotNull SharesGet200ResponseShareVisitorIdentityFields fields); + + Builder from(SharesGet200ResponseShareVisitorIdentity other); + } + + public interface AskStage { + _FinalStage ask(@NotNull SharesGet200ResponseShareVisitorIdentityAsk ask); + } + + public interface _FinalStage { + SharesGet200ResponseShareVisitorIdentity build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage purpose(Optional purpose); + + _FinalStage purpose(String purpose); + + _FinalStage privacyUrl(Optional privacyUrl); + + _FinalStage privacyUrl(String privacyUrl); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements FieldsStage, AskStage, _FinalStage { + private SharesGet200ResponseShareVisitorIdentityFields fields; + + private SharesGet200ResponseShareVisitorIdentityAsk ask; + + private Optional privacyUrl = Optional.empty(); + + private Optional purpose = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(SharesGet200ResponseShareVisitorIdentity other) { + fields(other.getFields()); + ask(other.getAsk()); + purpose(other.getPurpose()); + privacyUrl(other.getPrivacyUrl()); + return this; + } + + @java.lang.Override + @JsonSetter("fields") + public AskStage fields(@NotNull SharesGet200ResponseShareVisitorIdentityFields fields) { + this.fields = Objects.requireNonNull(fields, "fields must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("ask") + public _FinalStage ask(@NotNull SharesGet200ResponseShareVisitorIdentityAsk ask) { + this.ask = Objects.requireNonNull(ask, "ask must not be null"); + return this; + } + + @java.lang.Override + public _FinalStage privacyUrl(String privacyUrl) { + this.privacyUrl = Optional.ofNullable(privacyUrl); + return this; + } + + @java.lang.Override + @JsonSetter(value = "privacyUrl", nulls = Nulls.SKIP) + public _FinalStage privacyUrl(Optional privacyUrl) { + this.privacyUrl = privacyUrl; + return this; + } + + @java.lang.Override + public _FinalStage purpose(String purpose) { + this.purpose = Optional.ofNullable(purpose); + return this; + } + + @java.lang.Override + @JsonSetter(value = "purpose", nulls = Nulls.SKIP) + public _FinalStage purpose(Optional purpose) { + this.purpose = purpose; + return this; + } + + @java.lang.Override + public SharesGet200ResponseShareVisitorIdentity build() { + return new SharesGet200ResponseShareVisitorIdentity(fields, ask, purpose, privacyUrl, 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/SharesGet200ResponseShareVisitorIdentityAsk.java b/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityAsk.java new file mode 100644 index 0000000..7bafcf8 --- /dev/null +++ b/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityAsk.java @@ -0,0 +1,86 @@ +/** + * 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 SharesGet200ResponseShareVisitorIdentityAsk { + public static final SharesGet200ResponseShareVisitorIdentityAsk ON_OPEN = + new SharesGet200ResponseShareVisitorIdentityAsk(Value.ON_OPEN, "on-open"); + + public static final SharesGet200ResponseShareVisitorIdentityAsk BEFORE_FIRST_CHANGE = + new SharesGet200ResponseShareVisitorIdentityAsk(Value.BEFORE_FIRST_CHANGE, "before-first-change"); + + private final Value value; + + private final String string; + + SharesGet200ResponseShareVisitorIdentityAsk(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 SharesGet200ResponseShareVisitorIdentityAsk + && this.string.equals(((SharesGet200ResponseShareVisitorIdentityAsk) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case ON_OPEN: + return visitor.visitOnOpen(); + case BEFORE_FIRST_CHANGE: + return visitor.visitBeforeFirstChange(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesGet200ResponseShareVisitorIdentityAsk valueOf(String value) { + switch (value) { + case "on-open": + return ON_OPEN; + case "before-first-change": + return BEFORE_FIRST_CHANGE; + default: + return new SharesGet200ResponseShareVisitorIdentityAsk(Value.UNKNOWN, value); + } + } + + public enum Value { + ON_OPEN, + + BEFORE_FIRST_CHANGE, + + UNKNOWN + } + + public interface Visitor { + T visitOnOpen(); + + T visitBeforeFirstChange(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityFields.java b/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityFields.java new file mode 100644 index 0000000..df92e5a --- /dev/null +++ b/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityFields.java @@ -0,0 +1,208 @@ +/** + * 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.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 = SharesGet200ResponseShareVisitorIdentityFields.Builder.class) +public final class SharesGet200ResponseShareVisitorIdentityFields { + private final Optional displayName; + + private final Optional email; + + private final Optional title; + + private final Optional organization; + + private final Optional organizationalUnit; + + private final Map additionalProperties; + + private SharesGet200ResponseShareVisitorIdentityFields( + Optional displayName, + Optional email, + Optional title, + Optional organization, + Optional organizationalUnit, + Map additionalProperties) { + this.displayName = displayName; + this.email = email; + this.title = title; + this.organization = organization; + this.organizationalUnit = organizationalUnit; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("displayName") + public Optional getDisplayName() { + return displayName; + } + + @JsonProperty("email") + public Optional getEmail() { + return email; + } + + @JsonProperty("title") + public Optional getTitle() { + return title; + } + + @JsonProperty("organization") + public Optional getOrganization() { + return organization; + } + + @JsonProperty("organizationalUnit") + public Optional getOrganizationalUnit() { + return organizationalUnit; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesGet200ResponseShareVisitorIdentityFields + && equalTo((SharesGet200ResponseShareVisitorIdentityFields) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesGet200ResponseShareVisitorIdentityFields other) { + return displayName.equals(other.displayName) + && email.equals(other.email) + && title.equals(other.title) + && organization.equals(other.organization) + && organizationalUnit.equals(other.organizationalUnit); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.displayName, this.email, this.title, this.organization, this.organizationalUnit); + } + + @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 displayName = Optional.empty(); + + private Optional email = Optional.empty(); + + private Optional title = Optional.empty(); + + private Optional organization = Optional.empty(); + + private Optional organizationalUnit = + Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(SharesGet200ResponseShareVisitorIdentityFields other) { + displayName(other.getDisplayName()); + email(other.getEmail()); + title(other.getTitle()); + organization(other.getOrganization()); + organizationalUnit(other.getOrganizationalUnit()); + return this; + } + + @JsonSetter(value = "displayName", nulls = Nulls.SKIP) + public Builder displayName(Optional displayName) { + this.displayName = displayName; + return this; + } + + public Builder displayName(SharesGet200ResponseShareVisitorIdentityFieldsDisplayName displayName) { + this.displayName = Optional.ofNullable(displayName); + return this; + } + + @JsonSetter(value = "email", nulls = Nulls.SKIP) + public Builder email(Optional email) { + this.email = email; + return this; + } + + public Builder email(SharesGet200ResponseShareVisitorIdentityFieldsEmail email) { + this.email = Optional.ofNullable(email); + return this; + } + + @JsonSetter(value = "title", nulls = Nulls.SKIP) + public Builder title(Optional title) { + this.title = title; + return this; + } + + public Builder title(SharesGet200ResponseShareVisitorIdentityFieldsTitle title) { + this.title = Optional.ofNullable(title); + return this; + } + + @JsonSetter(value = "organization", nulls = Nulls.SKIP) + public Builder organization(Optional organization) { + this.organization = organization; + return this; + } + + public Builder organization(SharesGet200ResponseShareVisitorIdentityFieldsOrganization organization) { + this.organization = Optional.ofNullable(organization); + return this; + } + + @JsonSetter(value = "organizationalUnit", nulls = Nulls.SKIP) + public Builder organizationalUnit( + Optional organizationalUnit) { + this.organizationalUnit = organizationalUnit; + return this; + } + + public Builder organizationalUnit( + SharesGet200ResponseShareVisitorIdentityFieldsOrganizationalUnit organizationalUnit) { + this.organizationalUnit = Optional.ofNullable(organizationalUnit); + return this; + } + + public SharesGet200ResponseShareVisitorIdentityFields build() { + return new SharesGet200ResponseShareVisitorIdentityFields( + displayName, email, title, organization, organizationalUnit, 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/types/SharesGet200ResponseShareVisitorIdentityFieldsDisplayName.java b/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityFieldsDisplayName.java new file mode 100644 index 0000000..c0023d0 --- /dev/null +++ b/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityFieldsDisplayName.java @@ -0,0 +1,87 @@ +/** + * 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 SharesGet200ResponseShareVisitorIdentityFieldsDisplayName { + public static final SharesGet200ResponseShareVisitorIdentityFieldsDisplayName REQUIRED = + new SharesGet200ResponseShareVisitorIdentityFieldsDisplayName(Value.REQUIRED, "required"); + + public static final SharesGet200ResponseShareVisitorIdentityFieldsDisplayName OPTIONAL = + new SharesGet200ResponseShareVisitorIdentityFieldsDisplayName(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesGet200ResponseShareVisitorIdentityFieldsDisplayName(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 SharesGet200ResponseShareVisitorIdentityFieldsDisplayName + && this.string.equals( + ((SharesGet200ResponseShareVisitorIdentityFieldsDisplayName) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesGet200ResponseShareVisitorIdentityFieldsDisplayName valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesGet200ResponseShareVisitorIdentityFieldsDisplayName(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityFieldsEmail.java b/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityFieldsEmail.java new file mode 100644 index 0000000..fa2d981 --- /dev/null +++ b/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityFieldsEmail.java @@ -0,0 +1,86 @@ +/** + * 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 SharesGet200ResponseShareVisitorIdentityFieldsEmail { + public static final SharesGet200ResponseShareVisitorIdentityFieldsEmail REQUIRED = + new SharesGet200ResponseShareVisitorIdentityFieldsEmail(Value.REQUIRED, "required"); + + public static final SharesGet200ResponseShareVisitorIdentityFieldsEmail OPTIONAL = + new SharesGet200ResponseShareVisitorIdentityFieldsEmail(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesGet200ResponseShareVisitorIdentityFieldsEmail(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 SharesGet200ResponseShareVisitorIdentityFieldsEmail + && this.string.equals(((SharesGet200ResponseShareVisitorIdentityFieldsEmail) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesGet200ResponseShareVisitorIdentityFieldsEmail valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesGet200ResponseShareVisitorIdentityFieldsEmail(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityFieldsOrganization.java b/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityFieldsOrganization.java new file mode 100644 index 0000000..a3d0060 --- /dev/null +++ b/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityFieldsOrganization.java @@ -0,0 +1,87 @@ +/** + * 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 SharesGet200ResponseShareVisitorIdentityFieldsOrganization { + public static final SharesGet200ResponseShareVisitorIdentityFieldsOrganization REQUIRED = + new SharesGet200ResponseShareVisitorIdentityFieldsOrganization(Value.REQUIRED, "required"); + + public static final SharesGet200ResponseShareVisitorIdentityFieldsOrganization OPTIONAL = + new SharesGet200ResponseShareVisitorIdentityFieldsOrganization(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesGet200ResponseShareVisitorIdentityFieldsOrganization(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 SharesGet200ResponseShareVisitorIdentityFieldsOrganization + && this.string.equals( + ((SharesGet200ResponseShareVisitorIdentityFieldsOrganization) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesGet200ResponseShareVisitorIdentityFieldsOrganization valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesGet200ResponseShareVisitorIdentityFieldsOrganization(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityFieldsOrganizationalUnit.java b/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityFieldsOrganizationalUnit.java new file mode 100644 index 0000000..1de22f6 --- /dev/null +++ b/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityFieldsOrganizationalUnit.java @@ -0,0 +1,87 @@ +/** + * 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 SharesGet200ResponseShareVisitorIdentityFieldsOrganizationalUnit { + public static final SharesGet200ResponseShareVisitorIdentityFieldsOrganizationalUnit REQUIRED = + new SharesGet200ResponseShareVisitorIdentityFieldsOrganizationalUnit(Value.REQUIRED, "required"); + + public static final SharesGet200ResponseShareVisitorIdentityFieldsOrganizationalUnit OPTIONAL = + new SharesGet200ResponseShareVisitorIdentityFieldsOrganizationalUnit(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesGet200ResponseShareVisitorIdentityFieldsOrganizationalUnit(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 SharesGet200ResponseShareVisitorIdentityFieldsOrganizationalUnit + && this.string.equals( + ((SharesGet200ResponseShareVisitorIdentityFieldsOrganizationalUnit) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesGet200ResponseShareVisitorIdentityFieldsOrganizationalUnit valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesGet200ResponseShareVisitorIdentityFieldsOrganizationalUnit(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityFieldsTitle.java b/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityFieldsTitle.java new file mode 100644 index 0000000..92515b6 --- /dev/null +++ b/src/main/java/api/types/SharesGet200ResponseShareVisitorIdentityFieldsTitle.java @@ -0,0 +1,86 @@ +/** + * 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 SharesGet200ResponseShareVisitorIdentityFieldsTitle { + public static final SharesGet200ResponseShareVisitorIdentityFieldsTitle REQUIRED = + new SharesGet200ResponseShareVisitorIdentityFieldsTitle(Value.REQUIRED, "required"); + + public static final SharesGet200ResponseShareVisitorIdentityFieldsTitle OPTIONAL = + new SharesGet200ResponseShareVisitorIdentityFieldsTitle(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesGet200ResponseShareVisitorIdentityFieldsTitle(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 SharesGet200ResponseShareVisitorIdentityFieldsTitle + && this.string.equals(((SharesGet200ResponseShareVisitorIdentityFieldsTitle) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesGet200ResponseShareVisitorIdentityFieldsTitle valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesGet200ResponseShareVisitorIdentityFieldsTitle(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesList200ResponseSharesItem.java b/src/main/java/api/types/SharesList200ResponseSharesItem.java index 013aa66..1ab5d26 100644 --- a/src/main/java/api/types/SharesList200ResponseSharesItem.java +++ b/src/main/java/api/types/SharesList200ResponseSharesItem.java @@ -32,7 +32,15 @@ public final class SharesList200ResponseSharesItem { private final String docId; - private final String layerName; + private final SharesList200ResponseSharesItemLayerMode layerMode; + + private final Optional layerName; + + private final boolean keepVisitorLayers; + + private final Optional visitorIdleSeconds; + + private final Optional visitorIdentity; private final List scope; @@ -44,6 +52,8 @@ public final class SharesList200ResponseSharesItem { private final boolean disabled; + private final Optional archivedAt; + private final Optional expiresAt; private final double exchangeCount; @@ -62,12 +72,17 @@ private SharesList200ResponseSharesItem( String id, String tenantId, String docId, - String layerName, + SharesList200ResponseSharesItemLayerMode layerMode, + Optional layerName, + boolean keepVisitorLayers, + Optional visitorIdleSeconds, + Optional visitorIdentity, List scope, Optional> origins, boolean passwordProtected, double sessionTtlSeconds, boolean disabled, + Optional archivedAt, Optional expiresAt, double exchangeCount, Optional lastExchangedAt, @@ -78,12 +93,17 @@ private SharesList200ResponseSharesItem( this.id = id; this.tenantId = tenantId; this.docId = docId; + this.layerMode = layerMode; this.layerName = layerName; + this.keepVisitorLayers = keepVisitorLayers; + this.visitorIdleSeconds = visitorIdleSeconds; + this.visitorIdentity = visitorIdentity; this.scope = scope; this.origins = origins; this.passwordProtected = passwordProtected; this.sessionTtlSeconds = sessionTtlSeconds; this.disabled = disabled; + this.archivedAt = archivedAt; this.expiresAt = expiresAt; this.exchangeCount = exchangeCount; this.lastExchangedAt = lastExchangedAt; @@ -108,11 +128,40 @@ public String getDocId() { return docId; } - @JsonProperty("layerName") - public String getLayerName() { + @JsonProperty("layerMode") + public SharesList200ResponseSharesItemLayerMode getLayerMode() { + return layerMode; + } + + @JsonIgnore + public Optional getLayerName() { + if (layerName == null) { + return Optional.empty(); + } return layerName; } + @JsonProperty("keepVisitorLayers") + public boolean getKeepVisitorLayers() { + return keepVisitorLayers; + } + + @JsonIgnore + public Optional getVisitorIdleSeconds() { + if (visitorIdleSeconds == null) { + return Optional.empty(); + } + return visitorIdleSeconds; + } + + @JsonIgnore + public Optional getVisitorIdentity() { + if (visitorIdentity == null) { + return Optional.empty(); + } + return visitorIdentity; + } + @JsonProperty("scope") public List getScope() { return scope; @@ -141,6 +190,14 @@ public boolean getDisabled() { return disabled; } + @JsonIgnore + public Optional getArchivedAt() { + if (archivedAt == null) { + return Optional.empty(); + } + return archivedAt; + } + @JsonIgnore public Optional getExpiresAt() { if (expiresAt == null) { @@ -177,12 +234,36 @@ public double getUpdatedAt() { return updatedAt; } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("layerName") + private Optional _getLayerName() { + return layerName; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("visitorIdleSeconds") + private Optional _getVisitorIdleSeconds() { + return visitorIdleSeconds; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("visitorIdentity") + private Optional _getVisitorIdentity() { + return visitorIdentity; + } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) @JsonProperty("origins") private Optional> _getOrigins() { return origins; } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("archivedAt") + private Optional _getArchivedAt() { + return archivedAt; + } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) @JsonProperty("expiresAt") private Optional _getExpiresAt() { @@ -210,12 +291,17 @@ private boolean equalTo(SharesList200ResponseSharesItem other) { return id.equals(other.id) && tenantId.equals(other.tenantId) && docId.equals(other.docId) + && layerMode.equals(other.layerMode) && layerName.equals(other.layerName) + && keepVisitorLayers == other.keepVisitorLayers + && visitorIdleSeconds.equals(other.visitorIdleSeconds) + && visitorIdentity.equals(other.visitorIdentity) && scope.equals(other.scope) && origins.equals(other.origins) && passwordProtected == other.passwordProtected && sessionTtlSeconds == other.sessionTtlSeconds && disabled == other.disabled + && archivedAt.equals(other.archivedAt) && expiresAt.equals(other.expiresAt) && exchangeCount == other.exchangeCount && lastExchangedAt.equals(other.lastExchangedAt) @@ -230,12 +316,17 @@ public int hashCode() { this.id, this.tenantId, this.docId, + this.layerMode, this.layerName, + this.keepVisitorLayers, + this.visitorIdleSeconds, + this.visitorIdentity, this.scope, this.origins, this.passwordProtected, this.sessionTtlSeconds, this.disabled, + this.archivedAt, this.expiresAt, this.exchangeCount, this.lastExchangedAt, @@ -264,11 +355,15 @@ public interface TenantIdStage { } public interface DocIdStage { - LayerNameStage docId(@NotNull String docId); + LayerModeStage docId(@NotNull String docId); } - public interface LayerNameStage { - PasswordProtectedStage layerName(@NotNull String layerName); + public interface LayerModeStage { + KeepVisitorLayersStage layerMode(@NotNull SharesList200ResponseSharesItemLayerMode layerMode); + } + + public interface KeepVisitorLayersStage { + PasswordProtectedStage keepVisitorLayers(boolean keepVisitorLayers); } public interface PasswordProtectedStage { @@ -306,6 +401,24 @@ public interface _FinalStage { _FinalStage additionalProperties(Map additionalProperties); + _FinalStage layerName(Optional layerName); + + _FinalStage layerName(String layerName); + + _FinalStage layerName(Nullable layerName); + + _FinalStage visitorIdleSeconds(Optional visitorIdleSeconds); + + _FinalStage visitorIdleSeconds(Double visitorIdleSeconds); + + _FinalStage visitorIdleSeconds(Nullable visitorIdleSeconds); + + _FinalStage visitorIdentity(Optional visitorIdentity); + + _FinalStage visitorIdentity(SharesList200ResponseSharesItemVisitorIdentity visitorIdentity); + + _FinalStage visitorIdentity(Nullable visitorIdentity); + _FinalStage scope(List scope); _FinalStage addScope(String scope); @@ -318,6 +431,12 @@ public interface _FinalStage { _FinalStage origins(Nullable> origins); + _FinalStage archivedAt(Optional archivedAt); + + _FinalStage archivedAt(Double archivedAt); + + _FinalStage archivedAt(Nullable archivedAt); + _FinalStage expiresAt(Optional expiresAt); _FinalStage expiresAt(Double expiresAt); @@ -336,7 +455,8 @@ public static final class Builder implements IdStage, TenantIdStage, DocIdStage, - LayerNameStage, + LayerModeStage, + KeepVisitorLayersStage, PasswordProtectedStage, SessionTtlSecondsStage, DisabledStage, @@ -351,7 +471,9 @@ public static final class Builder private String docId; - private String layerName; + private SharesList200ResponseSharesItemLayerMode layerMode; + + private boolean keepVisitorLayers; private boolean passwordProtected; @@ -371,10 +493,18 @@ public static final class Builder private Optional expiresAt = Optional.empty(); + private Optional archivedAt = Optional.empty(); + private Optional> origins = Optional.empty(); private List scope = new ArrayList<>(); + private Optional visitorIdentity = Optional.empty(); + + private Optional visitorIdleSeconds = Optional.empty(); + + private Optional layerName = Optional.empty(); + @JsonAnySetter private Map additionalProperties = new HashMap<>(); @@ -385,12 +515,17 @@ public Builder from(SharesList200ResponseSharesItem other) { id(other.getId()); tenantId(other.getTenantId()); docId(other.getDocId()); + layerMode(other.getLayerMode()); layerName(other.getLayerName()); + keepVisitorLayers(other.getKeepVisitorLayers()); + visitorIdleSeconds(other.getVisitorIdleSeconds()); + visitorIdentity(other.getVisitorIdentity()); scope(other.getScope()); origins(other.getOrigins()); passwordProtected(other.getPasswordProtected()); sessionTtlSeconds(other.getSessionTtlSeconds()); disabled(other.getDisabled()); + archivedAt(other.getArchivedAt()); expiresAt(other.getExpiresAt()); exchangeCount(other.getExchangeCount()); lastExchangedAt(other.getLastExchangedAt()); @@ -416,15 +551,22 @@ public DocIdStage tenantId(@NotNull String tenantId) { @java.lang.Override @JsonSetter("docId") - public LayerNameStage docId(@NotNull String docId) { + public LayerModeStage docId(@NotNull String docId) { this.docId = Objects.requireNonNull(docId, "docId must not be null"); return this; } @java.lang.Override - @JsonSetter("layerName") - public PasswordProtectedStage layerName(@NotNull String layerName) { - this.layerName = Objects.requireNonNull(layerName, "layerName must not be null"); + @JsonSetter("layerMode") + public KeepVisitorLayersStage layerMode(@NotNull SharesList200ResponseSharesItemLayerMode layerMode) { + this.layerMode = Objects.requireNonNull(layerMode, "layerMode must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("keepVisitorLayers") + public PasswordProtectedStage keepVisitorLayers(boolean keepVisitorLayers) { + this.keepVisitorLayers = keepVisitorLayers; return this; } @@ -527,6 +669,31 @@ public _FinalStage expiresAt(Optional expiresAt) { return this; } + @java.lang.Override + public _FinalStage archivedAt(Nullable archivedAt) { + if (archivedAt.isNull()) { + this.archivedAt = null; + } else if (archivedAt.isEmpty()) { + this.archivedAt = Optional.empty(); + } else { + this.archivedAt = Optional.of(archivedAt.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage archivedAt(Double archivedAt) { + this.archivedAt = Optional.ofNullable(archivedAt); + return this; + } + + @java.lang.Override + @JsonSetter(value = "archivedAt", nulls = Nulls.SKIP) + public _FinalStage archivedAt(Optional archivedAt) { + this.archivedAt = archivedAt; + return this; + } + @java.lang.Override public _FinalStage origins(Nullable> origins) { if (origins.isNull()) { @@ -576,18 +743,98 @@ public _FinalStage scope(List scope) { return this; } + @java.lang.Override + public _FinalStage visitorIdentity(Nullable visitorIdentity) { + if (visitorIdentity.isNull()) { + this.visitorIdentity = null; + } else if (visitorIdentity.isEmpty()) { + this.visitorIdentity = Optional.empty(); + } else { + this.visitorIdentity = Optional.of(visitorIdentity.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage visitorIdentity(SharesList200ResponseSharesItemVisitorIdentity visitorIdentity) { + this.visitorIdentity = Optional.ofNullable(visitorIdentity); + return this; + } + + @java.lang.Override + @JsonSetter(value = "visitorIdentity", nulls = Nulls.SKIP) + public _FinalStage visitorIdentity(Optional visitorIdentity) { + this.visitorIdentity = visitorIdentity; + return this; + } + + @java.lang.Override + public _FinalStage visitorIdleSeconds(Nullable visitorIdleSeconds) { + if (visitorIdleSeconds.isNull()) { + this.visitorIdleSeconds = null; + } else if (visitorIdleSeconds.isEmpty()) { + this.visitorIdleSeconds = Optional.empty(); + } else { + this.visitorIdleSeconds = Optional.of(visitorIdleSeconds.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage visitorIdleSeconds(Double visitorIdleSeconds) { + this.visitorIdleSeconds = Optional.ofNullable(visitorIdleSeconds); + return this; + } + + @java.lang.Override + @JsonSetter(value = "visitorIdleSeconds", nulls = Nulls.SKIP) + public _FinalStage visitorIdleSeconds(Optional visitorIdleSeconds) { + this.visitorIdleSeconds = visitorIdleSeconds; + return this; + } + + @java.lang.Override + public _FinalStage layerName(Nullable layerName) { + if (layerName.isNull()) { + this.layerName = null; + } else if (layerName.isEmpty()) { + this.layerName = Optional.empty(); + } else { + this.layerName = Optional.of(layerName.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage layerName(String layerName) { + this.layerName = Optional.ofNullable(layerName); + return this; + } + + @java.lang.Override + @JsonSetter(value = "layerName", nulls = Nulls.SKIP) + public _FinalStage layerName(Optional layerName) { + this.layerName = layerName; + return this; + } + @java.lang.Override public SharesList200ResponseSharesItem build() { return new SharesList200ResponseSharesItem( id, tenantId, docId, + layerMode, layerName, + keepVisitorLayers, + visitorIdleSeconds, + visitorIdentity, scope, origins, passwordProtected, sessionTtlSeconds, disabled, + archivedAt, expiresAt, exchangeCount, lastExchangedAt, diff --git a/src/main/java/api/types/SharesList200ResponseSharesItemLayerMode.java b/src/main/java/api/types/SharesList200ResponseSharesItemLayerMode.java new file mode 100644 index 0000000..45f9b81 --- /dev/null +++ b/src/main/java/api/types/SharesList200ResponseSharesItemLayerMode.java @@ -0,0 +1,86 @@ +/** + * 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 SharesList200ResponseSharesItemLayerMode { + public static final SharesList200ResponseSharesItemLayerMode PER_VISITOR = + new SharesList200ResponseSharesItemLayerMode(Value.PER_VISITOR, "per-visitor"); + + public static final SharesList200ResponseSharesItemLayerMode SHARED = + new SharesList200ResponseSharesItemLayerMode(Value.SHARED, "shared"); + + private final Value value; + + private final String string; + + SharesList200ResponseSharesItemLayerMode(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 SharesList200ResponseSharesItemLayerMode + && this.string.equals(((SharesList200ResponseSharesItemLayerMode) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case PER_VISITOR: + return visitor.visitPerVisitor(); + case SHARED: + return visitor.visitShared(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesList200ResponseSharesItemLayerMode valueOf(String value) { + switch (value) { + case "per-visitor": + return PER_VISITOR; + case "shared": + return SHARED; + default: + return new SharesList200ResponseSharesItemLayerMode(Value.UNKNOWN, value); + } + } + + public enum Value { + SHARED, + + PER_VISITOR, + + UNKNOWN + } + + public interface Visitor { + T visitShared(); + + T visitPerVisitor(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentity.java b/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentity.java new file mode 100644 index 0000000..47e56ac --- /dev/null +++ b/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentity.java @@ -0,0 +1,208 @@ +/** + * 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.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 = SharesList200ResponseSharesItemVisitorIdentity.Builder.class) +public final class SharesList200ResponseSharesItemVisitorIdentity { + private final SharesList200ResponseSharesItemVisitorIdentityFields fields; + + private final SharesList200ResponseSharesItemVisitorIdentityAsk ask; + + private final Optional purpose; + + private final Optional privacyUrl; + + private final Map additionalProperties; + + private SharesList200ResponseSharesItemVisitorIdentity( + SharesList200ResponseSharesItemVisitorIdentityFields fields, + SharesList200ResponseSharesItemVisitorIdentityAsk ask, + Optional purpose, + Optional privacyUrl, + Map additionalProperties) { + this.fields = fields; + this.ask = ask; + this.purpose = purpose; + this.privacyUrl = privacyUrl; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("fields") + public SharesList200ResponseSharesItemVisitorIdentityFields getFields() { + return fields; + } + + @JsonProperty("ask") + public SharesList200ResponseSharesItemVisitorIdentityAsk getAsk() { + return ask; + } + + @JsonProperty("purpose") + public Optional getPurpose() { + return purpose; + } + + @JsonProperty("privacyUrl") + public Optional getPrivacyUrl() { + return privacyUrl; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesList200ResponseSharesItemVisitorIdentity + && equalTo((SharesList200ResponseSharesItemVisitorIdentity) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesList200ResponseSharesItemVisitorIdentity other) { + return fields.equals(other.fields) + && ask.equals(other.ask) + && purpose.equals(other.purpose) + && privacyUrl.equals(other.privacyUrl); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.fields, this.ask, this.purpose, this.privacyUrl); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static FieldsStage builder() { + return new Builder(); + } + + public interface FieldsStage { + AskStage fields(@NotNull SharesList200ResponseSharesItemVisitorIdentityFields fields); + + Builder from(SharesList200ResponseSharesItemVisitorIdentity other); + } + + public interface AskStage { + _FinalStage ask(@NotNull SharesList200ResponseSharesItemVisitorIdentityAsk ask); + } + + public interface _FinalStage { + SharesList200ResponseSharesItemVisitorIdentity build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage purpose(Optional purpose); + + _FinalStage purpose(String purpose); + + _FinalStage privacyUrl(Optional privacyUrl); + + _FinalStage privacyUrl(String privacyUrl); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements FieldsStage, AskStage, _FinalStage { + private SharesList200ResponseSharesItemVisitorIdentityFields fields; + + private SharesList200ResponseSharesItemVisitorIdentityAsk ask; + + private Optional privacyUrl = Optional.empty(); + + private Optional purpose = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(SharesList200ResponseSharesItemVisitorIdentity other) { + fields(other.getFields()); + ask(other.getAsk()); + purpose(other.getPurpose()); + privacyUrl(other.getPrivacyUrl()); + return this; + } + + @java.lang.Override + @JsonSetter("fields") + public AskStage fields(@NotNull SharesList200ResponseSharesItemVisitorIdentityFields fields) { + this.fields = Objects.requireNonNull(fields, "fields must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("ask") + public _FinalStage ask(@NotNull SharesList200ResponseSharesItemVisitorIdentityAsk ask) { + this.ask = Objects.requireNonNull(ask, "ask must not be null"); + return this; + } + + @java.lang.Override + public _FinalStage privacyUrl(String privacyUrl) { + this.privacyUrl = Optional.ofNullable(privacyUrl); + return this; + } + + @java.lang.Override + @JsonSetter(value = "privacyUrl", nulls = Nulls.SKIP) + public _FinalStage privacyUrl(Optional privacyUrl) { + this.privacyUrl = privacyUrl; + return this; + } + + @java.lang.Override + public _FinalStage purpose(String purpose) { + this.purpose = Optional.ofNullable(purpose); + return this; + } + + @java.lang.Override + @JsonSetter(value = "purpose", nulls = Nulls.SKIP) + public _FinalStage purpose(Optional purpose) { + this.purpose = purpose; + return this; + } + + @java.lang.Override + public SharesList200ResponseSharesItemVisitorIdentity build() { + return new SharesList200ResponseSharesItemVisitorIdentity( + fields, ask, purpose, privacyUrl, 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/SharesList200ResponseSharesItemVisitorIdentityAsk.java b/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityAsk.java new file mode 100644 index 0000000..08c2f88 --- /dev/null +++ b/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityAsk.java @@ -0,0 +1,86 @@ +/** + * 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 SharesList200ResponseSharesItemVisitorIdentityAsk { + public static final SharesList200ResponseSharesItemVisitorIdentityAsk ON_OPEN = + new SharesList200ResponseSharesItemVisitorIdentityAsk(Value.ON_OPEN, "on-open"); + + public static final SharesList200ResponseSharesItemVisitorIdentityAsk BEFORE_FIRST_CHANGE = + new SharesList200ResponseSharesItemVisitorIdentityAsk(Value.BEFORE_FIRST_CHANGE, "before-first-change"); + + private final Value value; + + private final String string; + + SharesList200ResponseSharesItemVisitorIdentityAsk(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 SharesList200ResponseSharesItemVisitorIdentityAsk + && this.string.equals(((SharesList200ResponseSharesItemVisitorIdentityAsk) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case ON_OPEN: + return visitor.visitOnOpen(); + case BEFORE_FIRST_CHANGE: + return visitor.visitBeforeFirstChange(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesList200ResponseSharesItemVisitorIdentityAsk valueOf(String value) { + switch (value) { + case "on-open": + return ON_OPEN; + case "before-first-change": + return BEFORE_FIRST_CHANGE; + default: + return new SharesList200ResponseSharesItemVisitorIdentityAsk(Value.UNKNOWN, value); + } + } + + public enum Value { + ON_OPEN, + + BEFORE_FIRST_CHANGE, + + UNKNOWN + } + + public interface Visitor { + T visitOnOpen(); + + T visitBeforeFirstChange(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityFields.java b/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityFields.java new file mode 100644 index 0000000..dbd01ec --- /dev/null +++ b/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityFields.java @@ -0,0 +1,212 @@ +/** + * 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.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 = SharesList200ResponseSharesItemVisitorIdentityFields.Builder.class) +public final class SharesList200ResponseSharesItemVisitorIdentityFields { + private final Optional displayName; + + private final Optional email; + + private final Optional title; + + private final Optional organization; + + private final Optional organizationalUnit; + + private final Map additionalProperties; + + private SharesList200ResponseSharesItemVisitorIdentityFields( + Optional displayName, + Optional email, + Optional title, + Optional organization, + Optional organizationalUnit, + Map additionalProperties) { + this.displayName = displayName; + this.email = email; + this.title = title; + this.organization = organization; + this.organizationalUnit = organizationalUnit; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("displayName") + public Optional getDisplayName() { + return displayName; + } + + @JsonProperty("email") + public Optional getEmail() { + return email; + } + + @JsonProperty("title") + public Optional getTitle() { + return title; + } + + @JsonProperty("organization") + public Optional getOrganization() { + return organization; + } + + @JsonProperty("organizationalUnit") + public Optional getOrganizationalUnit() { + return organizationalUnit; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesList200ResponseSharesItemVisitorIdentityFields + && equalTo((SharesList200ResponseSharesItemVisitorIdentityFields) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesList200ResponseSharesItemVisitorIdentityFields other) { + return displayName.equals(other.displayName) + && email.equals(other.email) + && title.equals(other.title) + && organization.equals(other.organization) + && organizationalUnit.equals(other.organizationalUnit); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.displayName, this.email, this.title, this.organization, this.organizationalUnit); + } + + @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 displayName = + Optional.empty(); + + private Optional email = Optional.empty(); + + private Optional title = Optional.empty(); + + private Optional organization = + Optional.empty(); + + private Optional organizationalUnit = + Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(SharesList200ResponseSharesItemVisitorIdentityFields other) { + displayName(other.getDisplayName()); + email(other.getEmail()); + title(other.getTitle()); + organization(other.getOrganization()); + organizationalUnit(other.getOrganizationalUnit()); + return this; + } + + @JsonSetter(value = "displayName", nulls = Nulls.SKIP) + public Builder displayName( + Optional displayName) { + this.displayName = displayName; + return this; + } + + public Builder displayName(SharesList200ResponseSharesItemVisitorIdentityFieldsDisplayName displayName) { + this.displayName = Optional.ofNullable(displayName); + return this; + } + + @JsonSetter(value = "email", nulls = Nulls.SKIP) + public Builder email(Optional email) { + this.email = email; + return this; + } + + public Builder email(SharesList200ResponseSharesItemVisitorIdentityFieldsEmail email) { + this.email = Optional.ofNullable(email); + return this; + } + + @JsonSetter(value = "title", nulls = Nulls.SKIP) + public Builder title(Optional title) { + this.title = title; + return this; + } + + public Builder title(SharesList200ResponseSharesItemVisitorIdentityFieldsTitle title) { + this.title = Optional.ofNullable(title); + return this; + } + + @JsonSetter(value = "organization", nulls = Nulls.SKIP) + public Builder organization( + Optional organization) { + this.organization = organization; + return this; + } + + public Builder organization(SharesList200ResponseSharesItemVisitorIdentityFieldsOrganization organization) { + this.organization = Optional.ofNullable(organization); + return this; + } + + @JsonSetter(value = "organizationalUnit", nulls = Nulls.SKIP) + public Builder organizationalUnit( + Optional organizationalUnit) { + this.organizationalUnit = organizationalUnit; + return this; + } + + public Builder organizationalUnit( + SharesList200ResponseSharesItemVisitorIdentityFieldsOrganizationalUnit organizationalUnit) { + this.organizationalUnit = Optional.ofNullable(organizationalUnit); + return this; + } + + public SharesList200ResponseSharesItemVisitorIdentityFields build() { + return new SharesList200ResponseSharesItemVisitorIdentityFields( + displayName, email, title, organization, organizationalUnit, 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/types/SharesList200ResponseSharesItemVisitorIdentityFieldsDisplayName.java b/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityFieldsDisplayName.java new file mode 100644 index 0000000..9f66588 --- /dev/null +++ b/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityFieldsDisplayName.java @@ -0,0 +1,87 @@ +/** + * 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 SharesList200ResponseSharesItemVisitorIdentityFieldsDisplayName { + public static final SharesList200ResponseSharesItemVisitorIdentityFieldsDisplayName REQUIRED = + new SharesList200ResponseSharesItemVisitorIdentityFieldsDisplayName(Value.REQUIRED, "required"); + + public static final SharesList200ResponseSharesItemVisitorIdentityFieldsDisplayName OPTIONAL = + new SharesList200ResponseSharesItemVisitorIdentityFieldsDisplayName(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesList200ResponseSharesItemVisitorIdentityFieldsDisplayName(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 SharesList200ResponseSharesItemVisitorIdentityFieldsDisplayName + && this.string.equals( + ((SharesList200ResponseSharesItemVisitorIdentityFieldsDisplayName) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesList200ResponseSharesItemVisitorIdentityFieldsDisplayName valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesList200ResponseSharesItemVisitorIdentityFieldsDisplayName(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityFieldsEmail.java b/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityFieldsEmail.java new file mode 100644 index 0000000..5244bdc --- /dev/null +++ b/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityFieldsEmail.java @@ -0,0 +1,87 @@ +/** + * 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 SharesList200ResponseSharesItemVisitorIdentityFieldsEmail { + public static final SharesList200ResponseSharesItemVisitorIdentityFieldsEmail REQUIRED = + new SharesList200ResponseSharesItemVisitorIdentityFieldsEmail(Value.REQUIRED, "required"); + + public static final SharesList200ResponseSharesItemVisitorIdentityFieldsEmail OPTIONAL = + new SharesList200ResponseSharesItemVisitorIdentityFieldsEmail(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesList200ResponseSharesItemVisitorIdentityFieldsEmail(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 SharesList200ResponseSharesItemVisitorIdentityFieldsEmail + && this.string.equals( + ((SharesList200ResponseSharesItemVisitorIdentityFieldsEmail) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesList200ResponseSharesItemVisitorIdentityFieldsEmail valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesList200ResponseSharesItemVisitorIdentityFieldsEmail(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityFieldsOrganization.java b/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityFieldsOrganization.java new file mode 100644 index 0000000..21d728f --- /dev/null +++ b/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityFieldsOrganization.java @@ -0,0 +1,87 @@ +/** + * 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 SharesList200ResponseSharesItemVisitorIdentityFieldsOrganization { + public static final SharesList200ResponseSharesItemVisitorIdentityFieldsOrganization REQUIRED = + new SharesList200ResponseSharesItemVisitorIdentityFieldsOrganization(Value.REQUIRED, "required"); + + public static final SharesList200ResponseSharesItemVisitorIdentityFieldsOrganization OPTIONAL = + new SharesList200ResponseSharesItemVisitorIdentityFieldsOrganization(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesList200ResponseSharesItemVisitorIdentityFieldsOrganization(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 SharesList200ResponseSharesItemVisitorIdentityFieldsOrganization + && this.string.equals( + ((SharesList200ResponseSharesItemVisitorIdentityFieldsOrganization) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesList200ResponseSharesItemVisitorIdentityFieldsOrganization valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesList200ResponseSharesItemVisitorIdentityFieldsOrganization(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityFieldsOrganizationalUnit.java b/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityFieldsOrganizationalUnit.java new file mode 100644 index 0000000..21a1ae3 --- /dev/null +++ b/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityFieldsOrganizationalUnit.java @@ -0,0 +1,88 @@ +/** + * 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 SharesList200ResponseSharesItemVisitorIdentityFieldsOrganizationalUnit { + public static final SharesList200ResponseSharesItemVisitorIdentityFieldsOrganizationalUnit REQUIRED = + new SharesList200ResponseSharesItemVisitorIdentityFieldsOrganizationalUnit(Value.REQUIRED, "required"); + + public static final SharesList200ResponseSharesItemVisitorIdentityFieldsOrganizationalUnit OPTIONAL = + new SharesList200ResponseSharesItemVisitorIdentityFieldsOrganizationalUnit(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesList200ResponseSharesItemVisitorIdentityFieldsOrganizationalUnit(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 SharesList200ResponseSharesItemVisitorIdentityFieldsOrganizationalUnit + && this.string.equals( + ((SharesList200ResponseSharesItemVisitorIdentityFieldsOrganizationalUnit) other) + .string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesList200ResponseSharesItemVisitorIdentityFieldsOrganizationalUnit valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesList200ResponseSharesItemVisitorIdentityFieldsOrganizationalUnit(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityFieldsTitle.java b/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityFieldsTitle.java new file mode 100644 index 0000000..253f409 --- /dev/null +++ b/src/main/java/api/types/SharesList200ResponseSharesItemVisitorIdentityFieldsTitle.java @@ -0,0 +1,87 @@ +/** + * 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 SharesList200ResponseSharesItemVisitorIdentityFieldsTitle { + public static final SharesList200ResponseSharesItemVisitorIdentityFieldsTitle REQUIRED = + new SharesList200ResponseSharesItemVisitorIdentityFieldsTitle(Value.REQUIRED, "required"); + + public static final SharesList200ResponseSharesItemVisitorIdentityFieldsTitle OPTIONAL = + new SharesList200ResponseSharesItemVisitorIdentityFieldsTitle(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesList200ResponseSharesItemVisitorIdentityFieldsTitle(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 SharesList200ResponseSharesItemVisitorIdentityFieldsTitle + && this.string.equals( + ((SharesList200ResponseSharesItemVisitorIdentityFieldsTitle) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesList200ResponseSharesItemVisitorIdentityFieldsTitle valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesList200ResponseSharesItemVisitorIdentityFieldsTitle(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesUpdate200ResponseShare.java b/src/main/java/api/types/SharesUpdate200ResponseShare.java index b62289f..a4680a0 100644 --- a/src/main/java/api/types/SharesUpdate200ResponseShare.java +++ b/src/main/java/api/types/SharesUpdate200ResponseShare.java @@ -32,7 +32,15 @@ public final class SharesUpdate200ResponseShare { private final String docId; - private final String layerName; + private final SharesUpdate200ResponseShareLayerMode layerMode; + + private final Optional layerName; + + private final boolean keepVisitorLayers; + + private final Optional visitorIdleSeconds; + + private final Optional visitorIdentity; private final List scope; @@ -44,6 +52,8 @@ public final class SharesUpdate200ResponseShare { private final boolean disabled; + private final Optional archivedAt; + private final Optional expiresAt; private final double exchangeCount; @@ -62,12 +72,17 @@ private SharesUpdate200ResponseShare( String id, String tenantId, String docId, - String layerName, + SharesUpdate200ResponseShareLayerMode layerMode, + Optional layerName, + boolean keepVisitorLayers, + Optional visitorIdleSeconds, + Optional visitorIdentity, List scope, Optional> origins, boolean passwordProtected, double sessionTtlSeconds, boolean disabled, + Optional archivedAt, Optional expiresAt, double exchangeCount, Optional lastExchangedAt, @@ -78,12 +93,17 @@ private SharesUpdate200ResponseShare( this.id = id; this.tenantId = tenantId; this.docId = docId; + this.layerMode = layerMode; this.layerName = layerName; + this.keepVisitorLayers = keepVisitorLayers; + this.visitorIdleSeconds = visitorIdleSeconds; + this.visitorIdentity = visitorIdentity; this.scope = scope; this.origins = origins; this.passwordProtected = passwordProtected; this.sessionTtlSeconds = sessionTtlSeconds; this.disabled = disabled; + this.archivedAt = archivedAt; this.expiresAt = expiresAt; this.exchangeCount = exchangeCount; this.lastExchangedAt = lastExchangedAt; @@ -108,11 +128,40 @@ public String getDocId() { return docId; } - @JsonProperty("layerName") - public String getLayerName() { + @JsonProperty("layerMode") + public SharesUpdate200ResponseShareLayerMode getLayerMode() { + return layerMode; + } + + @JsonIgnore + public Optional getLayerName() { + if (layerName == null) { + return Optional.empty(); + } return layerName; } + @JsonProperty("keepVisitorLayers") + public boolean getKeepVisitorLayers() { + return keepVisitorLayers; + } + + @JsonIgnore + public Optional getVisitorIdleSeconds() { + if (visitorIdleSeconds == null) { + return Optional.empty(); + } + return visitorIdleSeconds; + } + + @JsonIgnore + public Optional getVisitorIdentity() { + if (visitorIdentity == null) { + return Optional.empty(); + } + return visitorIdentity; + } + @JsonProperty("scope") public List getScope() { return scope; @@ -141,6 +190,14 @@ public boolean getDisabled() { return disabled; } + @JsonIgnore + public Optional getArchivedAt() { + if (archivedAt == null) { + return Optional.empty(); + } + return archivedAt; + } + @JsonIgnore public Optional getExpiresAt() { if (expiresAt == null) { @@ -177,12 +234,36 @@ public double getUpdatedAt() { return updatedAt; } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("layerName") + private Optional _getLayerName() { + return layerName; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("visitorIdleSeconds") + private Optional _getVisitorIdleSeconds() { + return visitorIdleSeconds; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("visitorIdentity") + private Optional _getVisitorIdentity() { + return visitorIdentity; + } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) @JsonProperty("origins") private Optional> _getOrigins() { return origins; } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("archivedAt") + private Optional _getArchivedAt() { + return archivedAt; + } + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) @JsonProperty("expiresAt") private Optional _getExpiresAt() { @@ -210,12 +291,17 @@ private boolean equalTo(SharesUpdate200ResponseShare other) { return id.equals(other.id) && tenantId.equals(other.tenantId) && docId.equals(other.docId) + && layerMode.equals(other.layerMode) && layerName.equals(other.layerName) + && keepVisitorLayers == other.keepVisitorLayers + && visitorIdleSeconds.equals(other.visitorIdleSeconds) + && visitorIdentity.equals(other.visitorIdentity) && scope.equals(other.scope) && origins.equals(other.origins) && passwordProtected == other.passwordProtected && sessionTtlSeconds == other.sessionTtlSeconds && disabled == other.disabled + && archivedAt.equals(other.archivedAt) && expiresAt.equals(other.expiresAt) && exchangeCount == other.exchangeCount && lastExchangedAt.equals(other.lastExchangedAt) @@ -230,12 +316,17 @@ public int hashCode() { this.id, this.tenantId, this.docId, + this.layerMode, this.layerName, + this.keepVisitorLayers, + this.visitorIdleSeconds, + this.visitorIdentity, this.scope, this.origins, this.passwordProtected, this.sessionTtlSeconds, this.disabled, + this.archivedAt, this.expiresAt, this.exchangeCount, this.lastExchangedAt, @@ -264,11 +355,15 @@ public interface TenantIdStage { } public interface DocIdStage { - LayerNameStage docId(@NotNull String docId); + LayerModeStage docId(@NotNull String docId); } - public interface LayerNameStage { - PasswordProtectedStage layerName(@NotNull String layerName); + public interface LayerModeStage { + KeepVisitorLayersStage layerMode(@NotNull SharesUpdate200ResponseShareLayerMode layerMode); + } + + public interface KeepVisitorLayersStage { + PasswordProtectedStage keepVisitorLayers(boolean keepVisitorLayers); } public interface PasswordProtectedStage { @@ -306,6 +401,24 @@ public interface _FinalStage { _FinalStage additionalProperties(Map additionalProperties); + _FinalStage layerName(Optional layerName); + + _FinalStage layerName(String layerName); + + _FinalStage layerName(Nullable layerName); + + _FinalStage visitorIdleSeconds(Optional visitorIdleSeconds); + + _FinalStage visitorIdleSeconds(Double visitorIdleSeconds); + + _FinalStage visitorIdleSeconds(Nullable visitorIdleSeconds); + + _FinalStage visitorIdentity(Optional visitorIdentity); + + _FinalStage visitorIdentity(SharesUpdate200ResponseShareVisitorIdentity visitorIdentity); + + _FinalStage visitorIdentity(Nullable visitorIdentity); + _FinalStage scope(List scope); _FinalStage addScope(String scope); @@ -318,6 +431,12 @@ public interface _FinalStage { _FinalStage origins(Nullable> origins); + _FinalStage archivedAt(Optional archivedAt); + + _FinalStage archivedAt(Double archivedAt); + + _FinalStage archivedAt(Nullable archivedAt); + _FinalStage expiresAt(Optional expiresAt); _FinalStage expiresAt(Double expiresAt); @@ -336,7 +455,8 @@ public static final class Builder implements IdStage, TenantIdStage, DocIdStage, - LayerNameStage, + LayerModeStage, + KeepVisitorLayersStage, PasswordProtectedStage, SessionTtlSecondsStage, DisabledStage, @@ -351,7 +471,9 @@ public static final class Builder private String docId; - private String layerName; + private SharesUpdate200ResponseShareLayerMode layerMode; + + private boolean keepVisitorLayers; private boolean passwordProtected; @@ -371,10 +493,18 @@ public static final class Builder private Optional expiresAt = Optional.empty(); + private Optional archivedAt = Optional.empty(); + private Optional> origins = Optional.empty(); private List scope = new ArrayList<>(); + private Optional visitorIdentity = Optional.empty(); + + private Optional visitorIdleSeconds = Optional.empty(); + + private Optional layerName = Optional.empty(); + @JsonAnySetter private Map additionalProperties = new HashMap<>(); @@ -385,12 +515,17 @@ public Builder from(SharesUpdate200ResponseShare other) { id(other.getId()); tenantId(other.getTenantId()); docId(other.getDocId()); + layerMode(other.getLayerMode()); layerName(other.getLayerName()); + keepVisitorLayers(other.getKeepVisitorLayers()); + visitorIdleSeconds(other.getVisitorIdleSeconds()); + visitorIdentity(other.getVisitorIdentity()); scope(other.getScope()); origins(other.getOrigins()); passwordProtected(other.getPasswordProtected()); sessionTtlSeconds(other.getSessionTtlSeconds()); disabled(other.getDisabled()); + archivedAt(other.getArchivedAt()); expiresAt(other.getExpiresAt()); exchangeCount(other.getExchangeCount()); lastExchangedAt(other.getLastExchangedAt()); @@ -416,15 +551,22 @@ public DocIdStage tenantId(@NotNull String tenantId) { @java.lang.Override @JsonSetter("docId") - public LayerNameStage docId(@NotNull String docId) { + public LayerModeStage docId(@NotNull String docId) { this.docId = Objects.requireNonNull(docId, "docId must not be null"); return this; } @java.lang.Override - @JsonSetter("layerName") - public PasswordProtectedStage layerName(@NotNull String layerName) { - this.layerName = Objects.requireNonNull(layerName, "layerName must not be null"); + @JsonSetter("layerMode") + public KeepVisitorLayersStage layerMode(@NotNull SharesUpdate200ResponseShareLayerMode layerMode) { + this.layerMode = Objects.requireNonNull(layerMode, "layerMode must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("keepVisitorLayers") + public PasswordProtectedStage keepVisitorLayers(boolean keepVisitorLayers) { + this.keepVisitorLayers = keepVisitorLayers; return this; } @@ -527,6 +669,31 @@ public _FinalStage expiresAt(Optional expiresAt) { return this; } + @java.lang.Override + public _FinalStage archivedAt(Nullable archivedAt) { + if (archivedAt.isNull()) { + this.archivedAt = null; + } else if (archivedAt.isEmpty()) { + this.archivedAt = Optional.empty(); + } else { + this.archivedAt = Optional.of(archivedAt.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage archivedAt(Double archivedAt) { + this.archivedAt = Optional.ofNullable(archivedAt); + return this; + } + + @java.lang.Override + @JsonSetter(value = "archivedAt", nulls = Nulls.SKIP) + public _FinalStage archivedAt(Optional archivedAt) { + this.archivedAt = archivedAt; + return this; + } + @java.lang.Override public _FinalStage origins(Nullable> origins) { if (origins.isNull()) { @@ -576,18 +743,98 @@ public _FinalStage scope(List scope) { return this; } + @java.lang.Override + public _FinalStage visitorIdentity(Nullable visitorIdentity) { + if (visitorIdentity.isNull()) { + this.visitorIdentity = null; + } else if (visitorIdentity.isEmpty()) { + this.visitorIdentity = Optional.empty(); + } else { + this.visitorIdentity = Optional.of(visitorIdentity.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage visitorIdentity(SharesUpdate200ResponseShareVisitorIdentity visitorIdentity) { + this.visitorIdentity = Optional.ofNullable(visitorIdentity); + return this; + } + + @java.lang.Override + @JsonSetter(value = "visitorIdentity", nulls = Nulls.SKIP) + public _FinalStage visitorIdentity(Optional visitorIdentity) { + this.visitorIdentity = visitorIdentity; + return this; + } + + @java.lang.Override + public _FinalStage visitorIdleSeconds(Nullable visitorIdleSeconds) { + if (visitorIdleSeconds.isNull()) { + this.visitorIdleSeconds = null; + } else if (visitorIdleSeconds.isEmpty()) { + this.visitorIdleSeconds = Optional.empty(); + } else { + this.visitorIdleSeconds = Optional.of(visitorIdleSeconds.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage visitorIdleSeconds(Double visitorIdleSeconds) { + this.visitorIdleSeconds = Optional.ofNullable(visitorIdleSeconds); + return this; + } + + @java.lang.Override + @JsonSetter(value = "visitorIdleSeconds", nulls = Nulls.SKIP) + public _FinalStage visitorIdleSeconds(Optional visitorIdleSeconds) { + this.visitorIdleSeconds = visitorIdleSeconds; + return this; + } + + @java.lang.Override + public _FinalStage layerName(Nullable layerName) { + if (layerName.isNull()) { + this.layerName = null; + } else if (layerName.isEmpty()) { + this.layerName = Optional.empty(); + } else { + this.layerName = Optional.of(layerName.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage layerName(String layerName) { + this.layerName = Optional.ofNullable(layerName); + return this; + } + + @java.lang.Override + @JsonSetter(value = "layerName", nulls = Nulls.SKIP) + public _FinalStage layerName(Optional layerName) { + this.layerName = layerName; + return this; + } + @java.lang.Override public SharesUpdate200ResponseShare build() { return new SharesUpdate200ResponseShare( id, tenantId, docId, + layerMode, layerName, + keepVisitorLayers, + visitorIdleSeconds, + visitorIdentity, scope, origins, passwordProtected, sessionTtlSeconds, disabled, + archivedAt, expiresAt, exchangeCount, lastExchangedAt, diff --git a/src/main/java/api/types/SharesUpdate200ResponseShareLayerMode.java b/src/main/java/api/types/SharesUpdate200ResponseShareLayerMode.java new file mode 100644 index 0000000..f92d939 --- /dev/null +++ b/src/main/java/api/types/SharesUpdate200ResponseShareLayerMode.java @@ -0,0 +1,86 @@ +/** + * 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 SharesUpdate200ResponseShareLayerMode { + public static final SharesUpdate200ResponseShareLayerMode PER_VISITOR = + new SharesUpdate200ResponseShareLayerMode(Value.PER_VISITOR, "per-visitor"); + + public static final SharesUpdate200ResponseShareLayerMode SHARED = + new SharesUpdate200ResponseShareLayerMode(Value.SHARED, "shared"); + + private final Value value; + + private final String string; + + SharesUpdate200ResponseShareLayerMode(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 SharesUpdate200ResponseShareLayerMode + && this.string.equals(((SharesUpdate200ResponseShareLayerMode) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case PER_VISITOR: + return visitor.visitPerVisitor(); + case SHARED: + return visitor.visitShared(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesUpdate200ResponseShareLayerMode valueOf(String value) { + switch (value) { + case "per-visitor": + return PER_VISITOR; + case "shared": + return SHARED; + default: + return new SharesUpdate200ResponseShareLayerMode(Value.UNKNOWN, value); + } + } + + public enum Value { + SHARED, + + PER_VISITOR, + + UNKNOWN + } + + public interface Visitor { + T visitShared(); + + T visitPerVisitor(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentity.java b/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentity.java new file mode 100644 index 0000000..0ae89e9 --- /dev/null +++ b/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentity.java @@ -0,0 +1,208 @@ +/** + * 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.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 = SharesUpdate200ResponseShareVisitorIdentity.Builder.class) +public final class SharesUpdate200ResponseShareVisitorIdentity { + private final SharesUpdate200ResponseShareVisitorIdentityFields fields; + + private final SharesUpdate200ResponseShareVisitorIdentityAsk ask; + + private final Optional purpose; + + private final Optional privacyUrl; + + private final Map additionalProperties; + + private SharesUpdate200ResponseShareVisitorIdentity( + SharesUpdate200ResponseShareVisitorIdentityFields fields, + SharesUpdate200ResponseShareVisitorIdentityAsk ask, + Optional purpose, + Optional privacyUrl, + Map additionalProperties) { + this.fields = fields; + this.ask = ask; + this.purpose = purpose; + this.privacyUrl = privacyUrl; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("fields") + public SharesUpdate200ResponseShareVisitorIdentityFields getFields() { + return fields; + } + + @JsonProperty("ask") + public SharesUpdate200ResponseShareVisitorIdentityAsk getAsk() { + return ask; + } + + @JsonProperty("purpose") + public Optional getPurpose() { + return purpose; + } + + @JsonProperty("privacyUrl") + public Optional getPrivacyUrl() { + return privacyUrl; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesUpdate200ResponseShareVisitorIdentity + && equalTo((SharesUpdate200ResponseShareVisitorIdentity) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesUpdate200ResponseShareVisitorIdentity other) { + return fields.equals(other.fields) + && ask.equals(other.ask) + && purpose.equals(other.purpose) + && privacyUrl.equals(other.privacyUrl); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.fields, this.ask, this.purpose, this.privacyUrl); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static FieldsStage builder() { + return new Builder(); + } + + public interface FieldsStage { + AskStage fields(@NotNull SharesUpdate200ResponseShareVisitorIdentityFields fields); + + Builder from(SharesUpdate200ResponseShareVisitorIdentity other); + } + + public interface AskStage { + _FinalStage ask(@NotNull SharesUpdate200ResponseShareVisitorIdentityAsk ask); + } + + public interface _FinalStage { + SharesUpdate200ResponseShareVisitorIdentity build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage purpose(Optional purpose); + + _FinalStage purpose(String purpose); + + _FinalStage privacyUrl(Optional privacyUrl); + + _FinalStage privacyUrl(String privacyUrl); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements FieldsStage, AskStage, _FinalStage { + private SharesUpdate200ResponseShareVisitorIdentityFields fields; + + private SharesUpdate200ResponseShareVisitorIdentityAsk ask; + + private Optional privacyUrl = Optional.empty(); + + private Optional purpose = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(SharesUpdate200ResponseShareVisitorIdentity other) { + fields(other.getFields()); + ask(other.getAsk()); + purpose(other.getPurpose()); + privacyUrl(other.getPrivacyUrl()); + return this; + } + + @java.lang.Override + @JsonSetter("fields") + public AskStage fields(@NotNull SharesUpdate200ResponseShareVisitorIdentityFields fields) { + this.fields = Objects.requireNonNull(fields, "fields must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("ask") + public _FinalStage ask(@NotNull SharesUpdate200ResponseShareVisitorIdentityAsk ask) { + this.ask = Objects.requireNonNull(ask, "ask must not be null"); + return this; + } + + @java.lang.Override + public _FinalStage privacyUrl(String privacyUrl) { + this.privacyUrl = Optional.ofNullable(privacyUrl); + return this; + } + + @java.lang.Override + @JsonSetter(value = "privacyUrl", nulls = Nulls.SKIP) + public _FinalStage privacyUrl(Optional privacyUrl) { + this.privacyUrl = privacyUrl; + return this; + } + + @java.lang.Override + public _FinalStage purpose(String purpose) { + this.purpose = Optional.ofNullable(purpose); + return this; + } + + @java.lang.Override + @JsonSetter(value = "purpose", nulls = Nulls.SKIP) + public _FinalStage purpose(Optional purpose) { + this.purpose = purpose; + return this; + } + + @java.lang.Override + public SharesUpdate200ResponseShareVisitorIdentity build() { + return new SharesUpdate200ResponseShareVisitorIdentity( + fields, ask, purpose, privacyUrl, 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/SharesUpdate200ResponseShareVisitorIdentityAsk.java b/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityAsk.java new file mode 100644 index 0000000..1d9c3b5 --- /dev/null +++ b/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityAsk.java @@ -0,0 +1,86 @@ +/** + * 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 SharesUpdate200ResponseShareVisitorIdentityAsk { + public static final SharesUpdate200ResponseShareVisitorIdentityAsk ON_OPEN = + new SharesUpdate200ResponseShareVisitorIdentityAsk(Value.ON_OPEN, "on-open"); + + public static final SharesUpdate200ResponseShareVisitorIdentityAsk BEFORE_FIRST_CHANGE = + new SharesUpdate200ResponseShareVisitorIdentityAsk(Value.BEFORE_FIRST_CHANGE, "before-first-change"); + + private final Value value; + + private final String string; + + SharesUpdate200ResponseShareVisitorIdentityAsk(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 SharesUpdate200ResponseShareVisitorIdentityAsk + && this.string.equals(((SharesUpdate200ResponseShareVisitorIdentityAsk) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case ON_OPEN: + return visitor.visitOnOpen(); + case BEFORE_FIRST_CHANGE: + return visitor.visitBeforeFirstChange(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesUpdate200ResponseShareVisitorIdentityAsk valueOf(String value) { + switch (value) { + case "on-open": + return ON_OPEN; + case "before-first-change": + return BEFORE_FIRST_CHANGE; + default: + return new SharesUpdate200ResponseShareVisitorIdentityAsk(Value.UNKNOWN, value); + } + } + + public enum Value { + ON_OPEN, + + BEFORE_FIRST_CHANGE, + + UNKNOWN + } + + public interface Visitor { + T visitOnOpen(); + + T visitBeforeFirstChange(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityFields.java b/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityFields.java new file mode 100644 index 0000000..22e574b --- /dev/null +++ b/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityFields.java @@ -0,0 +1,209 @@ +/** + * 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.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 = SharesUpdate200ResponseShareVisitorIdentityFields.Builder.class) +public final class SharesUpdate200ResponseShareVisitorIdentityFields { + private final Optional displayName; + + private final Optional email; + + private final Optional title; + + private final Optional organization; + + private final Optional organizationalUnit; + + private final Map additionalProperties; + + private SharesUpdate200ResponseShareVisitorIdentityFields( + Optional displayName, + Optional email, + Optional title, + Optional organization, + Optional organizationalUnit, + Map additionalProperties) { + this.displayName = displayName; + this.email = email; + this.title = title; + this.organization = organization; + this.organizationalUnit = organizationalUnit; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("displayName") + public Optional getDisplayName() { + return displayName; + } + + @JsonProperty("email") + public Optional getEmail() { + return email; + } + + @JsonProperty("title") + public Optional getTitle() { + return title; + } + + @JsonProperty("organization") + public Optional getOrganization() { + return organization; + } + + @JsonProperty("organizationalUnit") + public Optional getOrganizationalUnit() { + return organizationalUnit; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesUpdate200ResponseShareVisitorIdentityFields + && equalTo((SharesUpdate200ResponseShareVisitorIdentityFields) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesUpdate200ResponseShareVisitorIdentityFields other) { + return displayName.equals(other.displayName) + && email.equals(other.email) + && title.equals(other.title) + && organization.equals(other.organization) + && organizationalUnit.equals(other.organizationalUnit); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.displayName, this.email, this.title, this.organization, this.organizationalUnit); + } + + @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 displayName = Optional.empty(); + + private Optional email = Optional.empty(); + + private Optional title = Optional.empty(); + + private Optional organization = Optional.empty(); + + private Optional organizationalUnit = + Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(SharesUpdate200ResponseShareVisitorIdentityFields other) { + displayName(other.getDisplayName()); + email(other.getEmail()); + title(other.getTitle()); + organization(other.getOrganization()); + organizationalUnit(other.getOrganizationalUnit()); + return this; + } + + @JsonSetter(value = "displayName", nulls = Nulls.SKIP) + public Builder displayName(Optional displayName) { + this.displayName = displayName; + return this; + } + + public Builder displayName(SharesUpdate200ResponseShareVisitorIdentityFieldsDisplayName displayName) { + this.displayName = Optional.ofNullable(displayName); + return this; + } + + @JsonSetter(value = "email", nulls = Nulls.SKIP) + public Builder email(Optional email) { + this.email = email; + return this; + } + + public Builder email(SharesUpdate200ResponseShareVisitorIdentityFieldsEmail email) { + this.email = Optional.ofNullable(email); + return this; + } + + @JsonSetter(value = "title", nulls = Nulls.SKIP) + public Builder title(Optional title) { + this.title = title; + return this; + } + + public Builder title(SharesUpdate200ResponseShareVisitorIdentityFieldsTitle title) { + this.title = Optional.ofNullable(title); + return this; + } + + @JsonSetter(value = "organization", nulls = Nulls.SKIP) + public Builder organization( + Optional organization) { + this.organization = organization; + return this; + } + + public Builder organization(SharesUpdate200ResponseShareVisitorIdentityFieldsOrganization organization) { + this.organization = Optional.ofNullable(organization); + return this; + } + + @JsonSetter(value = "organizationalUnit", nulls = Nulls.SKIP) + public Builder organizationalUnit( + Optional organizationalUnit) { + this.organizationalUnit = organizationalUnit; + return this; + } + + public Builder organizationalUnit( + SharesUpdate200ResponseShareVisitorIdentityFieldsOrganizationalUnit organizationalUnit) { + this.organizationalUnit = Optional.ofNullable(organizationalUnit); + return this; + } + + public SharesUpdate200ResponseShareVisitorIdentityFields build() { + return new SharesUpdate200ResponseShareVisitorIdentityFields( + displayName, email, title, organization, organizationalUnit, 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/types/SharesUpdate200ResponseShareVisitorIdentityFieldsDisplayName.java b/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityFieldsDisplayName.java new file mode 100644 index 0000000..f41c4c6 --- /dev/null +++ b/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityFieldsDisplayName.java @@ -0,0 +1,87 @@ +/** + * 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 SharesUpdate200ResponseShareVisitorIdentityFieldsDisplayName { + public static final SharesUpdate200ResponseShareVisitorIdentityFieldsDisplayName REQUIRED = + new SharesUpdate200ResponseShareVisitorIdentityFieldsDisplayName(Value.REQUIRED, "required"); + + public static final SharesUpdate200ResponseShareVisitorIdentityFieldsDisplayName OPTIONAL = + new SharesUpdate200ResponseShareVisitorIdentityFieldsDisplayName(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesUpdate200ResponseShareVisitorIdentityFieldsDisplayName(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 SharesUpdate200ResponseShareVisitorIdentityFieldsDisplayName + && this.string.equals( + ((SharesUpdate200ResponseShareVisitorIdentityFieldsDisplayName) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesUpdate200ResponseShareVisitorIdentityFieldsDisplayName valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesUpdate200ResponseShareVisitorIdentityFieldsDisplayName(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityFieldsEmail.java b/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityFieldsEmail.java new file mode 100644 index 0000000..b7ef56e --- /dev/null +++ b/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityFieldsEmail.java @@ -0,0 +1,86 @@ +/** + * 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 SharesUpdate200ResponseShareVisitorIdentityFieldsEmail { + public static final SharesUpdate200ResponseShareVisitorIdentityFieldsEmail REQUIRED = + new SharesUpdate200ResponseShareVisitorIdentityFieldsEmail(Value.REQUIRED, "required"); + + public static final SharesUpdate200ResponseShareVisitorIdentityFieldsEmail OPTIONAL = + new SharesUpdate200ResponseShareVisitorIdentityFieldsEmail(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesUpdate200ResponseShareVisitorIdentityFieldsEmail(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 SharesUpdate200ResponseShareVisitorIdentityFieldsEmail + && this.string.equals(((SharesUpdate200ResponseShareVisitorIdentityFieldsEmail) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesUpdate200ResponseShareVisitorIdentityFieldsEmail valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesUpdate200ResponseShareVisitorIdentityFieldsEmail(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityFieldsOrganization.java b/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityFieldsOrganization.java new file mode 100644 index 0000000..cea8393 --- /dev/null +++ b/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityFieldsOrganization.java @@ -0,0 +1,87 @@ +/** + * 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 SharesUpdate200ResponseShareVisitorIdentityFieldsOrganization { + public static final SharesUpdate200ResponseShareVisitorIdentityFieldsOrganization REQUIRED = + new SharesUpdate200ResponseShareVisitorIdentityFieldsOrganization(Value.REQUIRED, "required"); + + public static final SharesUpdate200ResponseShareVisitorIdentityFieldsOrganization OPTIONAL = + new SharesUpdate200ResponseShareVisitorIdentityFieldsOrganization(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesUpdate200ResponseShareVisitorIdentityFieldsOrganization(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 SharesUpdate200ResponseShareVisitorIdentityFieldsOrganization + && this.string.equals( + ((SharesUpdate200ResponseShareVisitorIdentityFieldsOrganization) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesUpdate200ResponseShareVisitorIdentityFieldsOrganization valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesUpdate200ResponseShareVisitorIdentityFieldsOrganization(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityFieldsOrganizationalUnit.java b/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityFieldsOrganizationalUnit.java new file mode 100644 index 0000000..f17f120 --- /dev/null +++ b/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityFieldsOrganizationalUnit.java @@ -0,0 +1,87 @@ +/** + * 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 SharesUpdate200ResponseShareVisitorIdentityFieldsOrganizationalUnit { + public static final SharesUpdate200ResponseShareVisitorIdentityFieldsOrganizationalUnit REQUIRED = + new SharesUpdate200ResponseShareVisitorIdentityFieldsOrganizationalUnit(Value.REQUIRED, "required"); + + public static final SharesUpdate200ResponseShareVisitorIdentityFieldsOrganizationalUnit OPTIONAL = + new SharesUpdate200ResponseShareVisitorIdentityFieldsOrganizationalUnit(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesUpdate200ResponseShareVisitorIdentityFieldsOrganizationalUnit(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 SharesUpdate200ResponseShareVisitorIdentityFieldsOrganizationalUnit + && this.string.equals( + ((SharesUpdate200ResponseShareVisitorIdentityFieldsOrganizationalUnit) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesUpdate200ResponseShareVisitorIdentityFieldsOrganizationalUnit valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesUpdate200ResponseShareVisitorIdentityFieldsOrganizationalUnit(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityFieldsTitle.java b/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityFieldsTitle.java new file mode 100644 index 0000000..9c1a48f --- /dev/null +++ b/src/main/java/api/types/SharesUpdate200ResponseShareVisitorIdentityFieldsTitle.java @@ -0,0 +1,86 @@ +/** + * 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 SharesUpdate200ResponseShareVisitorIdentityFieldsTitle { + public static final SharesUpdate200ResponseShareVisitorIdentityFieldsTitle REQUIRED = + new SharesUpdate200ResponseShareVisitorIdentityFieldsTitle(Value.REQUIRED, "required"); + + public static final SharesUpdate200ResponseShareVisitorIdentityFieldsTitle OPTIONAL = + new SharesUpdate200ResponseShareVisitorIdentityFieldsTitle(Value.OPTIONAL, "optional"); + + private final Value value; + + private final String string; + + SharesUpdate200ResponseShareVisitorIdentityFieldsTitle(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 SharesUpdate200ResponseShareVisitorIdentityFieldsTitle + && this.string.equals(((SharesUpdate200ResponseShareVisitorIdentityFieldsTitle) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case REQUIRED: + return visitor.visitRequired(); + case OPTIONAL: + return visitor.visitOptional(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static SharesUpdate200ResponseShareVisitorIdentityFieldsTitle valueOf(String value) { + switch (value) { + case "required": + return REQUIRED; + case "optional": + return OPTIONAL; + default: + return new SharesUpdate200ResponseShareVisitorIdentityFieldsTitle(Value.UNKNOWN, value); + } + } + + public enum Value { + REQUIRED, + + OPTIONAL, + + UNKNOWN + } + + public interface Visitor { + T visitRequired(); + + T visitOptional(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/api/types/SharesVisitorsList200Response.java b/src/main/java/api/types/SharesVisitorsList200Response.java new file mode 100644 index 0000000..5e68f50 --- /dev/null +++ b/src/main/java/api/types/SharesVisitorsList200Response.java @@ -0,0 +1,165 @@ +/** + * 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.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = SharesVisitorsList200Response.Builder.class) +public final class SharesVisitorsList200Response { + private final List visitors; + + private final Optional nextCursor; + + private final Map additionalProperties; + + private SharesVisitorsList200Response( + List visitors, + Optional nextCursor, + Map additionalProperties) { + this.visitors = visitors; + this.nextCursor = nextCursor; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("visitors") + public List getVisitors() { + return visitors; + } + + @JsonIgnore + public Optional getNextCursor() { + if (nextCursor == null) { + return Optional.empty(); + } + return nextCursor; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("nextCursor") + private Optional _getNextCursor() { + return nextCursor; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesVisitorsList200Response && equalTo((SharesVisitorsList200Response) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesVisitorsList200Response other) { + return visitors.equals(other.visitors) && nextCursor.equals(other.nextCursor); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.visitors, this.nextCursor); + } + + @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 List visitors = new ArrayList<>(); + + private Optional nextCursor = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(SharesVisitorsList200Response other) { + visitors(other.getVisitors()); + nextCursor(other.getNextCursor()); + return this; + } + + @JsonSetter(value = "visitors", nulls = Nulls.SKIP) + public Builder visitors(List visitors) { + this.visitors.clear(); + if (visitors != null) { + this.visitors.addAll(visitors); + } + return this; + } + + public Builder addVisitors(SharesVisitorsList200ResponseVisitorsItem visitors) { + this.visitors.add(visitors); + return this; + } + + public Builder addAllVisitors(List visitors) { + if (visitors != null) { + this.visitors.addAll(visitors); + } + return this; + } + + @JsonSetter(value = "nextCursor", nulls = Nulls.SKIP) + public Builder nextCursor(Optional nextCursor) { + this.nextCursor = nextCursor; + return this; + } + + public Builder nextCursor(String nextCursor) { + this.nextCursor = Optional.ofNullable(nextCursor); + return this; + } + + public Builder nextCursor(Nullable nextCursor) { + if (nextCursor.isNull()) { + this.nextCursor = null; + } else if (nextCursor.isEmpty()) { + this.nextCursor = Optional.empty(); + } else { + this.nextCursor = Optional.of(nextCursor.get()); + } + return this; + } + + public SharesVisitorsList200Response build() { + return new SharesVisitorsList200Response(visitors, nextCursor, 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/types/SharesVisitorsList200ResponseVisitorsItem.java b/src/main/java/api/types/SharesVisitorsList200ResponseVisitorsItem.java new file mode 100644 index 0000000..1d8c779 --- /dev/null +++ b/src/main/java/api/types/SharesVisitorsList200ResponseVisitorsItem.java @@ -0,0 +1,349 @@ +/** + * 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 = SharesVisitorsList200ResponseVisitorsItem.Builder.class) +public final class SharesVisitorsList200ResponseVisitorsItem { + private final String visitorId; + + private final SharesVisitorsList200ResponseVisitorsItemAnswers answers; + + private final boolean emailVerified; + + private final Optional consentedAt; + + private final double firstSeenAt; + + private final double lastSeenAt; + + private final Optional layer; + + private final Map additionalProperties; + + private SharesVisitorsList200ResponseVisitorsItem( + String visitorId, + SharesVisitorsList200ResponseVisitorsItemAnswers answers, + boolean emailVerified, + Optional consentedAt, + double firstSeenAt, + double lastSeenAt, + Optional layer, + Map additionalProperties) { + this.visitorId = visitorId; + this.answers = answers; + this.emailVerified = emailVerified; + this.consentedAt = consentedAt; + this.firstSeenAt = firstSeenAt; + this.lastSeenAt = lastSeenAt; + this.layer = layer; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("visitorId") + public String getVisitorId() { + return visitorId; + } + + @JsonProperty("answers") + public SharesVisitorsList200ResponseVisitorsItemAnswers getAnswers() { + return answers; + } + + @JsonProperty("emailVerified") + public boolean getEmailVerified() { + return emailVerified; + } + + @JsonIgnore + public Optional getConsentedAt() { + if (consentedAt == null) { + return Optional.empty(); + } + return consentedAt; + } + + @JsonProperty("firstSeenAt") + public double getFirstSeenAt() { + return firstSeenAt; + } + + @JsonProperty("lastSeenAt") + public double getLastSeenAt() { + return lastSeenAt; + } + + @JsonIgnore + public Optional getLayer() { + if (layer == null) { + return Optional.empty(); + } + return layer; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("consentedAt") + private Optional _getConsentedAt() { + return consentedAt; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("layer") + private Optional _getLayer() { + return layer; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesVisitorsList200ResponseVisitorsItem + && equalTo((SharesVisitorsList200ResponseVisitorsItem) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesVisitorsList200ResponseVisitorsItem other) { + return visitorId.equals(other.visitorId) + && answers.equals(other.answers) + && emailVerified == other.emailVerified + && consentedAt.equals(other.consentedAt) + && firstSeenAt == other.firstSeenAt + && lastSeenAt == other.lastSeenAt + && layer.equals(other.layer); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash( + this.visitorId, + this.answers, + this.emailVerified, + this.consentedAt, + this.firstSeenAt, + this.lastSeenAt, + this.layer); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static VisitorIdStage builder() { + return new Builder(); + } + + public interface VisitorIdStage { + AnswersStage visitorId(@NotNull String visitorId); + + Builder from(SharesVisitorsList200ResponseVisitorsItem other); + } + + public interface AnswersStage { + EmailVerifiedStage answers(@NotNull SharesVisitorsList200ResponseVisitorsItemAnswers answers); + } + + public interface EmailVerifiedStage { + FirstSeenAtStage emailVerified(boolean emailVerified); + } + + public interface FirstSeenAtStage { + LastSeenAtStage firstSeenAt(double firstSeenAt); + } + + public interface LastSeenAtStage { + _FinalStage lastSeenAt(double lastSeenAt); + } + + public interface _FinalStage { + SharesVisitorsList200ResponseVisitorsItem build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage consentedAt(Optional consentedAt); + + _FinalStage consentedAt(Double consentedAt); + + _FinalStage consentedAt(Nullable consentedAt); + + _FinalStage layer(Optional layer); + + _FinalStage layer(SharesVisitorsList200ResponseVisitorsItemLayer layer); + + _FinalStage layer(Nullable layer); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder + implements VisitorIdStage, + AnswersStage, + EmailVerifiedStage, + FirstSeenAtStage, + LastSeenAtStage, + _FinalStage { + private String visitorId; + + private SharesVisitorsList200ResponseVisitorsItemAnswers answers; + + private boolean emailVerified; + + private double firstSeenAt; + + private double lastSeenAt; + + private Optional layer = Optional.empty(); + + private Optional consentedAt = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(SharesVisitorsList200ResponseVisitorsItem other) { + visitorId(other.getVisitorId()); + answers(other.getAnswers()); + emailVerified(other.getEmailVerified()); + consentedAt(other.getConsentedAt()); + firstSeenAt(other.getFirstSeenAt()); + lastSeenAt(other.getLastSeenAt()); + layer(other.getLayer()); + return this; + } + + @java.lang.Override + @JsonSetter("visitorId") + public AnswersStage visitorId(@NotNull String visitorId) { + this.visitorId = Objects.requireNonNull(visitorId, "visitorId must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("answers") + public EmailVerifiedStage answers(@NotNull SharesVisitorsList200ResponseVisitorsItemAnswers answers) { + this.answers = Objects.requireNonNull(answers, "answers must not be null"); + return this; + } + + @java.lang.Override + @JsonSetter("emailVerified") + public FirstSeenAtStage emailVerified(boolean emailVerified) { + this.emailVerified = emailVerified; + return this; + } + + @java.lang.Override + @JsonSetter("firstSeenAt") + public LastSeenAtStage firstSeenAt(double firstSeenAt) { + this.firstSeenAt = firstSeenAt; + return this; + } + + @java.lang.Override + @JsonSetter("lastSeenAt") + public _FinalStage lastSeenAt(double lastSeenAt) { + this.lastSeenAt = lastSeenAt; + return this; + } + + @java.lang.Override + public _FinalStage layer(Nullable layer) { + if (layer.isNull()) { + this.layer = null; + } else if (layer.isEmpty()) { + this.layer = Optional.empty(); + } else { + this.layer = Optional.of(layer.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage layer(SharesVisitorsList200ResponseVisitorsItemLayer layer) { + this.layer = Optional.ofNullable(layer); + return this; + } + + @java.lang.Override + @JsonSetter(value = "layer", nulls = Nulls.SKIP) + public _FinalStage layer(Optional layer) { + this.layer = layer; + return this; + } + + @java.lang.Override + public _FinalStage consentedAt(Nullable consentedAt) { + if (consentedAt.isNull()) { + this.consentedAt = null; + } else if (consentedAt.isEmpty()) { + this.consentedAt = Optional.empty(); + } else { + this.consentedAt = Optional.of(consentedAt.get()); + } + return this; + } + + @java.lang.Override + public _FinalStage consentedAt(Double consentedAt) { + this.consentedAt = Optional.ofNullable(consentedAt); + return this; + } + + @java.lang.Override + @JsonSetter(value = "consentedAt", nulls = Nulls.SKIP) + public _FinalStage consentedAt(Optional consentedAt) { + this.consentedAt = consentedAt; + return this; + } + + @java.lang.Override + public SharesVisitorsList200ResponseVisitorsItem build() { + return new SharesVisitorsList200ResponseVisitorsItem( + visitorId, + answers, + emailVerified, + consentedAt, + firstSeenAt, + lastSeenAt, + layer, + 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/SharesVisitorsList200ResponseVisitorsItemAnswers.java b/src/main/java/api/types/SharesVisitorsList200ResponseVisitorsItemAnswers.java new file mode 100644 index 0000000..b63c781 --- /dev/null +++ b/src/main/java/api/types/SharesVisitorsList200ResponseVisitorsItemAnswers.java @@ -0,0 +1,205 @@ +/** + * 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.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 = SharesVisitorsList200ResponseVisitorsItemAnswers.Builder.class) +public final class SharesVisitorsList200ResponseVisitorsItemAnswers { + private final Optional displayName; + + private final Optional email; + + private final Optional title; + + private final Optional organization; + + private final Optional organizationalUnit; + + private final Map additionalProperties; + + private SharesVisitorsList200ResponseVisitorsItemAnswers( + Optional displayName, + Optional email, + Optional title, + Optional organization, + Optional organizationalUnit, + Map additionalProperties) { + this.displayName = displayName; + this.email = email; + this.title = title; + this.organization = organization; + this.organizationalUnit = organizationalUnit; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("displayName") + public Optional getDisplayName() { + return displayName; + } + + @JsonProperty("email") + public Optional getEmail() { + return email; + } + + @JsonProperty("title") + public Optional getTitle() { + return title; + } + + @JsonProperty("organization") + public Optional getOrganization() { + return organization; + } + + @JsonProperty("organizationalUnit") + public Optional getOrganizationalUnit() { + return organizationalUnit; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesVisitorsList200ResponseVisitorsItemAnswers + && equalTo((SharesVisitorsList200ResponseVisitorsItemAnswers) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesVisitorsList200ResponseVisitorsItemAnswers other) { + return displayName.equals(other.displayName) + && email.equals(other.email) + && title.equals(other.title) + && organization.equals(other.organization) + && organizationalUnit.equals(other.organizationalUnit); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.displayName, this.email, this.title, this.organization, this.organizationalUnit); + } + + @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 displayName = Optional.empty(); + + private Optional email = Optional.empty(); + + private Optional title = Optional.empty(); + + private Optional organization = Optional.empty(); + + private Optional organizationalUnit = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(SharesVisitorsList200ResponseVisitorsItemAnswers other) { + displayName(other.getDisplayName()); + email(other.getEmail()); + title(other.getTitle()); + organization(other.getOrganization()); + organizationalUnit(other.getOrganizationalUnit()); + return this; + } + + @JsonSetter(value = "displayName", nulls = Nulls.SKIP) + public Builder displayName(Optional displayName) { + this.displayName = displayName; + return this; + } + + public Builder displayName(String displayName) { + this.displayName = Optional.ofNullable(displayName); + return this; + } + + @JsonSetter(value = "email", nulls = Nulls.SKIP) + public Builder email(Optional email) { + this.email = email; + return this; + } + + public Builder email(String email) { + this.email = Optional.ofNullable(email); + return this; + } + + @JsonSetter(value = "title", nulls = Nulls.SKIP) + public Builder title(Optional title) { + this.title = title; + return this; + } + + public Builder title(String title) { + this.title = Optional.ofNullable(title); + return this; + } + + @JsonSetter(value = "organization", nulls = Nulls.SKIP) + public Builder organization(Optional organization) { + this.organization = organization; + return this; + } + + public Builder organization(String organization) { + this.organization = Optional.ofNullable(organization); + return this; + } + + @JsonSetter(value = "organizationalUnit", nulls = Nulls.SKIP) + public Builder organizationalUnit(Optional organizationalUnit) { + this.organizationalUnit = organizationalUnit; + return this; + } + + public Builder organizationalUnit(String organizationalUnit) { + this.organizationalUnit = Optional.ofNullable(organizationalUnit); + return this; + } + + public SharesVisitorsList200ResponseVisitorsItemAnswers build() { + return new SharesVisitorsList200ResponseVisitorsItemAnswers( + displayName, email, title, organization, organizationalUnit, 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/types/SharesVisitorsList200ResponseVisitorsItemLayer.java b/src/main/java/api/types/SharesVisitorsList200ResponseVisitorsItemLayer.java new file mode 100644 index 0000000..a31cb56 --- /dev/null +++ b/src/main/java/api/types/SharesVisitorsList200ResponseVisitorsItemLayer.java @@ -0,0 +1,177 @@ +/** + * 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 = SharesVisitorsList200ResponseVisitorsItemLayer.Builder.class) +public final class SharesVisitorsList200ResponseVisitorsItemLayer { + private final String layerName; + + private final Optional storageSizeBytes; + + private final Map additionalProperties; + + private SharesVisitorsList200ResponseVisitorsItemLayer( + String layerName, Optional storageSizeBytes, Map additionalProperties) { + this.layerName = layerName; + this.storageSizeBytes = storageSizeBytes; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("layerName") + public String getLayerName() { + return layerName; + } + + @JsonIgnore + public Optional getStorageSizeBytes() { + if (storageSizeBytes == null) { + return Optional.empty(); + } + return storageSizeBytes; + } + + @JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = NullableNonemptyFilter.class) + @JsonProperty("storageSizeBytes") + private Optional _getStorageSizeBytes() { + return storageSizeBytes; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof SharesVisitorsList200ResponseVisitorsItemLayer + && equalTo((SharesVisitorsList200ResponseVisitorsItemLayer) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(SharesVisitorsList200ResponseVisitorsItemLayer other) { + return layerName.equals(other.layerName) && storageSizeBytes.equals(other.storageSizeBytes); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.layerName, this.storageSizeBytes); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static LayerNameStage builder() { + return new Builder(); + } + + public interface LayerNameStage { + _FinalStage layerName(@NotNull String layerName); + + Builder from(SharesVisitorsList200ResponseVisitorsItemLayer other); + } + + public interface _FinalStage { + SharesVisitorsList200ResponseVisitorsItemLayer build(); + + _FinalStage additionalProperty(String key, Object value); + + _FinalStage additionalProperties(Map additionalProperties); + + _FinalStage storageSizeBytes(Optional storageSizeBytes); + + _FinalStage storageSizeBytes(Double storageSizeBytes); + + _FinalStage storageSizeBytes(Nullable storageSizeBytes); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder implements LayerNameStage, _FinalStage { + private String layerName; + + private Optional storageSizeBytes = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + @java.lang.Override + public Builder from(SharesVisitorsList200ResponseVisitorsItemLayer other) { + layerName(other.getLayerName()); + storageSizeBytes(other.getStorageSizeBytes()); + return this; + } + + @java.lang.Override + @JsonSetter("layerName") + public _FinalStage layerName(@NotNull String layerName) { + this.layerName = Objects.requireNonNull(layerName, "layerName must not be null"); + 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 SharesVisitorsList200ResponseVisitorsItemLayer build() { + return new SharesVisitorsList200ResponseVisitorsItemLayer( + layerName, storageSizeBytes, 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; + } + } +}