![JAR search and dependency download from the Maven repository](/logo.png)
com.google.api.services.compute.model.InstanceGroupManagerUpdatePolicy Maven / Gradle / Ivy
/*
* 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.compute.model;
/**
* Model definition for InstanceGroupManagerUpdatePolicy.
*
* 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 Compute Engine API. For a detailed explanation see:
* https://developers.google.com/api-client-library/java/google-http-java-client/json
*
*
* @author Google, Inc.
*/
@SuppressWarnings("javadoc")
public final class InstanceGroupManagerUpdatePolicy extends com.google.api.client.json.GenericJson {
/**
* The instance redistribution policy for regional managed instance groups. Valid values are: -
* PROACTIVE (default): The group attempts to maintain an even distribution of VM instances across
* zones in the region. - NONE: For non-autoscaled groups, proactive redistribution is disabled.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String instanceRedistributionType;
/**
* The maximum number of instances that can be created above the specified targetSize during the
* update process. This value can be either a fixed number or, if the group has 10 or more
* instances, a percentage. If you set a percentage, the number of instances is rounded if
* necessary. The default value for maxSurge is a fixed value equal to the number of zones in
* which the managed instance group operates. At least one of either maxSurge or maxUnavailable
* must be greater than 0. Learn more about maxSurge.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private FixedOrPercent maxSurge;
/**
* The maximum number of instances that can be unavailable during the update process. An instance
* is considered available if all of the following conditions are satisfied: - The instance's
* status is RUNNING. - If there is a health check on the instance group, the instance's health
* check status must be HEALTHY at least once. If there is no health check on the group, then the
* instance only needs to have a status of RUNNING to be considered available. This value can be
* either a fixed number or, if the group has 10 or more instances, a percentage. If you set a
* percentage, the number of instances is rounded if necessary. The default value for
* maxUnavailable is a fixed value equal to the number of zones in which the managed instance
* group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn
* more about maxUnavailable.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private FixedOrPercent maxUnavailable;
/**
* Minimum number of seconds to wait for after a newly created instance becomes available. This
* value must be from range [0, 3600].
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Integer minReadySec;
/**
* Minimal action to be taken on an instance. Use this option to minimize disruption as much as
* possible or to apply a more disruptive action than is necessary. - To limit disruption as much
* as possible, set the minimal action to REFRESH. If your update requires a more disruptive
* action, Compute Engine performs the necessary action to execute the update. - To apply a more
* disruptive action than is strictly necessary, set the minimal action to RESTART or REPLACE. For
* example, Compute Engine does not need to restart a VM to change its metadata. But if your
* application reads instance metadata only when a VM is restarted, you can set the minimal action
* to RESTART in order to pick up metadata changes.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String minimalAction;
/**
* Most disruptive action that is allowed to be taken on an instance. You can specify either NONE
* to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to
* allow actions that can be applied without instance replacing or REPLACE to allow all possible
* actions. If the Updater determines that the minimal update action needed is more disruptive
* than most disruptive allowed action you specify it will not perform the update at all.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String mostDisruptiveAllowedAction;
/**
* What action should be used to replace instances. See minimal_action.REPLACE
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String replacementMethod;
/**
* The type of update process. You can specify either PROACTIVE so that the instance group manager
* proactively executes actions in order to bring instances to their target versions or
* OPPORTUNISTIC so that no action is proactively executed but the update will be performed as
* part of other actions (for example, resizes or recreateInstances calls).
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String type;
/**
* The instance redistribution policy for regional managed instance groups. Valid values are: -
* PROACTIVE (default): The group attempts to maintain an even distribution of VM instances across
* zones in the region. - NONE: For non-autoscaled groups, proactive redistribution is disabled.
* @return value or {@code null} for none
*/
public java.lang.String getInstanceRedistributionType() {
return instanceRedistributionType;
}
/**
* The instance redistribution policy for regional managed instance groups. Valid values are: -
* PROACTIVE (default): The group attempts to maintain an even distribution of VM instances across
* zones in the region. - NONE: For non-autoscaled groups, proactive redistribution is disabled.
* @param instanceRedistributionType instanceRedistributionType or {@code null} for none
*/
public InstanceGroupManagerUpdatePolicy setInstanceRedistributionType(java.lang.String instanceRedistributionType) {
this.instanceRedistributionType = instanceRedistributionType;
return this;
}
/**
* The maximum number of instances that can be created above the specified targetSize during the
* update process. This value can be either a fixed number or, if the group has 10 or more
* instances, a percentage. If you set a percentage, the number of instances is rounded if
* necessary. The default value for maxSurge is a fixed value equal to the number of zones in
* which the managed instance group operates. At least one of either maxSurge or maxUnavailable
* must be greater than 0. Learn more about maxSurge.
* @return value or {@code null} for none
*/
public FixedOrPercent getMaxSurge() {
return maxSurge;
}
/**
* The maximum number of instances that can be created above the specified targetSize during the
* update process. This value can be either a fixed number or, if the group has 10 or more
* instances, a percentage. If you set a percentage, the number of instances is rounded if
* necessary. The default value for maxSurge is a fixed value equal to the number of zones in
* which the managed instance group operates. At least one of either maxSurge or maxUnavailable
* must be greater than 0. Learn more about maxSurge.
* @param maxSurge maxSurge or {@code null} for none
*/
public InstanceGroupManagerUpdatePolicy setMaxSurge(FixedOrPercent maxSurge) {
this.maxSurge = maxSurge;
return this;
}
/**
* The maximum number of instances that can be unavailable during the update process. An instance
* is considered available if all of the following conditions are satisfied: - The instance's
* status is RUNNING. - If there is a health check on the instance group, the instance's health
* check status must be HEALTHY at least once. If there is no health check on the group, then the
* instance only needs to have a status of RUNNING to be considered available. This value can be
* either a fixed number or, if the group has 10 or more instances, a percentage. If you set a
* percentage, the number of instances is rounded if necessary. The default value for
* maxUnavailable is a fixed value equal to the number of zones in which the managed instance
* group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn
* more about maxUnavailable.
* @return value or {@code null} for none
*/
public FixedOrPercent getMaxUnavailable() {
return maxUnavailable;
}
/**
* The maximum number of instances that can be unavailable during the update process. An instance
* is considered available if all of the following conditions are satisfied: - The instance's
* status is RUNNING. - If there is a health check on the instance group, the instance's health
* check status must be HEALTHY at least once. If there is no health check on the group, then the
* instance only needs to have a status of RUNNING to be considered available. This value can be
* either a fixed number or, if the group has 10 or more instances, a percentage. If you set a
* percentage, the number of instances is rounded if necessary. The default value for
* maxUnavailable is a fixed value equal to the number of zones in which the managed instance
* group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn
* more about maxUnavailable.
* @param maxUnavailable maxUnavailable or {@code null} for none
*/
public InstanceGroupManagerUpdatePolicy setMaxUnavailable(FixedOrPercent maxUnavailable) {
this.maxUnavailable = maxUnavailable;
return this;
}
/**
* Minimum number of seconds to wait for after a newly created instance becomes available. This
* value must be from range [0, 3600].
* @return value or {@code null} for none
*/
public java.lang.Integer getMinReadySec() {
return minReadySec;
}
/**
* Minimum number of seconds to wait for after a newly created instance becomes available. This
* value must be from range [0, 3600].
* @param minReadySec minReadySec or {@code null} for none
*/
public InstanceGroupManagerUpdatePolicy setMinReadySec(java.lang.Integer minReadySec) {
this.minReadySec = minReadySec;
return this;
}
/**
* Minimal action to be taken on an instance. Use this option to minimize disruption as much as
* possible or to apply a more disruptive action than is necessary. - To limit disruption as much
* as possible, set the minimal action to REFRESH. If your update requires a more disruptive
* action, Compute Engine performs the necessary action to execute the update. - To apply a more
* disruptive action than is strictly necessary, set the minimal action to RESTART or REPLACE. For
* example, Compute Engine does not need to restart a VM to change its metadata. But if your
* application reads instance metadata only when a VM is restarted, you can set the minimal action
* to RESTART in order to pick up metadata changes.
* @return value or {@code null} for none
*/
public java.lang.String getMinimalAction() {
return minimalAction;
}
/**
* Minimal action to be taken on an instance. Use this option to minimize disruption as much as
* possible or to apply a more disruptive action than is necessary. - To limit disruption as much
* as possible, set the minimal action to REFRESH. If your update requires a more disruptive
* action, Compute Engine performs the necessary action to execute the update. - To apply a more
* disruptive action than is strictly necessary, set the minimal action to RESTART or REPLACE. For
* example, Compute Engine does not need to restart a VM to change its metadata. But if your
* application reads instance metadata only when a VM is restarted, you can set the minimal action
* to RESTART in order to pick up metadata changes.
* @param minimalAction minimalAction or {@code null} for none
*/
public InstanceGroupManagerUpdatePolicy setMinimalAction(java.lang.String minimalAction) {
this.minimalAction = minimalAction;
return this;
}
/**
* Most disruptive action that is allowed to be taken on an instance. You can specify either NONE
* to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to
* allow actions that can be applied without instance replacing or REPLACE to allow all possible
* actions. If the Updater determines that the minimal update action needed is more disruptive
* than most disruptive allowed action you specify it will not perform the update at all.
* @return value or {@code null} for none
*/
public java.lang.String getMostDisruptiveAllowedAction() {
return mostDisruptiveAllowedAction;
}
/**
* Most disruptive action that is allowed to be taken on an instance. You can specify either NONE
* to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to
* allow actions that can be applied without instance replacing or REPLACE to allow all possible
* actions. If the Updater determines that the minimal update action needed is more disruptive
* than most disruptive allowed action you specify it will not perform the update at all.
* @param mostDisruptiveAllowedAction mostDisruptiveAllowedAction or {@code null} for none
*/
public InstanceGroupManagerUpdatePolicy setMostDisruptiveAllowedAction(java.lang.String mostDisruptiveAllowedAction) {
this.mostDisruptiveAllowedAction = mostDisruptiveAllowedAction;
return this;
}
/**
* What action should be used to replace instances. See minimal_action.REPLACE
* @return value or {@code null} for none
*/
public java.lang.String getReplacementMethod() {
return replacementMethod;
}
/**
* What action should be used to replace instances. See minimal_action.REPLACE
* @param replacementMethod replacementMethod or {@code null} for none
*/
public InstanceGroupManagerUpdatePolicy setReplacementMethod(java.lang.String replacementMethod) {
this.replacementMethod = replacementMethod;
return this;
}
/**
* The type of update process. You can specify either PROACTIVE so that the instance group manager
* proactively executes actions in order to bring instances to their target versions or
* OPPORTUNISTIC so that no action is proactively executed but the update will be performed as
* part of other actions (for example, resizes or recreateInstances calls).
* @return value or {@code null} for none
*/
public java.lang.String getType() {
return type;
}
/**
* The type of update process. You can specify either PROACTIVE so that the instance group manager
* proactively executes actions in order to bring instances to their target versions or
* OPPORTUNISTIC so that no action is proactively executed but the update will be performed as
* part of other actions (for example, resizes or recreateInstances calls).
* @param type type or {@code null} for none
*/
public InstanceGroupManagerUpdatePolicy setType(java.lang.String type) {
this.type = type;
return this;
}
@Override
public InstanceGroupManagerUpdatePolicy set(String fieldName, Object value) {
return (InstanceGroupManagerUpdatePolicy) super.set(fieldName, value);
}
@Override
public InstanceGroupManagerUpdatePolicy clone() {
return (InstanceGroupManagerUpdatePolicy) super.clone();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy