
com.merge.api.resources.crm.users.requests.UsersRetrieveRequest Maven / Gradle / Ivy
package com.merge.api.resources.crm.users.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 = UsersRetrieveRequest.Builder.class)
public final class UsersRetrieveRequest {
private final Optional includeRemoteData;
private final Optional includeRemoteFields;
private UsersRetrieveRequest(Optional includeRemoteData, Optional includeRemoteFields) {
this.includeRemoteData = includeRemoteData;
this.includeRemoteFields = includeRemoteFields;
}
/**
* @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 Whether to include all remote fields, including fields that Merge did not map to common models, in a normalized format.
*/
@JsonProperty("include_remote_fields")
public Optional getIncludeRemoteFields() {
return includeRemoteFields;
}
@Override
public boolean equals(Object other) {
if (this == other) return true;
return other instanceof UsersRetrieveRequest && equalTo((UsersRetrieveRequest) other);
}
private boolean equalTo(UsersRetrieveRequest other) {
return includeRemoteData.equals(other.includeRemoteData)
&& includeRemoteFields.equals(other.includeRemoteFields);
}
@Override
public int hashCode() {
return Objects.hash(this.includeRemoteData, this.includeRemoteFields);
}
@Override
public String toString() {
return "UsersRetrieveRequest{" + "includeRemoteData: " + includeRemoteData + ", includeRemoteFields: "
+ includeRemoteFields + "}";
}
public static Builder builder() {
return new Builder();
}
@JsonIgnoreProperties(ignoreUnknown = true)
public static final class Builder {
private Optional includeRemoteData = Optional.empty();
private Optional includeRemoteFields = Optional.empty();
private Builder() {}
public Builder from(UsersRetrieveRequest other) {
includeRemoteData(other.getIncludeRemoteData());
includeRemoteFields(other.getIncludeRemoteFields());
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 = "include_remote_fields", nulls = Nulls.SKIP)
public Builder includeRemoteFields(Optional includeRemoteFields) {
this.includeRemoteFields = includeRemoteFields;
return this;
}
public Builder includeRemoteFields(Boolean includeRemoteFields) {
this.includeRemoteFields = Optional.of(includeRemoteFields);
return this;
}
public UsersRetrieveRequest build() {
return new UsersRetrieveRequest(includeRemoteData, includeRemoteFields);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy