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

com.pulumi.azurenative.networkcloud.inputs.ServiceLoadBalancerBgpPeerArgs 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.networkcloud.inputs;

import com.pulumi.azurenative.networkcloud.enums.BfdEnabled;
import com.pulumi.azurenative.networkcloud.enums.BgpMultiHop;
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.Double;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ServiceLoadBalancerBgpPeerArgs Empty = new ServiceLoadBalancerBgpPeerArgs();

    /**
     * The indicator of BFD enablement for this BgpPeer.
     * 
     */
    @Import(name="bfdEnabled")
    private @Nullable Output> bfdEnabled;

    /**
     * @return The indicator of BFD enablement for this BgpPeer.
     * 
     */
    public Optional>> bfdEnabled() {
        return Optional.ofNullable(this.bfdEnabled);
    }

    /**
     * The indicator to enable multi-hop peering support.
     * 
     */
    @Import(name="bgpMultiHop")
    private @Nullable Output> bgpMultiHop;

    /**
     * @return The indicator to enable multi-hop peering support.
     * 
     */
    public Optional>> bgpMultiHop() {
        return Optional.ofNullable(this.bgpMultiHop);
    }

    /**
     * The requested BGP hold time value. This field uses ISO 8601 duration format, for example P1H.
     * 
     */
    @Import(name="holdTime")
    private @Nullable Output holdTime;

    /**
     * @return The requested BGP hold time value. This field uses ISO 8601 duration format, for example P1H.
     * 
     */
    public Optional> holdTime() {
        return Optional.ofNullable(this.holdTime);
    }

    /**
     * The requested BGP keepalive time value. This field uses ISO 8601 duration format, for example P1H.
     * 
     */
    @Import(name="keepAliveTime")
    private @Nullable Output keepAliveTime;

    /**
     * @return The requested BGP keepalive time value. This field uses ISO 8601 duration format, for example P1H.
     * 
     */
    public Optional> keepAliveTime() {
        return Optional.ofNullable(this.keepAliveTime);
    }

    /**
     * The autonomous system number used for the local end of the BGP session.
     * 
     */
    @Import(name="myAsn")
    private @Nullable Output myAsn;

    /**
     * @return The autonomous system number used for the local end of the BGP session.
     * 
     */
    public Optional> myAsn() {
        return Optional.ofNullable(this.myAsn);
    }

    /**
     * The name used to identify this BGP peer for association with a BGP advertisement.
     * 
     */
    @Import(name="name", required=true)
    private Output name;

    /**
     * @return The name used to identify this BGP peer for association with a BGP advertisement.
     * 
     */
    public Output name() {
        return this.name;
    }

    /**
     * The authentication password for routers enforcing TCP MD5 authenticated sessions.
     * 
     */
    @Import(name="password")
    private @Nullable Output password;

    /**
     * @return The authentication password for routers enforcing TCP MD5 authenticated sessions.
     * 
     */
    public Optional> password() {
        return Optional.ofNullable(this.password);
    }

    /**
     * The IPv4 or IPv6 address used to connect this BGP session.
     * 
     */
    @Import(name="peerAddress", required=true)
    private Output peerAddress;

    /**
     * @return The IPv4 or IPv6 address used to connect this BGP session.
     * 
     */
    public Output peerAddress() {
        return this.peerAddress;
    }

    /**
     * The autonomous system number expected from the remote end of the BGP session.
     * 
     */
    @Import(name="peerAsn", required=true)
    private Output peerAsn;

    /**
     * @return The autonomous system number expected from the remote end of the BGP session.
     * 
     */
    public Output peerAsn() {
        return this.peerAsn;
    }

    /**
     * The port used to connect this BGP session.
     * 
     */
    @Import(name="peerPort")
    private @Nullable Output peerPort;

    /**
     * @return The port used to connect this BGP session.
     * 
     */
    public Optional> peerPort() {
        return Optional.ofNullable(this.peerPort);
    }

    private ServiceLoadBalancerBgpPeerArgs() {}

    private ServiceLoadBalancerBgpPeerArgs(ServiceLoadBalancerBgpPeerArgs $) {
        this.bfdEnabled = $.bfdEnabled;
        this.bgpMultiHop = $.bgpMultiHop;
        this.holdTime = $.holdTime;
        this.keepAliveTime = $.keepAliveTime;
        this.myAsn = $.myAsn;
        this.name = $.name;
        this.password = $.password;
        this.peerAddress = $.peerAddress;
        this.peerAsn = $.peerAsn;
        this.peerPort = $.peerPort;
    }

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

    public static final class Builder {
        private ServiceLoadBalancerBgpPeerArgs $;

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

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

        /**
         * @param bfdEnabled The indicator of BFD enablement for this BgpPeer.
         * 
         * @return builder
         * 
         */
        public Builder bfdEnabled(@Nullable Output> bfdEnabled) {
            $.bfdEnabled = bfdEnabled;
            return this;
        }

        /**
         * @param bfdEnabled The indicator of BFD enablement for this BgpPeer.
         * 
         * @return builder
         * 
         */
        public Builder bfdEnabled(Either bfdEnabled) {
            return bfdEnabled(Output.of(bfdEnabled));
        }

        /**
         * @param bfdEnabled The indicator of BFD enablement for this BgpPeer.
         * 
         * @return builder
         * 
         */
        public Builder bfdEnabled(String bfdEnabled) {
            return bfdEnabled(Either.ofLeft(bfdEnabled));
        }

        /**
         * @param bfdEnabled The indicator of BFD enablement for this BgpPeer.
         * 
         * @return builder
         * 
         */
        public Builder bfdEnabled(BfdEnabled bfdEnabled) {
            return bfdEnabled(Either.ofRight(bfdEnabled));
        }

        /**
         * @param bgpMultiHop The indicator to enable multi-hop peering support.
         * 
         * @return builder
         * 
         */
        public Builder bgpMultiHop(@Nullable Output> bgpMultiHop) {
            $.bgpMultiHop = bgpMultiHop;
            return this;
        }

        /**
         * @param bgpMultiHop The indicator to enable multi-hop peering support.
         * 
         * @return builder
         * 
         */
        public Builder bgpMultiHop(Either bgpMultiHop) {
            return bgpMultiHop(Output.of(bgpMultiHop));
        }

        /**
         * @param bgpMultiHop The indicator to enable multi-hop peering support.
         * 
         * @return builder
         * 
         */
        public Builder bgpMultiHop(String bgpMultiHop) {
            return bgpMultiHop(Either.ofLeft(bgpMultiHop));
        }

        /**
         * @param bgpMultiHop The indicator to enable multi-hop peering support.
         * 
         * @return builder
         * 
         */
        public Builder bgpMultiHop(BgpMultiHop bgpMultiHop) {
            return bgpMultiHop(Either.ofRight(bgpMultiHop));
        }

        /**
         * @param holdTime The requested BGP hold time value. This field uses ISO 8601 duration format, for example P1H.
         * 
         * @return builder
         * 
         */
        public Builder holdTime(@Nullable Output holdTime) {
            $.holdTime = holdTime;
            return this;
        }

        /**
         * @param holdTime The requested BGP hold time value. This field uses ISO 8601 duration format, for example P1H.
         * 
         * @return builder
         * 
         */
        public Builder holdTime(String holdTime) {
            return holdTime(Output.of(holdTime));
        }

        /**
         * @param keepAliveTime The requested BGP keepalive time value. This field uses ISO 8601 duration format, for example P1H.
         * 
         * @return builder
         * 
         */
        public Builder keepAliveTime(@Nullable Output keepAliveTime) {
            $.keepAliveTime = keepAliveTime;
            return this;
        }

        /**
         * @param keepAliveTime The requested BGP keepalive time value. This field uses ISO 8601 duration format, for example P1H.
         * 
         * @return builder
         * 
         */
        public Builder keepAliveTime(String keepAliveTime) {
            return keepAliveTime(Output.of(keepAliveTime));
        }

        /**
         * @param myAsn The autonomous system number used for the local end of the BGP session.
         * 
         * @return builder
         * 
         */
        public Builder myAsn(@Nullable Output myAsn) {
            $.myAsn = myAsn;
            return this;
        }

        /**
         * @param myAsn The autonomous system number used for the local end of the BGP session.
         * 
         * @return builder
         * 
         */
        public Builder myAsn(Double myAsn) {
            return myAsn(Output.of(myAsn));
        }

        /**
         * @param name The name used to identify this BGP peer for association with a BGP advertisement.
         * 
         * @return builder
         * 
         */
        public Builder name(Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name used to identify this BGP peer for association with a BGP advertisement.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param password The authentication password for routers enforcing TCP MD5 authenticated sessions.
         * 
         * @return builder
         * 
         */
        public Builder password(@Nullable Output password) {
            $.password = password;
            return this;
        }

        /**
         * @param password The authentication password for routers enforcing TCP MD5 authenticated sessions.
         * 
         * @return builder
         * 
         */
        public Builder password(String password) {
            return password(Output.of(password));
        }

        /**
         * @param peerAddress The IPv4 or IPv6 address used to connect this BGP session.
         * 
         * @return builder
         * 
         */
        public Builder peerAddress(Output peerAddress) {
            $.peerAddress = peerAddress;
            return this;
        }

        /**
         * @param peerAddress The IPv4 or IPv6 address used to connect this BGP session.
         * 
         * @return builder
         * 
         */
        public Builder peerAddress(String peerAddress) {
            return peerAddress(Output.of(peerAddress));
        }

        /**
         * @param peerAsn The autonomous system number expected from the remote end of the BGP session.
         * 
         * @return builder
         * 
         */
        public Builder peerAsn(Output peerAsn) {
            $.peerAsn = peerAsn;
            return this;
        }

        /**
         * @param peerAsn The autonomous system number expected from the remote end of the BGP session.
         * 
         * @return builder
         * 
         */
        public Builder peerAsn(Double peerAsn) {
            return peerAsn(Output.of(peerAsn));
        }

        /**
         * @param peerPort The port used to connect this BGP session.
         * 
         * @return builder
         * 
         */
        public Builder peerPort(@Nullable Output peerPort) {
            $.peerPort = peerPort;
            return this;
        }

        /**
         * @param peerPort The port used to connect this BGP session.
         * 
         * @return builder
         * 
         */
        public Builder peerPort(Double peerPort) {
            return peerPort(Output.of(peerPort));
        }

        public ServiceLoadBalancerBgpPeerArgs build() {
            $.bfdEnabled = Codegen.stringProp("bfdEnabled").left(BfdEnabled.class).output().arg($.bfdEnabled).def("False").getNullable();
            $.bgpMultiHop = Codegen.stringProp("bgpMultiHop").left(BgpMultiHop.class).output().arg($.bgpMultiHop).def("False").getNullable();
            if ($.name == null) {
                throw new MissingRequiredPropertyException("ServiceLoadBalancerBgpPeerArgs", "name");
            }
            if ($.peerAddress == null) {
                throw new MissingRequiredPropertyException("ServiceLoadBalancerBgpPeerArgs", "peerAddress");
            }
            if ($.peerAsn == null) {
                throw new MissingRequiredPropertyException("ServiceLoadBalancerBgpPeerArgs", "peerAsn");
            }
            $.peerPort = Codegen.doubleProp("peerPort").output().arg($.peerPort).def(1.79e+02).getNullable();
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy