From 022d54fc5de457d08f44bdaea32595f918e60e9c Mon Sep 17 00:00:00 2001 From: polytomic-sdk-bot Date: Mon, 3 Jun 2024 19:04:02 +0000 Subject: [PATCH] Release 1.3.0 --- build.gradle | 2 +- .../com/polytomic/api/core/ClientOptions.java | 2 +- .../api/resources/models/ModelsClient.java | 98 ++++++++++--- .../models/requests/ModelsGetRequest.java | 95 ++++++++++++ .../models/requests/ModelsRemoveRequest.java | 95 ++++++++++++ .../models/requests/ModelsSampleRequest.java | 95 ++++++++++++ .../requests/CreateModelSyncRequest.java | 14 ++ .../requests/UpdateModelSyncRequest.java | 14 ++ .../java/com/polytomic/api/types/Filter.java | 137 ++++++++++++------ .../api/types/FilterFieldReferenceType.java | 24 +++ .../polytomic/api/types/FilterFunction.java | 70 +++++++++ .../com/polytomic/api/types/Identity.java | 12 +- .../com/polytomic/api/types/ModelField.java | 27 +++- .../com/polytomic/api/types/ModelSample.java | 121 ++++++++++++++++ .../types/ModelSampleResponseEnvelope.java | 118 +++++++++++++++ .../com/polytomic/api/types/Override.java | 45 ++++-- .../com/polytomic/api/types/Schedule.java | 12 +- .../api/types/SchemaIdentityFunction.java | 26 ++++ 18 files changed, 921 insertions(+), 86 deletions(-) create mode 100644 src/main/java/com/polytomic/api/resources/models/requests/ModelsGetRequest.java create mode 100644 src/main/java/com/polytomic/api/resources/models/requests/ModelsRemoveRequest.java create mode 100644 src/main/java/com/polytomic/api/resources/models/requests/ModelsSampleRequest.java create mode 100644 src/main/java/com/polytomic/api/types/FilterFieldReferenceType.java create mode 100644 src/main/java/com/polytomic/api/types/FilterFunction.java create mode 100644 src/main/java/com/polytomic/api/types/ModelSample.java create mode 100644 src/main/java/com/polytomic/api/types/ModelSampleResponseEnvelope.java create mode 100644 src/main/java/com/polytomic/api/types/SchemaIdentityFunction.java diff --git a/build.gradle b/build.gradle index 9298beb..13feef2 100644 --- a/build.gradle +++ b/build.gradle @@ -46,7 +46,7 @@ publishing { maven(MavenPublication) { groupId = 'com.polytomic' artifactId = 'polytomic-java' - version = '1.2.0' + version = '1.3.0' from components.java } } diff --git a/src/main/java/com/polytomic/api/core/ClientOptions.java b/src/main/java/com/polytomic/api/core/ClientOptions.java index 79b579c..94f3cbd 100644 --- a/src/main/java/com/polytomic/api/core/ClientOptions.java +++ b/src/main/java/com/polytomic/api/core/ClientOptions.java @@ -29,7 +29,7 @@ private ClientOptions( "X-Fern-SDK-Name", "com.polytomic.fern:api-sdk", "X-Fern-SDK-Version", - "1.2.0", + "1.3.0", "X-Fern-Language", "JAVA")); this.headerSuppliers = headerSuppliers; diff --git a/src/main/java/com/polytomic/api/resources/models/ModelsClient.java b/src/main/java/com/polytomic/api/resources/models/ModelsClient.java index 7fc9f69..ddad252 100644 --- a/src/main/java/com/polytomic/api/resources/models/ModelsClient.java +++ b/src/main/java/com/polytomic/api/resources/models/ModelsClient.java @@ -10,10 +10,14 @@ import com.polytomic.api.core.RequestOptions; import com.polytomic.api.resources.models.requests.GetEnrichmentInputFieldsRequest; import com.polytomic.api.resources.models.requests.ModelsCreateRequest; +import com.polytomic.api.resources.models.requests.ModelsGetRequest; import com.polytomic.api.resources.models.requests.ModelsPreviewRequest; +import com.polytomic.api.resources.models.requests.ModelsRemoveRequest; +import com.polytomic.api.resources.models.requests.ModelsSampleRequest; import com.polytomic.api.resources.models.requests.UpdateModelRequest; import com.polytomic.api.types.ModelListResponseEnvelope; import com.polytomic.api.types.ModelResponseEnvelope; +import com.polytomic.api.types.ModelSampleResponseEnvelope; import com.polytomic.api.types.V2GetEnrichmentInputFieldsResponseEnvelope; import java.io.IOException; import java.util.HashMap; @@ -191,21 +195,27 @@ public ModelResponseEnvelope create(ModelsCreateRequest request, RequestOptions } public ModelResponseEnvelope get(String id) { - return get(id, null); + return get(id, ModelsGetRequest.builder().build()); } - public ModelResponseEnvelope get(String id, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + public ModelResponseEnvelope get(String id, ModelsGetRequest request) { + return get(id, request, null); + } + + public ModelResponseEnvelope get(String id, ModelsGetRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("api/models") - .addPathSegment(id) - .build(); - Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .addPathSegment(id); + if (request.getAsync().isPresent()) { + httpUrl.addQueryParameter("async", request.getAsync().get().toString()); + } + Request.Builder _requestBuilder = new Request.Builder() + .url(httpUrl.build()) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) - .addHeader("Content-Type", "application/json") - .build(); + .addHeader("Content-Type", "application/json"); + Request okhttpRequest = _requestBuilder.build(); try { Response response = clientOptions.httpClient().newCall(okhttpRequest).execute(); @@ -293,20 +303,26 @@ public ModelResponseEnvelope update(String id, UpdateModelRequest request, Reque } public void remove(String id) { - remove(id, null); + remove(id, ModelsRemoveRequest.builder().build()); } - public void remove(String id, RequestOptions requestOptions) { - HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + public void remove(String id, ModelsRemoveRequest request) { + remove(id, request, null); + } + + public void remove(String id, ModelsRemoveRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("api/models") - .addPathSegment(id) - .build(); - Request okhttpRequest = new Request.Builder() - .url(httpUrl) + .addPathSegment(id); + if (request.getAsync().isPresent()) { + httpUrl.addQueryParameter("async", request.getAsync().get().toString()); + } + Request.Builder _requestBuilder = new Request.Builder() + .url(httpUrl.build()) .method("DELETE", null) - .headers(Headers.of(clientOptions.headers(requestOptions))) - .build(); + .headers(Headers.of(clientOptions.headers(requestOptions))); + Request okhttpRequest = _requestBuilder.build(); try { Response response = clientOptions.httpClient().newCall(okhttpRequest).execute(); @@ -320,4 +336,50 @@ public void remove(String id, RequestOptions requestOptions) { throw new RuntimeException(e); } } + + /** + * Returns sample records from the model. The first ten records that the source provides will be returned after being enriched (if applicable). Synchronous requests must complete within 10s. If either querying or enrichment exceeds 10s, please use the async option. + */ + public ModelSampleResponseEnvelope sample(String id) { + return sample(id, ModelsSampleRequest.builder().build()); + } + + /** + * Returns sample records from the model. The first ten records that the source provides will be returned after being enriched (if applicable). Synchronous requests must complete within 10s. If either querying or enrichment exceeds 10s, please use the async option. + */ + public ModelSampleResponseEnvelope sample(String id, ModelsSampleRequest request) { + return sample(id, request, null); + } + + /** + * Returns sample records from the model. The first ten records that the source provides will be returned after being enriched (if applicable). Synchronous requests must complete within 10s. If either querying or enrichment exceeds 10s, please use the async option. + */ + public ModelSampleResponseEnvelope sample(String id, ModelsSampleRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("api/models") + .addPathSegment(id) + .addPathSegments("sample"); + if (request.getAsync().isPresent()) { + httpUrl.addQueryParameter("async", request.getAsync().get().toString()); + } + Request.Builder _requestBuilder = new Request.Builder() + .url(httpUrl.build()) + .method("GET", null) + .headers(Headers.of(clientOptions.headers(requestOptions))) + .addHeader("Content-Type", "application/json"); + Request okhttpRequest = _requestBuilder.build(); + try { + Response response = + clientOptions.httpClient().newCall(okhttpRequest).execute(); + if (response.isSuccessful()) { + return ObjectMappers.JSON_MAPPER.readValue(response.body().string(), ModelSampleResponseEnvelope.class); + } + throw new ApiError( + response.code(), + ObjectMappers.JSON_MAPPER.readValue(response.body().string(), Object.class)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } } diff --git a/src/main/java/com/polytomic/api/resources/models/requests/ModelsGetRequest.java b/src/main/java/com/polytomic/api/resources/models/requests/ModelsGetRequest.java new file mode 100644 index 0000000..293c4c8 --- /dev/null +++ b/src/main/java/com/polytomic/api/resources/models/requests/ModelsGetRequest.java @@ -0,0 +1,95 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.polytomic.api.resources.models.requests; + +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 com.polytomic.api.core.ObjectMappers; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_EMPTY) +@JsonDeserialize(builder = ModelsGetRequest.Builder.class) +public final class ModelsGetRequest { + private final Optional async; + + private final Map additionalProperties; + + private ModelsGetRequest(Optional async, Map additionalProperties) { + this.async = async; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("async") + public Optional getAsync() { + return async; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof ModelsGetRequest && equalTo((ModelsGetRequest) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(ModelsGetRequest other) { + return async.equals(other.async); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.async); + } + + @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 async = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(ModelsGetRequest other) { + async(other.getAsync()); + return this; + } + + @JsonSetter(value = "async", nulls = Nulls.SKIP) + public Builder async(Optional async) { + this.async = async; + return this; + } + + public Builder async(Boolean async) { + this.async = Optional.of(async); + return this; + } + + public ModelsGetRequest build() { + return new ModelsGetRequest(async, additionalProperties); + } + } +} diff --git a/src/main/java/com/polytomic/api/resources/models/requests/ModelsRemoveRequest.java b/src/main/java/com/polytomic/api/resources/models/requests/ModelsRemoveRequest.java new file mode 100644 index 0000000..b7635ed --- /dev/null +++ b/src/main/java/com/polytomic/api/resources/models/requests/ModelsRemoveRequest.java @@ -0,0 +1,95 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.polytomic.api.resources.models.requests; + +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 com.polytomic.api.core.ObjectMappers; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_EMPTY) +@JsonDeserialize(builder = ModelsRemoveRequest.Builder.class) +public final class ModelsRemoveRequest { + private final Optional async; + + private final Map additionalProperties; + + private ModelsRemoveRequest(Optional async, Map additionalProperties) { + this.async = async; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("async") + public Optional getAsync() { + return async; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof ModelsRemoveRequest && equalTo((ModelsRemoveRequest) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(ModelsRemoveRequest other) { + return async.equals(other.async); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.async); + } + + @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 async = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(ModelsRemoveRequest other) { + async(other.getAsync()); + return this; + } + + @JsonSetter(value = "async", nulls = Nulls.SKIP) + public Builder async(Optional async) { + this.async = async; + return this; + } + + public Builder async(Boolean async) { + this.async = Optional.of(async); + return this; + } + + public ModelsRemoveRequest build() { + return new ModelsRemoveRequest(async, additionalProperties); + } + } +} diff --git a/src/main/java/com/polytomic/api/resources/models/requests/ModelsSampleRequest.java b/src/main/java/com/polytomic/api/resources/models/requests/ModelsSampleRequest.java new file mode 100644 index 0000000..50e344a --- /dev/null +++ b/src/main/java/com/polytomic/api/resources/models/requests/ModelsSampleRequest.java @@ -0,0 +1,95 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.polytomic.api.resources.models.requests; + +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 com.polytomic.api.core.ObjectMappers; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_EMPTY) +@JsonDeserialize(builder = ModelsSampleRequest.Builder.class) +public final class ModelsSampleRequest { + private final Optional async; + + private final Map additionalProperties; + + private ModelsSampleRequest(Optional async, Map additionalProperties) { + this.async = async; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("async") + public Optional getAsync() { + return async; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof ModelsSampleRequest && equalTo((ModelsSampleRequest) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(ModelsSampleRequest other) { + return async.equals(other.async); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.async); + } + + @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 async = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(ModelsSampleRequest other) { + async(other.getAsync()); + return this; + } + + @JsonSetter(value = "async", nulls = Nulls.SKIP) + public Builder async(Optional async) { + this.async = async; + return this; + } + + public Builder async(Boolean async) { + this.async = Optional.of(async); + return this; + } + + public ModelsSampleRequest build() { + return new ModelsSampleRequest(async, additionalProperties); + } + } +} diff --git a/src/main/java/com/polytomic/api/resources/modelsync/requests/CreateModelSyncRequest.java b/src/main/java/com/polytomic/api/resources/modelsync/requests/CreateModelSyncRequest.java index 4d927bf..ee2cc3b 100644 --- a/src/main/java/com/polytomic/api/resources/modelsync/requests/CreateModelSyncRequest.java +++ b/src/main/java/com/polytomic/api/resources/modelsync/requests/CreateModelSyncRequest.java @@ -140,11 +140,17 @@ public Optional getOrganizationId() { return organizationId; } + /** + * @return Values to set as sync target fields. + */ @JsonProperty("override_fields") public Optional> getOverrideFields() { return overrideFields; } + /** + * @return Conditional value replacement for field mappings. + */ @JsonProperty("overrides") public Optional> getOverrides() { return overrides; @@ -405,6 +411,10 @@ public _FinalStage policies(Optional> policies) { return this; } + /** + *

Conditional value replacement for field mappings.

+ * @return Reference to {@code this} so that method calls can be chained together. + */ @java.lang.Override public _FinalStage overrides(List overrides) { this.overrides = Optional.of(overrides); @@ -418,6 +428,10 @@ public _FinalStage overrides(Optional> overrides) { return this; } + /** + *

Values to set as sync target fields.

+ * @return Reference to {@code this} so that method calls can be chained together. + */ @java.lang.Override public _FinalStage overrideFields(List overrideFields) { this.overrideFields = Optional.of(overrideFields); diff --git a/src/main/java/com/polytomic/api/resources/modelsync/requests/UpdateModelSyncRequest.java b/src/main/java/com/polytomic/api/resources/modelsync/requests/UpdateModelSyncRequest.java index 562b994..471aec6 100644 --- a/src/main/java/com/polytomic/api/resources/modelsync/requests/UpdateModelSyncRequest.java +++ b/src/main/java/com/polytomic/api/resources/modelsync/requests/UpdateModelSyncRequest.java @@ -140,11 +140,17 @@ public Optional getOrganizationId() { return organizationId; } + /** + * @return Values to set as sync target fields. + */ @JsonProperty("override_fields") public Optional> getOverrideFields() { return overrideFields; } + /** + * @return Conditional value replacement for field mappings. + */ @JsonProperty("overrides") public Optional> getOverrides() { return overrides; @@ -405,6 +411,10 @@ public _FinalStage policies(Optional> policies) { return this; } + /** + *

Conditional value replacement for field mappings.

+ * @return Reference to {@code this} so that method calls can be chained together. + */ @java.lang.Override public _FinalStage overrides(List overrides) { this.overrides = Optional.of(overrides); @@ -418,6 +428,10 @@ public _FinalStage overrides(Optional> overrides) { return this; } + /** + *

Values to set as sync target fields.

+ * @return Reference to {@code this} so that method calls can be chained together. + */ @java.lang.Override public _FinalStage overrideFields(List overrideFields) { this.overrideFields = Optional.of(overrideFields); diff --git a/src/main/java/com/polytomic/api/types/Filter.java b/src/main/java/com/polytomic/api/types/Filter.java index e78109e..7e2bf4e 100644 --- a/src/main/java/com/polytomic/api/types/Filter.java +++ b/src/main/java/com/polytomic/api/types/Filter.java @@ -20,11 +20,13 @@ @JsonInclude(JsonInclude.Include.NON_EMPTY) @JsonDeserialize(builder = Filter.Builder.class) public final class Filter { - private final String fieldId; + private final Optional field; - private final String fieldType; + private final Optional fieldId; - private final String function; + private final Optional fieldType; + + private final FilterFunction function; private final Optional label; @@ -33,12 +35,14 @@ public final class Filter { private final Map additionalProperties; private Filter( - String fieldId, - String fieldType, - String function, + Optional field, + Optional fieldId, + Optional fieldType, + FilterFunction function, Optional label, Optional value, Map additionalProperties) { + this.field = field; this.fieldId = fieldId; this.fieldType = fieldType; this.function = function; @@ -47,18 +51,26 @@ private Filter( this.additionalProperties = additionalProperties; } + @JsonProperty("field") + public Optional getField() { + return field; + } + + /** + * @return Model or Target field name to filter on. + */ @JsonProperty("field_id") - public String getFieldId() { + public Optional getFieldId() { return fieldId; } @JsonProperty("field_type") - public String getFieldType() { + public Optional getFieldType() { return fieldType; } @JsonProperty("function") - public String getFunction() { + public FilterFunction getFunction() { return function; } @@ -84,7 +96,8 @@ public Map getAdditionalProperties() { } private boolean equalTo(Filter other) { - return fieldId.equals(other.fieldId) + return field.equals(other.field) + && fieldId.equals(other.fieldId) && fieldType.equals(other.fieldType) && function.equals(other.function) && label.equals(other.label) @@ -93,7 +106,7 @@ private boolean equalTo(Filter other) { @java.lang.Override public int hashCode() { - return Objects.hash(this.fieldId, this.fieldType, this.function, this.label, this.value); + return Objects.hash(this.field, this.fieldId, this.fieldType, this.function, this.label, this.value); } @java.lang.Override @@ -101,27 +114,31 @@ public String toString() { return ObjectMappers.stringify(this); } - public static FieldIdStage builder() { + public static FunctionStage builder() { return new Builder(); } - public interface FieldIdStage { - FieldTypeStage fieldId(String fieldId); + public interface FunctionStage { + _FinalStage function(FilterFunction function); Builder from(Filter other); } - public interface FieldTypeStage { - FunctionStage fieldType(String fieldType); - } - - public interface FunctionStage { - _FinalStage function(String function); - } - public interface _FinalStage { Filter build(); + _FinalStage field(Optional field); + + _FinalStage field(Source field); + + _FinalStage fieldId(Optional fieldId); + + _FinalStage fieldId(String fieldId); + + _FinalStage fieldType(Optional fieldType); + + _FinalStage fieldType(FilterFieldReferenceType fieldType); + _FinalStage label(Optional label); _FinalStage label(String label); @@ -132,17 +149,19 @@ public interface _FinalStage { } @JsonIgnoreProperties(ignoreUnknown = true) - public static final class Builder implements FieldIdStage, FieldTypeStage, FunctionStage, _FinalStage { - private String fieldId; - - private String fieldType; - - private String function; + public static final class Builder implements FunctionStage, _FinalStage { + private FilterFunction function; private Optional value = Optional.empty(); private Optional label = Optional.empty(); + private Optional fieldType = Optional.empty(); + + private Optional fieldId = Optional.empty(); + + private Optional field = Optional.empty(); + @JsonAnySetter private Map additionalProperties = new HashMap<>(); @@ -150,6 +169,7 @@ private Builder() {} @java.lang.Override public Builder from(Filter other) { + field(other.getField()); fieldId(other.getFieldId()); fieldType(other.getFieldType()); function(other.getFunction()); @@ -158,23 +178,9 @@ public Builder from(Filter other) { return this; } - @java.lang.Override - @JsonSetter("field_id") - public FieldTypeStage fieldId(String fieldId) { - this.fieldId = fieldId; - return this; - } - - @java.lang.Override - @JsonSetter("field_type") - public FunctionStage fieldType(String fieldType) { - this.fieldType = fieldType; - return this; - } - @java.lang.Override @JsonSetter("function") - public _FinalStage function(String function) { + public _FinalStage function(FilterFunction function) { this.function = function; return this; } @@ -205,9 +211,52 @@ public _FinalStage label(Optional label) { return this; } + @java.lang.Override + public _FinalStage fieldType(FilterFieldReferenceType fieldType) { + this.fieldType = Optional.of(fieldType); + return this; + } + + @java.lang.Override + @JsonSetter(value = "field_type", nulls = Nulls.SKIP) + public _FinalStage fieldType(Optional fieldType) { + this.fieldType = fieldType; + return this; + } + + /** + *

Model or Target field name to filter on.

+ * @return Reference to {@code this} so that method calls can be chained together. + */ + @java.lang.Override + public _FinalStage fieldId(String fieldId) { + this.fieldId = Optional.of(fieldId); + return this; + } + + @java.lang.Override + @JsonSetter(value = "field_id", nulls = Nulls.SKIP) + public _FinalStage fieldId(Optional fieldId) { + this.fieldId = fieldId; + return this; + } + + @java.lang.Override + public _FinalStage field(Source field) { + this.field = Optional.of(field); + return this; + } + + @java.lang.Override + @JsonSetter(value = "field", nulls = Nulls.SKIP) + public _FinalStage field(Optional field) { + this.field = field; + return this; + } + @java.lang.Override public Filter build() { - return new Filter(fieldId, fieldType, function, label, value, additionalProperties); + return new Filter(field, fieldId, fieldType, function, label, value, additionalProperties); } } } diff --git a/src/main/java/com/polytomic/api/types/FilterFieldReferenceType.java b/src/main/java/com/polytomic/api/types/FilterFieldReferenceType.java new file mode 100644 index 0000000..743d9a9 --- /dev/null +++ b/src/main/java/com/polytomic/api/types/FilterFieldReferenceType.java @@ -0,0 +1,24 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.polytomic.api.types; + +import com.fasterxml.jackson.annotation.JsonValue; + +public enum FilterFieldReferenceType { + MODEL("Model"), + + TARGET("Target"); + + private final String value; + + FilterFieldReferenceType(String value) { + this.value = value; + } + + @JsonValue + @java.lang.Override + public String toString() { + return this.value; + } +} diff --git a/src/main/java/com/polytomic/api/types/FilterFunction.java b/src/main/java/com/polytomic/api/types/FilterFunction.java new file mode 100644 index 0000000..66939ca --- /dev/null +++ b/src/main/java/com/polytomic/api/types/FilterFunction.java @@ -0,0 +1,70 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.polytomic.api.types; + +import com.fasterxml.jackson.annotation.JsonValue; + +public enum FilterFunction { + EQUALITY("Equality"), + + INEQUALITY("Inequality"), + + IS_NULL("IsNull"), + + IS_NOT_NULL("IsNotNull"), + + TRUE("True"), + + FALSE("False"), + + ON_OR_AFTER("OnOrAfter"), + + ON_OR_BEFORE("OnOrBefore"), + + GREATER_THAN("GreaterThan"), + + GREATER_THAN_EQUAL("GreaterThanEqual"), + + LESS_THAN("LessThan"), + + LESS_THAN_EQUAL("LessThanEqual"), + + STRING_CONTAINS("StringContains"), + + STRING_ENDS_WITH("StringEndsWith"), + + STRING_DOES_NOT_CONTAIN("StringDoesNotContain"), + + STRING_DOES_NOT_END_WITH("StringDoesNotEndWith"), + + STRING_ONE_OF("StringOneOf"), + + STRING_NOT_ONE_OF("StringNotOneOf"), + + BETWEEN("Between"), + + ARRAY_CONTAINS("ArrayContains"), + + ARRAY_DOES_NOT_CONTAIN("ArrayDoesNotContain"), + + IN_THE_LAST("InTheLast"), + + STRING_LIKE("StringLike"), + + STRING_NOT_LIKE("StringNotLike"), + + STRING_MATCHES_TRIMMED("StringMatchesTrimmed"); + + private final String value; + + FilterFunction(String value) { + this.value = value; + } + + @JsonValue + @java.lang.Override + public String toString() { + return this.value; + } +} diff --git a/src/main/java/com/polytomic/api/types/Identity.java b/src/main/java/com/polytomic/api/types/Identity.java index 3422ec5..7b51832 100644 --- a/src/main/java/com/polytomic/api/types/Identity.java +++ b/src/main/java/com/polytomic/api/types/Identity.java @@ -20,7 +20,7 @@ @JsonInclude(JsonInclude.Include.NON_EMPTY) @JsonDeserialize(builder = Identity.Builder.class) public final class Identity { - private final String function; + private final SchemaIdentityFunction function; private final Optional newField; @@ -33,7 +33,7 @@ public final class Identity { private final Map additionalProperties; private Identity( - String function, + SchemaIdentityFunction function, Optional newField, Optional remoteFieldTypeId, Source source, @@ -48,7 +48,7 @@ private Identity( } @JsonProperty("function") - public String getFunction() { + public SchemaIdentityFunction getFunction() { return function; } @@ -106,7 +106,7 @@ public static FunctionStage builder() { } public interface FunctionStage { - SourceStage function(String function); + SourceStage function(SchemaIdentityFunction function); Builder from(Identity other); } @@ -133,7 +133,7 @@ public interface _FinalStage { @JsonIgnoreProperties(ignoreUnknown = true) public static final class Builder implements FunctionStage, SourceStage, TargetStage, _FinalStage { - private String function; + private SchemaIdentityFunction function; private Source source; @@ -160,7 +160,7 @@ public Builder from(Identity other) { @java.lang.Override @JsonSetter("function") - public SourceStage function(String function) { + public SourceStage function(SchemaIdentityFunction function) { this.function = function; return this; } diff --git a/src/main/java/com/polytomic/api/types/ModelField.java b/src/main/java/com/polytomic/api/types/ModelField.java index ebcbaae..5c173b6 100644 --- a/src/main/java/com/polytomic/api/types/ModelField.java +++ b/src/main/java/com/polytomic/api/types/ModelField.java @@ -24,6 +24,8 @@ public final class ModelField { private final Optional example; + private final Optional id; + private final Optional label; private final Optional name; @@ -41,6 +43,7 @@ public final class ModelField { private ModelField( Optional description, Optional example, + Optional id, Optional label, Optional name, Optional remoteType, @@ -50,6 +53,7 @@ private ModelField( Map additionalProperties) { this.description = description; this.example = example; + this.id = id; this.label = label; this.name = name; this.remoteType = remoteType; @@ -69,6 +73,11 @@ public Optional getExample() { return example; } + @JsonProperty("id") + public Optional getId() { + return id; + } + @JsonProperty("label") public Optional getLabel() { return label; @@ -113,6 +122,7 @@ public Map getAdditionalProperties() { private boolean equalTo(ModelField other) { return description.equals(other.description) && example.equals(other.example) + && id.equals(other.id) && label.equals(other.label) && name.equals(other.name) && remoteType.equals(other.remoteType) @@ -126,6 +136,7 @@ public int hashCode() { return Objects.hash( this.description, this.example, + this.id, this.label, this.name, this.remoteType, @@ -149,6 +160,8 @@ public static final class Builder { private Optional example = Optional.empty(); + private Optional id = Optional.empty(); + private Optional label = Optional.empty(); private Optional name = Optional.empty(); @@ -169,6 +182,7 @@ private Builder() {} public Builder from(ModelField other) { description(other.getDescription()); example(other.getExample()); + id(other.getId()); label(other.getLabel()); name(other.getName()); remoteType(other.getRemoteType()); @@ -200,6 +214,17 @@ public Builder example(Object example) { return this; } + @JsonSetter(value = "id", nulls = Nulls.SKIP) + public Builder id(Optional id) { + this.id = id; + return this; + } + + public Builder id(String id) { + this.id = Optional.of(id); + return this; + } + @JsonSetter(value = "label", nulls = Nulls.SKIP) public Builder label(Optional label) { this.label = label; @@ -268,7 +293,7 @@ public Builder userAdded(Boolean userAdded) { public ModelField build() { return new ModelField( - description, example, label, name, remoteType, type, unique, userAdded, additionalProperties); + description, example, id, label, name, remoteType, type, unique, userAdded, additionalProperties); } } } diff --git a/src/main/java/com/polytomic/api/types/ModelSample.java b/src/main/java/com/polytomic/api/types/ModelSample.java new file mode 100644 index 0000000..c33b0d9 --- /dev/null +++ b/src/main/java/com/polytomic/api/types/ModelSample.java @@ -0,0 +1,121 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.polytomic.api.types; + +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 com.polytomic.api.core.ObjectMappers; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_EMPTY) +@JsonDeserialize(builder = ModelSample.Builder.class) +public final class ModelSample { + private final Optional>>> records; + + private final Optional> warnings; + + private final Map additionalProperties; + + private ModelSample( + Optional>>> records, + Optional> warnings, + Map additionalProperties) { + this.records = records; + this.warnings = warnings; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("records") + public Optional>>> getRecords() { + return records; + } + + @JsonProperty("warnings") + public Optional> getWarnings() { + return warnings; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof ModelSample && equalTo((ModelSample) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(ModelSample other) { + return records.equals(other.records) && warnings.equals(other.warnings); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.records, this.warnings); + } + + @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>>> records = Optional.empty(); + + private Optional> warnings = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(ModelSample other) { + records(other.getRecords()); + warnings(other.getWarnings()); + return this; + } + + @JsonSetter(value = "records", nulls = Nulls.SKIP) + public Builder records(Optional>>> records) { + this.records = records; + return this; + } + + public Builder records(List>> records) { + this.records = Optional.of(records); + return this; + } + + @JsonSetter(value = "warnings", nulls = Nulls.SKIP) + public Builder warnings(Optional> warnings) { + this.warnings = warnings; + return this; + } + + public Builder warnings(List warnings) { + this.warnings = Optional.of(warnings); + return this; + } + + public ModelSample build() { + return new ModelSample(records, warnings, additionalProperties); + } + } +} diff --git a/src/main/java/com/polytomic/api/types/ModelSampleResponseEnvelope.java b/src/main/java/com/polytomic/api/types/ModelSampleResponseEnvelope.java new file mode 100644 index 0000000..fd4f9d9 --- /dev/null +++ b/src/main/java/com/polytomic/api/types/ModelSampleResponseEnvelope.java @@ -0,0 +1,118 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.polytomic.api.types; + +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 com.polytomic.api.core.ObjectMappers; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_EMPTY) +@JsonDeserialize(builder = ModelSampleResponseEnvelope.Builder.class) +public final class ModelSampleResponseEnvelope { + private final Optional data; + + private final Optional job; + + private final Map additionalProperties; + + private ModelSampleResponseEnvelope( + Optional data, Optional job, Map additionalProperties) { + this.data = data; + this.job = job; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("data") + public Optional getData() { + return data; + } + + @JsonProperty("job") + public Optional getJob() { + return job; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof ModelSampleResponseEnvelope && equalTo((ModelSampleResponseEnvelope) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(ModelSampleResponseEnvelope other) { + return data.equals(other.data) && job.equals(other.job); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.data, this.job); + } + + @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 data = Optional.empty(); + + private Optional job = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(ModelSampleResponseEnvelope other) { + data(other.getData()); + job(other.getJob()); + return this; + } + + @JsonSetter(value = "data", nulls = Nulls.SKIP) + public Builder data(Optional data) { + this.data = data; + return this; + } + + public Builder data(ModelSample data) { + this.data = Optional.of(data); + return this; + } + + @JsonSetter(value = "job", nulls = Nulls.SKIP) + public Builder job(Optional job) { + this.job = job; + return this; + } + + public Builder job(JobResponse job) { + this.job = Optional.of(job); + return this; + } + + public ModelSampleResponseEnvelope build() { + return new ModelSampleResponseEnvelope(data, job, additionalProperties); + } + } +} diff --git a/src/main/java/com/polytomic/api/types/Override.java b/src/main/java/com/polytomic/api/types/Override.java index d18ae47..2011a77 100644 --- a/src/main/java/com/polytomic/api/types/Override.java +++ b/src/main/java/com/polytomic/api/types/Override.java @@ -20,9 +20,11 @@ @JsonInclude(JsonInclude.Include.NON_EMPTY) @JsonDeserialize(builder = Override.Builder.class) public final class Override { + private final Optional field; + private final Optional fieldId; - private final Optional function; + private final Optional function; private final Optional override; @@ -31,11 +33,13 @@ public final class Override { private final Map additionalProperties; private Override( + Optional field, Optional fieldId, - Optional function, + Optional function, Optional override, Optional value, Map additionalProperties) { + this.field = field; this.fieldId = fieldId; this.function = function; this.override = override; @@ -43,13 +47,21 @@ private Override( this.additionalProperties = additionalProperties; } + @JsonProperty("field") + public Optional getField() { + return field; + } + + /** + * @return Field ID of the model field to override. + */ @JsonProperty("field_id") public Optional getFieldId() { return fieldId; } @JsonProperty("function") - public Optional getFunction() { + public Optional getFunction() { return function; } @@ -75,7 +87,8 @@ public Map getAdditionalProperties() { } private boolean equalTo(Override other) { - return fieldId.equals(other.fieldId) + return field.equals(other.field) + && fieldId.equals(other.fieldId) && function.equals(other.function) && override.equals(other.override) && value.equals(other.value); @@ -83,7 +96,7 @@ private boolean equalTo(Override other) { @java.lang.Override public int hashCode() { - return Objects.hash(this.fieldId, this.function, this.override, this.value); + return Objects.hash(this.field, this.fieldId, this.function, this.override, this.value); } @java.lang.Override @@ -97,9 +110,11 @@ public static Builder builder() { @JsonIgnoreProperties(ignoreUnknown = true) public static final class Builder { + private Optional field = Optional.empty(); + private Optional fieldId = Optional.empty(); - private Optional function = Optional.empty(); + private Optional function = Optional.empty(); private Optional override = Optional.empty(); @@ -111,6 +126,7 @@ public static final class Builder { private Builder() {} public Builder from(Override other) { + field(other.getField()); fieldId(other.getFieldId()); function(other.getFunction()); override(other.getOverride()); @@ -118,6 +134,17 @@ public Builder from(Override other) { return this; } + @JsonSetter(value = "field", nulls = Nulls.SKIP) + public Builder field(Optional field) { + this.field = field; + return this; + } + + public Builder field(Source field) { + this.field = Optional.of(field); + return this; + } + @JsonSetter(value = "field_id", nulls = Nulls.SKIP) public Builder fieldId(Optional fieldId) { this.fieldId = fieldId; @@ -130,12 +157,12 @@ public Builder fieldId(String fieldId) { } @JsonSetter(value = "function", nulls = Nulls.SKIP) - public Builder function(Optional function) { + public Builder function(Optional function) { this.function = function; return this; } - public Builder function(String function) { + public Builder function(FilterFunction function) { this.function = Optional.of(function); return this; } @@ -163,7 +190,7 @@ public Builder value(Object value) { } public Override build() { - return new Override(fieldId, function, override, value, additionalProperties); + return new Override(field, fieldId, function, override, value, additionalProperties); } } } diff --git a/src/main/java/com/polytomic/api/types/Schedule.java b/src/main/java/com/polytomic/api/types/Schedule.java index 1cc7406..fe703f1 100644 --- a/src/main/java/com/polytomic/api/types/Schedule.java +++ b/src/main/java/com/polytomic/api/types/Schedule.java @@ -26,7 +26,7 @@ public final class Schedule { private final Optional dayOfWeek; - private final Optional frequency; + private final Optional frequency; private final Optional hour; @@ -44,7 +44,7 @@ private Schedule( Optional connectionId, Optional dayOfMonth, Optional dayOfWeek, - Optional frequency, + Optional frequency, Optional hour, Optional jobId, Optional minute, @@ -79,7 +79,7 @@ public Optional getDayOfWeek() { } @JsonProperty("frequency") - public Optional getFrequency() { + public Optional getFrequency() { return frequency; } @@ -162,7 +162,7 @@ public static final class Builder { private Optional dayOfWeek = Optional.empty(); - private Optional frequency = Optional.empty(); + private Optional frequency = Optional.empty(); private Optional hour = Optional.empty(); @@ -226,12 +226,12 @@ public Builder dayOfWeek(String dayOfWeek) { } @JsonSetter(value = "frequency", nulls = Nulls.SKIP) - public Builder frequency(Optional frequency) { + public Builder frequency(Optional frequency) { this.frequency = frequency; return this; } - public Builder frequency(String frequency) { + public Builder frequency(ScheduleFrequency frequency) { this.frequency = Optional.of(frequency); return this; } diff --git a/src/main/java/com/polytomic/api/types/SchemaIdentityFunction.java b/src/main/java/com/polytomic/api/types/SchemaIdentityFunction.java new file mode 100644 index 0000000..5bbea14 --- /dev/null +++ b/src/main/java/com/polytomic/api/types/SchemaIdentityFunction.java @@ -0,0 +1,26 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.polytomic.api.types; + +import com.fasterxml.jackson.annotation.JsonValue; + +public enum SchemaIdentityFunction { + EQUALITY("Equality"), + + I_SUBSTRING("ISubstring"), + + ONE_OF("OneOf"); + + private final String value; + + SchemaIdentityFunction(String value) { + this.value = value; + } + + @JsonValue + @java.lang.Override + public String toString() { + return this.value; + } +}