
com.merge.api.resources.ticketing.collections.requests.CollectionsRetrieveRequest Maven / Gradle / Ivy
package com.merge.api.resources.ticketing.collections.requests;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonSetter;
import com.fasterxml.jackson.annotation.Nulls;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import java.util.Objects;
import java.util.Optional;
@JsonDeserialize(builder = CollectionsRetrieveRequest.Builder.class)
public final class CollectionsRetrieveRequest {
private final Optional expand;
private final Optional includeRemoteData;
private final Optional remoteFields;
private final Optional showEnumOrigins;
private CollectionsRetrieveRequest(
Optional expand,
Optional includeRemoteData,
Optional remoteFields,
Optional showEnumOrigins) {
this.expand = expand;
this.includeRemoteData = includeRemoteData;
this.remoteFields = remoteFields;
this.showEnumOrigins = showEnumOrigins;
}
/**
* @return Which relations should be returned in expanded form. Multiple relation names should be comma separated without spaces.
*/
@JsonProperty("expand")
public Optional getExpand() {
return expand;
}
/**
* @return Whether to include the original data Merge fetched from the third-party to produce these models.
*/
@JsonProperty("include_remote_data")
public Optional getIncludeRemoteData() {
return includeRemoteData;
}
/**
* @return Deprecated. Use show_enum_origins.
*/
@JsonProperty("remote_fields")
public Optional getRemoteFields() {
return remoteFields;
}
/**
* @return Which fields should be returned in non-normalized form.
*/
@JsonProperty("show_enum_origins")
public Optional getShowEnumOrigins() {
return showEnumOrigins;
}
@Override
public boolean equals(Object other) {
if (this == other) return true;
return other instanceof CollectionsRetrieveRequest && equalTo((CollectionsRetrieveRequest) other);
}
private boolean equalTo(CollectionsRetrieveRequest other) {
return expand.equals(other.expand)
&& includeRemoteData.equals(other.includeRemoteData)
&& remoteFields.equals(other.remoteFields)
&& showEnumOrigins.equals(other.showEnumOrigins);
}
@Override
public int hashCode() {
return Objects.hash(this.expand, this.includeRemoteData, this.remoteFields, this.showEnumOrigins);
}
@Override
public String toString() {
return "CollectionsRetrieveRequest{" + "expand: " + expand + ", includeRemoteData: " + includeRemoteData
+ ", remoteFields: " + remoteFields + ", showEnumOrigins: " + showEnumOrigins + "}";
}
public static Builder builder() {
return new Builder();
}
@JsonIgnoreProperties(ignoreUnknown = true)
public static final class Builder {
private Optional expand = Optional.empty();
private Optional includeRemoteData = Optional.empty();
private Optional remoteFields = Optional.empty();
private Optional showEnumOrigins = Optional.empty();
private Builder() {}
public Builder from(CollectionsRetrieveRequest other) {
expand(other.getExpand());
includeRemoteData(other.getIncludeRemoteData());
remoteFields(other.getRemoteFields());
showEnumOrigins(other.getShowEnumOrigins());
return this;
}
@JsonSetter(value = "expand", nulls = Nulls.SKIP)
public Builder expand(Optional expand) {
this.expand = expand;
return this;
}
public Builder expand(String expand) {
this.expand = Optional.of(expand);
return this;
}
@JsonSetter(value = "include_remote_data", nulls = Nulls.SKIP)
public Builder includeRemoteData(Optional includeRemoteData) {
this.includeRemoteData = includeRemoteData;
return this;
}
public Builder includeRemoteData(Boolean includeRemoteData) {
this.includeRemoteData = Optional.of(includeRemoteData);
return this;
}
@JsonSetter(value = "remote_fields", nulls = Nulls.SKIP)
public Builder remoteFields(Optional remoteFields) {
this.remoteFields = remoteFields;
return this;
}
public Builder remoteFields(String remoteFields) {
this.remoteFields = Optional.of(remoteFields);
return this;
}
@JsonSetter(value = "show_enum_origins", nulls = Nulls.SKIP)
public Builder showEnumOrigins(Optional showEnumOrigins) {
this.showEnumOrigins = showEnumOrigins;
return this;
}
public Builder showEnumOrigins(String showEnumOrigins) {
this.showEnumOrigins = Optional.of(showEnumOrigins);
return this;
}
public CollectionsRetrieveRequest build() {
return new CollectionsRetrieveRequest(expand, includeRemoteData, remoteFields, showEnumOrigins);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy