All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.merge.api.resources.crm.associations.requests.CustomObjectClassesCustomObjectsAssociationsUpdateRequest Maven / Gradle / Ivy

package com.merge.api.resources.crm.associations.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 = CustomObjectClassesCustomObjectsAssociationsUpdateRequest.Builder.class)
public final class CustomObjectClassesCustomObjectsAssociationsUpdateRequest {
    private final Optional isDebugMode;

    private final Optional runAsync;

    private CustomObjectClassesCustomObjectsAssociationsUpdateRequest(
            Optional isDebugMode, Optional runAsync) {
        this.isDebugMode = isDebugMode;
        this.runAsync = runAsync;
    }

    /**
     * @return Whether to include debug fields (such as log file links) in the response.
     */
    @JsonProperty("is_debug_mode")
    public Optional getIsDebugMode() {
        return isDebugMode;
    }

    /**
     * @return Whether or not third-party updates should be run asynchronously.
     */
    @JsonProperty("run_async")
    public Optional getRunAsync() {
        return runAsync;
    }

    @Override
    public boolean equals(Object other) {
        if (this == other) return true;
        return other instanceof CustomObjectClassesCustomObjectsAssociationsUpdateRequest
                && equalTo((CustomObjectClassesCustomObjectsAssociationsUpdateRequest) other);
    }

    private boolean equalTo(CustomObjectClassesCustomObjectsAssociationsUpdateRequest other) {
        return isDebugMode.equals(other.isDebugMode) && runAsync.equals(other.runAsync);
    }

    @Override
    public int hashCode() {
        return Objects.hash(this.isDebugMode, this.runAsync);
    }

    @Override
    public String toString() {
        return "CustomObjectClassesCustomObjectsAssociationsUpdateRequest{" + "isDebugMode: " + isDebugMode
                + ", runAsync: " + runAsync + "}";
    }

    public static Builder builder() {
        return new Builder();
    }

    @JsonIgnoreProperties(ignoreUnknown = true)
    public static final class Builder {
        private Optional isDebugMode = Optional.empty();

        private Optional runAsync = Optional.empty();

        private Builder() {}

        public Builder from(CustomObjectClassesCustomObjectsAssociationsUpdateRequest other) {
            isDebugMode(other.getIsDebugMode());
            runAsync(other.getRunAsync());
            return this;
        }

        @JsonSetter(value = "is_debug_mode", nulls = Nulls.SKIP)
        public Builder isDebugMode(Optional isDebugMode) {
            this.isDebugMode = isDebugMode;
            return this;
        }

        public Builder isDebugMode(Boolean isDebugMode) {
            this.isDebugMode = Optional.of(isDebugMode);
            return this;
        }

        @JsonSetter(value = "run_async", nulls = Nulls.SKIP)
        public Builder runAsync(Optional runAsync) {
            this.runAsync = runAsync;
            return this;
        }

        public Builder runAsync(Boolean runAsync) {
            this.runAsync = Optional.of(runAsync);
            return this;
        }

        public CustomObjectClassesCustomObjectsAssociationsUpdateRequest build() {
            return new CustomObjectClassesCustomObjectsAssociationsUpdateRequest(isDebugMode, runAsync);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy