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.HashMap;
  import java.util.Map;
  import java.util.Objects;
  import java.util.UUID;
  
  /**
   * ConnectorBuilderProject
   * <p>
   * low-code cd project editable in the connector builder UI
   *
   */
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @JsonPropertyOrder({
    "name",
    "builderProjectId",
    "workspaceId",
    "updatedAt",
    "actorDefinitionId",
    "activeDeclarativeManifestVersion",
    "hasDraft",
    "tombstone",
    "manifestDraft",
    "componentsFileContent",
    "testingValues",
    "baseActorDefinitionVersionId",
    "contributionPullRequestUrl",
    "contributionActorDefinitionId"
  })
  @Generated(value = "Generated by jsonSchema2Pojo")
  public class ConnectorBuilderProject implements Serializable {
  
    /**
     *
     * (Required)
     *
     */
    @JsonProperty("name")
    private String name;
    /**
     *
     * (Required)
     *
     */
    @JsonProperty("builderProjectId")
    private UUID builderProjectId;
    /**
     *
     * (Required)
     *
     */
    @JsonProperty("workspaceId")
    private UUID workspaceId;
    /**
     *
     * (Required)
     *
     */
    @JsonProperty("updatedAt")
    private Long updatedAt;
    @JsonProperty("actorDefinitionId")
    private UUID actorDefinitionId;
    @JsonProperty("activeDeclarativeManifestVersion")
    private Long activeDeclarativeManifestVersion;
    @JsonProperty("hasDraft")
    private Boolean hasDraft;
    @JsonProperty("tombstone")
    private Boolean tombstone;
    /**
     * Integration specific blob. Must be a valid JSON string.
     *
     */
    @JsonProperty("manifestDraft")
    @JsonPropertyDescription("Integration specific blob. Must be a valid JSON string.")
    private JsonNode manifestDraft;
    /**
     * Content of the optional components file
     *
     */
    @JsonProperty("componentsFileContent")
    @JsonPropertyDescription("Content of the optional components file")
    private String componentsFileContent;
    /**
     * Integration specific blob. Must be a valid JSON string.
     *
     */
    @JsonProperty("testingValues")
    @JsonPropertyDescription("Integration specific blob. Must be a valid JSON string.")
    private JsonNode testingValues;
    /**
     * Optional base actor definition version id. Existence indicates that the project was created by
     * forking an existing connector.
     *
     */
    @JsonProperty("baseActorDefinitionVersionId")
    @JsonPropertyDescription("Optional base actor definition version id. Existence indicates that the project was created by forking an existing connector.")
    private UUID baseActorDefinitionVersionId;
    /**
     * Optional URL of the contribution pull request
     *
     */
    @JsonProperty("contributionPullRequestUrl")
    @JsonPropertyDescription("Optional URL of the contribution pull request")
    private String contributionPullRequestUrl;
    /**
     * Optional actor definition id the pull request is contributing to
     *
     */
    @JsonProperty("contributionActorDefinitionId")
    @JsonPropertyDescription("Optional actor definition id the pull request is contributing to")
    private UUID contributionActorDefinitionId;
    @JsonIgnore
    private Map<String, Object> additionalProperties = new HashMap<String, Object>();
    private final static long serialVersionUID = 2096333342242635732L;
  
    /**
     *
     * (Required)
     *
     */
    @JsonProperty("name")
    public String getName() {
      return name;
    }
  
    /**
     *
     * (Required)
     *
     */
    @JsonProperty("name")
    public void setName(String name) {
      this.name = name;
    }
  
    public ConnectorBuilderProject withName(String name) {
      this.name = name;
      return this;
    }
  
    /**
     *
     * (Required)
     *
     */
    @JsonProperty("builderProjectId")
    public UUID getBuilderProjectId() {
      return builderProjectId;
    }
  
    /**
     *
     * (Required)
     *
     */
    @JsonProperty("builderProjectId")
    public void setBuilderProjectId(UUID builderProjectId) {
      this.builderProjectId = builderProjectId;
    }
  
    public ConnectorBuilderProject withBuilderProjectId(UUID builderProjectId) {
      this.builderProjectId = builderProjectId;
      return this;
    }
  
    /**
     *
     * (Required)
     *
     */
    @JsonProperty("workspaceId")
    public UUID getWorkspaceId() {
      return workspaceId;
    }
  
    /**
     *
     * (Required)
     *
     */
    @JsonProperty("workspaceId")
    public void setWorkspaceId(UUID workspaceId) {
      this.workspaceId = workspaceId;
    }
  
    public ConnectorBuilderProject withWorkspaceId(UUID workspaceId) {
      this.workspaceId = workspaceId;
      return this;
    }
  
    /**
     *
     * (Required)
     *
     */
    @JsonProperty("updatedAt")
    public Long getUpdatedAt() {
      return updatedAt;
    }
  
    /**
     *
     * (Required)
     *
     */
    @JsonProperty("updatedAt")
    public void setUpdatedAt(Long updatedAt) {
      this.updatedAt = updatedAt;
    }
  
    public ConnectorBuilderProject withUpdatedAt(Long updatedAt) {
      this.updatedAt = updatedAt;
      return this;
    }
  
    @JsonProperty("actorDefinitionId")
    public UUID getActorDefinitionId() {
      return actorDefinitionId;
    }
  
    @JsonProperty("actorDefinitionId")
    public void setActorDefinitionId(UUID actorDefinitionId) {
      this.actorDefinitionId = actorDefinitionId;
    }
  
    public ConnectorBuilderProject withActorDefinitionId(UUID actorDefinitionId) {
      this.actorDefinitionId = actorDefinitionId;
      return this;
    }
  
    @JsonProperty("activeDeclarativeManifestVersion")
    public Long getActiveDeclarativeManifestVersion() {
      return activeDeclarativeManifestVersion;
    }
  
    @JsonProperty("activeDeclarativeManifestVersion")
    public void setActiveDeclarativeManifestVersion(Long activeDeclarativeManifestVersion) {
      this.activeDeclarativeManifestVersion = activeDeclarativeManifestVersion;
    }
  
    public ConnectorBuilderProject withActiveDeclarativeManifestVersion(Long activeDeclarativeManifestVersion) {
      this.activeDeclarativeManifestVersion = activeDeclarativeManifestVersion;
      return this;
    }
  
    @JsonProperty("hasDraft")
    public Boolean getHasDraft() {
      return hasDraft;
    }
  
    @JsonProperty("hasDraft")
    public void setHasDraft(Boolean hasDraft) {
      this.hasDraft = hasDraft;
    }
  
    public ConnectorBuilderProject withHasDraft(Boolean hasDraft) {
      this.hasDraft = hasDraft;
      return this;
    }
  
    @JsonProperty("tombstone")
    public Boolean getTombstone() {
      return tombstone;
    }
  
    @JsonProperty("tombstone")
    public void setTombstone(Boolean tombstone) {
      this.tombstone = tombstone;
    }
  
    public ConnectorBuilderProject withTombstone(Boolean tombstone) {
      this.tombstone = tombstone;
      return this;
    }
  
    /**
     * Integration specific blob. Must be a valid JSON string.
     *
     */
    @JsonProperty("manifestDraft")
    public JsonNode getManifestDraft() {
      return manifestDraft;
    }
  
    /**
     * Integration specific blob. Must be a valid JSON string.
     *
     */
    @JsonProperty("manifestDraft")
    public void setManifestDraft(JsonNode manifestDraft) {
      this.manifestDraft = manifestDraft;
    }
  
    public ConnectorBuilderProject withManifestDraft(JsonNode manifestDraft) {
      this.manifestDraft = manifestDraft;
      return this;
    }
  
    /**
     * Content of the optional components file
     *
     */
    @JsonProperty("componentsFileContent")
    public String getComponentsFileContent() {
      return componentsFileContent;
    }
  
    /**
     * Content of the optional components file
     *
     */
    @JsonProperty("componentsFileContent")
    public void setComponentsFileContent(String componentsFileContent) {
      this.componentsFileContent = componentsFileContent;
    }
  
    public ConnectorBuilderProject withComponentsFileContent(String componentsFileContent) {
      this.componentsFileContent = componentsFileContent;
      return this;
    }
  
    /**
     * Integration specific blob. Must be a valid JSON string.
     *
     */
    @JsonProperty("testingValues")
    public JsonNode getTestingValues() {
      return testingValues;
    }
  
    /**
     * Integration specific blob. Must be a valid JSON string.
     *
     */
    @JsonProperty("testingValues")
    public void setTestingValues(JsonNode testingValues) {
      this.testingValues = testingValues;
    }
  
    public ConnectorBuilderProject withTestingValues(JsonNode testingValues) {
      this.testingValues = testingValues;
      return this;
    }
  
    /**
     * Optional base actor definition version id. Existence indicates that the project was created by
     * forking an existing connector.
     *
     */
    @JsonProperty("baseActorDefinitionVersionId")
    public UUID getBaseActorDefinitionVersionId() {
      return baseActorDefinitionVersionId;
    }
  
    /**
     * Optional base actor definition version id. Existence indicates that the project was created by
     * forking an existing connector.
     *
     */
    @JsonProperty("baseActorDefinitionVersionId")
    public void setBaseActorDefinitionVersionId(UUID baseActorDefinitionVersionId) {
      this.baseActorDefinitionVersionId = baseActorDefinitionVersionId;
    }
  
    public ConnectorBuilderProject withBaseActorDefinitionVersionId(UUID baseActorDefinitionVersionId) {
      this.baseActorDefinitionVersionId = baseActorDefinitionVersionId;
      return this;
    }
  
    /**
     * Optional URL of the contribution pull request
     *
     */
    @JsonProperty("contributionPullRequestUrl")
    public String getContributionPullRequestUrl() {
      return contributionPullRequestUrl;
    }
  
    /**
     * Optional URL of the contribution pull request
     *
     */
    @JsonProperty("contributionPullRequestUrl")
    public void setContributionPullRequestUrl(String contributionPullRequestUrl) {
      this.contributionPullRequestUrl = contributionPullRequestUrl;
    }
  
    public ConnectorBuilderProject withContributionPullRequestUrl(String contributionPullRequestUrl) {
      this.contributionPullRequestUrl = contributionPullRequestUrl;
      return this;
    }
  
    /**
     * Optional actor definition id the pull request is contributing to
     *
     */
    @JsonProperty("contributionActorDefinitionId")
    public UUID getContributionActorDefinitionId() {
      return contributionActorDefinitionId;
    }
  
    /**
     * Optional actor definition id the pull request is contributing to
     *
     */
    @JsonProperty("contributionActorDefinitionId")
    public void setContributionActorDefinitionId(UUID contributionActorDefinitionId) {
      this.contributionActorDefinitionId = contributionActorDefinitionId;
    }
  
    public ConnectorBuilderProject withContributionActorDefinitionId(UUID contributionActorDefinitionId) {
      this.contributionActorDefinitionId = contributionActorDefinitionId;
      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 ConnectorBuilderProject withAdditionalProperty(String name, Object value) {
      this.additionalProperties.put(name, value);
      return this;
    }
  
    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder();
      sb.append(ConnectorBuilderProject.class.getName()).append('@').append(Integer.toHexString(System.identityHashCode(this))).append('[');
      sb.append("name");
      sb.append('=');
      sb.append(((this.name == null) ? "<null>" : this.name));
      sb.append(',');
      sb.append("builderProjectId");
      sb.append('=');
      sb.append(((this.builderProjectId == null) ? "<null>" : this.builderProjectId));
      sb.append(',');
      sb.append("workspaceId");
      sb.append('=');
      sb.append(((this.workspaceId == null) ? "<null>" : this.workspaceId));
      sb.append(',');
      sb.append("updatedAt");
      sb.append('=');
      sb.append(((this.updatedAt == null) ? "<null>" : this.updatedAt));
      sb.append(',');
      sb.append("actorDefinitionId");
      sb.append('=');
      sb.append(((this.actorDefinitionId == null) ? "<null>" : this.actorDefinitionId));
      sb.append(',');
      sb.append("activeDeclarativeManifestVersion");
      sb.append('=');
      sb.append(((this.activeDeclarativeManifestVersion == null) ? "<null>" : this.activeDeclarativeManifestVersion));
      sb.append(',');
      sb.append("hasDraft");
      sb.append('=');
      sb.append(((this.hasDraft == null) ? "<null>" : this.hasDraft));
      sb.append(',');
      sb.append("tombstone");
      sb.append('=');
      sb.append(((this.tombstone == null) ? "<null>" : this.tombstone));
      sb.append(',');
      sb.append("manifestDraft");
      sb.append('=');
      sb.append(((this.manifestDraft == null) ? "<null>" : this.manifestDraft));
      sb.append(',');
      sb.append("componentsFileContent");
      sb.append('=');
      sb.append(((this.componentsFileContent == null) ? "<null>" : this.componentsFileContent));
      sb.append(',');
      sb.append("testingValues");
      sb.append('=');
      sb.append(((this.testingValues == null) ? "<null>" : this.testingValues));
      sb.append(',');
      sb.append("baseActorDefinitionVersionId");
      sb.append('=');
      sb.append(((this.baseActorDefinitionVersionId == null) ? "<null>" : this.baseActorDefinitionVersionId));
      sb.append(',');
      sb.append("contributionPullRequestUrl");
      sb.append('=');
      sb.append(((this.contributionPullRequestUrl == null) ? "<null>" : this.contributionPullRequestUrl));
      sb.append(',');
      sb.append("contributionActorDefinitionId");
      sb.append('=');
      sb.append(((this.contributionActorDefinitionId == null) ? "<null>" : this.contributionActorDefinitionId));
      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.hasDraft == null) ? 0 : this.hasDraft.hashCode()));
      result = ((result * 31) + ((this.tombstone == null) ? 0 : this.tombstone.hashCode()));
      result = ((result * 31) + ((this.contributionPullRequestUrl == null) ? 0 : this.contributionPullRequestUrl.hashCode()));
      result = ((result * 31) + ((this.testingValues == null) ? 0 : this.testingValues.hashCode()));
      result = ((result * 31) + ((this.baseActorDefinitionVersionId == null) ? 0 : this.baseActorDefinitionVersionId.hashCode()));
      result = ((result * 31) + ((this.actorDefinitionId == null) ? 0 : this.actorDefinitionId.hashCode()));
      result = ((result * 31) + ((this.activeDeclarativeManifestVersion == null) ? 0 : this.activeDeclarativeManifestVersion.hashCode()));
      result = ((result * 31) + ((this.builderProjectId == null) ? 0 : this.builderProjectId.hashCode()));
      result = ((result * 31) + ((this.name == null) ? 0 : this.name.hashCode()));
      result = ((result * 31) + ((this.manifestDraft == null) ? 0 : this.manifestDraft.hashCode()));
      result = ((result * 31) + ((this.componentsFileContent == null) ? 0 : this.componentsFileContent.hashCode()));
      result = ((result * 31) + ((this.additionalProperties == null) ? 0 : this.additionalProperties.hashCode()));
      result = ((result * 31) + ((this.contributionActorDefinitionId == null) ? 0 : this.contributionActorDefinitionId.hashCode()));
      result = ((result * 31) + ((this.workspaceId == null) ? 0 : this.workspaceId.hashCode()));
      result = ((result * 31) + ((this.updatedAt == null) ? 0 : this.updatedAt.hashCode()));
      return result;
    }
  
    @Override
    public boolean equals(Object other) {
      if (other == this) {
        return true;
      }
      if ((other instanceof ConnectorBuilderProject) == false) {
        return false;
      }
      ConnectorBuilderProject rhs = ((ConnectorBuilderProject) other);
      return (((((((((((((((Objects.equals(this.hasDraft, rhs.hasDraft))
          && (Objects.equals(this.tombstone, rhs.tombstone)))
          && ((Objects.equals(this.contributionPullRequestUrl, rhs.contributionPullRequestUrl))
              || ((this.contributionPullRequestUrl != null) && this.contributionPullRequestUrl.equals(rhs.contributionPullRequestUrl))))
          && (Objects.equals(this.testingValues, rhs.testingValues)))
          && (Objects.equals(this.baseActorDefinitionVersionId, rhs.baseActorDefinitionVersionId)))
          && (Objects.equals(this.actorDefinitionId, rhs.actorDefinitionId)))
          && (Objects.equals(this.activeDeclarativeManifestVersion, rhs.activeDeclarativeManifestVersion)))
          && (Objects.equals(this.builderProjectId, rhs.builderProjectId)))
          && (Objects.equals(this.name, rhs.name)))
          && (Objects.equals(this.manifestDraft, rhs.manifestDraft)))
          && ((Objects.equals(this.componentsFileContent, rhs.componentsFileContent))
              || ((this.componentsFileContent != null) && this.componentsFileContent.equals(rhs.componentsFileContent))))
          && (Objects.equals(this.additionalProperties, rhs.additionalProperties)))
          && (Objects.equals(this.contributionActorDefinitionId, rhs.contributionActorDefinitionId)))
          && (Objects.equals(this.workspaceId, rhs.workspaceId)))
          && (Objects.equals(this.updatedAt, rhs.updatedAt)));
    }
  
  }
  