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

com.pulumi.azurenative.networkcloud.inputs.BgpAdvertisementArgs Maven / Gradle / Ivy

There is a newer version: 2.72.0
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.azurenative.networkcloud.inputs;

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


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

    public static final BgpAdvertisementArgs Empty = new BgpAdvertisementArgs();

    /**
     * The indicator of if this advertisement is also made to the network fabric associated with the Network Cloud Cluster. This field is ignored if fabricPeeringEnabled is set to False.
     * 
     */
    @Import(name="advertiseToFabric")
    private @Nullable Output> advertiseToFabric;

    /**
     * @return The indicator of if this advertisement is also made to the network fabric associated with the Network Cloud Cluster. This field is ignored if fabricPeeringEnabled is set to False.
     * 
     */
    public Optional>> advertiseToFabric() {
        return Optional.ofNullable(this.advertiseToFabric);
    }

    /**
     * The names of the BGP communities to be associated with the announcement, utilizing a BGP community string in 1234:1234 format.
     * 
     */
    @Import(name="communities")
    private @Nullable Output> communities;

    /**
     * @return The names of the BGP communities to be associated with the announcement, utilizing a BGP community string in 1234:1234 format.
     * 
     */
    public Optional>> communities() {
        return Optional.ofNullable(this.communities);
    }

    /**
     * The names of the IP address pools associated with this announcement.
     * 
     */
    @Import(name="ipAddressPools", required=true)
    private Output> ipAddressPools;

    /**
     * @return The names of the IP address pools associated with this announcement.
     * 
     */
    public Output> ipAddressPools() {
        return this.ipAddressPools;
    }

    /**
     * The names of the BGP peers to limit this advertisement to. If no values are specified, all BGP peers will receive this advertisement.
     * 
     */
    @Import(name="peers")
    private @Nullable Output> peers;

    /**
     * @return The names of the BGP peers to limit this advertisement to. If no values are specified, all BGP peers will receive this advertisement.
     * 
     */
    public Optional>> peers() {
        return Optional.ofNullable(this.peers);
    }

    private BgpAdvertisementArgs() {}

    private BgpAdvertisementArgs(BgpAdvertisementArgs $) {
        this.advertiseToFabric = $.advertiseToFabric;
        this.communities = $.communities;
        this.ipAddressPools = $.ipAddressPools;
        this.peers = $.peers;
    }

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

    public static final class Builder {
        private BgpAdvertisementArgs $;

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

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

        /**
         * @param advertiseToFabric The indicator of if this advertisement is also made to the network fabric associated with the Network Cloud Cluster. This field is ignored if fabricPeeringEnabled is set to False.
         * 
         * @return builder
         * 
         */
        public Builder advertiseToFabric(@Nullable Output> advertiseToFabric) {
            $.advertiseToFabric = advertiseToFabric;
            return this;
        }

        /**
         * @param advertiseToFabric The indicator of if this advertisement is also made to the network fabric associated with the Network Cloud Cluster. This field is ignored if fabricPeeringEnabled is set to False.
         * 
         * @return builder
         * 
         */
        public Builder advertiseToFabric(Either advertiseToFabric) {
            return advertiseToFabric(Output.of(advertiseToFabric));
        }

        /**
         * @param advertiseToFabric The indicator of if this advertisement is also made to the network fabric associated with the Network Cloud Cluster. This field is ignored if fabricPeeringEnabled is set to False.
         * 
         * @return builder
         * 
         */
        public Builder advertiseToFabric(String advertiseToFabric) {
            return advertiseToFabric(Either.ofLeft(advertiseToFabric));
        }

        /**
         * @param advertiseToFabric The indicator of if this advertisement is also made to the network fabric associated with the Network Cloud Cluster. This field is ignored if fabricPeeringEnabled is set to False.
         * 
         * @return builder
         * 
         */
        public Builder advertiseToFabric(AdvertiseToFabric advertiseToFabric) {
            return advertiseToFabric(Either.ofRight(advertiseToFabric));
        }

        /**
         * @param communities The names of the BGP communities to be associated with the announcement, utilizing a BGP community string in 1234:1234 format.
         * 
         * @return builder
         * 
         */
        public Builder communities(@Nullable Output> communities) {
            $.communities = communities;
            return this;
        }

        /**
         * @param communities The names of the BGP communities to be associated with the announcement, utilizing a BGP community string in 1234:1234 format.
         * 
         * @return builder
         * 
         */
        public Builder communities(List communities) {
            return communities(Output.of(communities));
        }

        /**
         * @param communities The names of the BGP communities to be associated with the announcement, utilizing a BGP community string in 1234:1234 format.
         * 
         * @return builder
         * 
         */
        public Builder communities(String... communities) {
            return communities(List.of(communities));
        }

        /**
         * @param ipAddressPools The names of the IP address pools associated with this announcement.
         * 
         * @return builder
         * 
         */
        public Builder ipAddressPools(Output> ipAddressPools) {
            $.ipAddressPools = ipAddressPools;
            return this;
        }

        /**
         * @param ipAddressPools The names of the IP address pools associated with this announcement.
         * 
         * @return builder
         * 
         */
        public Builder ipAddressPools(List ipAddressPools) {
            return ipAddressPools(Output.of(ipAddressPools));
        }

        /**
         * @param ipAddressPools The names of the IP address pools associated with this announcement.
         * 
         * @return builder
         * 
         */
        public Builder ipAddressPools(String... ipAddressPools) {
            return ipAddressPools(List.of(ipAddressPools));
        }

        /**
         * @param peers The names of the BGP peers to limit this advertisement to. If no values are specified, all BGP peers will receive this advertisement.
         * 
         * @return builder
         * 
         */
        public Builder peers(@Nullable Output> peers) {
            $.peers = peers;
            return this;
        }

        /**
         * @param peers The names of the BGP peers to limit this advertisement to. If no values are specified, all BGP peers will receive this advertisement.
         * 
         * @return builder
         * 
         */
        public Builder peers(List peers) {
            return peers(Output.of(peers));
        }

        /**
         * @param peers The names of the BGP peers to limit this advertisement to. If no values are specified, all BGP peers will receive this advertisement.
         * 
         * @return builder
         * 
         */
        public Builder peers(String... peers) {
            return peers(List.of(peers));
        }

        public BgpAdvertisementArgs build() {
            $.advertiseToFabric = Codegen.stringProp("advertiseToFabric").left(AdvertiseToFabric.class).output().arg($.advertiseToFabric).def("True").getNullable();
            if ($.ipAddressPools == null) {
                throw new MissingRequiredPropertyException("BgpAdvertisementArgs", "ipAddressPools");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy