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.vpc.RouterInterfaceArgs 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.vpc;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class RouterInterfaceArgs extends com.pulumi.resources.ResourceArgs {
public static final RouterInterfaceArgs Empty = new RouterInterfaceArgs();
/**
* Description of the router interface. It can be 2-256 characters long or left blank. It cannot start with http:// and https://.
*
*/
@Import(name="description")
private @Nullable Output description;
/**
* @return Description of the router interface. It can be 2-256 characters long or left blank. It cannot start with http:// and https://.
*
*/
public Optional> description() {
return Optional.ofNullable(this.description);
}
/**
* Used as the Packet Source IP of health check for disaster recovery or ECMP. It is only valid when `router_type` is `VBR`. The IP must be an unused IP in the local VPC. It and `health_check_target_ip` must be specified at the same time.
*
*/
@Import(name="healthCheckSourceIp")
private @Nullable Output healthCheckSourceIp;
/**
* @return Used as the Packet Source IP of health check for disaster recovery or ECMP. It is only valid when `router_type` is `VBR`. The IP must be an unused IP in the local VPC. It and `health_check_target_ip` must be specified at the same time.
*
*/
public Optional> healthCheckSourceIp() {
return Optional.ofNullable(this.healthCheckSourceIp);
}
/**
* Used as the Packet Target IP of health check for disaster recovery or ECMP. It is only valid when `router_type` is `VBR`. The IP must be an unused IP in the local VPC. It and `health_check_source_ip` must be specified at the same time.
*
*/
@Import(name="healthCheckTargetIp")
private @Nullable Output healthCheckTargetIp;
/**
* @return Used as the Packet Target IP of health check for disaster recovery or ECMP. It is only valid when `router_type` is `VBR`. The IP must be an unused IP in the local VPC. It and `health_check_source_ip` must be specified at the same time.
*
*/
public Optional> healthCheckTargetIp() {
return Optional.ofNullable(this.healthCheckTargetIp);
}
/**
* The billing method of the router interface. Valid values are "PrePaid" and "PostPaid". Default to "PostPaid". Router Interface doesn't support "PrePaid" when region and opposite_region are the same.
*
*/
@Import(name="instanceChargeType")
private @Nullable Output instanceChargeType;
/**
* @return The billing method of the router interface. Valid values are "PrePaid" and "PostPaid". Default to "PostPaid". Router Interface doesn't support "PrePaid" when region and opposite_region are the same.
*
*/
public Optional> instanceChargeType() {
return Optional.ofNullable(this.instanceChargeType);
}
/**
* Name of the router interface. Length must be 2-80 characters long. Only Chinese characters, English letters, numbers, period (.), underline (_), or dash (-) are permitted.
* If it is not specified, the default value is interface ID. The name cannot start with http:// and https://.
*
*/
@Import(name="name")
private @Nullable Output name;
/**
* @return Name of the router interface. Length must be 2-80 characters long. Only Chinese characters, English letters, numbers, period (.), underline (_), or dash (-) are permitted.
* If it is not specified, the default value is interface ID. The name cannot start with http:// and https://.
*
*/
public Optional> name() {
return Optional.ofNullable(this.name);
}
/**
* It has been deprecated from version 1.11.0.
*
* @deprecated
* Attribute 'opposite_access_point_id' has been deprecated from version 1.11.0.
*
*/
@Deprecated /* Attribute 'opposite_access_point_id' has been deprecated from version 1.11.0. */
@Import(name="oppositeAccessPointId")
private @Nullable Output oppositeAccessPointId;
/**
* @return It has been deprecated from version 1.11.0.
*
* @deprecated
* Attribute 'opposite_access_point_id' has been deprecated from version 1.11.0.
*
*/
@Deprecated /* Attribute 'opposite_access_point_id' has been deprecated from version 1.11.0. */
public Optional> oppositeAccessPointId() {
return Optional.ofNullable(this.oppositeAccessPointId);
}
/**
* The Region of peer side.
*
*/
@Import(name="oppositeRegion", required=true)
private Output oppositeRegion;
/**
* @return The Region of peer side.
*
*/
public Output oppositeRegion() {
return this.oppositeRegion;
}
/**
* The duration that you will buy the resource, in month. It is valid when `instance_charge_type` is `PrePaid`. Valid values: [1-9, 12, 24, 36]. At present, the provider does not support modify "period" and you can do that via web console.
* > **NOTE:** The attribute `period` is only used to create Subscription instance or modify the PayAsYouGo instance to Subscription. Once effect, it will not be modified that means running `pulumi up` will not effect the resource.
*
*/
@Import(name="period")
private @Nullable Output period;
/**
* @return The duration that you will buy the resource, in month. It is valid when `instance_charge_type` is `PrePaid`. Valid values: [1-9, 12, 24, 36]. At present, the provider does not support modify "period" and you can do that via web console.
* > **NOTE:** The attribute `period` is only used to create Subscription instance or modify the PayAsYouGo instance to Subscription. Once effect, it will not be modified that means running `pulumi up` will not effect the resource.
*
*/
public Optional> period() {
return Optional.ofNullable(this.period);
}
/**
* The role the router interface plays. Optional value: `InitiatingSide`, `AcceptingSide`.
*
*/
@Import(name="role", required=true)
private Output role;
/**
* @return The role the router interface plays. Optional value: `InitiatingSide`, `AcceptingSide`.
*
*/
public Output role() {
return this.role;
}
/**
* The Router ID.
*
*/
@Import(name="routerId", required=true)
private Output routerId;
/**
* @return The Router ID.
*
*/
public Output routerId() {
return this.routerId;
}
/**
* Router Type. Optional value: VRouter, VBR. Accepting side router interface type only be VRouter.
*
*/
@Import(name="routerType", required=true)
private Output routerType;
/**
* @return Router Type. Optional value: VRouter, VBR. Accepting side router interface type only be VRouter.
*
*/
public Output routerType() {
return this.routerType;
}
/**
* Specification of router interfaces. It is valid when `role` is `InitiatingSide`. Accepting side's role is default to set as 'Negative'. For more about the specification, refer to [Router interface specification](https://www.alibabacloud.com/help/doc-detail/36037.htm).
*
*/
@Import(name="specification")
private @Nullable Output specification;
/**
* @return Specification of router interfaces. It is valid when `role` is `InitiatingSide`. Accepting side's role is default to set as 'Negative'. For more about the specification, refer to [Router interface specification](https://www.alibabacloud.com/help/doc-detail/36037.htm).
*
*/
public Optional> specification() {
return Optional.ofNullable(this.specification);
}
private RouterInterfaceArgs() {}
private RouterInterfaceArgs(RouterInterfaceArgs $) {
this.description = $.description;
this.healthCheckSourceIp = $.healthCheckSourceIp;
this.healthCheckTargetIp = $.healthCheckTargetIp;
this.instanceChargeType = $.instanceChargeType;
this.name = $.name;
this.oppositeAccessPointId = $.oppositeAccessPointId;
this.oppositeRegion = $.oppositeRegion;
this.period = $.period;
this.role = $.role;
this.routerId = $.routerId;
this.routerType = $.routerType;
this.specification = $.specification;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(RouterInterfaceArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private RouterInterfaceArgs $;
public Builder() {
$ = new RouterInterfaceArgs();
}
public Builder(RouterInterfaceArgs defaults) {
$ = new RouterInterfaceArgs(Objects.requireNonNull(defaults));
}
/**
* @param description Description of the router interface. It can be 2-256 characters long or left blank. It cannot start with http:// and https://.
*
* @return builder
*
*/
public Builder description(@Nullable Output description) {
$.description = description;
return this;
}
/**
* @param description Description of the router interface. It can be 2-256 characters long or left blank. It cannot start with http:// and https://.
*
* @return builder
*
*/
public Builder description(String description) {
return description(Output.of(description));
}
/**
* @param healthCheckSourceIp Used as the Packet Source IP of health check for disaster recovery or ECMP. It is only valid when `router_type` is `VBR`. The IP must be an unused IP in the local VPC. It and `health_check_target_ip` must be specified at the same time.
*
* @return builder
*
*/
public Builder healthCheckSourceIp(@Nullable Output healthCheckSourceIp) {
$.healthCheckSourceIp = healthCheckSourceIp;
return this;
}
/**
* @param healthCheckSourceIp Used as the Packet Source IP of health check for disaster recovery or ECMP. It is only valid when `router_type` is `VBR`. The IP must be an unused IP in the local VPC. It and `health_check_target_ip` must be specified at the same time.
*
* @return builder
*
*/
public Builder healthCheckSourceIp(String healthCheckSourceIp) {
return healthCheckSourceIp(Output.of(healthCheckSourceIp));
}
/**
* @param healthCheckTargetIp Used as the Packet Target IP of health check for disaster recovery or ECMP. It is only valid when `router_type` is `VBR`. The IP must be an unused IP in the local VPC. It and `health_check_source_ip` must be specified at the same time.
*
* @return builder
*
*/
public Builder healthCheckTargetIp(@Nullable Output healthCheckTargetIp) {
$.healthCheckTargetIp = healthCheckTargetIp;
return this;
}
/**
* @param healthCheckTargetIp Used as the Packet Target IP of health check for disaster recovery or ECMP. It is only valid when `router_type` is `VBR`. The IP must be an unused IP in the local VPC. It and `health_check_source_ip` must be specified at the same time.
*
* @return builder
*
*/
public Builder healthCheckTargetIp(String healthCheckTargetIp) {
return healthCheckTargetIp(Output.of(healthCheckTargetIp));
}
/**
* @param instanceChargeType The billing method of the router interface. Valid values are "PrePaid" and "PostPaid". Default to "PostPaid". Router Interface doesn't support "PrePaid" when region and opposite_region are the same.
*
* @return builder
*
*/
public Builder instanceChargeType(@Nullable Output instanceChargeType) {
$.instanceChargeType = instanceChargeType;
return this;
}
/**
* @param instanceChargeType The billing method of the router interface. Valid values are "PrePaid" and "PostPaid". Default to "PostPaid". Router Interface doesn't support "PrePaid" when region and opposite_region are the same.
*
* @return builder
*
*/
public Builder instanceChargeType(String instanceChargeType) {
return instanceChargeType(Output.of(instanceChargeType));
}
/**
* @param name Name of the router interface. Length must be 2-80 characters long. Only Chinese characters, English letters, numbers, period (.), underline (_), or dash (-) are permitted.
* If it is not specified, the default value is interface ID. The name cannot start with http:// and https://.
*
* @return builder
*
*/
public Builder name(@Nullable Output name) {
$.name = name;
return this;
}
/**
* @param name Name of the router interface. Length must be 2-80 characters long. Only Chinese characters, English letters, numbers, period (.), underline (_), or dash (-) are permitted.
* If it is not specified, the default value is interface ID. The name cannot start with http:// and https://.
*
* @return builder
*
*/
public Builder name(String name) {
return name(Output.of(name));
}
/**
* @param oppositeAccessPointId It has been deprecated from version 1.11.0.
*
* @return builder
*
* @deprecated
* Attribute 'opposite_access_point_id' has been deprecated from version 1.11.0.
*
*/
@Deprecated /* Attribute 'opposite_access_point_id' has been deprecated from version 1.11.0. */
public Builder oppositeAccessPointId(@Nullable Output oppositeAccessPointId) {
$.oppositeAccessPointId = oppositeAccessPointId;
return this;
}
/**
* @param oppositeAccessPointId It has been deprecated from version 1.11.0.
*
* @return builder
*
* @deprecated
* Attribute 'opposite_access_point_id' has been deprecated from version 1.11.0.
*
*/
@Deprecated /* Attribute 'opposite_access_point_id' has been deprecated from version 1.11.0. */
public Builder oppositeAccessPointId(String oppositeAccessPointId) {
return oppositeAccessPointId(Output.of(oppositeAccessPointId));
}
/**
* @param oppositeRegion The Region of peer side.
*
* @return builder
*
*/
public Builder oppositeRegion(Output oppositeRegion) {
$.oppositeRegion = oppositeRegion;
return this;
}
/**
* @param oppositeRegion The Region of peer side.
*
* @return builder
*
*/
public Builder oppositeRegion(String oppositeRegion) {
return oppositeRegion(Output.of(oppositeRegion));
}
/**
* @param period The duration that you will buy the resource, in month. It is valid when `instance_charge_type` is `PrePaid`. Valid values: [1-9, 12, 24, 36]. At present, the provider does not support modify "period" and you can do that via web console.
* > **NOTE:** The attribute `period` is only used to create Subscription instance or modify the PayAsYouGo instance to Subscription. Once effect, it will not be modified that means running `pulumi up` will not effect the resource.
*
* @return builder
*
*/
public Builder period(@Nullable Output period) {
$.period = period;
return this;
}
/**
* @param period The duration that you will buy the resource, in month. It is valid when `instance_charge_type` is `PrePaid`. Valid values: [1-9, 12, 24, 36]. At present, the provider does not support modify "period" and you can do that via web console.
* > **NOTE:** The attribute `period` is only used to create Subscription instance or modify the PayAsYouGo instance to Subscription. Once effect, it will not be modified that means running `pulumi up` will not effect the resource.
*
* @return builder
*
*/
public Builder period(Integer period) {
return period(Output.of(period));
}
/**
* @param role The role the router interface plays. Optional value: `InitiatingSide`, `AcceptingSide`.
*
* @return builder
*
*/
public Builder role(Output role) {
$.role = role;
return this;
}
/**
* @param role The role the router interface plays. Optional value: `InitiatingSide`, `AcceptingSide`.
*
* @return builder
*
*/
public Builder role(String role) {
return role(Output.of(role));
}
/**
* @param routerId The Router ID.
*
* @return builder
*
*/
public Builder routerId(Output routerId) {
$.routerId = routerId;
return this;
}
/**
* @param routerId The Router ID.
*
* @return builder
*
*/
public Builder routerId(String routerId) {
return routerId(Output.of(routerId));
}
/**
* @param routerType Router Type. Optional value: VRouter, VBR. Accepting side router interface type only be VRouter.
*
* @return builder
*
*/
public Builder routerType(Output routerType) {
$.routerType = routerType;
return this;
}
/**
* @param routerType Router Type. Optional value: VRouter, VBR. Accepting side router interface type only be VRouter.
*
* @return builder
*
*/
public Builder routerType(String routerType) {
return routerType(Output.of(routerType));
}
/**
* @param specification Specification of router interfaces. It is valid when `role` is `InitiatingSide`. Accepting side's role is default to set as 'Negative'. For more about the specification, refer to [Router interface specification](https://www.alibabacloud.com/help/doc-detail/36037.htm).
*
* @return builder
*
*/
public Builder specification(@Nullable Output specification) {
$.specification = specification;
return this;
}
/**
* @param specification Specification of router interfaces. It is valid when `role` is `InitiatingSide`. Accepting side's role is default to set as 'Negative'. For more about the specification, refer to [Router interface specification](https://www.alibabacloud.com/help/doc-detail/36037.htm).
*
* @return builder
*
*/
public Builder specification(String specification) {
return specification(Output.of(specification));
}
public RouterInterfaceArgs build() {
if ($.oppositeRegion == null) {
throw new MissingRequiredPropertyException("RouterInterfaceArgs", "oppositeRegion");
}
if ($.role == null) {
throw new MissingRequiredPropertyException("RouterInterfaceArgs", "role");
}
if ($.routerId == null) {
throw new MissingRequiredPropertyException("RouterInterfaceArgs", "routerId");
}
if ($.routerType == null) {
throw new MissingRequiredPropertyException("RouterInterfaceArgs", "routerType");
}
return $;
}
}
}