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

com.pulumi.aws.ec2clientvpn.RouteArgs 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.66.3
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.ec2clientvpn;

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


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

    public static final RouteArgs Empty = new RouteArgs();

    /**
     * The ID of the Client VPN endpoint.
     * 
     */
    @Import(name="clientVpnEndpointId", required=true)
    private Output clientVpnEndpointId;

    /**
     * @return The ID of the Client VPN endpoint.
     * 
     */
    public Output clientVpnEndpointId() {
        return this.clientVpnEndpointId;
    }

    /**
     * A brief description of the route.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return A brief description of the route.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * The IPv4 address range, in CIDR notation, of the route destination.
     * 
     */
    @Import(name="destinationCidrBlock", required=true)
    private Output destinationCidrBlock;

    /**
     * @return The IPv4 address range, in CIDR notation, of the route destination.
     * 
     */
    public Output destinationCidrBlock() {
        return this.destinationCidrBlock;
    }

    /**
     * The ID of the Subnet to route the traffic through. It must already be attached to the Client VPN.
     * 
     */
    @Import(name="targetVpcSubnetId", required=true)
    private Output targetVpcSubnetId;

    /**
     * @return The ID of the Subnet to route the traffic through. It must already be attached to the Client VPN.
     * 
     */
    public Output targetVpcSubnetId() {
        return this.targetVpcSubnetId;
    }

    private RouteArgs() {}

    private RouteArgs(RouteArgs $) {
        this.clientVpnEndpointId = $.clientVpnEndpointId;
        this.description = $.description;
        this.destinationCidrBlock = $.destinationCidrBlock;
        this.targetVpcSubnetId = $.targetVpcSubnetId;
    }

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

    public static final class Builder {
        private RouteArgs $;

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

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

        /**
         * @param clientVpnEndpointId The ID of the Client VPN endpoint.
         * 
         * @return builder
         * 
         */
        public Builder clientVpnEndpointId(Output clientVpnEndpointId) {
            $.clientVpnEndpointId = clientVpnEndpointId;
            return this;
        }

        /**
         * @param clientVpnEndpointId The ID of the Client VPN endpoint.
         * 
         * @return builder
         * 
         */
        public Builder clientVpnEndpointId(String clientVpnEndpointId) {
            return clientVpnEndpointId(Output.of(clientVpnEndpointId));
        }

        /**
         * @param description A brief description of the route.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description A brief description of the route.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param destinationCidrBlock The IPv4 address range, in CIDR notation, of the route destination.
         * 
         * @return builder
         * 
         */
        public Builder destinationCidrBlock(Output destinationCidrBlock) {
            $.destinationCidrBlock = destinationCidrBlock;
            return this;
        }

        /**
         * @param destinationCidrBlock The IPv4 address range, in CIDR notation, of the route destination.
         * 
         * @return builder
         * 
         */
        public Builder destinationCidrBlock(String destinationCidrBlock) {
            return destinationCidrBlock(Output.of(destinationCidrBlock));
        }

        /**
         * @param targetVpcSubnetId The ID of the Subnet to route the traffic through. It must already be attached to the Client VPN.
         * 
         * @return builder
         * 
         */
        public Builder targetVpcSubnetId(Output targetVpcSubnetId) {
            $.targetVpcSubnetId = targetVpcSubnetId;
            return this;
        }

        /**
         * @param targetVpcSubnetId The ID of the Subnet to route the traffic through. It must already be attached to the Client VPN.
         * 
         * @return builder
         * 
         */
        public Builder targetVpcSubnetId(String targetVpcSubnetId) {
            return targetVpcSubnetId(Output.of(targetVpcSubnetId));
        }

        public RouteArgs build() {
            if ($.clientVpnEndpointId == null) {
                throw new MissingRequiredPropertyException("RouteArgs", "clientVpnEndpointId");
            }
            if ($.destinationCidrBlock == null) {
                throw new MissingRequiredPropertyException("RouteArgs", "destinationCidrBlock");
            }
            if ($.targetVpcSubnetId == null) {
                throw new MissingRequiredPropertyException("RouteArgs", "targetVpcSubnetId");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy