/*
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */
/*
 * This code was generated by https://github.com/googleapis/google-api-java-client-services/
 * Modify at your own risk.
 */

package com.google.api.services.sheets.v4.model;

/**
 * A single response from an update.
 *
 * <p> This is the Java data model class that specifies how to parse/serialize into the JSON that is
 * transmitted over HTTP when working with the Google Sheets API. For a detailed explanation see:
 * <a href="https://developers.google.com/api-client-library/java/google-http-java-client/json">https://developers.google.com/api-client-library/java/google-http-java-client/json</a>
 * </p>
 *
 * @author Google, Inc.
 */
@SuppressWarnings("javadoc")
public final class Response extends com.google.api.client.json.GenericJson {

  /**
   * A reply from adding a banded range.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private AddBandingResponse addBanding;

  /**
   * A reply from adding a chart.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private AddChartResponse addChart;

  /**
   * A reply from adding a data source.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private AddDataSourceResponse addDataSource;

  /**
   * A reply from adding a dimension group.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private AddDimensionGroupResponse addDimensionGroup;

  /**
   * A reply from adding a filter view.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private AddFilterViewResponse addFilterView;

  /**
   * A reply from adding a named range.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private AddNamedRangeResponse addNamedRange;

  /**
   * A reply from adding a protected range.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private AddProtectedRangeResponse addProtectedRange;

  /**
   * A reply from adding a sheet.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private AddSheetResponse addSheet;

  /**
   * A reply from adding a slicer.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private AddSlicerResponse addSlicer;

  /**
   * A reply from creating a developer metadata entry.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private CreateDeveloperMetadataResponse createDeveloperMetadata;

  /**
   * A reply from deleting a conditional format rule.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private DeleteConditionalFormatRuleResponse deleteConditionalFormatRule;

  /**
   * A reply from deleting a developer metadata entry.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private DeleteDeveloperMetadataResponse deleteDeveloperMetadata;

  /**
   * A reply from deleting a dimension group.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private DeleteDimensionGroupResponse deleteDimensionGroup;

  /**
   * A reply from removing rows containing duplicate values.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private DeleteDuplicatesResponse deleteDuplicates;

  /**
   * A reply from duplicating a filter view.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private DuplicateFilterViewResponse duplicateFilterView;

  /**
   * A reply from duplicating a sheet.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private DuplicateSheetResponse duplicateSheet;

  /**
   * A reply from doing a find/replace.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private FindReplaceResponse findReplace;

  /**
   * A reply from refreshing data source objects.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private RefreshDataSourceResponse refreshDataSource;

  /**
   * A reply from trimming whitespace.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private TrimWhitespaceResponse trimWhitespace;

  /**
   * A reply from updating a conditional format rule.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private UpdateConditionalFormatRuleResponse updateConditionalFormatRule;

  /**
   * A reply from updating a data source.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private UpdateDataSourceResponse updateDataSource;

  /**
   * A reply from updating a developer metadata entry.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private UpdateDeveloperMetadataResponse updateDeveloperMetadata;

  /**
   * A reply from updating an embedded object's position.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private UpdateEmbeddedObjectPositionResponse updateEmbeddedObjectPosition;

  /**
   * A reply from adding a banded range.
   * @return value or {@code null} for none
   */
  public AddBandingResponse getAddBanding() {
    return addBanding;
  }

  /**
   * A reply from adding a banded range.
   * @param addBanding addBanding or {@code null} for none
   */
  public Response setAddBanding(AddBandingResponse addBanding) {
    this.addBanding = addBanding;
    return this;
  }

  /**
   * A reply from adding a chart.
   * @return value or {@code null} for none
   */
  public AddChartResponse getAddChart() {
    return addChart;
  }

  /**
   * A reply from adding a chart.
   * @param addChart addChart or {@code null} for none
   */
  public Response setAddChart(AddChartResponse addChart) {
    this.addChart = addChart;
    return this;
  }

  /**
   * A reply from adding a data source.
   * @return value or {@code null} for none
   */
  public AddDataSourceResponse getAddDataSource() {
    return addDataSource;
  }

  /**
   * A reply from adding a data source.
   * @param addDataSource addDataSource or {@code null} for none
   */
  public Response setAddDataSource(AddDataSourceResponse addDataSource) {
    this.addDataSource = addDataSource;
    return this;
  }

  /**
   * A reply from adding a dimension group.
   * @return value or {@code null} for none
   */
  public AddDimensionGroupResponse getAddDimensionGroup() {
    return addDimensionGroup;
  }

  /**
   * A reply from adding a dimension group.
   * @param addDimensionGroup addDimensionGroup or {@code null} for none
   */
  public Response setAddDimensionGroup(AddDimensionGroupResponse addDimensionGroup) {
    this.addDimensionGroup = addDimensionGroup;
    return this;
  }

  /**
   * A reply from adding a filter view.
   * @return value or {@code null} for none
   */
  public AddFilterViewResponse getAddFilterView() {
    return addFilterView;
  }

  /**
   * A reply from adding a filter view.
   * @param addFilterView addFilterView or {@code null} for none
   */
  public Response setAddFilterView(AddFilterViewResponse addFilterView) {
    this.addFilterView = addFilterView;
    return this;
  }

  /**
   * A reply from adding a named range.
   * @return value or {@code null} for none
   */
  public AddNamedRangeResponse getAddNamedRange() {
    return addNamedRange;
  }

  /**
   * A reply from adding a named range.
   * @param addNamedRange addNamedRange or {@code null} for none
   */
  public Response setAddNamedRange(AddNamedRangeResponse addNamedRange) {
    this.addNamedRange = addNamedRange;
    return this;
  }

  /**
   * A reply from adding a protected range.
   * @return value or {@code null} for none
   */
  public AddProtectedRangeResponse getAddProtectedRange() {
    return addProtectedRange;
  }

  /**
   * A reply from adding a protected range.
   * @param addProtectedRange addProtectedRange or {@code null} for none
   */
  public Response setAddProtectedRange(AddProtectedRangeResponse addProtectedRange) {
    this.addProtectedRange = addProtectedRange;
    return this;
  }

  /**
   * A reply from adding a sheet.
   * @return value or {@code null} for none
   */
  public AddSheetResponse getAddSheet() {
    return addSheet;
  }

  /**
   * A reply from adding a sheet.
   * @param addSheet addSheet or {@code null} for none
   */
  public Response setAddSheet(AddSheetResponse addSheet) {
    this.addSheet = addSheet;
    return this;
  }

  /**
   * A reply from adding a slicer.
   * @return value or {@code null} for none
   */
  public AddSlicerResponse getAddSlicer() {
    return addSlicer;
  }

  /**
   * A reply from adding a slicer.
   * @param addSlicer addSlicer or {@code null} for none
   */
  public Response setAddSlicer(AddSlicerResponse addSlicer) {
    this.addSlicer = addSlicer;
    return this;
  }

  /**
   * A reply from creating a developer metadata entry.
   * @return value or {@code null} for none
   */
  public CreateDeveloperMetadataResponse getCreateDeveloperMetadata() {
    return createDeveloperMetadata;
  }

  /**
   * A reply from creating a developer metadata entry.
   * @param createDeveloperMetadata createDeveloperMetadata or {@code null} for none
   */
  public Response setCreateDeveloperMetadata(CreateDeveloperMetadataResponse createDeveloperMetadata) {
    this.createDeveloperMetadata = createDeveloperMetadata;
    return this;
  }

  /**
   * A reply from deleting a conditional format rule.
   * @return value or {@code null} for none
   */
  public DeleteConditionalFormatRuleResponse getDeleteConditionalFormatRule() {
    return deleteConditionalFormatRule;
  }

  /**
   * A reply from deleting a conditional format rule.
   * @param deleteConditionalFormatRule deleteConditionalFormatRule or {@code null} for none
   */
  public Response setDeleteConditionalFormatRule(DeleteConditionalFormatRuleResponse deleteConditionalFormatRule) {
    this.deleteConditionalFormatRule = deleteConditionalFormatRule;
    return this;
  }

  /**
   * A reply from deleting a developer metadata entry.
   * @return value or {@code null} for none
   */
  public DeleteDeveloperMetadataResponse getDeleteDeveloperMetadata() {
    return deleteDeveloperMetadata;
  }

  /**
   * A reply from deleting a developer metadata entry.
   * @param deleteDeveloperMetadata deleteDeveloperMetadata or {@code null} for none
   */
  public Response setDeleteDeveloperMetadata(DeleteDeveloperMetadataResponse deleteDeveloperMetadata) {
    this.deleteDeveloperMetadata = deleteDeveloperMetadata;
    return this;
  }

  /**
   * A reply from deleting a dimension group.
   * @return value or {@code null} for none
   */
  public DeleteDimensionGroupResponse getDeleteDimensionGroup() {
    return deleteDimensionGroup;
  }

  /**
   * A reply from deleting a dimension group.
   * @param deleteDimensionGroup deleteDimensionGroup or {@code null} for none
   */
  public Response setDeleteDimensionGroup(DeleteDimensionGroupResponse deleteDimensionGroup) {
    this.deleteDimensionGroup = deleteDimensionGroup;
    return this;
  }

  /**
   * A reply from removing rows containing duplicate values.
   * @return value or {@code null} for none
   */
  public DeleteDuplicatesResponse getDeleteDuplicates() {
    return deleteDuplicates;
  }

  /**
   * A reply from removing rows containing duplicate values.
   * @param deleteDuplicates deleteDuplicates or {@code null} for none
   */
  public Response setDeleteDuplicates(DeleteDuplicatesResponse deleteDuplicates) {
    this.deleteDuplicates = deleteDuplicates;
    return this;
  }

  /**
   * A reply from duplicating a filter view.
   * @return value or {@code null} for none
   */
  public DuplicateFilterViewResponse getDuplicateFilterView() {
    return duplicateFilterView;
  }

  /**
   * A reply from duplicating a filter view.
   * @param duplicateFilterView duplicateFilterView or {@code null} for none
   */
  public Response setDuplicateFilterView(DuplicateFilterViewResponse duplicateFilterView) {
    this.duplicateFilterView = duplicateFilterView;
    return this;
  }

  /**
   * A reply from duplicating a sheet.
   * @return value or {@code null} for none
   */
  public DuplicateSheetResponse getDuplicateSheet() {
    return duplicateSheet;
  }

  /**
   * A reply from duplicating a sheet.
   * @param duplicateSheet duplicateSheet or {@code null} for none
   */
  public Response setDuplicateSheet(DuplicateSheetResponse duplicateSheet) {
    this.duplicateSheet = duplicateSheet;
    return this;
  }

  /**
   * A reply from doing a find/replace.
   * @return value or {@code null} for none
   */
  public FindReplaceResponse getFindReplace() {
    return findReplace;
  }

  /**
   * A reply from doing a find/replace.
   * @param findReplace findReplace or {@code null} for none
   */
  public Response setFindReplace(FindReplaceResponse findReplace) {
    this.findReplace = findReplace;
    return this;
  }

  /**
   * A reply from refreshing data source objects.
   * @return value or {@code null} for none
   */
  public RefreshDataSourceResponse getRefreshDataSource() {
    return refreshDataSource;
  }

  /**
   * A reply from refreshing data source objects.
   * @param refreshDataSource refreshDataSource or {@code null} for none
   */
  public Response setRefreshDataSource(RefreshDataSourceResponse refreshDataSource) {
    this.refreshDataSource = refreshDataSource;
    return this;
  }

  /**
   * A reply from trimming whitespace.
   * @return value or {@code null} for none
   */
  public TrimWhitespaceResponse getTrimWhitespace() {
    return trimWhitespace;
  }

  /**
   * A reply from trimming whitespace.
   * @param trimWhitespace trimWhitespace or {@code null} for none
   */
  public Response setTrimWhitespace(TrimWhitespaceResponse trimWhitespace) {
    this.trimWhitespace = trimWhitespace;
    return this;
  }

  /**
   * A reply from updating a conditional format rule.
   * @return value or {@code null} for none
   */
  public UpdateConditionalFormatRuleResponse getUpdateConditionalFormatRule() {
    return updateConditionalFormatRule;
  }

  /**
   * A reply from updating a conditional format rule.
   * @param updateConditionalFormatRule updateConditionalFormatRule or {@code null} for none
   */
  public Response setUpdateConditionalFormatRule(UpdateConditionalFormatRuleResponse updateConditionalFormatRule) {
    this.updateConditionalFormatRule = updateConditionalFormatRule;
    return this;
  }

  /**
   * A reply from updating a data source.
   * @return value or {@code null} for none
   */
  public UpdateDataSourceResponse getUpdateDataSource() {
    return updateDataSource;
  }

  /**
   * A reply from updating a data source.
   * @param updateDataSource updateDataSource or {@code null} for none
   */
  public Response setUpdateDataSource(UpdateDataSourceResponse updateDataSource) {
    this.updateDataSource = updateDataSource;
    return this;
  }

  /**
   * A reply from updating a developer metadata entry.
   * @return value or {@code null} for none
   */
  public UpdateDeveloperMetadataResponse getUpdateDeveloperMetadata() {
    return updateDeveloperMetadata;
  }

  /**
   * A reply from updating a developer metadata entry.
   * @param updateDeveloperMetadata updateDeveloperMetadata or {@code null} for none
   */
  public Response setUpdateDeveloperMetadata(UpdateDeveloperMetadataResponse updateDeveloperMetadata) {
    this.updateDeveloperMetadata = updateDeveloperMetadata;
    return this;
  }

  /**
   * A reply from updating an embedded object's position.
   * @return value or {@code null} for none
   */
  public UpdateEmbeddedObjectPositionResponse getUpdateEmbeddedObjectPosition() {
    return updateEmbeddedObjectPosition;
  }

  /**
   * A reply from updating an embedded object's position.
   * @param updateEmbeddedObjectPosition updateEmbeddedObjectPosition or {@code null} for none
   */
  public Response setUpdateEmbeddedObjectPosition(UpdateEmbeddedObjectPositionResponse updateEmbeddedObjectPosition) {
    this.updateEmbeddedObjectPosition = updateEmbeddedObjectPosition;
    return this;
  }

  @Override
  public Response set(String fieldName, Object value) {
    return (Response) super.set(fieldName, value);
  }

  @Override
  public Response clone() {
    return (Response) super.clone();
  }

}
