content: /*
   * Selling Partner API for Data Kiosk
   * The Selling Partner API for Data Kiosk lets you submit GraphQL queries from a variety of schemas to help selling partners manage their businesses.
   *
   * OpenAPI spec version: 2023-11-15
   * 
   *
   * NOTE: This class is auto generated by the swagger code generator program.
   * https://github.com/swagger-api/swagger-codegen.git
   * Do not edit the class manually.
   */
  
  
  package io.swagger.client.model.datakiosk;
  
  import java.util.Objects;
  
  import com.google.gson.TypeAdapter;
  import com.google.gson.annotations.JsonAdapter;
  import com.google.gson.annotations.SerializedName;
  import com.google.gson.stream.JsonReader;
  import com.google.gson.stream.JsonWriter;
  import io.swagger.annotations.ApiModel;
  import io.swagger.annotations.ApiModelProperty;
  
  import java.io.IOException;
  import org.threeten.bp.OffsetDateTime;
  
  /**
   * Detailed information about the query.
   */
  @ApiModel(description = "Detailed information about the query.")
  @javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2024-03-27T14:43:52.360+01:00")
  public class Query {
    @SerializedName("queryId")
    private String queryId = null;
  
    @SerializedName("query")
    private String query = null;
  
    @SerializedName("createdTime")
    private OffsetDateTime createdTime = null;
  
    /**
     * The processing status of the query.
     */
    @JsonAdapter(ProcessingStatusEnum.Adapter.class)
    public enum ProcessingStatusEnum {
      CANCELLED("CANCELLED"),
      
      DONE("DONE"),
      
      FATAL("FATAL"),
      
      IN_PROGRESS("IN_PROGRESS"),
      
      IN_QUEUE("IN_QUEUE");
  
      private String value;
  
      ProcessingStatusEnum(String value) {
        this.value = value;
      }
  
      public String getValue() {
        return value;
      }
  
      @Override
      public String toString() {
        return String.valueOf(value);
      }
  
      public static ProcessingStatusEnum fromValue(String text) {
        for (ProcessingStatusEnum b : ProcessingStatusEnum.values()) {
          if (String.valueOf(b.value).equals(text)) {
            return b;
          }
        }
        return null;
      }
  
      public static class Adapter extends TypeAdapter<ProcessingStatusEnum> {
        @Override
        public void write(final JsonWriter jsonWriter, final ProcessingStatusEnum enumeration) throws IOException {
          jsonWriter.value(enumeration.getValue());
        }
  
        @Override
        public ProcessingStatusEnum read(final JsonReader jsonReader) throws IOException {
          String value = jsonReader.nextString();
          return ProcessingStatusEnum.fromValue(String.valueOf(value));
        }
      }
    }
  
    @SerializedName("processingStatus")
    private ProcessingStatusEnum processingStatus = null;
  
    @SerializedName("processingStartTime")
    private OffsetDateTime processingStartTime = null;
  
    @SerializedName("processingEndTime")
    private OffsetDateTime processingEndTime = null;
  
    @SerializedName("dataDocumentId")
    private String dataDocumentId = null;
  
    @SerializedName("errorDocumentId")
    private String errorDocumentId = null;
  
    @SerializedName("pagination")
    private QueryPagination pagination = null;
  
    public Query queryId(String queryId) {
      this.queryId = queryId;
      return this;
    }
  
     /**
     * The query identifier. This identifier is unique only in combination with a selling partner account ID.
     * @return queryId
    **/
    @ApiModelProperty(required = true, value = "The query identifier. This identifier is unique only in combination with a selling partner account ID.")
    public String getQueryId() {
      return queryId;
    }
  
    public void setQueryId(String queryId) {
      this.queryId = queryId;
    }
  
    public Query query(String query) {
      this.query = query;
      return this;
    }
  
     /**
     * The submitted query.
     * @return query
    **/
    @ApiModelProperty(required = true, value = "The submitted query.")
    public String getQuery() {
      return query;
    }
  
    public void setQuery(String query) {
      this.query = query;
    }
  
    public Query createdTime(OffsetDateTime createdTime) {
      this.createdTime = createdTime;
      return this;
    }
  
     /**
     * The date and time when the query was created, in ISO 8601 date time format.
     * @return createdTime
    **/
    @ApiModelProperty(required = true, value = "The date and time when the query was created, in ISO 8601 date time format.")
    public OffsetDateTime getCreatedTime() {
      return createdTime;
    }
  
    public void setCreatedTime(OffsetDateTime createdTime) {
      this.createdTime = createdTime;
    }
  
    public Query processingStatus(ProcessingStatusEnum processingStatus) {
      this.processingStatus = processingStatus;
      return this;
    }
  
     /**
     * The processing status of the query.
     * @return processingStatus
    **/
    @ApiModelProperty(required = true, value = "The processing status of the query.")
    public ProcessingStatusEnum getProcessingStatus() {
      return processingStatus;
    }
  
    public void setProcessingStatus(ProcessingStatusEnum processingStatus) {
      this.processingStatus = processingStatus;
    }
  
    public Query processingStartTime(OffsetDateTime processingStartTime) {
      this.processingStartTime = processingStartTime;
      return this;
    }
  
     /**
     * The date and time when the query processing started, in ISO 8601 date time format.
     * @return processingStartTime
    **/
    @ApiModelProperty(value = "The date and time when the query processing started, in ISO 8601 date time format.")
    public OffsetDateTime getProcessingStartTime() {
      return processingStartTime;
    }
  
    public void setProcessingStartTime(OffsetDateTime processingStartTime) {
      this.processingStartTime = processingStartTime;
    }
  
    public Query processingEndTime(OffsetDateTime processingEndTime) {
      this.processingEndTime = processingEndTime;
      return this;
    }
  
     /**
     * The date and time when the query processing completed, in ISO 8601 date time format.
     * @return processingEndTime
    **/
    @ApiModelProperty(value = "The date and time when the query processing completed, in ISO 8601 date time format.")
    public OffsetDateTime getProcessingEndTime() {
      return processingEndTime;
    }
  
    public void setProcessingEndTime(OffsetDateTime processingEndTime) {
      this.processingEndTime = processingEndTime;
    }
  
    public Query dataDocumentId(String dataDocumentId) {
      this.dataDocumentId = dataDocumentId;
      return this;
    }
  
     /**
     * The data document identifier. This identifier is only present when there is data available as a result of the query. This identifier is unique only in combination with a selling partner account ID. Pass this identifier into the &#x60;getDocument&#x60; operation to get the information required to retrieve the data document&#39;s contents.
     * @return dataDocumentId
    **/
    @ApiModelProperty(value = "The data document identifier. This identifier is only present when there is data available as a result of the query. This identifier is unique only in combination with a selling partner account ID. Pass this identifier into the `getDocument` operation to get the information required to retrieve the data document's contents.")
    public String getDataDocumentId() {
      return dataDocumentId;
    }
  
    public void setDataDocumentId(String dataDocumentId) {
      this.dataDocumentId = dataDocumentId;
    }
  
    public Query errorDocumentId(String errorDocumentId) {
      this.errorDocumentId = errorDocumentId;
      return this;
    }
  
     /**
     * The error document identifier. This identifier is only present when an error occurs during query processing. This identifier is unique only in combination with a selling partner account ID. Pass this identifier into the &#x60;getDocument&#x60; operation to get the information required to retrieve the error document&#39;s contents.
     * @return errorDocumentId
    **/
    @ApiModelProperty(value = "The error document identifier. This identifier is only present when an error occurs during query processing. This identifier is unique only in combination with a selling partner account ID. Pass this identifier into the `getDocument` operation to get the information required to retrieve the error document's contents.")
    public String getErrorDocumentId() {
      return errorDocumentId;
    }
  
    public void setErrorDocumentId(String errorDocumentId) {
      this.errorDocumentId = errorDocumentId;
    }
  
    public Query pagination(QueryPagination pagination) {
      this.pagination = pagination;
      return this;
    }
  
     /**
     * Get pagination
     * @return pagination
    **/
    @ApiModelProperty(value = "")
    public QueryPagination getPagination() {
      return pagination;
    }
  
    public void setPagination(QueryPagination pagination) {
      this.pagination = pagination;
    }
  
  
    @Override
    public boolean equals(Object o) {
      if (this == o) {
        return true;
      }
      if (o == null || getClass() != o.getClass()) {
        return false;
      }
      Query query = (Query) o;
      return Objects.equals(this.queryId, query.queryId) &&
          Objects.equals(this.query, query.query) &&
          Objects.equals(this.createdTime, query.createdTime) &&
          Objects.equals(this.processingStatus, query.processingStatus) &&
          Objects.equals(this.processingStartTime, query.processingStartTime) &&
          Objects.equals(this.processingEndTime, query.processingEndTime) &&
          Objects.equals(this.dataDocumentId, query.dataDocumentId) &&
          Objects.equals(this.errorDocumentId, query.errorDocumentId) &&
          Objects.equals(this.pagination, query.pagination);
    }
  
    @Override
    public int hashCode() {
      return Objects.hash(queryId, query, createdTime, processingStatus, processingStartTime, processingEndTime, dataDocumentId, errorDocumentId, pagination);
    }
  
  
    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder();
      sb.append("class Query {\n");
      
      sb.append("    queryId: ").append(toIndentedString(queryId)).append("\n");
      sb.append("    query: ").append(toIndentedString(query)).append("\n");
      sb.append("    createdTime: ").append(toIndentedString(createdTime)).append("\n");
      sb.append("    processingStatus: ").append(toIndentedString(processingStatus)).append("\n");
      sb.append("    processingStartTime: ").append(toIndentedString(processingStartTime)).append("\n");
      sb.append("    processingEndTime: ").append(toIndentedString(processingEndTime)).append("\n");
      sb.append("    dataDocumentId: ").append(toIndentedString(dataDocumentId)).append("\n");
      sb.append("    errorDocumentId: ").append(toIndentedString(errorDocumentId)).append("\n");
      sb.append("    pagination: ").append(toIndentedString(pagination)).append("\n");
      sb.append("}");
      return sb.toString();
    }
  
    /**
     * Convert the given object to string with each line indented by 4 spaces
     * (except the first line).
     */
    private String toIndentedString(Object o) {
      if (o == null) {
        return "null";
      }
      return o.toString().replace("\n", "\n    ");
    }
  
  }
  
  