All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.aws.ec2transitgateway.VpcAttachmentArgs Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

There is a newer version: 6.60.0-alpha.1731982519
Show newest version
// *** 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.aws.ec2transitgateway;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class VpcAttachmentArgs extends com.pulumi.resources.ResourceArgs {

    public static final VpcAttachmentArgs Empty = new VpcAttachmentArgs();

    /**
     * Whether Appliance Mode support is enabled. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. Valid values: `disable`, `enable`. Default value: `disable`.
     * 
     */
    @Import(name="applianceModeSupport")
    private @Nullable Output applianceModeSupport;

    /**
     * @return Whether Appliance Mode support is enabled. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. Valid values: `disable`, `enable`. Default value: `disable`.
     * 
     */
    public Optional> applianceModeSupport() {
        return Optional.ofNullable(this.applianceModeSupport);
    }

    /**
     * Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
     * 
     */
    @Import(name="dnsSupport")
    private @Nullable Output dnsSupport;

    /**
     * @return Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
     * 
     */
    public Optional> dnsSupport() {
        return Optional.ofNullable(this.dnsSupport);
    }

    /**
     * Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`.
     * 
     */
    @Import(name="ipv6Support")
    private @Nullable Output ipv6Support;

    /**
     * @return Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`.
     * 
     */
    public Optional> ipv6Support() {
        return Optional.ofNullable(this.ipv6Support);
    }

    /**
     * Identifiers of EC2 Subnets.
     * 
     */
    @Import(name="subnetIds", required=true)
    private Output> subnetIds;

    /**
     * @return Identifiers of EC2 Subnets.
     * 
     */
    public Output> subnetIds() {
        return this.subnetIds;
    }

    /**
     * Key-value tags for the EC2 Transit Gateway VPC Attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Key-value tags for the EC2 Transit Gateway VPC Attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * Boolean whether the VPC Attachment should be associated with the EC2 Transit Gateway association default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
     * 
     */
    @Import(name="transitGatewayDefaultRouteTableAssociation")
    private @Nullable Output transitGatewayDefaultRouteTableAssociation;

    /**
     * @return Boolean whether the VPC Attachment should be associated with the EC2 Transit Gateway association default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
     * 
     */
    public Optional> transitGatewayDefaultRouteTableAssociation() {
        return Optional.ofNullable(this.transitGatewayDefaultRouteTableAssociation);
    }

    /**
     * Boolean whether the VPC Attachment should propagate routes with the EC2 Transit Gateway propagation default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
     * 
     */
    @Import(name="transitGatewayDefaultRouteTablePropagation")
    private @Nullable Output transitGatewayDefaultRouteTablePropagation;

    /**
     * @return Boolean whether the VPC Attachment should propagate routes with the EC2 Transit Gateway propagation default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
     * 
     */
    public Optional> transitGatewayDefaultRouteTablePropagation() {
        return Optional.ofNullable(this.transitGatewayDefaultRouteTablePropagation);
    }

    /**
     * Identifier of EC2 Transit Gateway.
     * 
     */
    @Import(name="transitGatewayId", required=true)
    private Output transitGatewayId;

    /**
     * @return Identifier of EC2 Transit Gateway.
     * 
     */
    public Output transitGatewayId() {
        return this.transitGatewayId;
    }

    /**
     * Identifier of EC2 VPC.
     * 
     */
    @Import(name="vpcId", required=true)
    private Output vpcId;

    /**
     * @return Identifier of EC2 VPC.
     * 
     */
    public Output vpcId() {
        return this.vpcId;
    }

    private VpcAttachmentArgs() {}

    private VpcAttachmentArgs(VpcAttachmentArgs $) {
        this.applianceModeSupport = $.applianceModeSupport;
        this.dnsSupport = $.dnsSupport;
        this.ipv6Support = $.ipv6Support;
        this.subnetIds = $.subnetIds;
        this.tags = $.tags;
        this.transitGatewayDefaultRouteTableAssociation = $.transitGatewayDefaultRouteTableAssociation;
        this.transitGatewayDefaultRouteTablePropagation = $.transitGatewayDefaultRouteTablePropagation;
        this.transitGatewayId = $.transitGatewayId;
        this.vpcId = $.vpcId;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(VpcAttachmentArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private VpcAttachmentArgs $;

        public Builder() {
            $ = new VpcAttachmentArgs();
        }

        public Builder(VpcAttachmentArgs defaults) {
            $ = new VpcAttachmentArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param applianceModeSupport Whether Appliance Mode support is enabled. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. Valid values: `disable`, `enable`. Default value: `disable`.
         * 
         * @return builder
         * 
         */
        public Builder applianceModeSupport(@Nullable Output applianceModeSupport) {
            $.applianceModeSupport = applianceModeSupport;
            return this;
        }

        /**
         * @param applianceModeSupport Whether Appliance Mode support is enabled. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. Valid values: `disable`, `enable`. Default value: `disable`.
         * 
         * @return builder
         * 
         */
        public Builder applianceModeSupport(String applianceModeSupport) {
            return applianceModeSupport(Output.of(applianceModeSupport));
        }

        /**
         * @param dnsSupport Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
         * 
         * @return builder
         * 
         */
        public Builder dnsSupport(@Nullable Output dnsSupport) {
            $.dnsSupport = dnsSupport;
            return this;
        }

        /**
         * @param dnsSupport Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
         * 
         * @return builder
         * 
         */
        public Builder dnsSupport(String dnsSupport) {
            return dnsSupport(Output.of(dnsSupport));
        }

        /**
         * @param ipv6Support Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`.
         * 
         * @return builder
         * 
         */
        public Builder ipv6Support(@Nullable Output ipv6Support) {
            $.ipv6Support = ipv6Support;
            return this;
        }

        /**
         * @param ipv6Support Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`.
         * 
         * @return builder
         * 
         */
        public Builder ipv6Support(String ipv6Support) {
            return ipv6Support(Output.of(ipv6Support));
        }

        /**
         * @param subnetIds Identifiers of EC2 Subnets.
         * 
         * @return builder
         * 
         */
        public Builder subnetIds(Output> subnetIds) {
            $.subnetIds = subnetIds;
            return this;
        }

        /**
         * @param subnetIds Identifiers of EC2 Subnets.
         * 
         * @return builder
         * 
         */
        public Builder subnetIds(List subnetIds) {
            return subnetIds(Output.of(subnetIds));
        }

        /**
         * @param subnetIds Identifiers of EC2 Subnets.
         * 
         * @return builder
         * 
         */
        public Builder subnetIds(String... subnetIds) {
            return subnetIds(List.of(subnetIds));
        }

        /**
         * @param tags Key-value tags for the EC2 Transit Gateway VPC Attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Key-value tags for the EC2 Transit Gateway VPC Attachment. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param transitGatewayDefaultRouteTableAssociation Boolean whether the VPC Attachment should be associated with the EC2 Transit Gateway association default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
         * 
         * @return builder
         * 
         */
        public Builder transitGatewayDefaultRouteTableAssociation(@Nullable Output transitGatewayDefaultRouteTableAssociation) {
            $.transitGatewayDefaultRouteTableAssociation = transitGatewayDefaultRouteTableAssociation;
            return this;
        }

        /**
         * @param transitGatewayDefaultRouteTableAssociation Boolean whether the VPC Attachment should be associated with the EC2 Transit Gateway association default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
         * 
         * @return builder
         * 
         */
        public Builder transitGatewayDefaultRouteTableAssociation(Boolean transitGatewayDefaultRouteTableAssociation) {
            return transitGatewayDefaultRouteTableAssociation(Output.of(transitGatewayDefaultRouteTableAssociation));
        }

        /**
         * @param transitGatewayDefaultRouteTablePropagation Boolean whether the VPC Attachment should propagate routes with the EC2 Transit Gateway propagation default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
         * 
         * @return builder
         * 
         */
        public Builder transitGatewayDefaultRouteTablePropagation(@Nullable Output transitGatewayDefaultRouteTablePropagation) {
            $.transitGatewayDefaultRouteTablePropagation = transitGatewayDefaultRouteTablePropagation;
            return this;
        }

        /**
         * @param transitGatewayDefaultRouteTablePropagation Boolean whether the VPC Attachment should propagate routes with the EC2 Transit Gateway propagation default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
         * 
         * @return builder
         * 
         */
        public Builder transitGatewayDefaultRouteTablePropagation(Boolean transitGatewayDefaultRouteTablePropagation) {
            return transitGatewayDefaultRouteTablePropagation(Output.of(transitGatewayDefaultRouteTablePropagation));
        }

        /**
         * @param transitGatewayId Identifier of EC2 Transit Gateway.
         * 
         * @return builder
         * 
         */
        public Builder transitGatewayId(Output transitGatewayId) {
            $.transitGatewayId = transitGatewayId;
            return this;
        }

        /**
         * @param transitGatewayId Identifier of EC2 Transit Gateway.
         * 
         * @return builder
         * 
         */
        public Builder transitGatewayId(String transitGatewayId) {
            return transitGatewayId(Output.of(transitGatewayId));
        }

        /**
         * @param vpcId Identifier of EC2 VPC.
         * 
         * @return builder
         * 
         */
        public Builder vpcId(Output vpcId) {
            $.vpcId = vpcId;
            return this;
        }

        /**
         * @param vpcId Identifier of EC2 VPC.
         * 
         * @return builder
         * 
         */
        public Builder vpcId(String vpcId) {
            return vpcId(Output.of(vpcId));
        }

        public VpcAttachmentArgs build() {
            if ($.subnetIds == null) {
                throw new MissingRequiredPropertyException("VpcAttachmentArgs", "subnetIds");
            }
            if ($.transitGatewayId == null) {
                throw new MissingRequiredPropertyException("VpcAttachmentArgs", "transitGatewayId");
            }
            if ($.vpcId == null) {
                throw new MissingRequiredPropertyException("VpcAttachmentArgs", "vpcId");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy