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

com.konfigthis.carbonai.client.model.SitemapScrapeRequest Maven / Gradle / Ivy

Go to download

Connect external data to LLMs, no matter the source. This library was generated by https://konfigthis.com

There is a newer version: 0.1.34
Show newest version
/*
 * Carbon
 * Connect external data to LLMs, no matter the source.
 *
 * The version of the OpenAPI document: 1.0.0
 * 
 *
 * NOTE: This class is auto generated by Konfig (https://konfigthis.com).
 * Do not edit the class manually.
 */


package com.konfigthis.carbonai.client.model;

import java.util.Objects;
import java.util.Arrays;
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 com.konfigthis.carbonai.client.model.EmbeddingGenerators;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.openapitools.jackson.nullable.JsonNullable;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import com.google.gson.TypeAdapterFactory;
import com.google.gson.reflect.TypeToken;
import org.apache.commons.lang3.StringUtils;

import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import com.konfigthis.carbonai.client.JSON;

/**
 * SitemapScrapeRequest
 */@javax.annotation.Generated(value = "Generated by https://konfigthis.com")
public class SitemapScrapeRequest {
  public static final String SERIALIZED_NAME_TAGS = "tags";
  @SerializedName(SERIALIZED_NAME_TAGS)
  private Map tags = null;

  public static final String SERIALIZED_NAME_URL = "url";
  @SerializedName(SERIALIZED_NAME_URL)
  private String url;

  public static final String SERIALIZED_NAME_MAX_PAGES_TO_SCRAPE = "max_pages_to_scrape";
  @SerializedName(SERIALIZED_NAME_MAX_PAGES_TO_SCRAPE)
  private Integer maxPagesToScrape;

  public static final String SERIALIZED_NAME_CHUNK_SIZE = "chunk_size";
  @SerializedName(SERIALIZED_NAME_CHUNK_SIZE)
  private Integer chunkSize = 1500;

  public static final String SERIALIZED_NAME_CHUNK_OVERLAP = "chunk_overlap";
  @SerializedName(SERIALIZED_NAME_CHUNK_OVERLAP)
  private Integer chunkOverlap = 20;

  public static final String SERIALIZED_NAME_SKIP_EMBEDDING_GENERATION = "skip_embedding_generation";
  @SerializedName(SERIALIZED_NAME_SKIP_EMBEDDING_GENERATION)
  private Boolean skipEmbeddingGeneration = false;

  public static final String SERIALIZED_NAME_ENABLE_AUTO_SYNC = "enable_auto_sync";
  @SerializedName(SERIALIZED_NAME_ENABLE_AUTO_SYNC)
  private Boolean enableAutoSync = false;

  public static final String SERIALIZED_NAME_GENERATE_SPARSE_VECTORS = "generate_sparse_vectors";
  @SerializedName(SERIALIZED_NAME_GENERATE_SPARSE_VECTORS)
  private Boolean generateSparseVectors = false;

  public static final String SERIALIZED_NAME_PREPEND_FILENAME_TO_CHUNKS = "prepend_filename_to_chunks";
  @SerializedName(SERIALIZED_NAME_PREPEND_FILENAME_TO_CHUNKS)
  private Boolean prependFilenameToChunks = false;

  public static final String SERIALIZED_NAME_HTML_TAGS_TO_SKIP = "html_tags_to_skip";
  @SerializedName(SERIALIZED_NAME_HTML_TAGS_TO_SKIP)
  private List htmlTagsToSkip = null;

  public static final String SERIALIZED_NAME_CSS_CLASSES_TO_SKIP = "css_classes_to_skip";
  @SerializedName(SERIALIZED_NAME_CSS_CLASSES_TO_SKIP)
  private List cssClassesToSkip = null;

  public static final String SERIALIZED_NAME_CSS_SELECTORS_TO_SKIP = "css_selectors_to_skip";
  @SerializedName(SERIALIZED_NAME_CSS_SELECTORS_TO_SKIP)
  private List cssSelectorsToSkip = null;

  public static final String SERIALIZED_NAME_EMBEDDING_MODEL = "embedding_model";
  @SerializedName(SERIALIZED_NAME_EMBEDDING_MODEL)
  private EmbeddingGenerators embeddingModel;

  public static final String SERIALIZED_NAME_URL_PATHS_TO_INCLUDE = "url_paths_to_include";
  @SerializedName(SERIALIZED_NAME_URL_PATHS_TO_INCLUDE)
  private List urlPathsToInclude = null;

  public static final String SERIALIZED_NAME_URL_PATHS_TO_EXCLUDE = "url_paths_to_exclude";
  @SerializedName(SERIALIZED_NAME_URL_PATHS_TO_EXCLUDE)
  private List urlPathsToExclude = null;

  public static final String SERIALIZED_NAME_URLS_TO_SCRAPE = "urls_to_scrape";
  @SerializedName(SERIALIZED_NAME_URLS_TO_SCRAPE)
  private List urlsToScrape = null;

  public SitemapScrapeRequest() {
  }

  public SitemapScrapeRequest tags(Map tags) {
    
    
    
    
    this.tags = tags;
    return this;
  }

  public SitemapScrapeRequest putTagsItem(String key, Object tagsItem) {
    if (this.tags == null) {
      this.tags = new HashMap<>();
    }
    this.tags.put(key, tagsItem);
    return this;
  }

   /**
   * Get tags
   * @return tags
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "{}", value = "")

  public Map getTags() {
    return tags;
  }


  public void setTags(Map tags) {
    
    
    
    this.tags = tags;
  }


  public SitemapScrapeRequest url(String url) {
    
    
    
    
    this.url = url;
    return this;
  }

   /**
   * Get url
   * @return url
  **/
  @javax.annotation.Nonnull
  @ApiModelProperty(required = true, value = "")

  public String getUrl() {
    return url;
  }


  public void setUrl(String url) {
    
    
    
    this.url = url;
  }


  public SitemapScrapeRequest maxPagesToScrape(Integer maxPagesToScrape) {
    if (maxPagesToScrape != null && maxPagesToScrape < 1) {
      throw new IllegalArgumentException("Invalid value for maxPagesToScrape. Must be greater than or equal to 1.");
    }
    
    
    
    this.maxPagesToScrape = maxPagesToScrape;
    return this;
  }

   /**
   * Get maxPagesToScrape
   * minimum: 1
   * @return maxPagesToScrape
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Integer getMaxPagesToScrape() {
    return maxPagesToScrape;
  }


  public void setMaxPagesToScrape(Integer maxPagesToScrape) {
    if (maxPagesToScrape != null && maxPagesToScrape < 1) {
      throw new IllegalArgumentException("Invalid value for maxPagesToScrape. Must be greater than or equal to 1.");
    }
    
    
    this.maxPagesToScrape = maxPagesToScrape;
  }


  public SitemapScrapeRequest chunkSize(Integer chunkSize) {
    
    
    
    
    this.chunkSize = chunkSize;
    return this;
  }

   /**
   * Get chunkSize
   * @return chunkSize
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "1500", value = "")

  public Integer getChunkSize() {
    return chunkSize;
  }


  public void setChunkSize(Integer chunkSize) {
    
    
    
    this.chunkSize = chunkSize;
  }


  public SitemapScrapeRequest chunkOverlap(Integer chunkOverlap) {
    
    
    
    
    this.chunkOverlap = chunkOverlap;
    return this;
  }

   /**
   * Get chunkOverlap
   * @return chunkOverlap
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "20", value = "")

  public Integer getChunkOverlap() {
    return chunkOverlap;
  }


  public void setChunkOverlap(Integer chunkOverlap) {
    
    
    
    this.chunkOverlap = chunkOverlap;
  }


  public SitemapScrapeRequest skipEmbeddingGeneration(Boolean skipEmbeddingGeneration) {
    
    
    
    
    this.skipEmbeddingGeneration = skipEmbeddingGeneration;
    return this;
  }

   /**
   * Get skipEmbeddingGeneration
   * @return skipEmbeddingGeneration
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "false", value = "")

  public Boolean getSkipEmbeddingGeneration() {
    return skipEmbeddingGeneration;
  }


  public void setSkipEmbeddingGeneration(Boolean skipEmbeddingGeneration) {
    
    
    
    this.skipEmbeddingGeneration = skipEmbeddingGeneration;
  }


  public SitemapScrapeRequest enableAutoSync(Boolean enableAutoSync) {
    
    
    
    
    this.enableAutoSync = enableAutoSync;
    return this;
  }

   /**
   * Get enableAutoSync
   * @return enableAutoSync
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "false", value = "")

  public Boolean getEnableAutoSync() {
    return enableAutoSync;
  }


  public void setEnableAutoSync(Boolean enableAutoSync) {
    
    
    
    this.enableAutoSync = enableAutoSync;
  }


  public SitemapScrapeRequest generateSparseVectors(Boolean generateSparseVectors) {
    
    
    
    
    this.generateSparseVectors = generateSparseVectors;
    return this;
  }

   /**
   * Get generateSparseVectors
   * @return generateSparseVectors
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "false", value = "")

  public Boolean getGenerateSparseVectors() {
    return generateSparseVectors;
  }


  public void setGenerateSparseVectors(Boolean generateSparseVectors) {
    
    
    
    this.generateSparseVectors = generateSparseVectors;
  }


  public SitemapScrapeRequest prependFilenameToChunks(Boolean prependFilenameToChunks) {
    
    
    
    
    this.prependFilenameToChunks = prependFilenameToChunks;
    return this;
  }

   /**
   * Get prependFilenameToChunks
   * @return prependFilenameToChunks
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "false", value = "")

  public Boolean getPrependFilenameToChunks() {
    return prependFilenameToChunks;
  }


  public void setPrependFilenameToChunks(Boolean prependFilenameToChunks) {
    
    
    
    this.prependFilenameToChunks = prependFilenameToChunks;
  }


  public SitemapScrapeRequest htmlTagsToSkip(List htmlTagsToSkip) {
    
    
    
    
    this.htmlTagsToSkip = htmlTagsToSkip;
    return this;
  }

  public SitemapScrapeRequest addHtmlTagsToSkipItem(String htmlTagsToSkipItem) {
    if (this.htmlTagsToSkip == null) {
      this.htmlTagsToSkip = new ArrayList<>();
    }
    this.htmlTagsToSkip.add(htmlTagsToSkipItem);
    return this;
  }

   /**
   * Get htmlTagsToSkip
   * @return htmlTagsToSkip
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "[]", value = "")

  public List getHtmlTagsToSkip() {
    return htmlTagsToSkip;
  }


  public void setHtmlTagsToSkip(List htmlTagsToSkip) {
    
    
    
    this.htmlTagsToSkip = htmlTagsToSkip;
  }


  public SitemapScrapeRequest cssClassesToSkip(List cssClassesToSkip) {
    
    
    
    
    this.cssClassesToSkip = cssClassesToSkip;
    return this;
  }

  public SitemapScrapeRequest addCssClassesToSkipItem(String cssClassesToSkipItem) {
    if (this.cssClassesToSkip == null) {
      this.cssClassesToSkip = new ArrayList<>();
    }
    this.cssClassesToSkip.add(cssClassesToSkipItem);
    return this;
  }

   /**
   * Get cssClassesToSkip
   * @return cssClassesToSkip
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "[]", value = "")

  public List getCssClassesToSkip() {
    return cssClassesToSkip;
  }


  public void setCssClassesToSkip(List cssClassesToSkip) {
    
    
    
    this.cssClassesToSkip = cssClassesToSkip;
  }


  public SitemapScrapeRequest cssSelectorsToSkip(List cssSelectorsToSkip) {
    
    
    
    
    this.cssSelectorsToSkip = cssSelectorsToSkip;
    return this;
  }

  public SitemapScrapeRequest addCssSelectorsToSkipItem(String cssSelectorsToSkipItem) {
    if (this.cssSelectorsToSkip == null) {
      this.cssSelectorsToSkip = new ArrayList<>();
    }
    this.cssSelectorsToSkip.add(cssSelectorsToSkipItem);
    return this;
  }

   /**
   * Get cssSelectorsToSkip
   * @return cssSelectorsToSkip
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "[]", value = "")

  public List getCssSelectorsToSkip() {
    return cssSelectorsToSkip;
  }


  public void setCssSelectorsToSkip(List cssSelectorsToSkip) {
    
    
    
    this.cssSelectorsToSkip = cssSelectorsToSkip;
  }


  public SitemapScrapeRequest embeddingModel(EmbeddingGenerators embeddingModel) {
    
    
    
    
    this.embeddingModel = embeddingModel;
    return this;
  }

   /**
   * Get embeddingModel
   * @return embeddingModel
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public EmbeddingGenerators getEmbeddingModel() {
    return embeddingModel;
  }


  public void setEmbeddingModel(EmbeddingGenerators embeddingModel) {
    
    
    
    this.embeddingModel = embeddingModel;
  }


  public SitemapScrapeRequest urlPathsToInclude(List urlPathsToInclude) {
    
    
    
    
    this.urlPathsToInclude = urlPathsToInclude;
    return this;
  }

  public SitemapScrapeRequest addUrlPathsToIncludeItem(String urlPathsToIncludeItem) {
    if (this.urlPathsToInclude == null) {
      this.urlPathsToInclude = new ArrayList<>();
    }
    this.urlPathsToInclude.add(urlPathsToIncludeItem);
    return this;
  }

   /**
   * URL subpaths or directories that you want to include. For example if you want to only include         URLs that start with /questions in stackoverflow.com, you will add /questions/ in this input
   * @return urlPathsToInclude
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "[]", value = "URL subpaths or directories that you want to include. For example if you want to only include         URLs that start with /questions in stackoverflow.com, you will add /questions/ in this input")

  public List getUrlPathsToInclude() {
    return urlPathsToInclude;
  }


  public void setUrlPathsToInclude(List urlPathsToInclude) {
    
    
    
    this.urlPathsToInclude = urlPathsToInclude;
  }


  public SitemapScrapeRequest urlPathsToExclude(List urlPathsToExclude) {
    
    
    
    
    this.urlPathsToExclude = urlPathsToExclude;
    return this;
  }

  public SitemapScrapeRequest addUrlPathsToExcludeItem(String urlPathsToExcludeItem) {
    if (this.urlPathsToExclude == null) {
      this.urlPathsToExclude = new ArrayList<>();
    }
    this.urlPathsToExclude.add(urlPathsToExcludeItem);
    return this;
  }

   /**
   * URL subpaths or directories that you want to exclude. For example if you want to exclude         URLs that start with /questions in stackoverflow.com, you will add /questions/ in this input
   * @return urlPathsToExclude
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "[]", value = "URL subpaths or directories that you want to exclude. For example if you want to exclude         URLs that start with /questions in stackoverflow.com, you will add /questions/ in this input")

  public List getUrlPathsToExclude() {
    return urlPathsToExclude;
  }


  public void setUrlPathsToExclude(List urlPathsToExclude) {
    
    
    
    this.urlPathsToExclude = urlPathsToExclude;
  }


  public SitemapScrapeRequest urlsToScrape(List urlsToScrape) {
    
    
    
    
    this.urlsToScrape = urlsToScrape;
    return this;
  }

  public SitemapScrapeRequest addUrlsToScrapeItem(String urlsToScrapeItem) {
    if (this.urlsToScrape == null) {
      this.urlsToScrape = new ArrayList<>();
    }
    this.urlsToScrape.add(urlsToScrapeItem);
    return this;
  }

   /**
   * You can submit a subset of URLs from the sitemap that should be scraped. To get the list of URLs,           you can check out /process_sitemap endpoint. If left empty, all URLs from the sitemap will be scraped.
   * @return urlsToScrape
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "[]", value = "You can submit a subset of URLs from the sitemap that should be scraped. To get the list of URLs,           you can check out /process_sitemap endpoint. If left empty, all URLs from the sitemap will be scraped.")

  public List getUrlsToScrape() {
    return urlsToScrape;
  }


  public void setUrlsToScrape(List urlsToScrape) {
    
    
    
    this.urlsToScrape = urlsToScrape;
  }

  /**
   * A container for additional, undeclared properties.
   * This is a holder for any undeclared properties as specified with
   * the 'additionalProperties' keyword in the OAS document.
   */
  private Map additionalProperties;

  /**
   * Set the additional (undeclared) property with the specified name and value.
   * If the property does not already exist, create it otherwise replace it.
   *
   * @param key name of the property
   * @param value value of the property
   * @return the SitemapScrapeRequest instance itself
   */
  public SitemapScrapeRequest putAdditionalProperty(String key, Object value) {
    if (this.additionalProperties == null) {
        this.additionalProperties = new HashMap();
    }
    this.additionalProperties.put(key, value);
    return this;
  }

  /**
   * Return the additional (undeclared) property.
   *
   * @return a map of objects
   */
  public Map getAdditionalProperties() {
    return additionalProperties;
  }

  /**
   * Return the additional (undeclared) property with the specified name.
   *
   * @param key name of the property
   * @return an object
   */
  public Object getAdditionalProperty(String key) {
    if (this.additionalProperties == null) {
        return null;
    }
    return this.additionalProperties.get(key);
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    SitemapScrapeRequest sitemapScrapeRequest = (SitemapScrapeRequest) o;
    return Objects.equals(this.tags, sitemapScrapeRequest.tags) &&
        Objects.equals(this.url, sitemapScrapeRequest.url) &&
        Objects.equals(this.maxPagesToScrape, sitemapScrapeRequest.maxPagesToScrape) &&
        Objects.equals(this.chunkSize, sitemapScrapeRequest.chunkSize) &&
        Objects.equals(this.chunkOverlap, sitemapScrapeRequest.chunkOverlap) &&
        Objects.equals(this.skipEmbeddingGeneration, sitemapScrapeRequest.skipEmbeddingGeneration) &&
        Objects.equals(this.enableAutoSync, sitemapScrapeRequest.enableAutoSync) &&
        Objects.equals(this.generateSparseVectors, sitemapScrapeRequest.generateSparseVectors) &&
        Objects.equals(this.prependFilenameToChunks, sitemapScrapeRequest.prependFilenameToChunks) &&
        Objects.equals(this.htmlTagsToSkip, sitemapScrapeRequest.htmlTagsToSkip) &&
        Objects.equals(this.cssClassesToSkip, sitemapScrapeRequest.cssClassesToSkip) &&
        Objects.equals(this.cssSelectorsToSkip, sitemapScrapeRequest.cssSelectorsToSkip) &&
        Objects.equals(this.embeddingModel, sitemapScrapeRequest.embeddingModel) &&
        Objects.equals(this.urlPathsToInclude, sitemapScrapeRequest.urlPathsToInclude) &&
        Objects.equals(this.urlPathsToExclude, sitemapScrapeRequest.urlPathsToExclude) &&
        Objects.equals(this.urlsToScrape, sitemapScrapeRequest.urlsToScrape)&&
        Objects.equals(this.additionalProperties, sitemapScrapeRequest.additionalProperties);
  }

  private static  boolean equalsNullable(JsonNullable a, JsonNullable b) {
    return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get()));
  }

  @Override
  public int hashCode() {
    return Objects.hash(tags, url, maxPagesToScrape, chunkSize, chunkOverlap, skipEmbeddingGeneration, enableAutoSync, generateSparseVectors, prependFilenameToChunks, htmlTagsToSkip, cssClassesToSkip, cssSelectorsToSkip, embeddingModel, urlPathsToInclude, urlPathsToExclude, urlsToScrape, additionalProperties);
  }

  private static  int hashCodeNullable(JsonNullable a) {
    if (a == null) {
      return 1;
    }
    return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31;
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class SitemapScrapeRequest {\n");
    sb.append("    tags: ").append(toIndentedString(tags)).append("\n");
    sb.append("    url: ").append(toIndentedString(url)).append("\n");
    sb.append("    maxPagesToScrape: ").append(toIndentedString(maxPagesToScrape)).append("\n");
    sb.append("    chunkSize: ").append(toIndentedString(chunkSize)).append("\n");
    sb.append("    chunkOverlap: ").append(toIndentedString(chunkOverlap)).append("\n");
    sb.append("    skipEmbeddingGeneration: ").append(toIndentedString(skipEmbeddingGeneration)).append("\n");
    sb.append("    enableAutoSync: ").append(toIndentedString(enableAutoSync)).append("\n");
    sb.append("    generateSparseVectors: ").append(toIndentedString(generateSparseVectors)).append("\n");
    sb.append("    prependFilenameToChunks: ").append(toIndentedString(prependFilenameToChunks)).append("\n");
    sb.append("    htmlTagsToSkip: ").append(toIndentedString(htmlTagsToSkip)).append("\n");
    sb.append("    cssClassesToSkip: ").append(toIndentedString(cssClassesToSkip)).append("\n");
    sb.append("    cssSelectorsToSkip: ").append(toIndentedString(cssSelectorsToSkip)).append("\n");
    sb.append("    embeddingModel: ").append(toIndentedString(embeddingModel)).append("\n");
    sb.append("    urlPathsToInclude: ").append(toIndentedString(urlPathsToInclude)).append("\n");
    sb.append("    urlPathsToExclude: ").append(toIndentedString(urlPathsToExclude)).append("\n");
    sb.append("    urlsToScrape: ").append(toIndentedString(urlsToScrape)).append("\n");
    sb.append("    additionalProperties: ").append(toIndentedString(additionalProperties)).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    ");
  }


  public static HashSet openapiFields;
  public static HashSet openapiRequiredFields;

  static {
    // a set of all properties/fields (JSON key names)
    openapiFields = new HashSet();
    openapiFields.add("tags");
    openapiFields.add("url");
    openapiFields.add("max_pages_to_scrape");
    openapiFields.add("chunk_size");
    openapiFields.add("chunk_overlap");
    openapiFields.add("skip_embedding_generation");
    openapiFields.add("enable_auto_sync");
    openapiFields.add("generate_sparse_vectors");
    openapiFields.add("prepend_filename_to_chunks");
    openapiFields.add("html_tags_to_skip");
    openapiFields.add("css_classes_to_skip");
    openapiFields.add("css_selectors_to_skip");
    openapiFields.add("embedding_model");
    openapiFields.add("url_paths_to_include");
    openapiFields.add("url_paths_to_exclude");
    openapiFields.add("urls_to_scrape");

    // a set of required properties/fields (JSON key names)
    openapiRequiredFields = new HashSet();
    openapiRequiredFields.add("url");
  }

 /**
  * Validates the JSON Object and throws an exception if issues found
  *
  * @param jsonObj JSON Object
  * @throws IOException if the JSON Object is invalid with respect to SitemapScrapeRequest
  */
  public static void validateJsonObject(JsonObject jsonObj) throws IOException {
      if (jsonObj == null) {
        if (!SitemapScrapeRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null
          throw new IllegalArgumentException(String.format("The required field(s) %s in SitemapScrapeRequest is not found in the empty JSON string", SitemapScrapeRequest.openapiRequiredFields.toString()));
        }
      }

      // check to make sure all required properties/fields are present in the JSON string
      for (String requiredField : SitemapScrapeRequest.openapiRequiredFields) {
        if (jsonObj.get(requiredField) == null) {
          throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonObj.toString()));
        }
      }
      if (!jsonObj.get("url").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("url").toString()));
      }
      // ensure the optional json data is an array if present (nullable)
      if (jsonObj.get("html_tags_to_skip") != null && !jsonObj.get("html_tags_to_skip").isJsonNull() && !jsonObj.get("html_tags_to_skip").isJsonArray()) {
        throw new IllegalArgumentException(String.format("Expected the field `html_tags_to_skip` to be an array in the JSON string or null but got `%s`", jsonObj.get("html_tags_to_skip").toString()));
      }
      // ensure the optional json data is an array if present (nullable)
      if (jsonObj.get("css_classes_to_skip") != null && !jsonObj.get("css_classes_to_skip").isJsonNull() && !jsonObj.get("css_classes_to_skip").isJsonArray()) {
        throw new IllegalArgumentException(String.format("Expected the field `css_classes_to_skip` to be an array in the JSON string or null but got `%s`", jsonObj.get("css_classes_to_skip").toString()));
      }
      // ensure the optional json data is an array if present (nullable)
      if (jsonObj.get("css_selectors_to_skip") != null && !jsonObj.get("css_selectors_to_skip").isJsonNull() && !jsonObj.get("css_selectors_to_skip").isJsonArray()) {
        throw new IllegalArgumentException(String.format("Expected the field `css_selectors_to_skip` to be an array in the JSON string or null but got `%s`", jsonObj.get("css_selectors_to_skip").toString()));
      }
      // ensure the optional json data is an array if present (nullable)
      if (jsonObj.get("url_paths_to_include") != null && !jsonObj.get("url_paths_to_include").isJsonNull() && !jsonObj.get("url_paths_to_include").isJsonArray()) {
        throw new IllegalArgumentException(String.format("Expected the field `url_paths_to_include` to be an array in the JSON string or null but got `%s`", jsonObj.get("url_paths_to_include").toString()));
      }
      // ensure the optional json data is an array if present (nullable)
      if (jsonObj.get("url_paths_to_exclude") != null && !jsonObj.get("url_paths_to_exclude").isJsonNull() && !jsonObj.get("url_paths_to_exclude").isJsonArray()) {
        throw new IllegalArgumentException(String.format("Expected the field `url_paths_to_exclude` to be an array in the JSON string or null but got `%s`", jsonObj.get("url_paths_to_exclude").toString()));
      }
      // ensure the optional json data is an array if present (nullable)
      if (jsonObj.get("urls_to_scrape") != null && !jsonObj.get("urls_to_scrape").isJsonNull() && !jsonObj.get("urls_to_scrape").isJsonArray()) {
        throw new IllegalArgumentException(String.format("Expected the field `urls_to_scrape` to be an array in the JSON string or null but got `%s`", jsonObj.get("urls_to_scrape").toString()));
      }
  }

  public static class CustomTypeAdapterFactory implements TypeAdapterFactory {
    @SuppressWarnings("unchecked")
    @Override
    public  TypeAdapter create(Gson gson, TypeToken type) {
       if (!SitemapScrapeRequest.class.isAssignableFrom(type.getRawType())) {
         return null; // this class only serializes 'SitemapScrapeRequest' and its subtypes
       }
       final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class);
       final TypeAdapter thisAdapter
                        = gson.getDelegateAdapter(this, TypeToken.get(SitemapScrapeRequest.class));

       return (TypeAdapter) new TypeAdapter() {
           @Override
           public void write(JsonWriter out, SitemapScrapeRequest value) throws IOException {
             JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject();
             obj.remove("additionalProperties");
             // serialize additonal properties
             if (value.getAdditionalProperties() != null) {
               for (Map.Entry entry : value.getAdditionalProperties().entrySet()) {
                 if (entry.getValue() instanceof String)
                   obj.addProperty(entry.getKey(), (String) entry.getValue());
                 else if (entry.getValue() instanceof Number)
                   obj.addProperty(entry.getKey(), (Number) entry.getValue());
                 else if (entry.getValue() instanceof Boolean)
                   obj.addProperty(entry.getKey(), (Boolean) entry.getValue());
                 else if (entry.getValue() instanceof Character)
                   obj.addProperty(entry.getKey(), (Character) entry.getValue());
                 else {
                   obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject());
                 }
               }
             }
             elementAdapter.write(out, obj);
           }

           @Override
           public SitemapScrapeRequest read(JsonReader in) throws IOException {
             JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject();
             validateJsonObject(jsonObj);
             // store additional fields in the deserialized instance
             SitemapScrapeRequest instance = thisAdapter.fromJsonTree(jsonObj);
             for (Map.Entry entry : jsonObj.entrySet()) {
               if (!openapiFields.contains(entry.getKey())) {
                 if (entry.getValue().isJsonPrimitive()) { // primitive type
                   if (entry.getValue().getAsJsonPrimitive().isString())
                     instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString());
                   else if (entry.getValue().getAsJsonPrimitive().isNumber())
                     instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber());
                   else if (entry.getValue().getAsJsonPrimitive().isBoolean())
                     instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean());
                   else
                     throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString()));
                 } else if (entry.getValue().isJsonArray()) {
                     instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class));
                 } else { // JSON object
                     instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class));
                 }
               }
             }
             return instance;
           }

       }.nullSafe();
    }
  }

 /**
  * Create an instance of SitemapScrapeRequest given an JSON string
  *
  * @param jsonString JSON string
  * @return An instance of SitemapScrapeRequest
  * @throws IOException if the JSON string is invalid with respect to SitemapScrapeRequest
  */
  public static SitemapScrapeRequest fromJson(String jsonString) throws IOException {
    return JSON.getGson().fromJson(jsonString, SitemapScrapeRequest.class);
  }

 /**
  * Convert an instance of SitemapScrapeRequest to an JSON string
  *
  * @return JSON string
  */
  public String toJson() {
    return JSON.getGson().toJson(this);
  }
}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy