content: /*
   * Copyright (c) 2020-2025 Airbyte, Inc., all rights reserved.
   */
  
  package io.airbyte.config;
  
  import com.fasterxml.jackson.annotation.JsonAnyGetter;
  import com.fasterxml.jackson.annotation.JsonAnySetter;
  import com.fasterxml.jackson.annotation.JsonIgnore;
  import com.fasterxml.jackson.annotation.JsonInclude;
  import com.fasterxml.jackson.annotation.JsonProperty;
  import com.fasterxml.jackson.annotation.JsonPropertyDescription;
  import com.fasterxml.jackson.annotation.JsonPropertyOrder;
  import com.fasterxml.jackson.databind.JsonNode;
  import jakarta.annotation.Generated;
  import java.io.Serializable;
  import java.util.ArrayList;
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;
  import java.util.UUID;
  
  /**
   * StandardSyncInput
   * <p>
   * job sync config
   *
   */
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @JsonPropertyOrder({
    "namespaceDefinition",
    "namespaceFormat",
    "prefix",
    "sourceId",
    "destinationId",
    "sourceConfiguration",
    "destinationConfiguration",
    "operationSequence",
    "webhookOperationConfigs",
    "syncResourceRequirements",
    "workspaceId",
    "connectionId",
    "isReset",
    "connectionContext",
    "useAsyncReplicate",
    "useAsyncActivities",
    "networkSecurityTokens",
    "includesFiles",
    "omitFileTransferEnvVar"
  })
  @Generated(value = "Generated by jsonSchema2Pojo")
  public class StandardSyncInput implements Serializable {
  
    /**
     * Namespace Definition
     * <p>
     * Method used for computing final namespace in destination
     *
     */
    @JsonProperty("namespaceDefinition")
    @JsonPropertyDescription("Method used for computing final namespace in destination")
    private JobSyncConfig.NamespaceDefinitionType namespaceDefinition = JobSyncConfig.NamespaceDefinitionType.fromValue("source");
    @JsonProperty("namespaceFormat")
    private String namespaceFormat = null;
    /**
     * Prefix that will be prepended to the name of each stream when it is written to the destination.
     *
     */
    @JsonProperty("prefix")
    @JsonPropertyDescription("Prefix that will be prepended to the name of each stream when it is written to the destination.")
    private String prefix;
    /**
     * Actor ID for the source used in the sync - this is used to update the actor configuration when
     * requested. (Required)
     *
     */
    @JsonProperty("sourceId")
    @JsonPropertyDescription("Actor ID for the source used in the sync - this is used to update the actor configuration when requested.")
    private UUID sourceId;
    /**
     * Actor ID for the destination used in the sync - this is used to update the actor configuration
     * when requested. (Required)
     *
     */
    @JsonProperty("destinationId")
    @JsonPropertyDescription("Actor ID for the destination used in the sync - this is used to update the actor configuration when requested.")
    private UUID destinationId;
    /**
     * Integration specific blob. Must be a valid JSON string. (Required)
     *
     */
    @JsonProperty("sourceConfiguration")
    @JsonPropertyDescription("Integration specific blob. Must be a valid JSON string.")
    private JsonNode sourceConfiguration;
    /**
     * Integration specific blob. Must be a valid JSON string. (Required)
     *
     */
    @JsonProperty("destinationConfiguration")
    @JsonPropertyDescription("Integration specific blob. Must be a valid JSON string.")
    private JsonNode destinationConfiguration;
    /**
     * Sequence of configurations of operations to apply as part of the sync
     *
     */
    @JsonProperty("operationSequence")
    @JsonPropertyDescription("Sequence of configurations of operations to apply as part of the sync")
    private List<StandardSyncOperation> operationSequence = new ArrayList<StandardSyncOperation>();
    /**
     * The webhook operation configs belonging to this workspace. See webhookOperationConfigs in
     * StandardWorkspace.yaml.
     *
     */
    @JsonProperty("webhookOperationConfigs")
    @JsonPropertyDescription("The webhook operation configs belonging to this workspace. See webhookOperationConfigs in StandardWorkspace.yaml.")
    private JsonNode webhookOperationConfigs;
    /**
     * SyncResourceRequirements
     * <p>
     * Define resource requirements for a sync
     *
     */
    @JsonProperty("syncResourceRequirements")
    @JsonPropertyDescription("Define resource requirements for a sync")
    private SyncResourceRequirements syncResourceRequirements;
    /**
     * The id of the workspace associated with this sync
     *
     */
    @JsonProperty("workspaceId")
    @JsonPropertyDescription("The id of the workspace associated with this sync")
    private UUID workspaceId;
    /**
     * The id of the connection associated with this sync
     *
     */
    @JsonProperty("connectionId")
    @JsonPropertyDescription("The id of the connection associated with this sync")
    private UUID connectionId;
    /**
     * whether this 'sync' is performing a logical reset
     *
     */
    @JsonProperty("isReset")
    @JsonPropertyDescription("whether this 'sync' is performing a logical reset")
    private Boolean isReset = false;
    /**
     * ConnectionContext
     * <p>
     * Context to be passed to a temporal workflow and its activities/child workflows.
     *
     */
    @JsonProperty("connectionContext")
    @JsonPropertyDescription("Context to be passed to a temporal workflow and its activities/child workflows.")
    private ConnectionContext connectionContext;
    /**
     * whether we should use async replicate
     *
     */
    @JsonProperty("useAsyncReplicate")
    @JsonPropertyDescription("whether we should use async replicate")
    private Boolean useAsyncReplicate;
    /**
     * whether we should use async activities
     *
     */
    @JsonProperty("useAsyncActivities")
    @JsonPropertyDescription("whether we should use async activities")
    private Boolean useAsyncActivities;
    /**
     * Workload launcher will use these to grant pods additional network access
     *
     */
    @JsonProperty("networkSecurityTokens")
    @JsonPropertyDescription("Workload launcher will use these to grant pods additional network access")
    private List<String> networkSecurityTokens = new ArrayList<String>();
    /**
     * Whether or not the sync may move files.
     *
     */
    @JsonProperty("includesFiles")
    @JsonPropertyDescription("Whether or not the sync may move files.")
    private Boolean includesFiles = false;
    /**
     * whether to omit the file transfer env var when using file transfer. Deprecated, to delete when
     * destinations no longer support the old flow.
     *
     */
    @JsonProperty("omitFileTransferEnvVar")
    @JsonPropertyDescription("whether to omit the file transfer env var when using file transfer. Deprecated, to delete when destinations no longer support the old flow.")
    private Boolean omitFileTransferEnvVar = false;
    @JsonIgnore
    private Map<String, Object> additionalProperties = new HashMap<String, Object>();
    private final static long serialVersionUID = -5272257992185450420L;
  
    /**
     * Namespace Definition
     * <p>
     * Method used for computing final namespace in destination
     *
     */
    @JsonProperty("namespaceDefinition")
    public JobSyncConfig.NamespaceDefinitionType getNamespaceDefinition() {
      return namespaceDefinition;
    }
  
    /**
     * Namespace Definition
     * <p>
     * Method used for computing final namespace in destination
     *
     */
    @JsonProperty("namespaceDefinition")
    public void setNamespaceDefinition(JobSyncConfig.NamespaceDefinitionType namespaceDefinition) {
      this.namespaceDefinition = namespaceDefinition;
    }
  
    public StandardSyncInput withNamespaceDefinition(JobSyncConfig.NamespaceDefinitionType namespaceDefinition) {
      this.namespaceDefinition = namespaceDefinition;
      return this;
    }
  
    @JsonProperty("namespaceFormat")
    public String getNamespaceFormat() {
      return namespaceFormat;
    }
  
    @JsonProperty("namespaceFormat")
    public void setNamespaceFormat(String namespaceFormat) {
      this.namespaceFormat = namespaceFormat;
    }
  
    public StandardSyncInput withNamespaceFormat(String namespaceFormat) {
      this.namespaceFormat = namespaceFormat;
      return this;
    }
  
    /**
     * Prefix that will be prepended to the name of each stream when it is written to the destination.
     *
     */
    @JsonProperty("prefix")
    public String getPrefix() {
      return prefix;
    }
  
    /**
     * Prefix that will be prepended to the name of each stream when it is written to the destination.
     *
     */
    @JsonProperty("prefix")
    public void setPrefix(String prefix) {
      this.prefix = prefix;
    }
  
    public StandardSyncInput withPrefix(String prefix) {
      this.prefix = prefix;
      return this;
    }
  
    /**
     * Actor ID for the source used in the sync - this is used to update the actor configuration when
     * requested. (Required)
     *
     */
    @JsonProperty("sourceId")
    public UUID getSourceId() {
      return sourceId;
    }
  
    /**
     * Actor ID for the source used in the sync - this is used to update the actor configuration when
     * requested. (Required)
     *
     */
    @JsonProperty("sourceId")
    public void setSourceId(UUID sourceId) {
      this.sourceId = sourceId;
    }
  
    public StandardSyncInput withSourceId(UUID sourceId) {
      this.sourceId = sourceId;
      return this;
    }
  
    /**
     * Actor ID for the destination used in the sync - this is used to update the actor configuration
     * when requested. (Required)
     *
     */
    @JsonProperty("destinationId")
    public UUID getDestinationId() {
      return destinationId;
    }
  
    /**
     * Actor ID for the destination used in the sync - this is used to update the actor configuration
     * when requested. (Required)
     *
     */
    @JsonProperty("destinationId")
    public void setDestinationId(UUID destinationId) {
      this.destinationId = destinationId;
    }
  
    public StandardSyncInput withDestinationId(UUID destinationId) {
      this.destinationId = destinationId;
      return this;
    }
  
    /**
     * Integration specific blob. Must be a valid JSON string. (Required)
     *
     */
    @JsonProperty("sourceConfiguration")
    public JsonNode getSourceConfiguration() {
      return sourceConfiguration;
    }
  
    /**
     * Integration specific blob. Must be a valid JSON string. (Required)
     *
     */
    @JsonProperty("sourceConfiguration")
    public void setSourceConfiguration(JsonNode sourceConfiguration) {
      this.sourceConfiguration = sourceConfiguration;
    }
  
    public StandardSyncInput withSourceConfiguration(JsonNode sourceConfiguration) {
      this.sourceConfiguration = sourceConfiguration;
      return this;
    }
  
    /**
     * Integration specific blob. Must be a valid JSON string. (Required)
     *
     */
    @JsonProperty("destinationConfiguration")
    public JsonNode getDestinationConfiguration() {
      return destinationConfiguration;
    }
  
    /**
     * Integration specific blob. Must be a valid JSON string. (Required)
     *
     */
    @JsonProperty("destinationConfiguration")
    public void setDestinationConfiguration(JsonNode destinationConfiguration) {
      this.destinationConfiguration = destinationConfiguration;
    }
  
    public StandardSyncInput withDestinationConfiguration(JsonNode destinationConfiguration) {
      this.destinationConfiguration = destinationConfiguration;
      return this;
    }
  
    /**
     * Sequence of configurations of operations to apply as part of the sync
     *
     */
    @JsonProperty("operationSequence")
    public List<StandardSyncOperation> getOperationSequence() {
      return operationSequence;
    }
  
    /**
     * Sequence of configurations of operations to apply as part of the sync
     *
     */
    @JsonProperty("operationSequence")
    public void setOperationSequence(List<StandardSyncOperation> operationSequence) {
      this.operationSequence = operationSequence;
    }
  
    public StandardSyncInput withOperationSequence(List<StandardSyncOperation> operationSequence) {
      this.operationSequence = operationSequence;
      return this;
    }
  
    /**
     * The webhook operation configs belonging to this workspace. See webhookOperationConfigs in
     * StandardWorkspace.yaml.
     *
     */
    @JsonProperty("webhookOperationConfigs")
    public JsonNode getWebhookOperationConfigs() {
      return webhookOperationConfigs;
    }
  
    /**
     * The webhook operation configs belonging to this workspace. See webhookOperationConfigs in
     * StandardWorkspace.yaml.
     *
     */
    @JsonProperty("webhookOperationConfigs")
    public void setWebhookOperationConfigs(JsonNode webhookOperationConfigs) {
      this.webhookOperationConfigs = webhookOperationConfigs;
    }
  
    public StandardSyncInput withWebhookOperationConfigs(JsonNode webhookOperationConfigs) {
      this.webhookOperationConfigs = webhookOperationConfigs;
      return this;
    }
  
    /**
     * SyncResourceRequirements
     * <p>
     * Define resource requirements for a sync
     *
     */
    @JsonProperty("syncResourceRequirements")
    public SyncResourceRequirements getSyncResourceRequirements() {
      return syncResourceRequirements;
    }
  
    /**
     * SyncResourceRequirements
     * <p>
     * Define resource requirements for a sync
     *
     */
    @JsonProperty("syncResourceRequirements")
    public void setSyncResourceRequirements(SyncResourceRequirements syncResourceRequirements) {
      this.syncResourceRequirements = syncResourceRequirements;
    }
  
    public StandardSyncInput withSyncResourceRequirements(SyncResourceRequirements syncResourceRequirements) {
      this.syncResourceRequirements = syncResourceRequirements;
      return this;
    }
  
    /**
     * The id of the workspace associated with this sync
     *
     */
    @JsonProperty("workspaceId")
    public UUID getWorkspaceId() {
      return workspaceId;
    }
  
    /**
     * The id of the workspace associated with this sync
     *
     */
    @JsonProperty("workspaceId")
    public void setWorkspaceId(UUID workspaceId) {
      this.workspaceId = workspaceId;
    }
  
    public StandardSyncInput withWorkspaceId(UUID workspaceId) {
      this.workspaceId = workspaceId;
      return this;
    }
  
    /**
     * The id of the connection associated with this sync
     *
     */
    @JsonProperty("connectionId")
    public UUID getConnectionId() {
      return connectionId;
    }
  
    /**
     * The id of the connection associated with this sync
     *
     */
    @JsonProperty("connectionId")
    public void setConnectionId(UUID connectionId) {
      this.connectionId = connectionId;
    }
  
    public StandardSyncInput withConnectionId(UUID connectionId) {
      this.connectionId = connectionId;
      return this;
    }
  
    /**
     * whether this 'sync' is performing a logical reset
     *
     */
    @JsonProperty("isReset")
    public Boolean getIsReset() {
      return isReset;
    }
  
    /**
     * whether this 'sync' is performing a logical reset
     *
     */
    @JsonProperty("isReset")
    public void setIsReset(Boolean isReset) {
      this.isReset = isReset;
    }
  
    public StandardSyncInput withIsReset(Boolean isReset) {
      this.isReset = isReset;
      return this;
    }
  
    /**
     * ConnectionContext
     * <p>
     * Context to be passed to a temporal workflow and its activities/child workflows.
     *
     */
    @JsonProperty("connectionContext")
    public ConnectionContext getConnectionContext() {
      return connectionContext;
    }
  
    /**
     * ConnectionContext
     * <p>
     * Context to be passed to a temporal workflow and its activities/child workflows.
     *
     */
    @JsonProperty("connectionContext")
    public void setConnectionContext(ConnectionContext connectionContext) {
      this.connectionContext = connectionContext;
    }
  
    public StandardSyncInput withConnectionContext(ConnectionContext connectionContext) {
      this.connectionContext = connectionContext;
      return this;
    }
  
    /**
     * whether we should use async replicate
     *
     */
    @JsonProperty("useAsyncReplicate")
    public Boolean getUseAsyncReplicate() {
      return useAsyncReplicate;
    }
  
    /**
     * whether we should use async replicate
     *
     */
    @JsonProperty("useAsyncReplicate")
    public void setUseAsyncReplicate(Boolean useAsyncReplicate) {
      this.useAsyncReplicate = useAsyncReplicate;
    }
  
    public StandardSyncInput withUseAsyncReplicate(Boolean useAsyncReplicate) {
      this.useAsyncReplicate = useAsyncReplicate;
      return this;
    }
  
    /**
     * whether we should use async activities
     *
     */
    @JsonProperty("useAsyncActivities")
    public Boolean getUseAsyncActivities() {
      return useAsyncActivities;
    }
  
    /**
     * whether we should use async activities
     *
     */
    @JsonProperty("useAsyncActivities")
    public void setUseAsyncActivities(Boolean useAsyncActivities) {
      this.useAsyncActivities = useAsyncActivities;
    }
  
    public StandardSyncInput withUseAsyncActivities(Boolean useAsyncActivities) {
      this.useAsyncActivities = useAsyncActivities;
      return this;
    }
  
    /**
     * Workload launcher will use these to grant pods additional network access
     *
     */
    @JsonProperty("networkSecurityTokens")
    public List<String> getNetworkSecurityTokens() {
      return networkSecurityTokens;
    }
  
    /**
     * Workload launcher will use these to grant pods additional network access
     *
     */
    @JsonProperty("networkSecurityTokens")
    public void setNetworkSecurityTokens(List<String> networkSecurityTokens) {
      this.networkSecurityTokens = networkSecurityTokens;
    }
  
    public StandardSyncInput withNetworkSecurityTokens(List<String> networkSecurityTokens) {
      this.networkSecurityTokens = networkSecurityTokens;
      return this;
    }
  
    /**
     * Whether or not the sync may move files.
     *
     */
    @JsonProperty("includesFiles")
    public Boolean getIncludesFiles() {
      return includesFiles;
    }
  
    /**
     * Whether or not the sync may move files.
     *
     */
    @JsonProperty("includesFiles")
    public void setIncludesFiles(Boolean includesFiles) {
      this.includesFiles = includesFiles;
    }
  
    public StandardSyncInput withIncludesFiles(Boolean includesFiles) {
      this.includesFiles = includesFiles;
      return this;
    }
  
    /**
     * whether to omit the file transfer env var when using file transfer. Deprecated, to delete when
     * destinations no longer support the old flow.
     *
     */
    @JsonProperty("omitFileTransferEnvVar")
    public Boolean getOmitFileTransferEnvVar() {
      return omitFileTransferEnvVar;
    }
  
    /**
     * whether to omit the file transfer env var when using file transfer. Deprecated, to delete when
     * destinations no longer support the old flow.
     *
     */
    @JsonProperty("omitFileTransferEnvVar")
    public void setOmitFileTransferEnvVar(Boolean omitFileTransferEnvVar) {
      this.omitFileTransferEnvVar = omitFileTransferEnvVar;
    }
  
    public StandardSyncInput withOmitFileTransferEnvVar(Boolean omitFileTransferEnvVar) {
      this.omitFileTransferEnvVar = omitFileTransferEnvVar;
      return this;
    }
  
    @JsonAnyGetter
    public Map<String, Object> getAdditionalProperties() {
      return this.additionalProperties;
    }
  
    @JsonAnySetter
    public void setAdditionalProperty(String name, Object value) {
      this.additionalProperties.put(name, value);
    }
  
    public StandardSyncInput withAdditionalProperty(String name, Object value) {
      this.additionalProperties.put(name, value);
      return this;
    }
  
    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder();
      sb.append(StandardSyncInput.class.getName()).append('@').append(Integer.toHexString(System.identityHashCode(this))).append('[');
      sb.append("namespaceDefinition");
      sb.append('=');
      sb.append(((this.namespaceDefinition == null) ? "<null>" : this.namespaceDefinition));
      sb.append(',');
      sb.append("namespaceFormat");
      sb.append('=');
      sb.append(((this.namespaceFormat == null) ? "<null>" : this.namespaceFormat));
      sb.append(',');
      sb.append("prefix");
      sb.append('=');
      sb.append(((this.prefix == null) ? "<null>" : this.prefix));
      sb.append(',');
      sb.append("sourceId");
      sb.append('=');
      sb.append(((this.sourceId == null) ? "<null>" : this.sourceId));
      sb.append(',');
      sb.append("destinationId");
      sb.append('=');
      sb.append(((this.destinationId == null) ? "<null>" : this.destinationId));
      sb.append(',');
      sb.append("sourceConfiguration");
      sb.append('=');
      sb.append(((this.sourceConfiguration == null) ? "<null>" : this.sourceConfiguration));
      sb.append(',');
      sb.append("destinationConfiguration");
      sb.append('=');
      sb.append(((this.destinationConfiguration == null) ? "<null>" : this.destinationConfiguration));
      sb.append(',');
      sb.append("operationSequence");
      sb.append('=');
      sb.append(((this.operationSequence == null) ? "<null>" : this.operationSequence));
      sb.append(',');
      sb.append("webhookOperationConfigs");
      sb.append('=');
      sb.append(((this.webhookOperationConfigs == null) ? "<null>" : this.webhookOperationConfigs));
      sb.append(',');
      sb.append("syncResourceRequirements");
      sb.append('=');
      sb.append(((this.syncResourceRequirements == null) ? "<null>" : this.syncResourceRequirements));
      sb.append(',');
      sb.append("workspaceId");
      sb.append('=');
      sb.append(((this.workspaceId == null) ? "<null>" : this.workspaceId));
      sb.append(',');
      sb.append("connectionId");
      sb.append('=');
      sb.append(((this.connectionId == null) ? "<null>" : this.connectionId));
      sb.append(',');
      sb.append("isReset");
      sb.append('=');
      sb.append(((this.isReset == null) ? "<null>" : this.isReset));
      sb.append(',');
      sb.append("connectionContext");
      sb.append('=');
      sb.append(((this.connectionContext == null) ? "<null>" : this.connectionContext));
      sb.append(',');
      sb.append("useAsyncReplicate");
      sb.append('=');
      sb.append(((this.useAsyncReplicate == null) ? "<null>" : this.useAsyncReplicate));
      sb.append(',');
      sb.append("useAsyncActivities");
      sb.append('=');
      sb.append(((this.useAsyncActivities == null) ? "<null>" : this.useAsyncActivities));
      sb.append(',');
      sb.append("networkSecurityTokens");
      sb.append('=');
      sb.append(((this.networkSecurityTokens == null) ? "<null>" : this.networkSecurityTokens));
      sb.append(',');
      sb.append("includesFiles");
      sb.append('=');
      sb.append(((this.includesFiles == null) ? "<null>" : this.includesFiles));
      sb.append(',');
      sb.append("omitFileTransferEnvVar");
      sb.append('=');
      sb.append(((this.omitFileTransferEnvVar == null) ? "<null>" : this.omitFileTransferEnvVar));
      sb.append(',');
      sb.append("additionalProperties");
      sb.append('=');
      sb.append(((this.additionalProperties == null) ? "<null>" : this.additionalProperties));
      sb.append(',');
      if (sb.charAt((sb.length() - 1)) == ',') {
        sb.setCharAt((sb.length() - 1), ']');
      } else {
        sb.append(']');
      }
      return sb.toString();
    }
  
    @Override
    public int hashCode() {
      int result = 1;
      result = ((result * 31) + ((this.sourceId == null) ? 0 : this.sourceId.hashCode()));
      result = ((result * 31) + ((this.webhookOperationConfigs == null) ? 0 : this.webhookOperationConfigs.hashCode()));
      result = ((result * 31) + ((this.operationSequence == null) ? 0 : this.operationSequence.hashCode()));
      result = ((result * 31) + ((this.useAsyncActivities == null) ? 0 : this.useAsyncActivities.hashCode()));
      result = ((result * 31) + ((this.prefix == null) ? 0 : this.prefix.hashCode()));
      result = ((result * 31) + ((this.networkSecurityTokens == null) ? 0 : this.networkSecurityTokens.hashCode()));
      result = ((result * 31) + ((this.destinationId == null) ? 0 : this.destinationId.hashCode()));
      result = ((result * 31) + ((this.syncResourceRequirements == null) ? 0 : this.syncResourceRequirements.hashCode()));
      result = ((result * 31) + ((this.namespaceDefinition == null) ? 0 : this.namespaceDefinition.hashCode()));
      result = ((result * 31) + ((this.useAsyncReplicate == null) ? 0 : this.useAsyncReplicate.hashCode()));
      result = ((result * 31) + ((this.destinationConfiguration == null) ? 0 : this.destinationConfiguration.hashCode()));
      result = ((result * 31) + ((this.sourceConfiguration == null) ? 0 : this.sourceConfiguration.hashCode()));
      result = ((result * 31) + ((this.includesFiles == null) ? 0 : this.includesFiles.hashCode()));
      result = ((result * 31) + ((this.connectionContext == null) ? 0 : this.connectionContext.hashCode()));
      result = ((result * 31) + ((this.omitFileTransferEnvVar == null) ? 0 : this.omitFileTransferEnvVar.hashCode()));
      result = ((result * 31) + ((this.namespaceFormat == null) ? 0 : this.namespaceFormat.hashCode()));
      result = ((result * 31) + ((this.connectionId == null) ? 0 : this.connectionId.hashCode()));
      result = ((result * 31) + ((this.isReset == null) ? 0 : this.isReset.hashCode()));
      result = ((result * 31) + ((this.additionalProperties == null) ? 0 : this.additionalProperties.hashCode()));
      result = ((result * 31) + ((this.workspaceId == null) ? 0 : this.workspaceId.hashCode()));
      return result;
    }
  
    @Override
    public boolean equals(Object other) {
      if (other == this) {
        return true;
      }
      if ((other instanceof StandardSyncInput) == false) {
        return false;
      }
      StandardSyncInput rhs = ((StandardSyncInput) other);
      return (((((((((((((((((((((this.sourceId == rhs.sourceId) || ((this.sourceId != null) && this.sourceId.equals(rhs.sourceId)))
          && ((this.webhookOperationConfigs == rhs.webhookOperationConfigs)
              || ((this.webhookOperationConfigs != null) && this.webhookOperationConfigs.equals(rhs.webhookOperationConfigs))))
          && ((this.operationSequence == rhs.operationSequence)
              || ((this.operationSequence != null) && this.operationSequence.equals(rhs.operationSequence))))
          && ((this.useAsyncActivities == rhs.useAsyncActivities)
              || ((this.useAsyncActivities != null) && this.useAsyncActivities.equals(rhs.useAsyncActivities))))
          && ((this.prefix == rhs.prefix) || ((this.prefix != null) && this.prefix.equals(rhs.prefix))))
          && ((this.networkSecurityTokens == rhs.networkSecurityTokens)
              || ((this.networkSecurityTokens != null) && this.networkSecurityTokens.equals(rhs.networkSecurityTokens))))
          && ((this.destinationId == rhs.destinationId) || ((this.destinationId != null) && this.destinationId.equals(rhs.destinationId))))
          && ((this.syncResourceRequirements == rhs.syncResourceRequirements)
              || ((this.syncResourceRequirements != null) && this.syncResourceRequirements.equals(rhs.syncResourceRequirements))))
          && ((this.namespaceDefinition == rhs.namespaceDefinition)
              || ((this.namespaceDefinition != null) && this.namespaceDefinition.equals(rhs.namespaceDefinition))))
          && ((this.useAsyncReplicate == rhs.useAsyncReplicate)
              || ((this.useAsyncReplicate != null) && this.useAsyncReplicate.equals(rhs.useAsyncReplicate))))
          && ((this.destinationConfiguration == rhs.destinationConfiguration)
              || ((this.destinationConfiguration != null) && this.destinationConfiguration.equals(rhs.destinationConfiguration))))
          && ((this.sourceConfiguration == rhs.sourceConfiguration)
              || ((this.sourceConfiguration != null) && this.sourceConfiguration.equals(rhs.sourceConfiguration))))
          && ((this.includesFiles == rhs.includesFiles) || ((this.includesFiles != null) && this.includesFiles.equals(rhs.includesFiles))))
          && ((this.connectionContext == rhs.connectionContext)
              || ((this.connectionContext != null) && this.connectionContext.equals(rhs.connectionContext))))
          && ((this.omitFileTransferEnvVar == rhs.omitFileTransferEnvVar)
              || ((this.omitFileTransferEnvVar != null) && this.omitFileTransferEnvVar.equals(rhs.omitFileTransferEnvVar))))
          && ((this.namespaceFormat == rhs.namespaceFormat) || ((this.namespaceFormat != null) && this.namespaceFormat.equals(rhs.namespaceFormat))))
          && ((this.connectionId == rhs.connectionId) || ((this.connectionId != null) && this.connectionId.equals(rhs.connectionId))))
          && ((this.isReset == rhs.isReset) || ((this.isReset != null) && this.isReset.equals(rhs.isReset))))
          && ((this.additionalProperties == rhs.additionalProperties)
              || ((this.additionalProperties != null) && this.additionalProperties.equals(rhs.additionalProperties))))
          && ((this.workspaceId == rhs.workspaceId) || ((this.workspaceId != null) && this.workspaceId.equals(rhs.workspaceId))));
    }
  
  }
  