/*
 * Copyright 2023 Google LLC
 *
 * 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
 *
 *      https://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.
 */

package com.google.cloud.container.v1.spring;

import com.google.api.core.BetaApi;
import com.google.cloud.spring.core.Credentials;
import com.google.cloud.spring.core.CredentialsSupplier;
import com.google.cloud.spring.core.Retry;
import javax.annotation.Generated;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;

// AUTO-GENERATED DOCUMENTATION AND CLASS.
/** Provides default property values for ClusterManager client bean */
@Generated("by google-cloud-spring-generator")
@BetaApi("Autogenerated Spring autoconfiguration is not yet stable")
@ConfigurationProperties("com.google.cloud.container.v1.cluster-manager")
public class ClusterManagerSpringProperties implements CredentialsSupplier {
  /** OAuth2 credentials to authenticate and authorize calls to Google Cloud Client Libraries. */
  @NestedConfigurationProperty
  private final Credentials credentials =
      new Credentials("https://www.googleapis.com/auth/cloud-platform");
  /** Quota project to use for billing. */
  private String quotaProjectId;
  /** Number of threads used for executors. */
  private Integer executorThreadCount;
  /** Allow override of retry settings at service level, applying to all of its RPC methods. */
  @NestedConfigurationProperty private Retry retry;
  /**
   * Allow override of retry settings at method-level for listClusters. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry listClustersRetry;
  /**
   * Allow override of retry settings at method-level for getCluster. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry getClusterRetry;
  /**
   * Allow override of retry settings at method-level for createCluster. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry createClusterRetry;
  /**
   * Allow override of retry settings at method-level for updateCluster. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry updateClusterRetry;
  /**
   * Allow override of retry settings at method-level for updateNodePool. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry updateNodePoolRetry;
  /**
   * Allow override of retry settings at method-level for setNodePoolAutoscaling. If defined, this
   * takes precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry setNodePoolAutoscalingRetry;
  /**
   * Allow override of retry settings at method-level for setLoggingService. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry setLoggingServiceRetry;
  /**
   * Allow override of retry settings at method-level for setMonitoringService. If defined, this
   * takes precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry setMonitoringServiceRetry;
  /**
   * Allow override of retry settings at method-level for setAddonsConfig. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry setAddonsConfigRetry;
  /**
   * Allow override of retry settings at method-level for setLocations. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry setLocationsRetry;
  /**
   * Allow override of retry settings at method-level for updateMaster. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry updateMasterRetry;
  /**
   * Allow override of retry settings at method-level for setMasterAuth. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry setMasterAuthRetry;
  /**
   * Allow override of retry settings at method-level for deleteCluster. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry deleteClusterRetry;
  /**
   * Allow override of retry settings at method-level for listOperations. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry listOperationsRetry;
  /**
   * Allow override of retry settings at method-level for getOperation. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry getOperationRetry;
  /**
   * Allow override of retry settings at method-level for cancelOperation. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry cancelOperationRetry;
  /**
   * Allow override of retry settings at method-level for getServerConfig. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry getServerConfigRetry;
  /**
   * Allow override of retry settings at method-level for getJSONWebKeys. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry getJSONWebKeysRetry;
  /**
   * Allow override of retry settings at method-level for listNodePools. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry listNodePoolsRetry;
  /**
   * Allow override of retry settings at method-level for getNodePool. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry getNodePoolRetry;
  /**
   * Allow override of retry settings at method-level for createNodePool. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry createNodePoolRetry;
  /**
   * Allow override of retry settings at method-level for deleteNodePool. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry deleteNodePoolRetry;
  /**
   * Allow override of retry settings at method-level for completeNodePoolUpgrade. If defined, this
   * takes precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry completeNodePoolUpgradeRetry;
  /**
   * Allow override of retry settings at method-level for rollbackNodePoolUpgrade. If defined, this
   * takes precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry rollbackNodePoolUpgradeRetry;
  /**
   * Allow override of retry settings at method-level for setNodePoolManagement. If defined, this
   * takes precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry setNodePoolManagementRetry;
  /**
   * Allow override of retry settings at method-level for setLabels. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry setLabelsRetry;
  /**
   * Allow override of retry settings at method-level for setLegacyAbac. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry setLegacyAbacRetry;
  /**
   * Allow override of retry settings at method-level for startIPRotation. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry startIPRotationRetry;
  /**
   * Allow override of retry settings at method-level for completeIPRotation. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry completeIPRotationRetry;
  /**
   * Allow override of retry settings at method-level for setNodePoolSize. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry setNodePoolSizeRetry;
  /**
   * Allow override of retry settings at method-level for setNetworkPolicy. If defined, this takes
   * precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry setNetworkPolicyRetry;
  /**
   * Allow override of retry settings at method-level for setMaintenancePolicy. If defined, this
   * takes precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry setMaintenancePolicyRetry;
  /**
   * Allow override of retry settings at method-level for listUsableSubnetworks. If defined, this
   * takes precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry listUsableSubnetworksRetry;
  /**
   * Allow override of retry settings at method-level for checkAutopilotCompatibility. If defined,
   * this takes precedence over service-level retry configurations for that RPC method.
   */
  @NestedConfigurationProperty private Retry checkAutopilotCompatibilityRetry;

  @Override
  public Credentials getCredentials() {
    return this.credentials;
  }

  public String getQuotaProjectId() {
    return this.quotaProjectId;
  }

  public void setQuotaProjectId(String quotaProjectId) {
    this.quotaProjectId = quotaProjectId;
  }

  public Integer getExecutorThreadCount() {
    return this.executorThreadCount;
  }

  public void setExecutorThreadCount(Integer executorThreadCount) {
    this.executorThreadCount = executorThreadCount;
  }

  public Retry getRetry() {
    return this.retry;
  }

  public void setRetry(Retry retry) {
    this.retry = retry;
  }

  public Retry getListClustersRetry() {
    return this.listClustersRetry;
  }

  public void setListClustersRetry(Retry listClustersRetry) {
    this.listClustersRetry = listClustersRetry;
  }

  public Retry getGetClusterRetry() {
    return this.getClusterRetry;
  }

  public void setGetClusterRetry(Retry getClusterRetry) {
    this.getClusterRetry = getClusterRetry;
  }

  public Retry getCreateClusterRetry() {
    return this.createClusterRetry;
  }

  public void setCreateClusterRetry(Retry createClusterRetry) {
    this.createClusterRetry = createClusterRetry;
  }

  public Retry getUpdateClusterRetry() {
    return this.updateClusterRetry;
  }

  public void setUpdateClusterRetry(Retry updateClusterRetry) {
    this.updateClusterRetry = updateClusterRetry;
  }

  public Retry getUpdateNodePoolRetry() {
    return this.updateNodePoolRetry;
  }

  public void setUpdateNodePoolRetry(Retry updateNodePoolRetry) {
    this.updateNodePoolRetry = updateNodePoolRetry;
  }

  public Retry getSetNodePoolAutoscalingRetry() {
    return this.setNodePoolAutoscalingRetry;
  }

  public void setSetNodePoolAutoscalingRetry(Retry setNodePoolAutoscalingRetry) {
    this.setNodePoolAutoscalingRetry = setNodePoolAutoscalingRetry;
  }

  public Retry getSetLoggingServiceRetry() {
    return this.setLoggingServiceRetry;
  }

  public void setSetLoggingServiceRetry(Retry setLoggingServiceRetry) {
    this.setLoggingServiceRetry = setLoggingServiceRetry;
  }

  public Retry getSetMonitoringServiceRetry() {
    return this.setMonitoringServiceRetry;
  }

  public void setSetMonitoringServiceRetry(Retry setMonitoringServiceRetry) {
    this.setMonitoringServiceRetry = setMonitoringServiceRetry;
  }

  public Retry getSetAddonsConfigRetry() {
    return this.setAddonsConfigRetry;
  }

  public void setSetAddonsConfigRetry(Retry setAddonsConfigRetry) {
    this.setAddonsConfigRetry = setAddonsConfigRetry;
  }

  public Retry getSetLocationsRetry() {
    return this.setLocationsRetry;
  }

  public void setSetLocationsRetry(Retry setLocationsRetry) {
    this.setLocationsRetry = setLocationsRetry;
  }

  public Retry getUpdateMasterRetry() {
    return this.updateMasterRetry;
  }

  public void setUpdateMasterRetry(Retry updateMasterRetry) {
    this.updateMasterRetry = updateMasterRetry;
  }

  public Retry getSetMasterAuthRetry() {
    return this.setMasterAuthRetry;
  }

  public void setSetMasterAuthRetry(Retry setMasterAuthRetry) {
    this.setMasterAuthRetry = setMasterAuthRetry;
  }

  public Retry getDeleteClusterRetry() {
    return this.deleteClusterRetry;
  }

  public void setDeleteClusterRetry(Retry deleteClusterRetry) {
    this.deleteClusterRetry = deleteClusterRetry;
  }

  public Retry getListOperationsRetry() {
    return this.listOperationsRetry;
  }

  public void setListOperationsRetry(Retry listOperationsRetry) {
    this.listOperationsRetry = listOperationsRetry;
  }

  public Retry getGetOperationRetry() {
    return this.getOperationRetry;
  }

  public void setGetOperationRetry(Retry getOperationRetry) {
    this.getOperationRetry = getOperationRetry;
  }

  public Retry getCancelOperationRetry() {
    return this.cancelOperationRetry;
  }

  public void setCancelOperationRetry(Retry cancelOperationRetry) {
    this.cancelOperationRetry = cancelOperationRetry;
  }

  public Retry getGetServerConfigRetry() {
    return this.getServerConfigRetry;
  }

  public void setGetServerConfigRetry(Retry getServerConfigRetry) {
    this.getServerConfigRetry = getServerConfigRetry;
  }

  public Retry getGetJSONWebKeysRetry() {
    return this.getJSONWebKeysRetry;
  }

  public void setGetJSONWebKeysRetry(Retry getJSONWebKeysRetry) {
    this.getJSONWebKeysRetry = getJSONWebKeysRetry;
  }

  public Retry getListNodePoolsRetry() {
    return this.listNodePoolsRetry;
  }

  public void setListNodePoolsRetry(Retry listNodePoolsRetry) {
    this.listNodePoolsRetry = listNodePoolsRetry;
  }

  public Retry getGetNodePoolRetry() {
    return this.getNodePoolRetry;
  }

  public void setGetNodePoolRetry(Retry getNodePoolRetry) {
    this.getNodePoolRetry = getNodePoolRetry;
  }

  public Retry getCreateNodePoolRetry() {
    return this.createNodePoolRetry;
  }

  public void setCreateNodePoolRetry(Retry createNodePoolRetry) {
    this.createNodePoolRetry = createNodePoolRetry;
  }

  public Retry getDeleteNodePoolRetry() {
    return this.deleteNodePoolRetry;
  }

  public void setDeleteNodePoolRetry(Retry deleteNodePoolRetry) {
    this.deleteNodePoolRetry = deleteNodePoolRetry;
  }

  public Retry getCompleteNodePoolUpgradeRetry() {
    return this.completeNodePoolUpgradeRetry;
  }

  public void setCompleteNodePoolUpgradeRetry(Retry completeNodePoolUpgradeRetry) {
    this.completeNodePoolUpgradeRetry = completeNodePoolUpgradeRetry;
  }

  public Retry getRollbackNodePoolUpgradeRetry() {
    return this.rollbackNodePoolUpgradeRetry;
  }

  public void setRollbackNodePoolUpgradeRetry(Retry rollbackNodePoolUpgradeRetry) {
    this.rollbackNodePoolUpgradeRetry = rollbackNodePoolUpgradeRetry;
  }

  public Retry getSetNodePoolManagementRetry() {
    return this.setNodePoolManagementRetry;
  }

  public void setSetNodePoolManagementRetry(Retry setNodePoolManagementRetry) {
    this.setNodePoolManagementRetry = setNodePoolManagementRetry;
  }

  public Retry getSetLabelsRetry() {
    return this.setLabelsRetry;
  }

  public void setSetLabelsRetry(Retry setLabelsRetry) {
    this.setLabelsRetry = setLabelsRetry;
  }

  public Retry getSetLegacyAbacRetry() {
    return this.setLegacyAbacRetry;
  }

  public void setSetLegacyAbacRetry(Retry setLegacyAbacRetry) {
    this.setLegacyAbacRetry = setLegacyAbacRetry;
  }

  public Retry getStartIPRotationRetry() {
    return this.startIPRotationRetry;
  }

  public void setStartIPRotationRetry(Retry startIPRotationRetry) {
    this.startIPRotationRetry = startIPRotationRetry;
  }

  public Retry getCompleteIPRotationRetry() {
    return this.completeIPRotationRetry;
  }

  public void setCompleteIPRotationRetry(Retry completeIPRotationRetry) {
    this.completeIPRotationRetry = completeIPRotationRetry;
  }

  public Retry getSetNodePoolSizeRetry() {
    return this.setNodePoolSizeRetry;
  }

  public void setSetNodePoolSizeRetry(Retry setNodePoolSizeRetry) {
    this.setNodePoolSizeRetry = setNodePoolSizeRetry;
  }

  public Retry getSetNetworkPolicyRetry() {
    return this.setNetworkPolicyRetry;
  }

  public void setSetNetworkPolicyRetry(Retry setNetworkPolicyRetry) {
    this.setNetworkPolicyRetry = setNetworkPolicyRetry;
  }

  public Retry getSetMaintenancePolicyRetry() {
    return this.setMaintenancePolicyRetry;
  }

  public void setSetMaintenancePolicyRetry(Retry setMaintenancePolicyRetry) {
    this.setMaintenancePolicyRetry = setMaintenancePolicyRetry;
  }

  public Retry getListUsableSubnetworksRetry() {
    return this.listUsableSubnetworksRetry;
  }

  public void setListUsableSubnetworksRetry(Retry listUsableSubnetworksRetry) {
    this.listUsableSubnetworksRetry = listUsableSubnetworksRetry;
  }

  public Retry getCheckAutopilotCompatibilityRetry() {
    return this.checkAutopilotCompatibilityRetry;
  }

  public void setCheckAutopilotCompatibilityRetry(Retry checkAutopilotCompatibilityRetry) {
    this.checkAutopilotCompatibilityRetry = checkAutopilotCompatibilityRetry;
  }
}
