content: /*
   * Copyright (c) 2020-2025 Airbyte, Inc., all rights reserved.
   */
  
  package io.airbyte.config;
  
  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 jakarta.annotation.Generated;
  import java.io.Serializable;
  
  /**
   * Application
   * <p>
   * An Application for a user or non-user entity i.e. an organization
   *
   */
  @JsonInclude(JsonInclude.Include.NON_NULL)
  @JsonPropertyOrder({
    "id",
    "name",
    "client_id",
    "client_secret",
    "createdOn"
  })
  @Generated(value = "Generated by jsonSchema2Pojo")
  public class Application implements Serializable {
  
    /**
     * An ID that uniquely identifies the Application in the downstream service. Is used for deletion.
     *
     */
    @JsonProperty("id")
    @JsonPropertyDescription("An ID that uniquely identifies the Application in the downstream service. Is used for deletion.")
    private String id;
    /**
     * Caption name for the Application (Required)
     *
     */
    @JsonProperty("name")
    @JsonPropertyDescription("Caption name for the Application")
    private String name;
    /**
     * The client id, only returned on creation
     *
     */
    @JsonProperty("client_id")
    @JsonPropertyDescription("The client id, only returned on creation")
    private String clientId;
    /**
     * The client secret, only returned on creation
     *
     */
    @JsonProperty("client_secret")
    @JsonPropertyDescription("The client secret, only returned on creation")
    private String clientSecret;
    /**
     * A date string in ISO 8601 format (e.g. 2021-01-01T00:00:00Z) that the key was created.
     *
     */
    @JsonProperty("createdOn")
    @JsonPropertyDescription("A date string in ISO 8601 format (e.g. 2021-01-01T00:00:00Z) that the key was created.")
    private String createdOn;
    private final static long serialVersionUID = -3421136931368435874L;
  
    /**
     * An ID that uniquely identifies the Application in the downstream service. Is used for deletion.
     *
     */
    @JsonProperty("id")
    public String getId() {
      return id;
    }
  
    /**
     * An ID that uniquely identifies the Application in the downstream service. Is used for deletion.
     *
     */
    @JsonProperty("id")
    public void setId(String id) {
      this.id = id;
    }
  
    public Application withId(String id) {
      this.id = id;
      return this;
    }
  
    /**
     * Caption name for the Application (Required)
     *
     */
    @JsonProperty("name")
    public String getName() {
      return name;
    }
  
    /**
     * Caption name for the Application (Required)
     *
     */
    @JsonProperty("name")
    public void setName(String name) {
      this.name = name;
    }
  
    public Application withName(String name) {
      this.name = name;
      return this;
    }
  
    /**
     * The client id, only returned on creation
     *
     */
    @JsonProperty("client_id")
    public String getClientId() {
      return clientId;
    }
  
    /**
     * The client id, only returned on creation
     *
     */
    @JsonProperty("client_id")
    public void setClientId(String clientId) {
      this.clientId = clientId;
    }
  
    public Application withClientId(String clientId) {
      this.clientId = clientId;
      return this;
    }
  
    /**
     * The client secret, only returned on creation
     *
     */
    @JsonProperty("client_secret")
    public String getClientSecret() {
      return clientSecret;
    }
  
    /**
     * The client secret, only returned on creation
     *
     */
    @JsonProperty("client_secret")
    public void setClientSecret(String clientSecret) {
      this.clientSecret = clientSecret;
    }
  
    public Application withClientSecret(String clientSecret) {
      this.clientSecret = clientSecret;
      return this;
    }
  
    /**
     * A date string in ISO 8601 format (e.g. 2021-01-01T00:00:00Z) that the key was created.
     *
     */
    @JsonProperty("createdOn")
    public String getCreatedOn() {
      return createdOn;
    }
  
    /**
     * A date string in ISO 8601 format (e.g. 2021-01-01T00:00:00Z) that the key was created.
     *
     */
    @JsonProperty("createdOn")
    public void setCreatedOn(String createdOn) {
      this.createdOn = createdOn;
    }
  
    public Application withCreatedOn(String createdOn) {
      this.createdOn = createdOn;
      return this;
    }
  
    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder();
      sb.append(Application.class.getName()).append('@').append(Integer.toHexString(System.identityHashCode(this))).append('[');
      sb.append("id");
      sb.append('=');
      sb.append(((this.id == null) ? "<null>" : this.id));
      sb.append(',');
      sb.append("name");
      sb.append('=');
      sb.append(((this.name == null) ? "<null>" : this.name));
      sb.append(',');
      sb.append("clientId");
      sb.append('=');
      sb.append(((this.clientId == null) ? "<null>" : this.clientId));
      sb.append(',');
      sb.append("clientSecret");
      sb.append('=');
      sb.append(((this.clientSecret == null) ? "<null>" : this.clientSecret));
      sb.append(',');
      sb.append("createdOn");
      sb.append('=');
      sb.append(((this.createdOn == null) ? "<null>" : this.createdOn));
      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.name == null) ? 0 : this.name.hashCode()));
      result = ((result * 31) + ((this.clientSecret == null) ? 0 : this.clientSecret.hashCode()));
      result = ((result * 31) + ((this.id == null) ? 0 : this.id.hashCode()));
      result = ((result * 31) + ((this.clientId == null) ? 0 : this.clientId.hashCode()));
      result = ((result * 31) + ((this.createdOn == null) ? 0 : this.createdOn.hashCode()));
      return result;
    }
  
    @Override
    public boolean equals(Object other) {
      if (other == this) {
        return true;
      }
      if ((other instanceof Application) == false) {
        return false;
      }
      Application rhs = ((Application) other);
      return ((((((this.name == rhs.name) || ((this.name != null) && this.name.equals(rhs.name)))
          && ((this.clientSecret == rhs.clientSecret) || ((this.clientSecret != null) && this.clientSecret.equals(rhs.clientSecret))))
          && ((this.id == rhs.id) || ((this.id != null) && this.id.equals(rhs.id))))
          && ((this.clientId == rhs.clientId) || ((this.clientId != null) && this.clientId.equals(rhs.clientId))))
          && ((this.createdOn == rhs.createdOn) || ((this.createdOn != null) && this.createdOn.equals(rhs.createdOn))));
    }
  
  }
  