/*
 * Oceanengine Open Api
 * 巨量引擎开放平台 Open Api
 *
 * The version of the OpenAPI document: 1.1.19
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


package com.bytedance.ads.model;

import java.util.Objects;
import java.util.Arrays;
import com.bytedance.ads.model.ToolsSiteUpdateV2RequestBricksInnerBackground;
import com.bytedance.ads.model.ToolsSiteUpdateV2RequestBricksInnerCommentsInner;
import com.bytedance.ads.model.ToolsSiteUpdateV2RequestBricksInnerElementsInner;
import com.bytedance.ads.model.ToolsSiteUpdateV2RequestBricksInnerEventsInner;
import com.bytedance.ads.model.ToolsSiteUpdateV2RequestBricksInnerFailureLink;
import com.bytedance.ads.model.ToolsSiteUpdateV2RequestBricksInnerFormData;
import com.bytedance.ads.model.ToolsSiteUpdateV2RequestBricksInnerGroupContentInner;
import com.bytedance.ads.model.ToolsSiteUpdateV2RequestBricksInnerLink;
import com.bytedance.ads.model.ToolsSiteUpdateV2RequestBricksInnerLocalSource;
import com.bytedance.ads.model.ToolsSiteUpdateV2RequestBricksInnerMarquee;
import com.bytedance.ads.model.ToolsSiteUpdateV2RequestBricksInnerOnlineSource;
import com.bytedance.ads.model.ToolsSiteUpdateV2RequestBricksInnerPackageInfo;
import com.bytedance.ads.model.ToolsSiteUpdateV2RequestBricksInnerRewardsInner;
import com.bytedance.ads.model.ToolsSiteUpdateV2RequestBricksInnerRuleText;
import com.bytedance.ads.model.ToolsSiteUpdateV2RequestBricksInnerSuccessLink;
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 java.io.IOException;
import java.util.ArrayList;
import java.util.List;

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 com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import java.io.IOException;

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.bytedance.ads.JSON;

/**
 * ToolsSiteUpdateV2RequestBricksInner
 */
@javax.annotation.Generated(value = "com.org.bytedance.ad_open_sdk.JavacusGenerator", date = "2024-09-10T15:29:00.246104612+08:00[Asia/Shanghai]")
public class ToolsSiteUpdateV2RequestBricksInner {
  public static final String SERIALIZED_NAME_AUTO_PLAY = "auto_play";
  @SerializedName(SERIALIZED_NAME_AUTO_PLAY)
  private Long autoPlay = null;

  public static final String SERIALIZED_NAME_BACKGROUND = "background";
  @SerializedName(SERIALIZED_NAME_BACKGROUND)
  private ToolsSiteUpdateV2RequestBricksInnerBackground background = null;

  public static final String SERIALIZED_NAME_BG_COLOR = "bg_color";
  @SerializedName(SERIALIZED_NAME_BG_COLOR)
  private String bgColor = null;

  public static final String SERIALIZED_NAME_BG_IMAGE = "bg_image";
  @SerializedName(SERIALIZED_NAME_BG_IMAGE)
  private String bgImage = null;

  public static final String SERIALIZED_NAME_BG_TYPE = "bg_type";
  @SerializedName(SERIALIZED_NAME_BG_TYPE)
  private String bgType = null;

  public static final String SERIALIZED_NAME_BORDER_COLOR = "border_color";
  @SerializedName(SERIALIZED_NAME_BORDER_COLOR)
  private String borderColor = null;

  public static final String SERIALIZED_NAME_BORDER_RADIUS = "border_radius";
  @SerializedName(SERIALIZED_NAME_BORDER_RADIUS)
  private Long borderRadius = null;

  public static final String SERIALIZED_NAME_BORDER_WIDTH = "border_width";
  @SerializedName(SERIALIZED_NAME_BORDER_WIDTH)
  private Long borderWidth = null;

  public static final String SERIALIZED_NAME_BULB_EFFECT = "bulb_effect";
  @SerializedName(SERIALIZED_NAME_BULB_EFFECT)
  private Boolean bulbEffect = null;

  public static final String SERIALIZED_NAME_COLOR = "color";
  @SerializedName(SERIALIZED_NAME_COLOR)
  private String color = null;

  public static final String SERIALIZED_NAME_COMMENTS = "comments";
  @SerializedName(SERIALIZED_NAME_COMMENTS)
  private List<ToolsSiteUpdateV2RequestBricksInnerCommentsInner> comments = null;

  public static final String SERIALIZED_NAME_CONTENT = "content";
  @SerializedName(SERIALIZED_NAME_CONTENT)
  private String content = null;

  public static final String SERIALIZED_NAME_ELEMENTS = "elements";
  @SerializedName(SERIALIZED_NAME_ELEMENTS)
  private List<ToolsSiteUpdateV2RequestBricksInnerElementsInner> elements = null;

  public static final String SERIALIZED_NAME_EVENTS = "events";
  @SerializedName(SERIALIZED_NAME_EVENTS)
  private List<ToolsSiteUpdateV2RequestBricksInnerEventsInner> events = null;

  public static final String SERIALIZED_NAME_FAILURE_LINK = "failure_link";
  @SerializedName(SERIALIZED_NAME_FAILURE_LINK)
  private ToolsSiteUpdateV2RequestBricksInnerFailureLink failureLink = null;

  public static final String SERIALIZED_NAME_FLOAT = "float";
  @SerializedName(SERIALIZED_NAME_FLOAT)
  private String _float = null;

  public static final String SERIALIZED_NAME_FONT_FAMILY = "font_family";
  @SerializedName(SERIALIZED_NAME_FONT_FAMILY)
  private String fontFamily = null;

  public static final String SERIALIZED_NAME_FONT_SIZE = "font_size";
  @SerializedName(SERIALIZED_NAME_FONT_SIZE)
  private Long fontSize = null;

  public static final String SERIALIZED_NAME_FONT_STYLE = "font_style";
  @SerializedName(SERIALIZED_NAME_FONT_STYLE)
  private List<String> fontStyle = null;

  public static final String SERIALIZED_NAME_FORM_DATA = "form_data";
  @SerializedName(SERIALIZED_NAME_FORM_DATA)
  private ToolsSiteUpdateV2RequestBricksInnerFormData formData = null;

  public static final String SERIALIZED_NAME_GROUP_CONTENT = "group_content";
  @SerializedName(SERIALIZED_NAME_GROUP_CONTENT)
  private List<ToolsSiteUpdateV2RequestBricksInnerGroupContentInner> groupContent = null;

  public static final String SERIALIZED_NAME_GROUP_TYPE = "group_type";
  @SerializedName(SERIALIZED_NAME_GROUP_TYPE)
  private String groupType = null;

  public static final String SERIALIZED_NAME_HEIGHT = "height";
  @SerializedName(SERIALIZED_NAME_HEIGHT)
  private Long height = null;

  public static final String SERIALIZED_NAME_IC_ID = "ic_id";
  @SerializedName(SERIALIZED_NAME_IC_ID)
  private String icId = null;

  public static final String SERIALIZED_NAME_ICON = "icon";
  @SerializedName(SERIALIZED_NAME_ICON)
  private String icon = null;

  public static final String SERIALIZED_NAME_IMAGE_URL = "image_url";
  @SerializedName(SERIALIZED_NAME_IMAGE_URL)
  private String imageUrl = null;

  public static final String SERIALIZED_NAME_IS_COVER = "is_cover";
  @SerializedName(SERIALIZED_NAME_IS_COVER)
  private Long isCover = null;

  public static final String SERIALIZED_NAME_LETTER_SPACING = "letter_spacing";
  @SerializedName(SERIALIZED_NAME_LETTER_SPACING)
  private Long letterSpacing = null;

  public static final String SERIALIZED_NAME_LINE_HEIGHT = "line_height";
  @SerializedName(SERIALIZED_NAME_LINE_HEIGHT)
  private Long lineHeight = null;

  public static final String SERIALIZED_NAME_LINK = "link";
  @SerializedName(SERIALIZED_NAME_LINK)
  private ToolsSiteUpdateV2RequestBricksInnerLink link = null;

  public static final String SERIALIZED_NAME_LINKABLE = "linkable";
  @SerializedName(SERIALIZED_NAME_LINKABLE)
  private Long linkable = null;

  public static final String SERIALIZED_NAME_LOCAL_SOURCE = "local_source";
  @SerializedName(SERIALIZED_NAME_LOCAL_SOURCE)
  private ToolsSiteUpdateV2RequestBricksInnerLocalSource localSource = null;

  public static final String SERIALIZED_NAME_MARQUEE = "marquee";
  @SerializedName(SERIALIZED_NAME_MARQUEE)
  private ToolsSiteUpdateV2RequestBricksInnerMarquee marquee = null;

  public static final String SERIALIZED_NAME_NAME = "name";
  @SerializedName(SERIALIZED_NAME_NAME)
  private String name = null;

  public static final String SERIALIZED_NAME_OFFSET_X = "offset_x";
  @SerializedName(SERIALIZED_NAME_OFFSET_X)
  private Long offsetX = null;

  public static final String SERIALIZED_NAME_OFFSET_Y = "offset_y";
  @SerializedName(SERIALIZED_NAME_OFFSET_Y)
  private Long offsetY = null;

  public static final String SERIALIZED_NAME_ONLINE_SOURCE = "online_source";
  @SerializedName(SERIALIZED_NAME_ONLINE_SOURCE)
  private ToolsSiteUpdateV2RequestBricksInnerOnlineSource onlineSource = null;

  public static final String SERIALIZED_NAME_PACKAGE_INFO = "package_info";
  @SerializedName(SERIALIZED_NAME_PACKAGE_INFO)
  private ToolsSiteUpdateV2RequestBricksInnerPackageInfo packageInfo = null;

  public static final String SERIALIZED_NAME_REWARDS = "rewards";
  @SerializedName(SERIALIZED_NAME_REWARDS)
  private List<ToolsSiteUpdateV2RequestBricksInnerRewardsInner> rewards = null;

  public static final String SERIALIZED_NAME_REWARDS_BUTTON_TEXT = "rewards_button_text";
  @SerializedName(SERIALIZED_NAME_REWARDS_BUTTON_TEXT)
  private String rewardsButtonText = null;

  public static final String SERIALIZED_NAME_REWARDS_BUTTON_TEXT_COLOR = "rewards_button_text_color";
  @SerializedName(SERIALIZED_NAME_REWARDS_BUTTON_TEXT_COLOR)
  private String rewardsButtonTextColor = null;

  public static final String SERIALIZED_NAME_REWARDS_BUTTON_TEXT_FONT_SIZE = "rewards_button_text_font_size";
  @SerializedName(SERIALIZED_NAME_REWARDS_BUTTON_TEXT_FONT_SIZE)
  private Long rewardsButtonTextFontSize = null;

  public static final String SERIALIZED_NAME_RULE_TEXT = "rule_text";
  @SerializedName(SERIALIZED_NAME_RULE_TEXT)
  private ToolsSiteUpdateV2RequestBricksInnerRuleText ruleText = null;

  public static final String SERIALIZED_NAME_SUCCESS_LINK = "success_link";
  @SerializedName(SERIALIZED_NAME_SUCCESS_LINK)
  private ToolsSiteUpdateV2RequestBricksInnerSuccessLink successLink = null;

  public static final String SERIALIZED_NAME_SUCCESS_TIP = "success_tip";
  @SerializedName(SERIALIZED_NAME_SUCCESS_TIP)
  private String successTip = null;

  public static final String SERIALIZED_NAME_TEXT = "text";
  @SerializedName(SERIALIZED_NAME_TEXT)
  private String text = null;

  public static final String SERIALIZED_NAME_TEXT_ALIGN = "text_align";
  @SerializedName(SERIALIZED_NAME_TEXT_ALIGN)
  private String textAlign = null;

  public static final String SERIALIZED_NAME_WIDTH = "width";
  @SerializedName(SERIALIZED_NAME_WIDTH)
  private Long width = null;

  public static final String SERIALIZED_NAME_X = "x";
  @SerializedName(SERIALIZED_NAME_X)
  private Long x = null;

  public static final String SERIALIZED_NAME_Y = "y";
  @SerializedName(SERIALIZED_NAME_Y)
  private Long y = null;

  public ToolsSiteUpdateV2RequestBricksInner() {
  }

  public ToolsSiteUpdateV2RequestBricksInner autoPlay(Long autoPlay) {
    
    this.autoPlay = autoPlay;
    return this;
  }

   /**
   * 
   * @return autoPlay
  **/
  @javax.annotation.Nullable
  public Long getAutoPlay() {
    return autoPlay;
  }


  public void setAutoPlay(Long autoPlay) {
    this.autoPlay = autoPlay;
  }


  public ToolsSiteUpdateV2RequestBricksInner background(ToolsSiteUpdateV2RequestBricksInnerBackground background) {
    
    this.background = background;
    return this;
  }

   /**
   * Get background
   * @return background
  **/
  @javax.annotation.Nullable
  public ToolsSiteUpdateV2RequestBricksInnerBackground getBackground() {
    return background;
  }


  public void setBackground(ToolsSiteUpdateV2RequestBricksInnerBackground background) {
    this.background = background;
  }


  public ToolsSiteUpdateV2RequestBricksInner bgColor(String bgColor) {
    
    this.bgColor = bgColor;
    return this;
  }

   /**
   * 
   * @return bgColor
  **/
  @javax.annotation.Nullable
  public String getBgColor() {
    return bgColor;
  }


  public void setBgColor(String bgColor) {
    this.bgColor = bgColor;
  }


  public ToolsSiteUpdateV2RequestBricksInner bgImage(String bgImage) {
    
    this.bgImage = bgImage;
    return this;
  }

   /**
   * 
   * @return bgImage
  **/
  @javax.annotation.Nullable
  public String getBgImage() {
    return bgImage;
  }


  public void setBgImage(String bgImage) {
    this.bgImage = bgImage;
  }


  public ToolsSiteUpdateV2RequestBricksInner bgType(String bgType) {
    
    this.bgType = bgType;
    return this;
  }

   /**
   * 
   * @return bgType
  **/
  @javax.annotation.Nullable
  public String getBgType() {
    return bgType;
  }


  public void setBgType(String bgType) {
    this.bgType = bgType;
  }


  public ToolsSiteUpdateV2RequestBricksInner borderColor(String borderColor) {
    
    this.borderColor = borderColor;
    return this;
  }

   /**
   * 
   * @return borderColor
  **/
  @javax.annotation.Nullable
  public String getBorderColor() {
    return borderColor;
  }


  public void setBorderColor(String borderColor) {
    this.borderColor = borderColor;
  }


  public ToolsSiteUpdateV2RequestBricksInner borderRadius(Long borderRadius) {
    
    this.borderRadius = borderRadius;
    return this;
  }

   /**
   * 
   * @return borderRadius
  **/
  @javax.annotation.Nullable
  public Long getBorderRadius() {
    return borderRadius;
  }


  public void setBorderRadius(Long borderRadius) {
    this.borderRadius = borderRadius;
  }


  public ToolsSiteUpdateV2RequestBricksInner borderWidth(Long borderWidth) {
    
    this.borderWidth = borderWidth;
    return this;
  }

   /**
   * 
   * @return borderWidth
  **/
  @javax.annotation.Nullable
  public Long getBorderWidth() {
    return borderWidth;
  }


  public void setBorderWidth(Long borderWidth) {
    this.borderWidth = borderWidth;
  }


  public ToolsSiteUpdateV2RequestBricksInner bulbEffect(Boolean bulbEffect) {
    
    this.bulbEffect = bulbEffect;
    return this;
  }

   /**
   * 
   * @return bulbEffect
  **/
  @javax.annotation.Nullable
  public Boolean getBulbEffect() {
    return bulbEffect;
  }


  public void setBulbEffect(Boolean bulbEffect) {
    this.bulbEffect = bulbEffect;
  }


  public ToolsSiteUpdateV2RequestBricksInner color(String color) {
    
    this.color = color;
    return this;
  }

   /**
   * 
   * @return color
  **/
  @javax.annotation.Nullable
  public String getColor() {
    return color;
  }


  public void setColor(String color) {
    this.color = color;
  }


  public ToolsSiteUpdateV2RequestBricksInner comments(List<ToolsSiteUpdateV2RequestBricksInnerCommentsInner> comments) {
    
    this.comments = comments;
    return this;
  }

  public ToolsSiteUpdateV2RequestBricksInner addCommentsItem(ToolsSiteUpdateV2RequestBricksInnerCommentsInner commentsItem) {
    if (this.comments == null) {
      this.comments = new ArrayList<>();
    }
    this.comments.add(commentsItem);
    return this;
  }

   /**
   * 
   * @return comments
  **/
  @javax.annotation.Nullable
  public List<ToolsSiteUpdateV2RequestBricksInnerCommentsInner> getComments() {
    return comments;
  }


  public void setComments(List<ToolsSiteUpdateV2RequestBricksInnerCommentsInner> comments) {
    this.comments = comments;
  }


  public ToolsSiteUpdateV2RequestBricksInner content(String content) {
    
    this.content = content;
    return this;
  }

   /**
   * 
   * @return content
  **/
  @javax.annotation.Nullable
  public String getContent() {
    return content;
  }


  public void setContent(String content) {
    this.content = content;
  }


  public ToolsSiteUpdateV2RequestBricksInner elements(List<ToolsSiteUpdateV2RequestBricksInnerElementsInner> elements) {
    
    this.elements = elements;
    return this;
  }

  public ToolsSiteUpdateV2RequestBricksInner addElementsItem(ToolsSiteUpdateV2RequestBricksInnerElementsInner elementsItem) {
    if (this.elements == null) {
      this.elements = new ArrayList<>();
    }
    this.elements.add(elementsItem);
    return this;
  }

   /**
   * 
   * @return elements
  **/
  @javax.annotation.Nullable
  public List<ToolsSiteUpdateV2RequestBricksInnerElementsInner> getElements() {
    return elements;
  }


  public void setElements(List<ToolsSiteUpdateV2RequestBricksInnerElementsInner> elements) {
    this.elements = elements;
  }


  public ToolsSiteUpdateV2RequestBricksInner events(List<ToolsSiteUpdateV2RequestBricksInnerEventsInner> events) {
    
    this.events = events;
    return this;
  }

  public ToolsSiteUpdateV2RequestBricksInner addEventsItem(ToolsSiteUpdateV2RequestBricksInnerEventsInner eventsItem) {
    if (this.events == null) {
      this.events = new ArrayList<>();
    }
    this.events.add(eventsItem);
    return this;
  }

   /**
   * 
   * @return events
  **/
  @javax.annotation.Nullable
  public List<ToolsSiteUpdateV2RequestBricksInnerEventsInner> getEvents() {
    return events;
  }


  public void setEvents(List<ToolsSiteUpdateV2RequestBricksInnerEventsInner> events) {
    this.events = events;
  }


  public ToolsSiteUpdateV2RequestBricksInner failureLink(ToolsSiteUpdateV2RequestBricksInnerFailureLink failureLink) {
    
    this.failureLink = failureLink;
    return this;
  }

   /**
   * Get failureLink
   * @return failureLink
  **/
  @javax.annotation.Nullable
  public ToolsSiteUpdateV2RequestBricksInnerFailureLink getFailureLink() {
    return failureLink;
  }


  public void setFailureLink(ToolsSiteUpdateV2RequestBricksInnerFailureLink failureLink) {
    this.failureLink = failureLink;
  }


  public ToolsSiteUpdateV2RequestBricksInner _float(String _float) {
    
    this._float = _float;
    return this;
  }

   /**
   * 
   * @return _float
  **/
  @javax.annotation.Nullable
  public String getFloat() {
    return _float;
  }


  public void setFloat(String _float) {
    this._float = _float;
  }


  public ToolsSiteUpdateV2RequestBricksInner fontFamily(String fontFamily) {
    
    this.fontFamily = fontFamily;
    return this;
  }

   /**
   * 
   * @return fontFamily
  **/
  @javax.annotation.Nullable
  public String getFontFamily() {
    return fontFamily;
  }


  public void setFontFamily(String fontFamily) {
    this.fontFamily = fontFamily;
  }


  public ToolsSiteUpdateV2RequestBricksInner fontSize(Long fontSize) {
    
    this.fontSize = fontSize;
    return this;
  }

   /**
   * 
   * @return fontSize
  **/
  @javax.annotation.Nullable
  public Long getFontSize() {
    return fontSize;
  }


  public void setFontSize(Long fontSize) {
    this.fontSize = fontSize;
  }


  public ToolsSiteUpdateV2RequestBricksInner fontStyle(List<String> fontStyle) {
    
    this.fontStyle = fontStyle;
    return this;
  }

  public ToolsSiteUpdateV2RequestBricksInner addFontStyleItem(String fontStyleItem) {
    if (this.fontStyle == null) {
      this.fontStyle = new ArrayList<>();
    }
    this.fontStyle.add(fontStyleItem);
    return this;
  }

   /**
   * 
   * @return fontStyle
  **/
  @javax.annotation.Nullable
  public List<String> getFontStyle() {
    return fontStyle;
  }


  public void setFontStyle(List<String> fontStyle) {
    this.fontStyle = fontStyle;
  }


  public ToolsSiteUpdateV2RequestBricksInner formData(ToolsSiteUpdateV2RequestBricksInnerFormData formData) {
    
    this.formData = formData;
    return this;
  }

   /**
   * Get formData
   * @return formData
  **/
  @javax.annotation.Nullable
  public ToolsSiteUpdateV2RequestBricksInnerFormData getFormData() {
    return formData;
  }


  public void setFormData(ToolsSiteUpdateV2RequestBricksInnerFormData formData) {
    this.formData = formData;
  }


  public ToolsSiteUpdateV2RequestBricksInner groupContent(List<ToolsSiteUpdateV2RequestBricksInnerGroupContentInner> groupContent) {
    
    this.groupContent = groupContent;
    return this;
  }

  public ToolsSiteUpdateV2RequestBricksInner addGroupContentItem(ToolsSiteUpdateV2RequestBricksInnerGroupContentInner groupContentItem) {
    if (this.groupContent == null) {
      this.groupContent = new ArrayList<>();
    }
    this.groupContent.add(groupContentItem);
    return this;
  }

   /**
   * 
   * @return groupContent
  **/
  @javax.annotation.Nullable
  public List<ToolsSiteUpdateV2RequestBricksInnerGroupContentInner> getGroupContent() {
    return groupContent;
  }


  public void setGroupContent(List<ToolsSiteUpdateV2RequestBricksInnerGroupContentInner> groupContent) {
    this.groupContent = groupContent;
  }


  public ToolsSiteUpdateV2RequestBricksInner groupType(String groupType) {
    
    this.groupType = groupType;
    return this;
  }

   /**
   * 
   * @return groupType
  **/
  @javax.annotation.Nullable
  public String getGroupType() {
    return groupType;
  }


  public void setGroupType(String groupType) {
    this.groupType = groupType;
  }


  public ToolsSiteUpdateV2RequestBricksInner height(Long height) {
    
    this.height = height;
    return this;
  }

   /**
   * 
   * @return height
  **/
  @javax.annotation.Nullable
  public Long getHeight() {
    return height;
  }


  public void setHeight(Long height) {
    this.height = height;
  }


  public ToolsSiteUpdateV2RequestBricksInner icId(String icId) {
    
    this.icId = icId;
    return this;
  }

   /**
   * 
   * @return icId
  **/
  @javax.annotation.Nullable
  public String getIcId() {
    return icId;
  }


  public void setIcId(String icId) {
    this.icId = icId;
  }


  public ToolsSiteUpdateV2RequestBricksInner icon(String icon) {
    
    this.icon = icon;
    return this;
  }

   /**
   * 
   * @return icon
  **/
  @javax.annotation.Nullable
  public String getIcon() {
    return icon;
  }


  public void setIcon(String icon) {
    this.icon = icon;
  }


  public ToolsSiteUpdateV2RequestBricksInner imageUrl(String imageUrl) {
    
    this.imageUrl = imageUrl;
    return this;
  }

   /**
   * 
   * @return imageUrl
  **/
  @javax.annotation.Nullable
  public String getImageUrl() {
    return imageUrl;
  }


  public void setImageUrl(String imageUrl) {
    this.imageUrl = imageUrl;
  }


  public ToolsSiteUpdateV2RequestBricksInner isCover(Long isCover) {
    
    this.isCover = isCover;
    return this;
  }

   /**
   * 
   * @return isCover
  **/
  @javax.annotation.Nullable
  public Long getIsCover() {
    return isCover;
  }


  public void setIsCover(Long isCover) {
    this.isCover = isCover;
  }


  public ToolsSiteUpdateV2RequestBricksInner letterSpacing(Long letterSpacing) {
    
    this.letterSpacing = letterSpacing;
    return this;
  }

   /**
   * 
   * @return letterSpacing
  **/
  @javax.annotation.Nullable
  public Long getLetterSpacing() {
    return letterSpacing;
  }


  public void setLetterSpacing(Long letterSpacing) {
    this.letterSpacing = letterSpacing;
  }


  public ToolsSiteUpdateV2RequestBricksInner lineHeight(Long lineHeight) {
    
    this.lineHeight = lineHeight;
    return this;
  }

   /**
   * 
   * @return lineHeight
  **/
  @javax.annotation.Nullable
  public Long getLineHeight() {
    return lineHeight;
  }


  public void setLineHeight(Long lineHeight) {
    this.lineHeight = lineHeight;
  }


  public ToolsSiteUpdateV2RequestBricksInner link(ToolsSiteUpdateV2RequestBricksInnerLink link) {
    
    this.link = link;
    return this;
  }

   /**
   * Get link
   * @return link
  **/
  @javax.annotation.Nullable
  public ToolsSiteUpdateV2RequestBricksInnerLink getLink() {
    return link;
  }


  public void setLink(ToolsSiteUpdateV2RequestBricksInnerLink link) {
    this.link = link;
  }


  public ToolsSiteUpdateV2RequestBricksInner linkable(Long linkable) {
    
    this.linkable = linkable;
    return this;
  }

   /**
   * 
   * @return linkable
  **/
  @javax.annotation.Nullable
  public Long getLinkable() {
    return linkable;
  }


  public void setLinkable(Long linkable) {
    this.linkable = linkable;
  }


  public ToolsSiteUpdateV2RequestBricksInner localSource(ToolsSiteUpdateV2RequestBricksInnerLocalSource localSource) {
    
    this.localSource = localSource;
    return this;
  }

   /**
   * Get localSource
   * @return localSource
  **/
  @javax.annotation.Nullable
  public ToolsSiteUpdateV2RequestBricksInnerLocalSource getLocalSource() {
    return localSource;
  }


  public void setLocalSource(ToolsSiteUpdateV2RequestBricksInnerLocalSource localSource) {
    this.localSource = localSource;
  }


  public ToolsSiteUpdateV2RequestBricksInner marquee(ToolsSiteUpdateV2RequestBricksInnerMarquee marquee) {
    
    this.marquee = marquee;
    return this;
  }

   /**
   * Get marquee
   * @return marquee
  **/
  @javax.annotation.Nullable
  public ToolsSiteUpdateV2RequestBricksInnerMarquee getMarquee() {
    return marquee;
  }


  public void setMarquee(ToolsSiteUpdateV2RequestBricksInnerMarquee marquee) {
    this.marquee = marquee;
  }


  public ToolsSiteUpdateV2RequestBricksInner name(String name) {
    
    this.name = name;
    return this;
  }

   /**
   * 
   * @return name
  **/
  @javax.annotation.Nonnull
  public String getName() {
    return name;
  }


  public void setName(String name) {
    this.name = name;
  }


  public ToolsSiteUpdateV2RequestBricksInner offsetX(Long offsetX) {
    
    this.offsetX = offsetX;
    return this;
  }

   /**
   * 
   * @return offsetX
  **/
  @javax.annotation.Nullable
  public Long getOffsetX() {
    return offsetX;
  }


  public void setOffsetX(Long offsetX) {
    this.offsetX = offsetX;
  }


  public ToolsSiteUpdateV2RequestBricksInner offsetY(Long offsetY) {
    
    this.offsetY = offsetY;
    return this;
  }

   /**
   * 
   * @return offsetY
  **/
  @javax.annotation.Nullable
  public Long getOffsetY() {
    return offsetY;
  }


  public void setOffsetY(Long offsetY) {
    this.offsetY = offsetY;
  }


  public ToolsSiteUpdateV2RequestBricksInner onlineSource(ToolsSiteUpdateV2RequestBricksInnerOnlineSource onlineSource) {
    
    this.onlineSource = onlineSource;
    return this;
  }

   /**
   * Get onlineSource
   * @return onlineSource
  **/
  @javax.annotation.Nullable
  public ToolsSiteUpdateV2RequestBricksInnerOnlineSource getOnlineSource() {
    return onlineSource;
  }


  public void setOnlineSource(ToolsSiteUpdateV2RequestBricksInnerOnlineSource onlineSource) {
    this.onlineSource = onlineSource;
  }


  public ToolsSiteUpdateV2RequestBricksInner packageInfo(ToolsSiteUpdateV2RequestBricksInnerPackageInfo packageInfo) {
    
    this.packageInfo = packageInfo;
    return this;
  }

   /**
   * Get packageInfo
   * @return packageInfo
  **/
  @javax.annotation.Nullable
  public ToolsSiteUpdateV2RequestBricksInnerPackageInfo getPackageInfo() {
    return packageInfo;
  }


  public void setPackageInfo(ToolsSiteUpdateV2RequestBricksInnerPackageInfo packageInfo) {
    this.packageInfo = packageInfo;
  }


  public ToolsSiteUpdateV2RequestBricksInner rewards(List<ToolsSiteUpdateV2RequestBricksInnerRewardsInner> rewards) {
    
    this.rewards = rewards;
    return this;
  }

  public ToolsSiteUpdateV2RequestBricksInner addRewardsItem(ToolsSiteUpdateV2RequestBricksInnerRewardsInner rewardsItem) {
    if (this.rewards == null) {
      this.rewards = new ArrayList<>();
    }
    this.rewards.add(rewardsItem);
    return this;
  }

   /**
   * 
   * @return rewards
  **/
  @javax.annotation.Nullable
  public List<ToolsSiteUpdateV2RequestBricksInnerRewardsInner> getRewards() {
    return rewards;
  }


  public void setRewards(List<ToolsSiteUpdateV2RequestBricksInnerRewardsInner> rewards) {
    this.rewards = rewards;
  }


  public ToolsSiteUpdateV2RequestBricksInner rewardsButtonText(String rewardsButtonText) {
    
    this.rewardsButtonText = rewardsButtonText;
    return this;
  }

   /**
   * 
   * @return rewardsButtonText
  **/
  @javax.annotation.Nullable
  public String getRewardsButtonText() {
    return rewardsButtonText;
  }


  public void setRewardsButtonText(String rewardsButtonText) {
    this.rewardsButtonText = rewardsButtonText;
  }


  public ToolsSiteUpdateV2RequestBricksInner rewardsButtonTextColor(String rewardsButtonTextColor) {
    
    this.rewardsButtonTextColor = rewardsButtonTextColor;
    return this;
  }

   /**
   * 
   * @return rewardsButtonTextColor
  **/
  @javax.annotation.Nullable
  public String getRewardsButtonTextColor() {
    return rewardsButtonTextColor;
  }


  public void setRewardsButtonTextColor(String rewardsButtonTextColor) {
    this.rewardsButtonTextColor = rewardsButtonTextColor;
  }


  public ToolsSiteUpdateV2RequestBricksInner rewardsButtonTextFontSize(Long rewardsButtonTextFontSize) {
    
    this.rewardsButtonTextFontSize = rewardsButtonTextFontSize;
    return this;
  }

   /**
   * 
   * @return rewardsButtonTextFontSize
  **/
  @javax.annotation.Nullable
  public Long getRewardsButtonTextFontSize() {
    return rewardsButtonTextFontSize;
  }


  public void setRewardsButtonTextFontSize(Long rewardsButtonTextFontSize) {
    this.rewardsButtonTextFontSize = rewardsButtonTextFontSize;
  }


  public ToolsSiteUpdateV2RequestBricksInner ruleText(ToolsSiteUpdateV2RequestBricksInnerRuleText ruleText) {
    
    this.ruleText = ruleText;
    return this;
  }

   /**
   * Get ruleText
   * @return ruleText
  **/
  @javax.annotation.Nullable
  public ToolsSiteUpdateV2RequestBricksInnerRuleText getRuleText() {
    return ruleText;
  }


  public void setRuleText(ToolsSiteUpdateV2RequestBricksInnerRuleText ruleText) {
    this.ruleText = ruleText;
  }


  public ToolsSiteUpdateV2RequestBricksInner successLink(ToolsSiteUpdateV2RequestBricksInnerSuccessLink successLink) {
    
    this.successLink = successLink;
    return this;
  }

   /**
   * Get successLink
   * @return successLink
  **/
  @javax.annotation.Nullable
  public ToolsSiteUpdateV2RequestBricksInnerSuccessLink getSuccessLink() {
    return successLink;
  }


  public void setSuccessLink(ToolsSiteUpdateV2RequestBricksInnerSuccessLink successLink) {
    this.successLink = successLink;
  }


  public ToolsSiteUpdateV2RequestBricksInner successTip(String successTip) {
    
    this.successTip = successTip;
    return this;
  }

   /**
   * 
   * @return successTip
  **/
  @javax.annotation.Nullable
  public String getSuccessTip() {
    return successTip;
  }


  public void setSuccessTip(String successTip) {
    this.successTip = successTip;
  }


  public ToolsSiteUpdateV2RequestBricksInner text(String text) {
    
    this.text = text;
    return this;
  }

   /**
   * 
   * @return text
  **/
  @javax.annotation.Nullable
  public String getText() {
    return text;
  }


  public void setText(String text) {
    this.text = text;
  }


  public ToolsSiteUpdateV2RequestBricksInner textAlign(String textAlign) {
    
    this.textAlign = textAlign;
    return this;
  }

   /**
   * 
   * @return textAlign
  **/
  @javax.annotation.Nullable
  public String getTextAlign() {
    return textAlign;
  }


  public void setTextAlign(String textAlign) {
    this.textAlign = textAlign;
  }


  public ToolsSiteUpdateV2RequestBricksInner width(Long width) {
    
    this.width = width;
    return this;
  }

   /**
   * 
   * @return width
  **/
  @javax.annotation.Nullable
  public Long getWidth() {
    return width;
  }


  public void setWidth(Long width) {
    this.width = width;
  }


  public ToolsSiteUpdateV2RequestBricksInner x(Long x) {
    
    this.x = x;
    return this;
  }

   /**
   * 
   * @return x
  **/
  @javax.annotation.Nullable
  public Long getX() {
    return x;
  }


  public void setX(Long x) {
    this.x = x;
  }


  public ToolsSiteUpdateV2RequestBricksInner y(Long y) {
    
    this.y = y;
    return this;
  }

   /**
   * 
   * @return y
  **/
  @javax.annotation.Nullable
  public Long getY() {
    return y;
  }


  public void setY(Long y) {
    this.y = y;
  }



  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ToolsSiteUpdateV2RequestBricksInner toolsSiteUpdateV2RequestBricksInner = (ToolsSiteUpdateV2RequestBricksInner) o;
    return Objects.equals(this.autoPlay, toolsSiteUpdateV2RequestBricksInner.autoPlay) &&
        Objects.equals(this.background, toolsSiteUpdateV2RequestBricksInner.background) &&
        Objects.equals(this.bgColor, toolsSiteUpdateV2RequestBricksInner.bgColor) &&
        Objects.equals(this.bgImage, toolsSiteUpdateV2RequestBricksInner.bgImage) &&
        Objects.equals(this.bgType, toolsSiteUpdateV2RequestBricksInner.bgType) &&
        Objects.equals(this.borderColor, toolsSiteUpdateV2RequestBricksInner.borderColor) &&
        Objects.equals(this.borderRadius, toolsSiteUpdateV2RequestBricksInner.borderRadius) &&
        Objects.equals(this.borderWidth, toolsSiteUpdateV2RequestBricksInner.borderWidth) &&
        Objects.equals(this.bulbEffect, toolsSiteUpdateV2RequestBricksInner.bulbEffect) &&
        Objects.equals(this.color, toolsSiteUpdateV2RequestBricksInner.color) &&
        Objects.equals(this.comments, toolsSiteUpdateV2RequestBricksInner.comments) &&
        Objects.equals(this.content, toolsSiteUpdateV2RequestBricksInner.content) &&
        Objects.equals(this.elements, toolsSiteUpdateV2RequestBricksInner.elements) &&
        Objects.equals(this.events, toolsSiteUpdateV2RequestBricksInner.events) &&
        Objects.equals(this.failureLink, toolsSiteUpdateV2RequestBricksInner.failureLink) &&
        Objects.equals(this._float, toolsSiteUpdateV2RequestBricksInner._float) &&
        Objects.equals(this.fontFamily, toolsSiteUpdateV2RequestBricksInner.fontFamily) &&
        Objects.equals(this.fontSize, toolsSiteUpdateV2RequestBricksInner.fontSize) &&
        Objects.equals(this.fontStyle, toolsSiteUpdateV2RequestBricksInner.fontStyle) &&
        Objects.equals(this.formData, toolsSiteUpdateV2RequestBricksInner.formData) &&
        Objects.equals(this.groupContent, toolsSiteUpdateV2RequestBricksInner.groupContent) &&
        Objects.equals(this.groupType, toolsSiteUpdateV2RequestBricksInner.groupType) &&
        Objects.equals(this.height, toolsSiteUpdateV2RequestBricksInner.height) &&
        Objects.equals(this.icId, toolsSiteUpdateV2RequestBricksInner.icId) &&
        Objects.equals(this.icon, toolsSiteUpdateV2RequestBricksInner.icon) &&
        Objects.equals(this.imageUrl, toolsSiteUpdateV2RequestBricksInner.imageUrl) &&
        Objects.equals(this.isCover, toolsSiteUpdateV2RequestBricksInner.isCover) &&
        Objects.equals(this.letterSpacing, toolsSiteUpdateV2RequestBricksInner.letterSpacing) &&
        Objects.equals(this.lineHeight, toolsSiteUpdateV2RequestBricksInner.lineHeight) &&
        Objects.equals(this.link, toolsSiteUpdateV2RequestBricksInner.link) &&
        Objects.equals(this.linkable, toolsSiteUpdateV2RequestBricksInner.linkable) &&
        Objects.equals(this.localSource, toolsSiteUpdateV2RequestBricksInner.localSource) &&
        Objects.equals(this.marquee, toolsSiteUpdateV2RequestBricksInner.marquee) &&
        Objects.equals(this.name, toolsSiteUpdateV2RequestBricksInner.name) &&
        Objects.equals(this.offsetX, toolsSiteUpdateV2RequestBricksInner.offsetX) &&
        Objects.equals(this.offsetY, toolsSiteUpdateV2RequestBricksInner.offsetY) &&
        Objects.equals(this.onlineSource, toolsSiteUpdateV2RequestBricksInner.onlineSource) &&
        Objects.equals(this.packageInfo, toolsSiteUpdateV2RequestBricksInner.packageInfo) &&
        Objects.equals(this.rewards, toolsSiteUpdateV2RequestBricksInner.rewards) &&
        Objects.equals(this.rewardsButtonText, toolsSiteUpdateV2RequestBricksInner.rewardsButtonText) &&
        Objects.equals(this.rewardsButtonTextColor, toolsSiteUpdateV2RequestBricksInner.rewardsButtonTextColor) &&
        Objects.equals(this.rewardsButtonTextFontSize, toolsSiteUpdateV2RequestBricksInner.rewardsButtonTextFontSize) &&
        Objects.equals(this.ruleText, toolsSiteUpdateV2RequestBricksInner.ruleText) &&
        Objects.equals(this.successLink, toolsSiteUpdateV2RequestBricksInner.successLink) &&
        Objects.equals(this.successTip, toolsSiteUpdateV2RequestBricksInner.successTip) &&
        Objects.equals(this.text, toolsSiteUpdateV2RequestBricksInner.text) &&
        Objects.equals(this.textAlign, toolsSiteUpdateV2RequestBricksInner.textAlign) &&
        Objects.equals(this.width, toolsSiteUpdateV2RequestBricksInner.width) &&
        Objects.equals(this.x, toolsSiteUpdateV2RequestBricksInner.x) &&
        Objects.equals(this.y, toolsSiteUpdateV2RequestBricksInner.y);
  }

  @Override
  public int hashCode() {
    return Objects.hash(autoPlay, background, bgColor, bgImage, bgType, borderColor, borderRadius, borderWidth, bulbEffect, color, comments, content, elements, events, failureLink, _float, fontFamily, fontSize, fontStyle, formData, groupContent, groupType, height, icId, icon, imageUrl, isCover, letterSpacing, lineHeight, link, linkable, localSource, marquee, name, offsetX, offsetY, onlineSource, packageInfo, rewards, rewardsButtonText, rewardsButtonTextColor, rewardsButtonTextFontSize, ruleText, successLink, successTip, text, textAlign, width, x, y);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ToolsSiteUpdateV2RequestBricksInner {\n");
    sb.append("    autoPlay: ").append(toIndentedString(autoPlay)).append("\n");
    sb.append("    background: ").append(toIndentedString(background)).append("\n");
    sb.append("    bgColor: ").append(toIndentedString(bgColor)).append("\n");
    sb.append("    bgImage: ").append(toIndentedString(bgImage)).append("\n");
    sb.append("    bgType: ").append(toIndentedString(bgType)).append("\n");
    sb.append("    borderColor: ").append(toIndentedString(borderColor)).append("\n");
    sb.append("    borderRadius: ").append(toIndentedString(borderRadius)).append("\n");
    sb.append("    borderWidth: ").append(toIndentedString(borderWidth)).append("\n");
    sb.append("    bulbEffect: ").append(toIndentedString(bulbEffect)).append("\n");
    sb.append("    color: ").append(toIndentedString(color)).append("\n");
    sb.append("    comments: ").append(toIndentedString(comments)).append("\n");
    sb.append("    content: ").append(toIndentedString(content)).append("\n");
    sb.append("    elements: ").append(toIndentedString(elements)).append("\n");
    sb.append("    events: ").append(toIndentedString(events)).append("\n");
    sb.append("    failureLink: ").append(toIndentedString(failureLink)).append("\n");
    sb.append("    _float: ").append(toIndentedString(_float)).append("\n");
    sb.append("    fontFamily: ").append(toIndentedString(fontFamily)).append("\n");
    sb.append("    fontSize: ").append(toIndentedString(fontSize)).append("\n");
    sb.append("    fontStyle: ").append(toIndentedString(fontStyle)).append("\n");
    sb.append("    formData: ").append(toIndentedString(formData)).append("\n");
    sb.append("    groupContent: ").append(toIndentedString(groupContent)).append("\n");
    sb.append("    groupType: ").append(toIndentedString(groupType)).append("\n");
    sb.append("    height: ").append(toIndentedString(height)).append("\n");
    sb.append("    icId: ").append(toIndentedString(icId)).append("\n");
    sb.append("    icon: ").append(toIndentedString(icon)).append("\n");
    sb.append("    imageUrl: ").append(toIndentedString(imageUrl)).append("\n");
    sb.append("    isCover: ").append(toIndentedString(isCover)).append("\n");
    sb.append("    letterSpacing: ").append(toIndentedString(letterSpacing)).append("\n");
    sb.append("    lineHeight: ").append(toIndentedString(lineHeight)).append("\n");
    sb.append("    link: ").append(toIndentedString(link)).append("\n");
    sb.append("    linkable: ").append(toIndentedString(linkable)).append("\n");
    sb.append("    localSource: ").append(toIndentedString(localSource)).append("\n");
    sb.append("    marquee: ").append(toIndentedString(marquee)).append("\n");
    sb.append("    name: ").append(toIndentedString(name)).append("\n");
    sb.append("    offsetX: ").append(toIndentedString(offsetX)).append("\n");
    sb.append("    offsetY: ").append(toIndentedString(offsetY)).append("\n");
    sb.append("    onlineSource: ").append(toIndentedString(onlineSource)).append("\n");
    sb.append("    packageInfo: ").append(toIndentedString(packageInfo)).append("\n");
    sb.append("    rewards: ").append(toIndentedString(rewards)).append("\n");
    sb.append("    rewardsButtonText: ").append(toIndentedString(rewardsButtonText)).append("\n");
    sb.append("    rewardsButtonTextColor: ").append(toIndentedString(rewardsButtonTextColor)).append("\n");
    sb.append("    rewardsButtonTextFontSize: ").append(toIndentedString(rewardsButtonTextFontSize)).append("\n");
    sb.append("    ruleText: ").append(toIndentedString(ruleText)).append("\n");
    sb.append("    successLink: ").append(toIndentedString(successLink)).append("\n");
    sb.append("    successTip: ").append(toIndentedString(successTip)).append("\n");
    sb.append("    text: ").append(toIndentedString(text)).append("\n");
    sb.append("    textAlign: ").append(toIndentedString(textAlign)).append("\n");
    sb.append("    width: ").append(toIndentedString(width)).append("\n");
    sb.append("    x: ").append(toIndentedString(x)).append("\n");
    sb.append("    y: ").append(toIndentedString(y)).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<String> openapiFields;
  public static HashSet<String> openapiRequiredFields;

  static {
    // a set of all properties/fields (JSON key names)
    openapiFields = new HashSet<String>();
    openapiFields.add("auto_play");
    openapiFields.add("background");
    openapiFields.add("bg_color");
    openapiFields.add("bg_image");
    openapiFields.add("bg_type");
    openapiFields.add("border_color");
    openapiFields.add("border_radius");
    openapiFields.add("border_width");
    openapiFields.add("bulb_effect");
    openapiFields.add("color");
    openapiFields.add("comments");
    openapiFields.add("content");
    openapiFields.add("elements");
    openapiFields.add("events");
    openapiFields.add("failure_link");
    openapiFields.add("float");
    openapiFields.add("font_family");
    openapiFields.add("font_size");
    openapiFields.add("font_style");
    openapiFields.add("form_data");
    openapiFields.add("group_content");
    openapiFields.add("group_type");
    openapiFields.add("height");
    openapiFields.add("ic_id");
    openapiFields.add("icon");
    openapiFields.add("image_url");
    openapiFields.add("is_cover");
    openapiFields.add("letter_spacing");
    openapiFields.add("line_height");
    openapiFields.add("link");
    openapiFields.add("linkable");
    openapiFields.add("local_source");
    openapiFields.add("marquee");
    openapiFields.add("name");
    openapiFields.add("offset_x");
    openapiFields.add("offset_y");
    openapiFields.add("online_source");
    openapiFields.add("package_info");
    openapiFields.add("rewards");
    openapiFields.add("rewards_button_text");
    openapiFields.add("rewards_button_text_color");
    openapiFields.add("rewards_button_text_font_size");
    openapiFields.add("rule_text");
    openapiFields.add("success_link");
    openapiFields.add("success_tip");
    openapiFields.add("text");
    openapiFields.add("text_align");
    openapiFields.add("width");
    openapiFields.add("x");
    openapiFields.add("y");

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


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

       return (TypeAdapter<T>) new TypeAdapter<ToolsSiteUpdateV2RequestBricksInner>() {
           @Override
           public void write(JsonWriter out, ToolsSiteUpdateV2RequestBricksInner value) throws IOException {
             JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject();
             elementAdapter.write(out, obj);
           }

           @Override
           public ToolsSiteUpdateV2RequestBricksInner read(JsonReader in) throws IOException {
             JsonElement jsonElement = elementAdapter.read(in);
             return thisAdapter.fromJsonTree(jsonElement);
           }

       }.nullSafe();
    }
  }

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

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

