additionalProperties = new HashMap<>();
+
+ private Builder() {}
+
+ @java.lang.Override
+ public Builder from(CreateOauthAppOpts other) {
+ app(other.getApp());
+ clientId(other.getClientId());
+ clientSecret(other.getClientSecret());
+ name(other.getName());
+ description(other.getDescription());
+ scopes(other.getScopes());
+ additionalScopes(other.getAdditionalScopes());
+ return this;
+ }
+
+ /**
+ * The app's ID or name slug. The app must have custom OAuth clients enabled.
+ * The app's ID or name slug. The app must have custom OAuth clients enabled.
+ * @return Reference to {@code this} so that method calls can be chained together.
+ */
+ @java.lang.Override
+ @JsonSetter("app")
+ public ClientIdStage app(@NotNull String app) {
+ this.app = Objects.requireNonNull(app, "app must not be null");
+ return this;
+ }
+
+ /**
+ * The OAuth client ID registered with the upstream provider
+ * The OAuth client ID registered with the upstream provider
+ * @return Reference to {@code this} so that method calls can be chained together.
+ */
+ @java.lang.Override
+ @JsonSetter("client_id")
+ public ClientSecretStage clientId(@NotNull String clientId) {
+ this.clientId = Objects.requireNonNull(clientId, "clientId must not be null");
+ return this;
+ }
+
+ /**
+ * The OAuth client secret. Write-only; never returned in responses.
+ * The OAuth client secret. Write-only; never returned in responses.
+ * @return Reference to {@code this} so that method calls can be chained together.
+ */
+ @java.lang.Override
+ @JsonSetter("client_secret")
+ public _FinalStage clientSecret(@NotNull String clientSecret) {
+ this.clientSecret = Objects.requireNonNull(clientSecret, "clientSecret must not be null");
+ return this;
+ }
+
+ /**
+ * Extra OAuth scopes users may grant on top of the base scopes
+ * @return Reference to {@code this} so that method calls can be chained together.
+ */
+ @java.lang.Override
+ public _FinalStage additionalScopes(List additionalScopes) {
+ this.additionalScopes = Optional.ofNullable(additionalScopes);
+ return this;
+ }
+
+ /**
+ * Extra OAuth scopes users may grant on top of the base scopes
+ */
+ @java.lang.Override
+ @JsonSetter(value = "additional_scopes", nulls = Nulls.SKIP)
+ public _FinalStage additionalScopes(Optional> additionalScopes) {
+ this.additionalScopes = additionalScopes;
+ return this;
+ }
+
+ /**
+ * OAuth scopes to request when users connect through this client
+ * @return Reference to {@code this} so that method calls can be chained together.
+ */
+ @java.lang.Override
+ public _FinalStage scopes(List scopes) {
+ this.scopes = Optional.ofNullable(scopes);
+ return this;
+ }
+
+ /**
+ * OAuth scopes to request when users connect through this client
+ */
+ @java.lang.Override
+ @JsonSetter(value = "scopes", nulls = Nulls.SKIP)
+ public _FinalStage scopes(Optional> scopes) {
+ this.scopes = scopes;
+ return this;
+ }
+
+ /**
+ * Description of the OAuth client
+ * @return Reference to {@code this} so that method calls can be chained together.
+ */
+ @java.lang.Override
+ public _FinalStage description(String description) {
+ this.description = Optional.ofNullable(description);
+ return this;
+ }
+
+ /**
+ * Description of the OAuth client
+ */
+ @java.lang.Override
+ @JsonSetter(value = "description", nulls = Nulls.SKIP)
+ public _FinalStage description(Optional description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Display name of the OAuth client
+ * @return Reference to {@code this} so that method calls can be chained together.
+ */
+ @java.lang.Override
+ public _FinalStage name(String name) {
+ this.name = Optional.ofNullable(name);
+ return this;
+ }
+
+ /**
+ * Display name of the OAuth client
+ */
+ @java.lang.Override
+ @JsonSetter(value = "name", nulls = Nulls.SKIP)
+ public _FinalStage name(Optional name) {
+ this.name = name;
+ return this;
+ }
+
+ @java.lang.Override
+ public CreateOauthAppOpts build() {
+ return new CreateOauthAppOpts(
+ app, clientId, clientSecret, name, description, scopes, additionalScopes, additionalProperties);
+ }
+
+ @java.lang.Override
+ public Builder additionalProperty(String key, Object value) {
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ @java.lang.Override
+ public Builder additionalProperties(Map additionalProperties) {
+ this.additionalProperties.putAll(additionalProperties);
+ return this;
+ }
+ }
+}
diff --git a/src/main/java/com/pipedream/api/resources/oauthapps/requests/OauthAppsListRequest.java b/src/main/java/com/pipedream/api/resources/oauthapps/requests/OauthAppsListRequest.java
new file mode 100644
index 0000000..5e2fd1e
--- /dev/null
+++ b/src/main/java/com/pipedream/api/resources/oauthapps/requests/OauthAppsListRequest.java
@@ -0,0 +1,233 @@
+/**
+ * This file was auto-generated by Fern from our API Definition.
+ */
+package com.pipedream.api.resources.oauthapps.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.pipedream.api.core.ObjectMappers;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+
+@JsonInclude(JsonInclude.Include.NON_ABSENT)
+@JsonDeserialize(builder = OauthAppsListRequest.Builder.class)
+public final class OauthAppsListRequest {
+ private final Optional after;
+
+ private final Optional before;
+
+ private final Optional limit;
+
+ private final Optional app;
+
+ private final Optional q;
+
+ private final Map additionalProperties;
+
+ private OauthAppsListRequest(
+ Optional after,
+ Optional before,
+ Optional limit,
+ Optional app,
+ Optional q,
+ Map additionalProperties) {
+ this.after = after;
+ this.before = before;
+ this.limit = limit;
+ this.app = app;
+ this.q = q;
+ this.additionalProperties = additionalProperties;
+ }
+
+ /**
+ * @return The cursor to start from for pagination
+ */
+ @JsonProperty("after")
+ public Optional getAfter() {
+ return after;
+ }
+
+ /**
+ * @return The cursor to end before for pagination
+ */
+ @JsonProperty("before")
+ public Optional getBefore() {
+ return before;
+ }
+
+ /**
+ * @return The maximum number of results to return
+ */
+ @JsonProperty("limit")
+ public Optional getLimit() {
+ return limit;
+ }
+
+ /**
+ * @return Only return OAuth clients for this app (ID or name slug)
+ */
+ @JsonProperty("app")
+ public Optional getApp() {
+ return app;
+ }
+
+ /**
+ * @return A search query to filter the OAuth clients by name or description
+ */
+ @JsonProperty("q")
+ public Optional getQ() {
+ return q;
+ }
+
+ @java.lang.Override
+ public boolean equals(Object other) {
+ if (this == other) return true;
+ return other instanceof OauthAppsListRequest && equalTo((OauthAppsListRequest) other);
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ private boolean equalTo(OauthAppsListRequest other) {
+ return after.equals(other.after)
+ && before.equals(other.before)
+ && limit.equals(other.limit)
+ && app.equals(other.app)
+ && q.equals(other.q);
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ return Objects.hash(this.after, this.before, this.limit, this.app, this.q);
+ }
+
+ @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 after = Optional.empty();
+
+ private Optional before = Optional.empty();
+
+ private Optional limit = Optional.empty();
+
+ private Optional app = Optional.empty();
+
+ private Optional q = Optional.empty();
+
+ @JsonAnySetter
+ private Map additionalProperties = new HashMap<>();
+
+ private Builder() {}
+
+ public Builder from(OauthAppsListRequest other) {
+ after(other.getAfter());
+ before(other.getBefore());
+ limit(other.getLimit());
+ app(other.getApp());
+ q(other.getQ());
+ return this;
+ }
+
+ /**
+ * The cursor to start from for pagination
+ */
+ @JsonSetter(value = "after", nulls = Nulls.SKIP)
+ public Builder after(Optional after) {
+ this.after = after;
+ return this;
+ }
+
+ public Builder after(String after) {
+ this.after = Optional.ofNullable(after);
+ return this;
+ }
+
+ /**
+ * The cursor to end before for pagination
+ */
+ @JsonSetter(value = "before", nulls = Nulls.SKIP)
+ public Builder before(Optional before) {
+ this.before = before;
+ return this;
+ }
+
+ public Builder before(String before) {
+ this.before = Optional.ofNullable(before);
+ return this;
+ }
+
+ /**
+ * The maximum number of results to return
+ */
+ @JsonSetter(value = "limit", nulls = Nulls.SKIP)
+ public Builder limit(Optional limit) {
+ this.limit = limit;
+ return this;
+ }
+
+ public Builder limit(Integer limit) {
+ this.limit = Optional.ofNullable(limit);
+ return this;
+ }
+
+ /**
+ * Only return OAuth clients for this app (ID or name slug)
+ */
+ @JsonSetter(value = "app", nulls = Nulls.SKIP)
+ public Builder app(Optional app) {
+ this.app = app;
+ return this;
+ }
+
+ public Builder app(String app) {
+ this.app = Optional.ofNullable(app);
+ return this;
+ }
+
+ /**
+ * A search query to filter the OAuth clients by name or description
+ */
+ @JsonSetter(value = "q", nulls = Nulls.SKIP)
+ public Builder q(Optional q) {
+ this.q = q;
+ return this;
+ }
+
+ public Builder q(String q) {
+ this.q = Optional.ofNullable(q);
+ return this;
+ }
+
+ public OauthAppsListRequest build() {
+ return new OauthAppsListRequest(after, before, limit, app, q, additionalProperties);
+ }
+
+ public Builder additionalProperty(String key, Object value) {
+ this.additionalProperties.put(key, value);
+ return this;
+ }
+
+ public Builder additionalProperties(Map additionalProperties) {
+ this.additionalProperties.putAll(additionalProperties);
+ return this;
+ }
+ }
+}
diff --git a/src/main/java/com/pipedream/api/resources/oauthapps/requests/UpdateOauthAppOpts.java b/src/main/java/com/pipedream/api/resources/oauthapps/requests/UpdateOauthAppOpts.java
new file mode 100644
index 0000000..0585513
--- /dev/null
+++ b/src/main/java/com/pipedream/api/resources/oauthapps/requests/UpdateOauthAppOpts.java
@@ -0,0 +1,266 @@
+/**
+ * This file was auto-generated by Fern from our API Definition.
+ */
+package com.pipedream.api.resources.oauthapps.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.pipedream.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_ABSENT)
+@JsonDeserialize(builder = UpdateOauthAppOpts.Builder.class)
+public final class UpdateOauthAppOpts {
+ private final Optional name;
+
+ private final Optional description;
+
+ private final Optional clientId;
+
+ private final Optional clientSecret;
+
+ private final Optional> scopes;
+
+ private final Optional> additionalScopes;
+
+ private final Map additionalProperties;
+
+ private UpdateOauthAppOpts(
+ Optional name,
+ Optional description,
+ Optional