/*
 * 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.aiplatform.v1.model;

/**
 * Actions could take on this Publisher Model.
 *
 * <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 Vertex AI 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 GoogleCloudAiplatformV1PublisherModelCallToAction extends com.google.api.client.json.GenericJson {

  /**
   * Optional. Create application using the PublisherModel.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences createApplication;

  /**
   * Optional. Deploy the PublisherModel to Vertex Endpoint.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private GoogleCloudAiplatformV1PublisherModelCallToActionDeploy deploy;

  /**
   * Optional. Open evaluation pipeline of the PublisherModel.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences openEvaluationPipeline;

  /**
   * Optional. Open fine-tuning pipeline of the PublisherModel.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences openFineTuningPipeline;

  /**
   * Optional. Open in Generation AI Studio.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences openGenerationAiStudio;

  /**
   * Optional. Open Genie / Playground.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences openGenie;

  /**
   * Optional. Open notebook of the PublisherModel.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences openNotebook;

  /**
   * Optional. Open prompt-tuning pipeline of the PublisherModel.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences openPromptTuningPipeline;

  /**
   * Optional. Request for access.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences requestAccess;

  /**
   * Optional. To view Rest API docs.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private GoogleCloudAiplatformV1PublisherModelCallToActionViewRestApi viewRestApi;

  /**
   * Optional. Create application using the PublisherModel.
   * @return value or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences getCreateApplication() {
    return createApplication;
  }

  /**
   * Optional. Create application using the PublisherModel.
   * @param createApplication createApplication or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToAction setCreateApplication(GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences createApplication) {
    this.createApplication = createApplication;
    return this;
  }

  /**
   * Optional. Deploy the PublisherModel to Vertex Endpoint.
   * @return value or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToActionDeploy getDeploy() {
    return deploy;
  }

  /**
   * Optional. Deploy the PublisherModel to Vertex Endpoint.
   * @param deploy deploy or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToAction setDeploy(GoogleCloudAiplatformV1PublisherModelCallToActionDeploy deploy) {
    this.deploy = deploy;
    return this;
  }

  /**
   * Optional. Open evaluation pipeline of the PublisherModel.
   * @return value or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences getOpenEvaluationPipeline() {
    return openEvaluationPipeline;
  }

  /**
   * Optional. Open evaluation pipeline of the PublisherModel.
   * @param openEvaluationPipeline openEvaluationPipeline or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToAction setOpenEvaluationPipeline(GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences openEvaluationPipeline) {
    this.openEvaluationPipeline = openEvaluationPipeline;
    return this;
  }

  /**
   * Optional. Open fine-tuning pipeline of the PublisherModel.
   * @return value or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences getOpenFineTuningPipeline() {
    return openFineTuningPipeline;
  }

  /**
   * Optional. Open fine-tuning pipeline of the PublisherModel.
   * @param openFineTuningPipeline openFineTuningPipeline or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToAction setOpenFineTuningPipeline(GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences openFineTuningPipeline) {
    this.openFineTuningPipeline = openFineTuningPipeline;
    return this;
  }

  /**
   * Optional. Open in Generation AI Studio.
   * @return value or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences getOpenGenerationAiStudio() {
    return openGenerationAiStudio;
  }

  /**
   * Optional. Open in Generation AI Studio.
   * @param openGenerationAiStudio openGenerationAiStudio or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToAction setOpenGenerationAiStudio(GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences openGenerationAiStudio) {
    this.openGenerationAiStudio = openGenerationAiStudio;
    return this;
  }

  /**
   * Optional. Open Genie / Playground.
   * @return value or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences getOpenGenie() {
    return openGenie;
  }

  /**
   * Optional. Open Genie / Playground.
   * @param openGenie openGenie or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToAction setOpenGenie(GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences openGenie) {
    this.openGenie = openGenie;
    return this;
  }

  /**
   * Optional. Open notebook of the PublisherModel.
   * @return value or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences getOpenNotebook() {
    return openNotebook;
  }

  /**
   * Optional. Open notebook of the PublisherModel.
   * @param openNotebook openNotebook or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToAction setOpenNotebook(GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences openNotebook) {
    this.openNotebook = openNotebook;
    return this;
  }

  /**
   * Optional. Open prompt-tuning pipeline of the PublisherModel.
   * @return value or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences getOpenPromptTuningPipeline() {
    return openPromptTuningPipeline;
  }

  /**
   * Optional. Open prompt-tuning pipeline of the PublisherModel.
   * @param openPromptTuningPipeline openPromptTuningPipeline or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToAction setOpenPromptTuningPipeline(GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences openPromptTuningPipeline) {
    this.openPromptTuningPipeline = openPromptTuningPipeline;
    return this;
  }

  /**
   * Optional. Request for access.
   * @return value or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences getRequestAccess() {
    return requestAccess;
  }

  /**
   * Optional. Request for access.
   * @param requestAccess requestAccess or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToAction setRequestAccess(GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences requestAccess) {
    this.requestAccess = requestAccess;
    return this;
  }

  /**
   * Optional. To view Rest API docs.
   * @return value or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToActionViewRestApi getViewRestApi() {
    return viewRestApi;
  }

  /**
   * Optional. To view Rest API docs.
   * @param viewRestApi viewRestApi or {@code null} for none
   */
  public GoogleCloudAiplatformV1PublisherModelCallToAction setViewRestApi(GoogleCloudAiplatformV1PublisherModelCallToActionViewRestApi viewRestApi) {
    this.viewRestApi = viewRestApi;
    return this;
  }

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

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

}
