diff --git a/build.gradle b/build.gradle index c94cbdd..4db8c86 100644 --- a/build.gradle +++ b/build.gradle @@ -46,7 +46,7 @@ publishing { maven(MavenPublication) { groupId = 'com.polytomic' artifactId = 'polytomic-java' - version = '1.5.0' + version = '1.6.0' from components.java } } diff --git a/src/main/java/com/polytomic/api/Polytomic.java b/src/main/java/com/polytomic/api/Polytomic.java index c9ce9bb..1408d97 100644 --- a/src/main/java/com/polytomic/api/Polytomic.java +++ b/src/main/java/com/polytomic/api/Polytomic.java @@ -14,6 +14,7 @@ import com.polytomic.api.resources.modelsync.ModelSyncClient; import com.polytomic.api.resources.organization.OrganizationClient; import com.polytomic.api.resources.permissions.PermissionsClient; +import com.polytomic.api.resources.queryrunner.QueryRunnerClient; import com.polytomic.api.resources.schemas.SchemasClient; import com.polytomic.api.resources.users.UsersClient; import com.polytomic.api.resources.webhooks.WebhooksClient; @@ -26,6 +27,8 @@ public class Polytomic { protected final Supplier connectionsClient; + protected final Supplier queryRunnerClient; + protected final Supplier modelSyncClient; protected final Supplier schemasClient; @@ -50,6 +53,7 @@ public Polytomic(ClientOptions clientOptions) { this.clientOptions = clientOptions; this.bulkSyncClient = Suppliers.memoize(() -> new BulkSyncClient(clientOptions)); this.connectionsClient = Suppliers.memoize(() -> new ConnectionsClient(clientOptions)); + this.queryRunnerClient = Suppliers.memoize(() -> new QueryRunnerClient(clientOptions)); this.modelSyncClient = Suppliers.memoize(() -> new ModelSyncClient(clientOptions)); this.schemasClient = Suppliers.memoize(() -> new SchemasClient(clientOptions)); this.modelsClient = Suppliers.memoize(() -> new ModelsClient(clientOptions)); @@ -70,6 +74,10 @@ public ConnectionsClient connections() { return this.connectionsClient.get(); } + public QueryRunnerClient queryRunner() { + return this.queryRunnerClient.get(); + } + public ModelSyncClient modelSync() { return this.modelSyncClient.get(); } diff --git a/src/main/java/com/polytomic/api/PolytomicBuilder.java b/src/main/java/com/polytomic/api/PolytomicBuilder.java index eec0d55..7b0673e 100644 --- a/src/main/java/com/polytomic/api/PolytomicBuilder.java +++ b/src/main/java/com/polytomic/api/PolytomicBuilder.java @@ -11,7 +11,7 @@ public final class PolytomicBuilder { private String token = null; - private String xPolytomicVersion = null; + private String version = null; private Environment environment = Environment.DEFAULT; @@ -24,10 +24,10 @@ public PolytomicBuilder token(String token) { } /** - * Sets xPolytomicVersion + * Sets version */ - public PolytomicBuilder xPolytomicVersion(String xPolytomicVersion) { - this.xPolytomicVersion = xPolytomicVersion; + public PolytomicBuilder version(String version) { + this.version = version; return this; } @@ -46,10 +46,10 @@ public Polytomic build() { throw new RuntimeException("Please provide token"); } this.clientOptionsBuilder.addHeader("Authorization", "Bearer " + this.token); - if (xPolytomicVersion == null) { - throw new RuntimeException("Please provide xPolytomicVersion"); + if (version == null) { + throw new RuntimeException("Please provide version"); } - this.clientOptionsBuilder.addHeader("X-Polytomic-Version", this.xPolytomicVersion); + this.clientOptionsBuilder.addHeader("X-Polytomic-Version", this.version); clientOptionsBuilder.environment(this.environment); return new Polytomic(clientOptionsBuilder.build()); } diff --git a/src/main/java/com/polytomic/api/core/ClientOptions.java b/src/main/java/com/polytomic/api/core/ClientOptions.java index 72cc030..71ce880 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.5.0", + "1.6.0", "X-Fern-Language", "JAVA")); this.headerSuppliers = headerSuppliers; diff --git a/src/main/java/com/polytomic/api/core/RequestOptions.java b/src/main/java/com/polytomic/api/core/RequestOptions.java index 569ead5..7f477df 100644 --- a/src/main/java/com/polytomic/api/core/RequestOptions.java +++ b/src/main/java/com/polytomic/api/core/RequestOptions.java @@ -9,11 +9,11 @@ public final class RequestOptions { private final String token; - private final String xPolytomicVersion; + private final String version; - private RequestOptions(String token, String xPolytomicVersion) { + private RequestOptions(String token, String version) { this.token = token; - this.xPolytomicVersion = xPolytomicVersion; + this.version = version; } public Map getHeaders() { @@ -21,8 +21,8 @@ public Map getHeaders() { if (this.token != null) { headers.put("Authorization", "Bearer " + this.token); } - if (this.xPolytomicVersion != null) { - headers.put("X-Polytomic-Version", this.xPolytomicVersion); + if (this.version != null) { + headers.put("X-Polytomic-Version", this.version); } return headers; } @@ -34,20 +34,20 @@ public static Builder builder() { public static final class Builder { private String token = null; - private String xPolytomicVersion = null; + private String version = null; public Builder token(String token) { this.token = token; return this; } - public Builder xPolytomicVersion(String xPolytomicVersion) { - this.xPolytomicVersion = xPolytomicVersion; + public Builder version(String version) { + this.version = version; return this; } public RequestOptions build() { - return new RequestOptions(token, xPolytomicVersion); + return new RequestOptions(token, version); } } } diff --git a/src/main/java/com/polytomic/api/resources/bulksync/types/V2CreateBulkSyncRequestSchemasItem.java b/src/main/java/com/polytomic/api/resources/bulksync/types/V2CreateBulkSyncRequestSchemasItem.java index 993e3ed..b4f9441 100644 --- a/src/main/java/com/polytomic/api/resources/bulksync/types/V2CreateBulkSyncRequestSchemasItem.java +++ b/src/main/java/com/polytomic/api/resources/bulksync/types/V2CreateBulkSyncRequestSchemasItem.java @@ -10,6 +10,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.deser.std.StdDeserializer; import com.polytomic.api.core.ObjectMappers; +import com.polytomic.api.types.SchemaConfiguration; import java.io.IOException; import java.util.Objects; diff --git a/src/main/java/com/polytomic/api/resources/bulksync/types/V2UpdateBulkSyncRequestSchemasItem.java b/src/main/java/com/polytomic/api/resources/bulksync/types/V2UpdateBulkSyncRequestSchemasItem.java index 361a776..0047a4e 100644 --- a/src/main/java/com/polytomic/api/resources/bulksync/types/V2UpdateBulkSyncRequestSchemasItem.java +++ b/src/main/java/com/polytomic/api/resources/bulksync/types/V2UpdateBulkSyncRequestSchemasItem.java @@ -10,6 +10,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.deser.std.StdDeserializer; import com.polytomic.api.core.ObjectMappers; +import com.polytomic.api.types.SchemaConfiguration; import java.io.IOException; import java.util.Objects; diff --git a/src/main/java/com/polytomic/api/resources/bulksync/types/V2UpdateBulkSyncRequestSchemasItemEnabledFieldsItem.java b/src/main/java/com/polytomic/api/resources/bulksync/types/V2UpdateBulkSyncRequestSchemasItemEnabledFieldsItem.java deleted file mode 100644 index ed6bb90..0000000 --- a/src/main/java/com/polytomic/api/resources/bulksync/types/V2UpdateBulkSyncRequestSchemasItemEnabledFieldsItem.java +++ /dev/null @@ -1,96 +0,0 @@ -/** - * This file was auto-generated by Fern from our API Definition. - */ -package com.polytomic.api.resources.bulksync.types; - -import com.fasterxml.jackson.annotation.JsonValue; -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.deser.std.StdDeserializer; -import com.polytomic.api.core.ObjectMappers; -import java.io.IOException; -import java.util.Objects; - -@JsonDeserialize(using = V2UpdateBulkSyncRequestSchemasItemEnabledFieldsItem.Deserializer.class) -public final class V2UpdateBulkSyncRequestSchemasItemEnabledFieldsItem { - private final Object value; - - private final int type; - - private V2UpdateBulkSyncRequestSchemasItemEnabledFieldsItem(Object value, int type) { - this.value = value; - this.type = type; - } - - @JsonValue - public Object get() { - return this.value; - } - - public T visit(Visitor visitor) { - if (this.type == 0) { - return visitor.visit((String) this.value); - } else if (this.type == 1) { - return visitor.visit((FieldConfiguration) this.value); - } - throw new IllegalStateException("Failed to visit value. This should never happen."); - } - - @java.lang.Override - public boolean equals(Object other) { - if (this == other) return true; - return other instanceof V2UpdateBulkSyncRequestSchemasItemEnabledFieldsItem - && equalTo((V2UpdateBulkSyncRequestSchemasItemEnabledFieldsItem) other); - } - - private boolean equalTo(V2UpdateBulkSyncRequestSchemasItemEnabledFieldsItem other) { - return value.equals(other.value); - } - - @java.lang.Override - public int hashCode() { - return Objects.hash(this.value); - } - - @java.lang.Override - public String toString() { - return this.value.toString(); - } - - public static V2UpdateBulkSyncRequestSchemasItemEnabledFieldsItem of(String value) { - return new V2UpdateBulkSyncRequestSchemasItemEnabledFieldsItem(value, 0); - } - - public static V2UpdateBulkSyncRequestSchemasItemEnabledFieldsItem of(FieldConfiguration value) { - return new V2UpdateBulkSyncRequestSchemasItemEnabledFieldsItem(value, 1); - } - - public interface Visitor { - T visit(String value); - - T visit(FieldConfiguration value); - } - - static final class Deserializer extends StdDeserializer { - Deserializer() { - super(V2UpdateBulkSyncRequestSchemasItemEnabledFieldsItem.class); - } - - @java.lang.Override - public V2UpdateBulkSyncRequestSchemasItemEnabledFieldsItem deserialize( - JsonParser p, DeserializationContext ctxt) throws IOException { - Object value = p.readValueAs(Object.class); - try { - return of(ObjectMappers.JSON_MAPPER.convertValue(value, String.class)); - } catch (IllegalArgumentException e) { - } - try { - return of(ObjectMappers.JSON_MAPPER.convertValue(value, FieldConfiguration.class)); - } catch (IllegalArgumentException e) { - } - throw new JsonParseException(p, "Failed to deserialize"); - } - } -} diff --git a/src/main/java/com/polytomic/api/resources/queryrunner/QueryRunnerClient.java b/src/main/java/com/polytomic/api/resources/queryrunner/QueryRunnerClient.java new file mode 100644 index 0000000..9cfc7d9 --- /dev/null +++ b/src/main/java/com/polytomic/api/resources/queryrunner/QueryRunnerClient.java @@ -0,0 +1,115 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.polytomic.api.resources.queryrunner; + +import com.polytomic.api.core.ApiError; +import com.polytomic.api.core.ClientOptions; +import com.polytomic.api.core.MediaTypes; +import com.polytomic.api.core.ObjectMappers; +import com.polytomic.api.core.RequestOptions; +import com.polytomic.api.resources.queryrunner.requests.QueryRunnerGetQueryRequest; +import com.polytomic.api.resources.queryrunner.requests.V4RunQueryRequest; +import com.polytomic.api.types.V4QueryResultsEnvelope; +import com.polytomic.api.types.V4RunQueryEnvelope; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import okhttp3.Headers; +import okhttp3.HttpUrl; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; + +public class QueryRunnerClient { + protected final ClientOptions clientOptions; + + public QueryRunnerClient(ClientOptions clientOptions) { + this.clientOptions = clientOptions; + } + + public V4RunQueryEnvelope runQuery(String connectionId) { + return runQuery(connectionId, V4RunQueryRequest.builder().build()); + } + + public V4RunQueryEnvelope runQuery(String connectionId, V4RunQueryRequest request) { + return runQuery(connectionId, request, null); + } + + public V4RunQueryEnvelope runQuery(String connectionId, V4RunQueryRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("api/connections") + .addPathSegment(connectionId) + .addPathSegments("query"); + if (request.getQuery().isPresent()) { + httpUrl.addQueryParameter("query", request.getQuery().get()); + } + Map properties = new HashMap<>(); + if (request.getV4RunQueryRequestQuery().isPresent()) { + properties.put("query", request.getV4RunQueryRequestQuery()); + } + RequestBody body; + try { + body = RequestBody.create( + ObjectMappers.JSON_MAPPER.writeValueAsBytes(properties), 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"); + Request okhttpRequest = _requestBuilder.build(); + try { + Response response = + clientOptions.httpClient().newCall(okhttpRequest).execute(); + if (response.isSuccessful()) { + return ObjectMappers.JSON_MAPPER.readValue(response.body().string(), V4RunQueryEnvelope.class); + } + throw new ApiError( + response.code(), + ObjectMappers.JSON_MAPPER.readValue(response.body().string(), Object.class)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public V4QueryResultsEnvelope getQuery(String id) { + return getQuery(id, QueryRunnerGetQueryRequest.builder().build()); + } + + public V4QueryResultsEnvelope getQuery(String id, QueryRunnerGetQueryRequest request) { + return getQuery(id, request, null); + } + + public V4QueryResultsEnvelope getQuery( + String id, QueryRunnerGetQueryRequest request, RequestOptions requestOptions) { + HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) + .newBuilder() + .addPathSegments("api/queries") + .addPathSegment(id); + if (request.getPage().isPresent()) { + httpUrl.addQueryParameter("page", request.getPage().get()); + } + 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(), V4QueryResultsEnvelope.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/queryrunner/requests/QueryRunnerGetQueryRequest.java b/src/main/java/com/polytomic/api/resources/queryrunner/requests/QueryRunnerGetQueryRequest.java new file mode 100644 index 0000000..36ab4fe --- /dev/null +++ b/src/main/java/com/polytomic/api/resources/queryrunner/requests/QueryRunnerGetQueryRequest.java @@ -0,0 +1,95 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.polytomic.api.resources.queryrunner.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 = QueryRunnerGetQueryRequest.Builder.class) +public final class QueryRunnerGetQueryRequest { + private final Optional page; + + private final Map additionalProperties; + + private QueryRunnerGetQueryRequest(Optional page, Map additionalProperties) { + this.page = page; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("page") + public Optional getPage() { + return page; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof QueryRunnerGetQueryRequest && equalTo((QueryRunnerGetQueryRequest) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(QueryRunnerGetQueryRequest other) { + return page.equals(other.page); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.page); + } + + @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 page = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(QueryRunnerGetQueryRequest other) { + page(other.getPage()); + return this; + } + + @JsonSetter(value = "page", nulls = Nulls.SKIP) + public Builder page(Optional page) { + this.page = page; + return this; + } + + public Builder page(String page) { + this.page = Optional.of(page); + return this; + } + + public QueryRunnerGetQueryRequest build() { + return new QueryRunnerGetQueryRequest(page, additionalProperties); + } + } +} diff --git a/src/main/java/com/polytomic/api/resources/queryrunner/requests/V4RunQueryRequest.java b/src/main/java/com/polytomic/api/resources/queryrunner/requests/V4RunQueryRequest.java new file mode 100644 index 0000000..f354304 --- /dev/null +++ b/src/main/java/com/polytomic/api/resources/queryrunner/requests/V4RunQueryRequest.java @@ -0,0 +1,124 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.polytomic.api.resources.queryrunner.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 = V4RunQueryRequest.Builder.class) +public final class V4RunQueryRequest { + private final Optional query; + + private final Optional v4RunQueryRequestQuery; + + private final Map additionalProperties; + + private V4RunQueryRequest( + Optional query, Optional v4RunQueryRequestQuery, Map additionalProperties) { + this.query = query; + this.v4RunQueryRequestQuery = v4RunQueryRequestQuery; + this.additionalProperties = additionalProperties; + } + + /** + * @return The query to execute against the connection. + */ + @JsonProperty("query") + public Optional getQuery() { + return query; + } + + /** + * @return The query to execute against the connection. + */ + @JsonProperty("query") + public Optional getV4RunQueryRequestQuery() { + return v4RunQueryRequestQuery; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof V4RunQueryRequest && equalTo((V4RunQueryRequest) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(V4RunQueryRequest other) { + return query.equals(other.query) && v4RunQueryRequestQuery.equals(other.v4RunQueryRequestQuery); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.query, this.v4RunQueryRequestQuery); + } + + @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 query = Optional.empty(); + + private Optional v4RunQueryRequestQuery = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(V4RunQueryRequest other) { + query(other.getQuery()); + v4RunQueryRequestQuery(other.getV4RunQueryRequestQuery()); + return this; + } + + @JsonSetter(value = "query", nulls = Nulls.SKIP) + public Builder query(Optional query) { + this.query = query; + return this; + } + + public Builder query(String query) { + this.query = Optional.of(query); + return this; + } + + @JsonSetter(value = "query", nulls = Nulls.SKIP) + public Builder v4RunQueryRequestQuery(Optional v4RunQueryRequestQuery) { + this.v4RunQueryRequestQuery = v4RunQueryRequestQuery; + return this; + } + + public Builder v4RunQueryRequestQuery(String v4RunQueryRequestQuery) { + this.v4RunQueryRequestQuery = Optional.of(v4RunQueryRequestQuery); + return this; + } + + public V4RunQueryRequest build() { + return new V4RunQueryRequest(query, v4RunQueryRequestQuery, additionalProperties); + } + } +} diff --git a/src/main/java/com/polytomic/api/resources/bulksync/types/FieldConfiguration.java b/src/main/java/com/polytomic/api/types/FieldConfiguration.java similarity index 98% rename from src/main/java/com/polytomic/api/resources/bulksync/types/FieldConfiguration.java rename to src/main/java/com/polytomic/api/types/FieldConfiguration.java index b5d1c8a..c195e15 100644 --- a/src/main/java/com/polytomic/api/resources/bulksync/types/FieldConfiguration.java +++ b/src/main/java/com/polytomic/api/types/FieldConfiguration.java @@ -1,7 +1,7 @@ /** * This file was auto-generated by Fern from our API Definition. */ -package com.polytomic.api.resources.bulksync.types; +package com.polytomic.api.types; import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.fasterxml.jackson.annotation.JsonAnySetter; diff --git a/src/main/java/com/polytomic/api/types/Pagination.java b/src/main/java/com/polytomic/api/types/Pagination.java new file mode 100644 index 0000000..7933e5e --- /dev/null +++ b/src/main/java/com/polytomic/api/types/Pagination.java @@ -0,0 +1,123 @@ +/** + * 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 = Pagination.Builder.class) +public final class Pagination { + private final Optional next; + + private final Optional previous; + + private final Map additionalProperties; + + private Pagination(Optional next, Optional previous, Map additionalProperties) { + this.next = next; + this.previous = previous; + this.additionalProperties = additionalProperties; + } + + /** + * @return URL to the next page of results, if available. This may be returned as a host relative path. + */ + @JsonProperty("next") + public Optional getNext() { + return next; + } + + /** + * @return URL to the previous page of results, if available. This may be returned as a host relative path. + */ + @JsonProperty("previous") + public Optional getPrevious() { + return previous; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof Pagination && equalTo((Pagination) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(Pagination other) { + return next.equals(other.next) && previous.equals(other.previous); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.next, this.previous); + } + + @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 next = Optional.empty(); + + private Optional previous = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(Pagination other) { + next(other.getNext()); + previous(other.getPrevious()); + return this; + } + + @JsonSetter(value = "next", nulls = Nulls.SKIP) + public Builder next(Optional next) { + this.next = next; + return this; + } + + public Builder next(String next) { + this.next = Optional.of(next); + return this; + } + + @JsonSetter(value = "previous", nulls = Nulls.SKIP) + public Builder previous(Optional previous) { + this.previous = previous; + return this; + } + + public Builder previous(String previous) { + this.previous = Optional.of(previous); + return this; + } + + public Pagination build() { + return new Pagination(next, previous, additionalProperties); + } + } +} diff --git a/src/main/java/com/polytomic/api/resources/bulksync/types/SchemaConfiguration.java b/src/main/java/com/polytomic/api/types/SchemaConfiguration.java similarity index 78% rename from src/main/java/com/polytomic/api/resources/bulksync/types/SchemaConfiguration.java rename to src/main/java/com/polytomic/api/types/SchemaConfiguration.java index d3216bc..91624a8 100644 --- a/src/main/java/com/polytomic/api/resources/bulksync/types/SchemaConfiguration.java +++ b/src/main/java/com/polytomic/api/types/SchemaConfiguration.java @@ -1,7 +1,7 @@ /** * This file was auto-generated by Fern from our API Definition. */ -package com.polytomic.api.resources.bulksync.types; +package com.polytomic.api.types; import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.fasterxml.jackson.annotation.JsonAnySetter; @@ -23,7 +23,9 @@ public final class SchemaConfiguration { private final Optional enabled; - private final Optional> fields; + private final Optional> fields; + + private final Optional> filters; private final Optional id; @@ -35,13 +37,15 @@ public final class SchemaConfiguration { private SchemaConfiguration( Optional enabled, - Optional> fields, + Optional> fields, + Optional> filters, Optional id, Optional partitionKey, Optional trackingField, Map additionalProperties) { this.enabled = enabled; this.fields = fields; + this.filters = filters; this.id = id; this.partitionKey = partitionKey; this.trackingField = trackingField; @@ -57,10 +61,15 @@ public Optional getEnabled() { } @JsonProperty("fields") - public Optional> getFields() { + public Optional> getFields() { return fields; } + @JsonProperty("filters") + public Optional> getFilters() { + return filters; + } + @JsonProperty("id") public Optional getId() { return id; @@ -90,6 +99,7 @@ public Map getAdditionalProperties() { private boolean equalTo(SchemaConfiguration other) { return enabled.equals(other.enabled) && fields.equals(other.fields) + && filters.equals(other.filters) && id.equals(other.id) && partitionKey.equals(other.partitionKey) && trackingField.equals(other.trackingField); @@ -97,7 +107,7 @@ private boolean equalTo(SchemaConfiguration other) { @java.lang.Override public int hashCode() { - return Objects.hash(this.enabled, this.fields, this.id, this.partitionKey, this.trackingField); + return Objects.hash(this.enabled, this.fields, this.filters, this.id, this.partitionKey, this.trackingField); } @java.lang.Override @@ -113,7 +123,9 @@ public static Builder builder() { public static final class Builder { private Optional enabled = Optional.empty(); - private Optional> fields = Optional.empty(); + private Optional> fields = Optional.empty(); + + private Optional> filters = Optional.empty(); private Optional id = Optional.empty(); @@ -129,6 +141,7 @@ private Builder() {} public Builder from(SchemaConfiguration other) { enabled(other.getEnabled()); fields(other.getFields()); + filters(other.getFilters()); id(other.getId()); partitionKey(other.getPartitionKey()); trackingField(other.getTrackingField()); @@ -147,16 +160,27 @@ public Builder enabled(Boolean enabled) { } @JsonSetter(value = "fields", nulls = Nulls.SKIP) - public Builder fields(Optional> fields) { + public Builder fields(Optional> fields) { this.fields = fields; return this; } - public Builder fields(List fields) { + public Builder fields(List fields) { this.fields = Optional.of(fields); return this; } + @JsonSetter(value = "filters", nulls = Nulls.SKIP) + public Builder filters(Optional> filters) { + this.filters = filters; + return this; + } + + public Builder filters(List filters) { + this.filters = Optional.of(filters); + return this; + } + @JsonSetter(value = "id", nulls = Nulls.SKIP) public Builder id(Optional id) { this.id = id; @@ -191,7 +215,8 @@ public Builder trackingField(String trackingField) { } public SchemaConfiguration build() { - return new SchemaConfiguration(enabled, fields, id, partitionKey, trackingField, additionalProperties); + return new SchemaConfiguration( + enabled, fields, filters, id, partitionKey, trackingField, additionalProperties); } } } diff --git a/src/main/java/com/polytomic/api/resources/bulksync/types/V2CreateBulkSyncRequestSchemasItemEnabledFieldsItem.java b/src/main/java/com/polytomic/api/types/V2SchemaConfigurationFieldsItem.java similarity index 62% rename from src/main/java/com/polytomic/api/resources/bulksync/types/V2CreateBulkSyncRequestSchemasItemEnabledFieldsItem.java rename to src/main/java/com/polytomic/api/types/V2SchemaConfigurationFieldsItem.java index bdd2702..72fab00 100644 --- a/src/main/java/com/polytomic/api/resources/bulksync/types/V2CreateBulkSyncRequestSchemasItemEnabledFieldsItem.java +++ b/src/main/java/com/polytomic/api/types/V2SchemaConfigurationFieldsItem.java @@ -1,7 +1,7 @@ /** * This file was auto-generated by Fern from our API Definition. */ -package com.polytomic.api.resources.bulksync.types; +package com.polytomic.api.types; import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonParseException; @@ -13,13 +13,13 @@ import java.io.IOException; import java.util.Objects; -@JsonDeserialize(using = V2CreateBulkSyncRequestSchemasItemEnabledFieldsItem.Deserializer.class) -public final class V2CreateBulkSyncRequestSchemasItemEnabledFieldsItem { +@JsonDeserialize(using = V2SchemaConfigurationFieldsItem.Deserializer.class) +public final class V2SchemaConfigurationFieldsItem { private final Object value; private final int type; - private V2CreateBulkSyncRequestSchemasItemEnabledFieldsItem(Object value, int type) { + private V2SchemaConfigurationFieldsItem(Object value, int type) { this.value = value; this.type = type; } @@ -41,11 +41,10 @@ public T visit(Visitor visitor) { @java.lang.Override public boolean equals(Object other) { if (this == other) return true; - return other instanceof V2CreateBulkSyncRequestSchemasItemEnabledFieldsItem - && equalTo((V2CreateBulkSyncRequestSchemasItemEnabledFieldsItem) other); + return other instanceof V2SchemaConfigurationFieldsItem && equalTo((V2SchemaConfigurationFieldsItem) other); } - private boolean equalTo(V2CreateBulkSyncRequestSchemasItemEnabledFieldsItem other) { + private boolean equalTo(V2SchemaConfigurationFieldsItem other) { return value.equals(other.value); } @@ -59,12 +58,12 @@ public String toString() { return this.value.toString(); } - public static V2CreateBulkSyncRequestSchemasItemEnabledFieldsItem of(String value) { - return new V2CreateBulkSyncRequestSchemasItemEnabledFieldsItem(value, 0); + public static V2SchemaConfigurationFieldsItem of(String value) { + return new V2SchemaConfigurationFieldsItem(value, 0); } - public static V2CreateBulkSyncRequestSchemasItemEnabledFieldsItem of(FieldConfiguration value) { - return new V2CreateBulkSyncRequestSchemasItemEnabledFieldsItem(value, 1); + public static V2SchemaConfigurationFieldsItem of(FieldConfiguration value) { + return new V2SchemaConfigurationFieldsItem(value, 1); } public interface Visitor { @@ -73,14 +72,14 @@ public interface Visitor { T visit(FieldConfiguration value); } - static final class Deserializer extends StdDeserializer { + static final class Deserializer extends StdDeserializer { Deserializer() { - super(V2CreateBulkSyncRequestSchemasItemEnabledFieldsItem.class); + super(V2SchemaConfigurationFieldsItem.class); } @java.lang.Override - public V2CreateBulkSyncRequestSchemasItemEnabledFieldsItem deserialize( - JsonParser p, DeserializationContext ctxt) throws IOException { + public V2SchemaConfigurationFieldsItem deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { Object value = p.readValueAs(Object.class); try { return of(ObjectMappers.JSON_MAPPER.convertValue(value, String.class)); diff --git a/src/main/java/com/polytomic/api/types/V4QueryResultsEnvelope.java b/src/main/java/com/polytomic/api/types/V4QueryResultsEnvelope.java new file mode 100644 index 0000000..cf6abb2 --- /dev/null +++ b/src/main/java/com/polytomic/api/types/V4QueryResultsEnvelope.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 = V4QueryResultsEnvelope.Builder.class) +public final class V4QueryResultsEnvelope { + private final Optional data; + + private final Optional links; + + private final Map additionalProperties; + + private V4QueryResultsEnvelope( + Optional data, Optional links, Map additionalProperties) { + this.data = data; + this.links = links; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("data") + public Optional getData() { + return data; + } + + @JsonProperty("links") + public Optional getLinks() { + return links; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof V4QueryResultsEnvelope && equalTo((V4QueryResultsEnvelope) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(V4QueryResultsEnvelope other) { + return data.equals(other.data) && links.equals(other.links); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.data, this.links); + } + + @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 links = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(V4QueryResultsEnvelope other) { + data(other.getData()); + links(other.getLinks()); + return this; + } + + @JsonSetter(value = "data", nulls = Nulls.SKIP) + public Builder data(Optional data) { + this.data = data; + return this; + } + + public Builder data(V4RunQueryResult data) { + this.data = Optional.of(data); + return this; + } + + @JsonSetter(value = "links", nulls = Nulls.SKIP) + public Builder links(Optional links) { + this.links = links; + return this; + } + + public Builder links(Pagination links) { + this.links = Optional.of(links); + return this; + } + + public V4QueryResultsEnvelope build() { + return new V4QueryResultsEnvelope(data, links, additionalProperties); + } + } +} diff --git a/src/main/java/com/polytomic/api/types/V4RunQueryEnvelope.java b/src/main/java/com/polytomic/api/types/V4RunQueryEnvelope.java new file mode 100644 index 0000000..241b11a --- /dev/null +++ b/src/main/java/com/polytomic/api/types/V4RunQueryEnvelope.java @@ -0,0 +1,95 @@ +/** + * 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 = V4RunQueryEnvelope.Builder.class) +public final class V4RunQueryEnvelope { + private final Optional data; + + private final Map additionalProperties; + + private V4RunQueryEnvelope(Optional data, Map additionalProperties) { + this.data = data; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("data") + public Optional getData() { + return data; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof V4RunQueryEnvelope && equalTo((V4RunQueryEnvelope) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(V4RunQueryEnvelope other) { + return data.equals(other.data); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.data); + } + + @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(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(V4RunQueryEnvelope other) { + data(other.getData()); + return this; + } + + @JsonSetter(value = "data", nulls = Nulls.SKIP) + public Builder data(Optional data) { + this.data = data; + return this; + } + + public Builder data(V4RunQueryResult data) { + this.data = Optional.of(data); + return this; + } + + public V4RunQueryEnvelope build() { + return new V4RunQueryEnvelope(data, additionalProperties); + } + } +} diff --git a/src/main/java/com/polytomic/api/types/V4RunQueryResult.java b/src/main/java/com/polytomic/api/types/V4RunQueryResult.java new file mode 100644 index 0000000..a9510f4 --- /dev/null +++ b/src/main/java/com/polytomic/api/types/V4RunQueryResult.java @@ -0,0 +1,257 @@ +/** + * 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 = V4RunQueryResult.Builder.class) +public final class V4RunQueryResult { + private final Optional count; + + private final Optional error; + + private final Optional expires; + + private final Optional> fields; + + private final Optional id; + + private final Optional>> results; + + private final Optional status; + + private final Map additionalProperties; + + private V4RunQueryResult( + Optional count, + Optional error, + Optional expires, + Optional> fields, + Optional id, + Optional>> results, + Optional status, + Map additionalProperties) { + this.count = count; + this.error = error; + this.expires = expires; + this.fields = fields; + this.id = id; + this.results = results; + this.status = status; + this.additionalProperties = additionalProperties; + } + + /** + * @return The number of rows returned by the query. This will not be returned until the query completes. + */ + @JsonProperty("count") + public Optional getCount() { + return count; + } + + @JsonProperty("error") + public Optional getError() { + return error; + } + + /** + * @return The time at which the query will expire and be deleted. This will not be returned until the query completes. + */ + @JsonProperty("expires") + public Optional getExpires() { + return expires; + } + + /** + * @return The names of the fields returned by the query. This will not be returned until the query completes. + */ + @JsonProperty("fields") + public Optional> getFields() { + return fields; + } + + /** + * @return The ID of the query task. + */ + @JsonProperty("id") + public Optional getId() { + return id; + } + + /** + * @return The query results, returned as an array of objects. + */ + @JsonProperty("results") + public Optional>> getResults() { + return results; + } + + @JsonProperty("status") + public Optional getStatus() { + return status; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof V4RunQueryResult && equalTo((V4RunQueryResult) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(V4RunQueryResult other) { + return count.equals(other.count) + && error.equals(other.error) + && expires.equals(other.expires) + && fields.equals(other.fields) + && id.equals(other.id) + && results.equals(other.results) + && status.equals(other.status); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.count, this.error, this.expires, this.fields, this.id, this.results, this.status); + } + + @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 count = Optional.empty(); + + private Optional error = Optional.empty(); + + private Optional expires = Optional.empty(); + + private Optional> fields = Optional.empty(); + + private Optional id = Optional.empty(); + + private Optional>> results = Optional.empty(); + + private Optional status = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(V4RunQueryResult other) { + count(other.getCount()); + error(other.getError()); + expires(other.getExpires()); + fields(other.getFields()); + id(other.getId()); + results(other.getResults()); + status(other.getStatus()); + return this; + } + + @JsonSetter(value = "count", nulls = Nulls.SKIP) + public Builder count(Optional count) { + this.count = count; + return this; + } + + public Builder count(Integer count) { + this.count = Optional.of(count); + return this; + } + + @JsonSetter(value = "error", nulls = Nulls.SKIP) + public Builder error(Optional error) { + this.error = error; + return this; + } + + public Builder error(String error) { + this.error = Optional.of(error); + return this; + } + + @JsonSetter(value = "expires", nulls = Nulls.SKIP) + public Builder expires(Optional expires) { + this.expires = expires; + return this; + } + + public Builder expires(String expires) { + this.expires = Optional.of(expires); + return this; + } + + @JsonSetter(value = "fields", nulls = Nulls.SKIP) + public Builder fields(Optional> fields) { + this.fields = fields; + return this; + } + + public Builder fields(List fields) { + this.fields = Optional.of(fields); + 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 = "results", nulls = Nulls.SKIP) + public Builder results(Optional>> results) { + this.results = results; + return this; + } + + public Builder results(List> results) { + this.results = Optional.of(results); + return this; + } + + @JsonSetter(value = "status", nulls = Nulls.SKIP) + public Builder status(Optional status) { + this.status = status; + return this; + } + + public Builder status(WorkTaskStatus status) { + this.status = Optional.of(status); + return this; + } + + public V4RunQueryResult build() { + return new V4RunQueryResult(count, error, expires, fields, id, results, status, additionalProperties); + } + } +} diff --git a/src/main/java/com/polytomic/api/types/WorkTaskStatus.java b/src/main/java/com/polytomic/api/types/WorkTaskStatus.java index d18cb1d..cf21ce0 100644 --- a/src/main/java/com/polytomic/api/types/WorkTaskStatus.java +++ b/src/main/java/com/polytomic/api/types/WorkTaskStatus.java @@ -6,6 +6,8 @@ import com.fasterxml.jackson.annotation.JsonValue; public enum WorkTaskStatus { + CREATED("created"), + RUNNING("running"), DONE("done"),