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

com.pulumi.azurenative.managednetworkfabric.inputs.BgpConfigurationArgs Maven / Gradle / Ivy

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

import com.pulumi.azurenative.managednetworkfabric.enums.AllowASOverride;
import com.pulumi.azurenative.managednetworkfabric.enums.BooleanEnumProperty;
import com.pulumi.azurenative.managednetworkfabric.inputs.NeighborAddressArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * BGP configuration properties
 * 
 */
public final class BgpConfigurationArgs extends com.pulumi.resources.ResourceArgs {

    public static final BgpConfigurationArgs Empty = new BgpConfigurationArgs();

    /**
     * Allows for routes to be received and processed even if the router detects its own ASN in the AS-Path. 0 is disable, Possible values are 1-10, default is 2.
     * 
     */
    @Import(name="allowAS")
    private @Nullable Output allowAS;

    /**
     * @return Allows for routes to be received and processed even if the router detects its own ASN in the AS-Path. 0 is disable, Possible values are 1-10, default is 2.
     * 
     */
    public Optional> allowAS() {
        return Optional.ofNullable(this.allowAS);
    }

    /**
     * Enable Or Disable state.
     * 
     */
    @Import(name="allowASOverride")
    private @Nullable Output> allowASOverride;

    /**
     * @return Enable Or Disable state.
     * 
     */
    public Optional>> allowASOverride() {
        return Optional.ofNullable(this.allowASOverride);
    }

    /**
     * Switch configuration description.
     * 
     */
    @Import(name="annotation")
    private @Nullable Output annotation;

    /**
     * @return Switch configuration description.
     * 
     */
    public Optional> annotation() {
        return Optional.ofNullable(this.annotation);
    }

    /**
     * Originate a defaultRoute. Ex: "True" | "False".
     * 
     */
    @Import(name="defaultRouteOriginate")
    private @Nullable Output> defaultRouteOriginate;

    /**
     * @return Originate a defaultRoute. Ex: "True" | "False".
     * 
     */
    public Optional>> defaultRouteOriginate() {
        return Optional.ofNullable(this.defaultRouteOriginate);
    }

    /**
     * BGP Ipv4 ListenRange.
     * 
     */
    @Import(name="ipv4ListenRangePrefixes")
    private @Nullable Output> ipv4ListenRangePrefixes;

    /**
     * @return BGP Ipv4 ListenRange.
     * 
     */
    public Optional>> ipv4ListenRangePrefixes() {
        return Optional.ofNullable(this.ipv4ListenRangePrefixes);
    }

    /**
     * List with stringified ipv4NeighborAddresses.
     * 
     */
    @Import(name="ipv4NeighborAddress")
    private @Nullable Output> ipv4NeighborAddress;

    /**
     * @return List with stringified ipv4NeighborAddresses.
     * 
     */
    public Optional>> ipv4NeighborAddress() {
        return Optional.ofNullable(this.ipv4NeighborAddress);
    }

    /**
     * BGP Ipv6 ListenRange.
     * 
     */
    @Import(name="ipv6ListenRangePrefixes")
    private @Nullable Output> ipv6ListenRangePrefixes;

    /**
     * @return BGP Ipv6 ListenRange.
     * 
     */
    public Optional>> ipv6ListenRangePrefixes() {
        return Optional.ofNullable(this.ipv6ListenRangePrefixes);
    }

    /**
     * List with stringified IPv6 Neighbor Address.
     * 
     */
    @Import(name="ipv6NeighborAddress")
    private @Nullable Output> ipv6NeighborAddress;

    /**
     * @return List with stringified IPv6 Neighbor Address.
     * 
     */
    public Optional>> ipv6NeighborAddress() {
        return Optional.ofNullable(this.ipv6NeighborAddress);
    }

    /**
     * Peer ASN. Example: 65047.
     * 
     */
    @Import(name="peerASN", required=true)
    private Output peerASN;

    /**
     * @return Peer ASN. Example: 65047.
     * 
     */
    public Output peerASN() {
        return this.peerASN;
    }

    private BgpConfigurationArgs() {}

    private BgpConfigurationArgs(BgpConfigurationArgs $) {
        this.allowAS = $.allowAS;
        this.allowASOverride = $.allowASOverride;
        this.annotation = $.annotation;
        this.defaultRouteOriginate = $.defaultRouteOriginate;
        this.ipv4ListenRangePrefixes = $.ipv4ListenRangePrefixes;
        this.ipv4NeighborAddress = $.ipv4NeighborAddress;
        this.ipv6ListenRangePrefixes = $.ipv6ListenRangePrefixes;
        this.ipv6NeighborAddress = $.ipv6NeighborAddress;
        this.peerASN = $.peerASN;
    }

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

    public static final class Builder {
        private BgpConfigurationArgs $;

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

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

        /**
         * @param allowAS Allows for routes to be received and processed even if the router detects its own ASN in the AS-Path. 0 is disable, Possible values are 1-10, default is 2.
         * 
         * @return builder
         * 
         */
        public Builder allowAS(@Nullable Output allowAS) {
            $.allowAS = allowAS;
            return this;
        }

        /**
         * @param allowAS Allows for routes to be received and processed even if the router detects its own ASN in the AS-Path. 0 is disable, Possible values are 1-10, default is 2.
         * 
         * @return builder
         * 
         */
        public Builder allowAS(Integer allowAS) {
            return allowAS(Output.of(allowAS));
        }

        /**
         * @param allowASOverride Enable Or Disable state.
         * 
         * @return builder
         * 
         */
        public Builder allowASOverride(@Nullable Output> allowASOverride) {
            $.allowASOverride = allowASOverride;
            return this;
        }

        /**
         * @param allowASOverride Enable Or Disable state.
         * 
         * @return builder
         * 
         */
        public Builder allowASOverride(Either allowASOverride) {
            return allowASOverride(Output.of(allowASOverride));
        }

        /**
         * @param allowASOverride Enable Or Disable state.
         * 
         * @return builder
         * 
         */
        public Builder allowASOverride(String allowASOverride) {
            return allowASOverride(Either.ofLeft(allowASOverride));
        }

        /**
         * @param allowASOverride Enable Or Disable state.
         * 
         * @return builder
         * 
         */
        public Builder allowASOverride(AllowASOverride allowASOverride) {
            return allowASOverride(Either.ofRight(allowASOverride));
        }

        /**
         * @param annotation Switch configuration description.
         * 
         * @return builder
         * 
         */
        public Builder annotation(@Nullable Output annotation) {
            $.annotation = annotation;
            return this;
        }

        /**
         * @param annotation Switch configuration description.
         * 
         * @return builder
         * 
         */
        public Builder annotation(String annotation) {
            return annotation(Output.of(annotation));
        }

        /**
         * @param defaultRouteOriginate Originate a defaultRoute. Ex: "True" | "False".
         * 
         * @return builder
         * 
         */
        public Builder defaultRouteOriginate(@Nullable Output> defaultRouteOriginate) {
            $.defaultRouteOriginate = defaultRouteOriginate;
            return this;
        }

        /**
         * @param defaultRouteOriginate Originate a defaultRoute. Ex: "True" | "False".
         * 
         * @return builder
         * 
         */
        public Builder defaultRouteOriginate(Either defaultRouteOriginate) {
            return defaultRouteOriginate(Output.of(defaultRouteOriginate));
        }

        /**
         * @param defaultRouteOriginate Originate a defaultRoute. Ex: "True" | "False".
         * 
         * @return builder
         * 
         */
        public Builder defaultRouteOriginate(String defaultRouteOriginate) {
            return defaultRouteOriginate(Either.ofLeft(defaultRouteOriginate));
        }

        /**
         * @param defaultRouteOriginate Originate a defaultRoute. Ex: "True" | "False".
         * 
         * @return builder
         * 
         */
        public Builder defaultRouteOriginate(BooleanEnumProperty defaultRouteOriginate) {
            return defaultRouteOriginate(Either.ofRight(defaultRouteOriginate));
        }

        /**
         * @param ipv4ListenRangePrefixes BGP Ipv4 ListenRange.
         * 
         * @return builder
         * 
         */
        public Builder ipv4ListenRangePrefixes(@Nullable Output> ipv4ListenRangePrefixes) {
            $.ipv4ListenRangePrefixes = ipv4ListenRangePrefixes;
            return this;
        }

        /**
         * @param ipv4ListenRangePrefixes BGP Ipv4 ListenRange.
         * 
         * @return builder
         * 
         */
        public Builder ipv4ListenRangePrefixes(List ipv4ListenRangePrefixes) {
            return ipv4ListenRangePrefixes(Output.of(ipv4ListenRangePrefixes));
        }

        /**
         * @param ipv4ListenRangePrefixes BGP Ipv4 ListenRange.
         * 
         * @return builder
         * 
         */
        public Builder ipv4ListenRangePrefixes(String... ipv4ListenRangePrefixes) {
            return ipv4ListenRangePrefixes(List.of(ipv4ListenRangePrefixes));
        }

        /**
         * @param ipv4NeighborAddress List with stringified ipv4NeighborAddresses.
         * 
         * @return builder
         * 
         */
        public Builder ipv4NeighborAddress(@Nullable Output> ipv4NeighborAddress) {
            $.ipv4NeighborAddress = ipv4NeighborAddress;
            return this;
        }

        /**
         * @param ipv4NeighborAddress List with stringified ipv4NeighborAddresses.
         * 
         * @return builder
         * 
         */
        public Builder ipv4NeighborAddress(List ipv4NeighborAddress) {
            return ipv4NeighborAddress(Output.of(ipv4NeighborAddress));
        }

        /**
         * @param ipv4NeighborAddress List with stringified ipv4NeighborAddresses.
         * 
         * @return builder
         * 
         */
        public Builder ipv4NeighborAddress(NeighborAddressArgs... ipv4NeighborAddress) {
            return ipv4NeighborAddress(List.of(ipv4NeighborAddress));
        }

        /**
         * @param ipv6ListenRangePrefixes BGP Ipv6 ListenRange.
         * 
         * @return builder
         * 
         */
        public Builder ipv6ListenRangePrefixes(@Nullable Output> ipv6ListenRangePrefixes) {
            $.ipv6ListenRangePrefixes = ipv6ListenRangePrefixes;
            return this;
        }

        /**
         * @param ipv6ListenRangePrefixes BGP Ipv6 ListenRange.
         * 
         * @return builder
         * 
         */
        public Builder ipv6ListenRangePrefixes(List ipv6ListenRangePrefixes) {
            return ipv6ListenRangePrefixes(Output.of(ipv6ListenRangePrefixes));
        }

        /**
         * @param ipv6ListenRangePrefixes BGP Ipv6 ListenRange.
         * 
         * @return builder
         * 
         */
        public Builder ipv6ListenRangePrefixes(String... ipv6ListenRangePrefixes) {
            return ipv6ListenRangePrefixes(List.of(ipv6ListenRangePrefixes));
        }

        /**
         * @param ipv6NeighborAddress List with stringified IPv6 Neighbor Address.
         * 
         * @return builder
         * 
         */
        public Builder ipv6NeighborAddress(@Nullable Output> ipv6NeighborAddress) {
            $.ipv6NeighborAddress = ipv6NeighborAddress;
            return this;
        }

        /**
         * @param ipv6NeighborAddress List with stringified IPv6 Neighbor Address.
         * 
         * @return builder
         * 
         */
        public Builder ipv6NeighborAddress(List ipv6NeighborAddress) {
            return ipv6NeighborAddress(Output.of(ipv6NeighborAddress));
        }

        /**
         * @param ipv6NeighborAddress List with stringified IPv6 Neighbor Address.
         * 
         * @return builder
         * 
         */
        public Builder ipv6NeighborAddress(NeighborAddressArgs... ipv6NeighborAddress) {
            return ipv6NeighborAddress(List.of(ipv6NeighborAddress));
        }

        /**
         * @param peerASN Peer ASN. Example: 65047.
         * 
         * @return builder
         * 
         */
        public Builder peerASN(Output peerASN) {
            $.peerASN = peerASN;
            return this;
        }

        /**
         * @param peerASN Peer ASN. Example: 65047.
         * 
         * @return builder
         * 
         */
        public Builder peerASN(Integer peerASN) {
            return peerASN(Output.of(peerASN));
        }

        public BgpConfigurationArgs build() {
            $.allowAS = Codegen.integerProp("allowAS").output().arg($.allowAS).def(2).getNullable();
            if ($.peerASN == null) {
                throw new MissingRequiredPropertyException("BgpConfigurationArgs", "peerASN");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy