All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.alicloud.nlb.inputs.ServerGroupState Maven / Gradle / Ivy
Go to download
A Pulumi package for creating and managing AliCloud resources.
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.alicloud.nlb.inputs;
import com.pulumi.alicloud.nlb.inputs.ServerGroupHealthCheckArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class ServerGroupState extends com.pulumi.resources.ResourceArgs {
public static final ServerGroupState Empty = new ServerGroupState();
/**
* The protocol version. Valid values:
*
*/
@Import(name="addressIpVersion")
private @Nullable Output addressIpVersion;
/**
* @return The protocol version. Valid values:
*
*/
public Optional> addressIpVersion() {
return Optional.ofNullable(this.addressIpVersion);
}
/**
* Specifies whether to enable all-port forwarding. Valid values:
*
*/
@Import(name="anyPortEnabled")
private @Nullable Output anyPortEnabled;
/**
* @return Specifies whether to enable all-port forwarding. Valid values:
*
*/
public Optional> anyPortEnabled() {
return Optional.ofNullable(this.anyPortEnabled);
}
/**
* . Field 'connection_drain' has been deprecated from provider version 1.231.0. New field 'connection_drain_enabled' instead.
*
* @deprecated
* Field 'connection_drain' has been deprecated since provider version 1.214.0. New field 'connection_drain_enabled' instead.
*
*/
@Deprecated /* Field 'connection_drain' has been deprecated since provider version 1.214.0. New field 'connection_drain_enabled' instead. */
@Import(name="connectionDrain")
private @Nullable Output connectionDrain;
/**
* @return . Field 'connection_drain' has been deprecated from provider version 1.231.0. New field 'connection_drain_enabled' instead.
*
* @deprecated
* Field 'connection_drain' has been deprecated since provider version 1.214.0. New field 'connection_drain_enabled' instead.
*
*/
@Deprecated /* Field 'connection_drain' has been deprecated since provider version 1.214.0. New field 'connection_drain_enabled' instead. */
public Optional> connectionDrain() {
return Optional.ofNullable(this.connectionDrain);
}
/**
* Specifies whether to enable connection draining. Valid values:
*
*/
@Import(name="connectionDrainEnabled")
private @Nullable Output connectionDrainEnabled;
/**
* @return Specifies whether to enable connection draining. Valid values:
*
*/
public Optional> connectionDrainEnabled() {
return Optional.ofNullable(this.connectionDrainEnabled);
}
/**
* The timeout period of connection draining. Unit: seconds. Valid values: `10` to `900`.
*
*/
@Import(name="connectionDrainTimeout")
private @Nullable Output connectionDrainTimeout;
/**
* @return The timeout period of connection draining. Unit: seconds. Valid values: `10` to `900`.
*
*/
public Optional> connectionDrainTimeout() {
return Optional.ofNullable(this.connectionDrainTimeout);
}
/**
* Health check configuration information. See `health_check` below.
*
*/
@Import(name="healthCheck")
private @Nullable Output healthCheck;
/**
* @return Health check configuration information. See `health_check` below.
*
*/
public Optional> healthCheck() {
return Optional.ofNullable(this.healthCheck);
}
/**
* Specifies whether to enable client IP preservation. Valid values:
*
*/
@Import(name="preserveClientIpEnabled")
private @Nullable Output preserveClientIpEnabled;
/**
* @return Specifies whether to enable client IP preservation. Valid values:
*
*/
public Optional> preserveClientIpEnabled() {
return Optional.ofNullable(this.preserveClientIpEnabled);
}
/**
* The protocol used to forward requests to the backend servers. Valid values:
* - `TCP` (default)
* - `UDP`
* - `TCPSSL`
*
*/
@Import(name="protocol")
private @Nullable Output protocol;
/**
* @return The protocol used to forward requests to the backend servers. Valid values:
* - `TCP` (default)
* - `UDP`
* - `TCPSSL`
*
*/
public Optional> protocol() {
return Optional.ofNullable(this.protocol);
}
/**
* The ID of the new resource group.
*
* You can log on to the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups) to view resource group IDs.
*
*/
@Import(name="resourceGroupId")
private @Nullable Output resourceGroupId;
/**
* @return The ID of the new resource group.
*
* You can log on to the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups) to view resource group IDs.
*
*/
public Optional> resourceGroupId() {
return Optional.ofNullable(this.resourceGroupId);
}
/**
* The scheduling algorithm. Valid values:
* - **Wrr:** The weighted round-robin algorithm is used. Backend servers with higher weights receive more requests than backend servers with lower weights. This is the default value.
* - **rr:** The round-robin algorithm is used. Requests are forwarded to backend servers in sequence.
* - **sch:** Source IP hashing is used. Requests from the same source IP address are forwarded to the same backend server.
* - **tch:** Four-element hashing is used. It specifies consistent hashing that is based on four factors: source IP address, destination IP address, source port, and destination port. Requests that contain the same information based on the four factors are forwarded to the same backend server.
*
*/
@Import(name="scheduler")
private @Nullable Output scheduler;
/**
* @return The scheduling algorithm. Valid values:
* - **Wrr:** The weighted round-robin algorithm is used. Backend servers with higher weights receive more requests than backend servers with lower weights. This is the default value.
* - **rr:** The round-robin algorithm is used. Requests are forwarded to backend servers in sequence.
* - **sch:** Source IP hashing is used. Requests from the same source IP address are forwarded to the same backend server.
* - **tch:** Four-element hashing is used. It specifies consistent hashing that is based on four factors: source IP address, destination IP address, source port, and destination port. Requests that contain the same information based on the four factors are forwarded to the same backend server.
*
*/
public Optional> scheduler() {
return Optional.ofNullable(this.scheduler);
}
/**
* The new name of the server group.
*
* The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\_), and hyphens (-). The name must start with a letter.
*
*/
@Import(name="serverGroupName")
private @Nullable Output serverGroupName;
/**
* @return The new name of the server group.
*
* The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\_), and hyphens (-). The name must start with a letter.
*
*/
public Optional> serverGroupName() {
return Optional.ofNullable(this.serverGroupName);
}
/**
* The type of server group. Valid values:
* - `Instance`: allows you to add servers of the `Ecs`, `Eni`, or `Eci` type. This is the default value.
* - `Ip`: allows you to add servers by specifying IP addresses.
*
*/
@Import(name="serverGroupType")
private @Nullable Output serverGroupType;
/**
* @return The type of server group. Valid values:
* - `Instance`: allows you to add servers of the `Ecs`, `Eni`, or `Eci` type. This is the default value.
* - `Ip`: allows you to add servers by specifying IP addresses.
*
*/
public Optional> serverGroupType() {
return Optional.ofNullable(this.serverGroupType);
}
/**
* Server group status. Value:
*
*/
@Import(name="status")
private @Nullable Output status;
/**
* @return Server group status. Value:
*
*/
public Optional> status() {
return Optional.ofNullable(this.status);
}
/**
* Label.
*
*/
@Import(name="tags")
private @Nullable Output> tags;
/**
* @return Label.
*
*/
public Optional>> tags() {
return Optional.ofNullable(this.tags);
}
/**
* The ID of the virtual private cloud (VPC) to which the server group belongs.
*
* > **NOTE:** If `ServerGroupType` is set to `Instance`, only servers in the specified VPC can be added to the server group.
*
* The following arguments will be discarded. Please use new fields as soon as possible:
*
*/
@Import(name="vpcId")
private @Nullable Output vpcId;
/**
* @return The ID of the virtual private cloud (VPC) to which the server group belongs.
*
* > **NOTE:** If `ServerGroupType` is set to `Instance`, only servers in the specified VPC can be added to the server group.
*
* The following arguments will be discarded. Please use new fields as soon as possible:
*
*/
public Optional> vpcId() {
return Optional.ofNullable(this.vpcId);
}
private ServerGroupState() {}
private ServerGroupState(ServerGroupState $) {
this.addressIpVersion = $.addressIpVersion;
this.anyPortEnabled = $.anyPortEnabled;
this.connectionDrain = $.connectionDrain;
this.connectionDrainEnabled = $.connectionDrainEnabled;
this.connectionDrainTimeout = $.connectionDrainTimeout;
this.healthCheck = $.healthCheck;
this.preserveClientIpEnabled = $.preserveClientIpEnabled;
this.protocol = $.protocol;
this.resourceGroupId = $.resourceGroupId;
this.scheduler = $.scheduler;
this.serverGroupName = $.serverGroupName;
this.serverGroupType = $.serverGroupType;
this.status = $.status;
this.tags = $.tags;
this.vpcId = $.vpcId;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(ServerGroupState defaults) {
return new Builder(defaults);
}
public static final class Builder {
private ServerGroupState $;
public Builder() {
$ = new ServerGroupState();
}
public Builder(ServerGroupState defaults) {
$ = new ServerGroupState(Objects.requireNonNull(defaults));
}
/**
* @param addressIpVersion The protocol version. Valid values:
*
* @return builder
*
*/
public Builder addressIpVersion(@Nullable Output addressIpVersion) {
$.addressIpVersion = addressIpVersion;
return this;
}
/**
* @param addressIpVersion The protocol version. Valid values:
*
* @return builder
*
*/
public Builder addressIpVersion(String addressIpVersion) {
return addressIpVersion(Output.of(addressIpVersion));
}
/**
* @param anyPortEnabled Specifies whether to enable all-port forwarding. Valid values:
*
* @return builder
*
*/
public Builder anyPortEnabled(@Nullable Output anyPortEnabled) {
$.anyPortEnabled = anyPortEnabled;
return this;
}
/**
* @param anyPortEnabled Specifies whether to enable all-port forwarding. Valid values:
*
* @return builder
*
*/
public Builder anyPortEnabled(Boolean anyPortEnabled) {
return anyPortEnabled(Output.of(anyPortEnabled));
}
/**
* @param connectionDrain . Field 'connection_drain' has been deprecated from provider version 1.231.0. New field 'connection_drain_enabled' instead.
*
* @return builder
*
* @deprecated
* Field 'connection_drain' has been deprecated since provider version 1.214.0. New field 'connection_drain_enabled' instead.
*
*/
@Deprecated /* Field 'connection_drain' has been deprecated since provider version 1.214.0. New field 'connection_drain_enabled' instead. */
public Builder connectionDrain(@Nullable Output connectionDrain) {
$.connectionDrain = connectionDrain;
return this;
}
/**
* @param connectionDrain . Field 'connection_drain' has been deprecated from provider version 1.231.0. New field 'connection_drain_enabled' instead.
*
* @return builder
*
* @deprecated
* Field 'connection_drain' has been deprecated since provider version 1.214.0. New field 'connection_drain_enabled' instead.
*
*/
@Deprecated /* Field 'connection_drain' has been deprecated since provider version 1.214.0. New field 'connection_drain_enabled' instead. */
public Builder connectionDrain(Boolean connectionDrain) {
return connectionDrain(Output.of(connectionDrain));
}
/**
* @param connectionDrainEnabled Specifies whether to enable connection draining. Valid values:
*
* @return builder
*
*/
public Builder connectionDrainEnabled(@Nullable Output connectionDrainEnabled) {
$.connectionDrainEnabled = connectionDrainEnabled;
return this;
}
/**
* @param connectionDrainEnabled Specifies whether to enable connection draining. Valid values:
*
* @return builder
*
*/
public Builder connectionDrainEnabled(Boolean connectionDrainEnabled) {
return connectionDrainEnabled(Output.of(connectionDrainEnabled));
}
/**
* @param connectionDrainTimeout The timeout period of connection draining. Unit: seconds. Valid values: `10` to `900`.
*
* @return builder
*
*/
public Builder connectionDrainTimeout(@Nullable Output connectionDrainTimeout) {
$.connectionDrainTimeout = connectionDrainTimeout;
return this;
}
/**
* @param connectionDrainTimeout The timeout period of connection draining. Unit: seconds. Valid values: `10` to `900`.
*
* @return builder
*
*/
public Builder connectionDrainTimeout(Integer connectionDrainTimeout) {
return connectionDrainTimeout(Output.of(connectionDrainTimeout));
}
/**
* @param healthCheck Health check configuration information. See `health_check` below.
*
* @return builder
*
*/
public Builder healthCheck(@Nullable Output healthCheck) {
$.healthCheck = healthCheck;
return this;
}
/**
* @param healthCheck Health check configuration information. See `health_check` below.
*
* @return builder
*
*/
public Builder healthCheck(ServerGroupHealthCheckArgs healthCheck) {
return healthCheck(Output.of(healthCheck));
}
/**
* @param preserveClientIpEnabled Specifies whether to enable client IP preservation. Valid values:
*
* @return builder
*
*/
public Builder preserveClientIpEnabled(@Nullable Output preserveClientIpEnabled) {
$.preserveClientIpEnabled = preserveClientIpEnabled;
return this;
}
/**
* @param preserveClientIpEnabled Specifies whether to enable client IP preservation. Valid values:
*
* @return builder
*
*/
public Builder preserveClientIpEnabled(Boolean preserveClientIpEnabled) {
return preserveClientIpEnabled(Output.of(preserveClientIpEnabled));
}
/**
* @param protocol The protocol used to forward requests to the backend servers. Valid values:
* - `TCP` (default)
* - `UDP`
* - `TCPSSL`
*
* @return builder
*
*/
public Builder protocol(@Nullable Output protocol) {
$.protocol = protocol;
return this;
}
/**
* @param protocol The protocol used to forward requests to the backend servers. Valid values:
* - `TCP` (default)
* - `UDP`
* - `TCPSSL`
*
* @return builder
*
*/
public Builder protocol(String protocol) {
return protocol(Output.of(protocol));
}
/**
* @param resourceGroupId The ID of the new resource group.
*
* You can log on to the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups) to view resource group IDs.
*
* @return builder
*
*/
public Builder resourceGroupId(@Nullable Output resourceGroupId) {
$.resourceGroupId = resourceGroupId;
return this;
}
/**
* @param resourceGroupId The ID of the new resource group.
*
* You can log on to the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups) to view resource group IDs.
*
* @return builder
*
*/
public Builder resourceGroupId(String resourceGroupId) {
return resourceGroupId(Output.of(resourceGroupId));
}
/**
* @param scheduler The scheduling algorithm. Valid values:
* - **Wrr:** The weighted round-robin algorithm is used. Backend servers with higher weights receive more requests than backend servers with lower weights. This is the default value.
* - **rr:** The round-robin algorithm is used. Requests are forwarded to backend servers in sequence.
* - **sch:** Source IP hashing is used. Requests from the same source IP address are forwarded to the same backend server.
* - **tch:** Four-element hashing is used. It specifies consistent hashing that is based on four factors: source IP address, destination IP address, source port, and destination port. Requests that contain the same information based on the four factors are forwarded to the same backend server.
*
* @return builder
*
*/
public Builder scheduler(@Nullable Output scheduler) {
$.scheduler = scheduler;
return this;
}
/**
* @param scheduler The scheduling algorithm. Valid values:
* - **Wrr:** The weighted round-robin algorithm is used. Backend servers with higher weights receive more requests than backend servers with lower weights. This is the default value.
* - **rr:** The round-robin algorithm is used. Requests are forwarded to backend servers in sequence.
* - **sch:** Source IP hashing is used. Requests from the same source IP address are forwarded to the same backend server.
* - **tch:** Four-element hashing is used. It specifies consistent hashing that is based on four factors: source IP address, destination IP address, source port, and destination port. Requests that contain the same information based on the four factors are forwarded to the same backend server.
*
* @return builder
*
*/
public Builder scheduler(String scheduler) {
return scheduler(Output.of(scheduler));
}
/**
* @param serverGroupName The new name of the server group.
*
* The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\_), and hyphens (-). The name must start with a letter.
*
* @return builder
*
*/
public Builder serverGroupName(@Nullable Output serverGroupName) {
$.serverGroupName = serverGroupName;
return this;
}
/**
* @param serverGroupName The new name of the server group.
*
* The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\_), and hyphens (-). The name must start with a letter.
*
* @return builder
*
*/
public Builder serverGroupName(String serverGroupName) {
return serverGroupName(Output.of(serverGroupName));
}
/**
* @param serverGroupType The type of server group. Valid values:
* - `Instance`: allows you to add servers of the `Ecs`, `Eni`, or `Eci` type. This is the default value.
* - `Ip`: allows you to add servers by specifying IP addresses.
*
* @return builder
*
*/
public Builder serverGroupType(@Nullable Output serverGroupType) {
$.serverGroupType = serverGroupType;
return this;
}
/**
* @param serverGroupType The type of server group. Valid values:
* - `Instance`: allows you to add servers of the `Ecs`, `Eni`, or `Eci` type. This is the default value.
* - `Ip`: allows you to add servers by specifying IP addresses.
*
* @return builder
*
*/
public Builder serverGroupType(String serverGroupType) {
return serverGroupType(Output.of(serverGroupType));
}
/**
* @param status Server group status. Value:
*
* @return builder
*
*/
public Builder status(@Nullable Output status) {
$.status = status;
return this;
}
/**
* @param status Server group status. Value:
*
* @return builder
*
*/
public Builder status(String status) {
return status(Output.of(status));
}
/**
* @param tags Label.
*
* @return builder
*
*/
public Builder tags(@Nullable Output> tags) {
$.tags = tags;
return this;
}
/**
* @param tags Label.
*
* @return builder
*
*/
public Builder tags(Map tags) {
return tags(Output.of(tags));
}
/**
* @param vpcId The ID of the virtual private cloud (VPC) to which the server group belongs.
*
* > **NOTE:** If `ServerGroupType` is set to `Instance`, only servers in the specified VPC can be added to the server group.
*
* The following arguments will be discarded. Please use new fields as soon as possible:
*
* @return builder
*
*/
public Builder vpcId(@Nullable Output vpcId) {
$.vpcId = vpcId;
return this;
}
/**
* @param vpcId The ID of the virtual private cloud (VPC) to which the server group belongs.
*
* > **NOTE:** If `ServerGroupType` is set to `Instance`, only servers in the specified VPC can be added to the server group.
*
* The following arguments will be discarded. Please use new fields as soon as possible:
*
* @return builder
*
*/
public Builder vpcId(String vpcId) {
return vpcId(Output.of(vpcId));
}
public ServerGroupState build() {
return $;
}
}
}