// *** 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.ec2.inputs;

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


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

    public static final NetworkInsightsAnalysisReturnPathComponentTransitGatewayRouteTableRouteArgs Empty = new NetworkInsightsAnalysisReturnPathComponentTransitGatewayRouteTableRouteArgs();

    @Import(name="attachmentId")
    private @Nullable Output<String> attachmentId;

    public Optional<Output<String>> attachmentId() {
        return Optional.ofNullable(this.attachmentId);
    }

    @Import(name="destinationCidr")
    private @Nullable Output<String> destinationCidr;

    public Optional<Output<String>> destinationCidr() {
        return Optional.ofNullable(this.destinationCidr);
    }

    @Import(name="prefixListId")
    private @Nullable Output<String> prefixListId;

    public Optional<Output<String>> prefixListId() {
        return Optional.ofNullable(this.prefixListId);
    }

    @Import(name="resourceId")
    private @Nullable Output<String> resourceId;

    public Optional<Output<String>> resourceId() {
        return Optional.ofNullable(this.resourceId);
    }

    @Import(name="resourceType")
    private @Nullable Output<String> resourceType;

    public Optional<Output<String>> resourceType() {
        return Optional.ofNullable(this.resourceType);
    }

    @Import(name="routeOrigin")
    private @Nullable Output<String> routeOrigin;

    public Optional<Output<String>> routeOrigin() {
        return Optional.ofNullable(this.routeOrigin);
    }

    @Import(name="state")
    private @Nullable Output<String> state;

    public Optional<Output<String>> state() {
        return Optional.ofNullable(this.state);
    }

    private NetworkInsightsAnalysisReturnPathComponentTransitGatewayRouteTableRouteArgs() {}

    private NetworkInsightsAnalysisReturnPathComponentTransitGatewayRouteTableRouteArgs(NetworkInsightsAnalysisReturnPathComponentTransitGatewayRouteTableRouteArgs $) {
        this.attachmentId = $.attachmentId;
        this.destinationCidr = $.destinationCidr;
        this.prefixListId = $.prefixListId;
        this.resourceId = $.resourceId;
        this.resourceType = $.resourceType;
        this.routeOrigin = $.routeOrigin;
        this.state = $.state;
    }

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

    public static final class Builder {
        private NetworkInsightsAnalysisReturnPathComponentTransitGatewayRouteTableRouteArgs $;

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

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

        public Builder attachmentId(@Nullable Output<String> attachmentId) {
            $.attachmentId = attachmentId;
            return this;
        }

        public Builder attachmentId(String attachmentId) {
            return attachmentId(Output.of(attachmentId));
        }

        public Builder destinationCidr(@Nullable Output<String> destinationCidr) {
            $.destinationCidr = destinationCidr;
            return this;
        }

        public Builder destinationCidr(String destinationCidr) {
            return destinationCidr(Output.of(destinationCidr));
        }

        public Builder prefixListId(@Nullable Output<String> prefixListId) {
            $.prefixListId = prefixListId;
            return this;
        }

        public Builder prefixListId(String prefixListId) {
            return prefixListId(Output.of(prefixListId));
        }

        public Builder resourceId(@Nullable Output<String> resourceId) {
            $.resourceId = resourceId;
            return this;
        }

        public Builder resourceId(String resourceId) {
            return resourceId(Output.of(resourceId));
        }

        public Builder resourceType(@Nullable Output<String> resourceType) {
            $.resourceType = resourceType;
            return this;
        }

        public Builder resourceType(String resourceType) {
            return resourceType(Output.of(resourceType));
        }

        public Builder routeOrigin(@Nullable Output<String> routeOrigin) {
            $.routeOrigin = routeOrigin;
            return this;
        }

        public Builder routeOrigin(String routeOrigin) {
            return routeOrigin(Output.of(routeOrigin));
        }

        public Builder state(@Nullable Output<String> state) {
            $.state = state;
            return this;
        }

        public Builder state(String state) {
            return state(Output.of(state));
        }

        public NetworkInsightsAnalysisReturnPathComponentTransitGatewayRouteTableRouteArgs build() {
            return $;
        }
    }

}
