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

com.pulumi.azure.network.inputs.ExpressRouteCircuitPeeringState Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Microsoft Azure cloud resources, based on the Terraform azurerm provider. We recommend using the [Azure Native provider](https://github.com/pulumi/pulumi-azure-native) to provision Azure infrastructure. Azure Native provides complete coverage of Azure resources and same-day access to new resources and resource updates.

There is a newer version: 6.10.0-alpha.1731737215
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.azure.network.inputs;

import com.pulumi.azure.network.inputs.ExpressRouteCircuitPeeringIpv6Args;
import com.pulumi.azure.network.inputs.ExpressRouteCircuitPeeringMicrosoftPeeringConfigArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ExpressRouteCircuitPeeringState Empty = new ExpressRouteCircuitPeeringState();

    /**
     * The ASN used by Azure.
     * 
     */
    @Import(name="azureAsn")
    private @Nullable Output azureAsn;

    /**
     * @return The ASN used by Azure.
     * 
     */
    public Optional> azureAsn() {
        return Optional.ofNullable(this.azureAsn);
    }

    /**
     * The name of the ExpressRoute Circuit in which to create the Peering. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="expressRouteCircuitName")
    private @Nullable Output expressRouteCircuitName;

    /**
     * @return The name of the ExpressRoute Circuit in which to create the Peering. Changing this forces a new resource to be created.
     * 
     */
    public Optional> expressRouteCircuitName() {
        return Optional.ofNullable(this.expressRouteCircuitName);
    }

    @Import(name="gatewayManagerEtag")
    private @Nullable Output gatewayManagerEtag;

    public Optional> gatewayManagerEtag() {
        return Optional.ofNullable(this.gatewayManagerEtag);
    }

    /**
     * A boolean value indicating whether the IPv4 peering is enabled. Defaults to `true`.
     * 
     */
    @Import(name="ipv4Enabled")
    private @Nullable Output ipv4Enabled;

    /**
     * @return A boolean value indicating whether the IPv4 peering is enabled. Defaults to `true`.
     * 
     */
    public Optional> ipv4Enabled() {
        return Optional.ofNullable(this.ipv4Enabled);
    }

    /**
     * A `ipv6` block as defined below.
     * 
     */
    @Import(name="ipv6")
    private @Nullable Output ipv6;

    /**
     * @return A `ipv6` block as defined below.
     * 
     */
    public Optional> ipv6() {
        return Optional.ofNullable(this.ipv6);
    }

    /**
     * A `microsoft_peering_config` block as defined below. Required when `peering_type` is set to `MicrosoftPeering` and config for IPv4.
     * 
     */
    @Import(name="microsoftPeeringConfig")
    private @Nullable Output microsoftPeeringConfig;

    /**
     * @return A `microsoft_peering_config` block as defined below. Required when `peering_type` is set to `MicrosoftPeering` and config for IPv4.
     * 
     */
    public Optional> microsoftPeeringConfig() {
        return Optional.ofNullable(this.microsoftPeeringConfig);
    }

    /**
     * The Either a 16-bit or a 32-bit ASN. Can either be public or private.
     * 
     */
    @Import(name="peerAsn")
    private @Nullable Output peerAsn;

    /**
     * @return The Either a 16-bit or a 32-bit ASN. Can either be public or private.
     * 
     */
    public Optional> peerAsn() {
        return Optional.ofNullable(this.peerAsn);
    }

    /**
     * The type of the ExpressRoute Circuit Peering. Acceptable values include `AzurePrivatePeering`, `AzurePublicPeering` and `MicrosoftPeering`.
     * 
     * > **NOTE:** only one Peering of each Type can be created. Attempting to create multiple peerings of the same type will overwrite the original peering.
     * 
     */
    @Import(name="peeringType")
    private @Nullable Output peeringType;

    /**
     * @return The type of the ExpressRoute Circuit Peering. Acceptable values include `AzurePrivatePeering`, `AzurePublicPeering` and `MicrosoftPeering`.
     * 
     * > **NOTE:** only one Peering of each Type can be created. Attempting to create multiple peerings of the same type will overwrite the original peering.
     * 
     */
    public Optional> peeringType() {
        return Optional.ofNullable(this.peeringType);
    }

    /**
     * The Primary Port used by Azure for this Peering.
     * 
     */
    @Import(name="primaryAzurePort")
    private @Nullable Output primaryAzurePort;

    /**
     * @return The Primary Port used by Azure for this Peering.
     * 
     */
    public Optional> primaryAzurePort() {
        return Optional.ofNullable(this.primaryAzurePort);
    }

    /**
     * A subnet for the primary link.
     * 
     */
    @Import(name="primaryPeerAddressPrefix")
    private @Nullable Output primaryPeerAddressPrefix;

    /**
     * @return A subnet for the primary link.
     * 
     */
    public Optional> primaryPeerAddressPrefix() {
        return Optional.ofNullable(this.primaryPeerAddressPrefix);
    }

    /**
     * The name of the resource group in which to create the Express Route Circuit Peering. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="resourceGroupName")
    private @Nullable Output resourceGroupName;

    /**
     * @return The name of the resource group in which to create the Express Route Circuit Peering. Changing this forces a new resource to be created.
     * 
     */
    public Optional> resourceGroupName() {
        return Optional.ofNullable(this.resourceGroupName);
    }

    /**
     * The ID of the Route Filter. Only available when `peering_type` is set to `MicrosoftPeering`.
     * 
     * > **NOTE:** `ipv6` can be specified when `peering_type` is `MicrosoftPeering` or `AzurePrivatePeering`
     * 
     */
    @Import(name="routeFilterId")
    private @Nullable Output routeFilterId;

    /**
     * @return The ID of the Route Filter. Only available when `peering_type` is set to `MicrosoftPeering`.
     * 
     * > **NOTE:** `ipv6` can be specified when `peering_type` is `MicrosoftPeering` or `AzurePrivatePeering`
     * 
     */
    public Optional> routeFilterId() {
        return Optional.ofNullable(this.routeFilterId);
    }

    /**
     * The Secondary Port used by Azure for this Peering.
     * 
     */
    @Import(name="secondaryAzurePort")
    private @Nullable Output secondaryAzurePort;

    /**
     * @return The Secondary Port used by Azure for this Peering.
     * 
     */
    public Optional> secondaryAzurePort() {
        return Optional.ofNullable(this.secondaryAzurePort);
    }

    /**
     * A subnet for the secondary link.
     * 
     */
    @Import(name="secondaryPeerAddressPrefix")
    private @Nullable Output secondaryPeerAddressPrefix;

    /**
     * @return A subnet for the secondary link.
     * 
     */
    public Optional> secondaryPeerAddressPrefix() {
        return Optional.ofNullable(this.secondaryPeerAddressPrefix);
    }

    /**
     * The shared key. Can be a maximum of 25 characters.
     * 
     */
    @Import(name="sharedKey")
    private @Nullable Output sharedKey;

    /**
     * @return The shared key. Can be a maximum of 25 characters.
     * 
     */
    public Optional> sharedKey() {
        return Optional.ofNullable(this.sharedKey);
    }

    /**
     * A valid VLAN ID to establish this peering on.
     * 
     */
    @Import(name="vlanId")
    private @Nullable Output vlanId;

    /**
     * @return A valid VLAN ID to establish this peering on.
     * 
     */
    public Optional> vlanId() {
        return Optional.ofNullable(this.vlanId);
    }

    private ExpressRouteCircuitPeeringState() {}

    private ExpressRouteCircuitPeeringState(ExpressRouteCircuitPeeringState $) {
        this.azureAsn = $.azureAsn;
        this.expressRouteCircuitName = $.expressRouteCircuitName;
        this.gatewayManagerEtag = $.gatewayManagerEtag;
        this.ipv4Enabled = $.ipv4Enabled;
        this.ipv6 = $.ipv6;
        this.microsoftPeeringConfig = $.microsoftPeeringConfig;
        this.peerAsn = $.peerAsn;
        this.peeringType = $.peeringType;
        this.primaryAzurePort = $.primaryAzurePort;
        this.primaryPeerAddressPrefix = $.primaryPeerAddressPrefix;
        this.resourceGroupName = $.resourceGroupName;
        this.routeFilterId = $.routeFilterId;
        this.secondaryAzurePort = $.secondaryAzurePort;
        this.secondaryPeerAddressPrefix = $.secondaryPeerAddressPrefix;
        this.sharedKey = $.sharedKey;
        this.vlanId = $.vlanId;
    }

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

    public static final class Builder {
        private ExpressRouteCircuitPeeringState $;

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

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

        /**
         * @param azureAsn The ASN used by Azure.
         * 
         * @return builder
         * 
         */
        public Builder azureAsn(@Nullable Output azureAsn) {
            $.azureAsn = azureAsn;
            return this;
        }

        /**
         * @param azureAsn The ASN used by Azure.
         * 
         * @return builder
         * 
         */
        public Builder azureAsn(Integer azureAsn) {
            return azureAsn(Output.of(azureAsn));
        }

        /**
         * @param expressRouteCircuitName The name of the ExpressRoute Circuit in which to create the Peering. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder expressRouteCircuitName(@Nullable Output expressRouteCircuitName) {
            $.expressRouteCircuitName = expressRouteCircuitName;
            return this;
        }

        /**
         * @param expressRouteCircuitName The name of the ExpressRoute Circuit in which to create the Peering. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder expressRouteCircuitName(String expressRouteCircuitName) {
            return expressRouteCircuitName(Output.of(expressRouteCircuitName));
        }

        public Builder gatewayManagerEtag(@Nullable Output gatewayManagerEtag) {
            $.gatewayManagerEtag = gatewayManagerEtag;
            return this;
        }

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

        /**
         * @param ipv4Enabled A boolean value indicating whether the IPv4 peering is enabled. Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder ipv4Enabled(@Nullable Output ipv4Enabled) {
            $.ipv4Enabled = ipv4Enabled;
            return this;
        }

        /**
         * @param ipv4Enabled A boolean value indicating whether the IPv4 peering is enabled. Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder ipv4Enabled(Boolean ipv4Enabled) {
            return ipv4Enabled(Output.of(ipv4Enabled));
        }

        /**
         * @param ipv6 A `ipv6` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder ipv6(@Nullable Output ipv6) {
            $.ipv6 = ipv6;
            return this;
        }

        /**
         * @param ipv6 A `ipv6` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder ipv6(ExpressRouteCircuitPeeringIpv6Args ipv6) {
            return ipv6(Output.of(ipv6));
        }

        /**
         * @param microsoftPeeringConfig A `microsoft_peering_config` block as defined below. Required when `peering_type` is set to `MicrosoftPeering` and config for IPv4.
         * 
         * @return builder
         * 
         */
        public Builder microsoftPeeringConfig(@Nullable Output microsoftPeeringConfig) {
            $.microsoftPeeringConfig = microsoftPeeringConfig;
            return this;
        }

        /**
         * @param microsoftPeeringConfig A `microsoft_peering_config` block as defined below. Required when `peering_type` is set to `MicrosoftPeering` and config for IPv4.
         * 
         * @return builder
         * 
         */
        public Builder microsoftPeeringConfig(ExpressRouteCircuitPeeringMicrosoftPeeringConfigArgs microsoftPeeringConfig) {
            return microsoftPeeringConfig(Output.of(microsoftPeeringConfig));
        }

        /**
         * @param peerAsn The Either a 16-bit or a 32-bit ASN. Can either be public or private.
         * 
         * @return builder
         * 
         */
        public Builder peerAsn(@Nullable Output peerAsn) {
            $.peerAsn = peerAsn;
            return this;
        }

        /**
         * @param peerAsn The Either a 16-bit or a 32-bit ASN. Can either be public or private.
         * 
         * @return builder
         * 
         */
        public Builder peerAsn(Integer peerAsn) {
            return peerAsn(Output.of(peerAsn));
        }

        /**
         * @param peeringType The type of the ExpressRoute Circuit Peering. Acceptable values include `AzurePrivatePeering`, `AzurePublicPeering` and `MicrosoftPeering`.
         * 
         * > **NOTE:** only one Peering of each Type can be created. Attempting to create multiple peerings of the same type will overwrite the original peering.
         * 
         * @return builder
         * 
         */
        public Builder peeringType(@Nullable Output peeringType) {
            $.peeringType = peeringType;
            return this;
        }

        /**
         * @param peeringType The type of the ExpressRoute Circuit Peering. Acceptable values include `AzurePrivatePeering`, `AzurePublicPeering` and `MicrosoftPeering`.
         * 
         * > **NOTE:** only one Peering of each Type can be created. Attempting to create multiple peerings of the same type will overwrite the original peering.
         * 
         * @return builder
         * 
         */
        public Builder peeringType(String peeringType) {
            return peeringType(Output.of(peeringType));
        }

        /**
         * @param primaryAzurePort The Primary Port used by Azure for this Peering.
         * 
         * @return builder
         * 
         */
        public Builder primaryAzurePort(@Nullable Output primaryAzurePort) {
            $.primaryAzurePort = primaryAzurePort;
            return this;
        }

        /**
         * @param primaryAzurePort The Primary Port used by Azure for this Peering.
         * 
         * @return builder
         * 
         */
        public Builder primaryAzurePort(String primaryAzurePort) {
            return primaryAzurePort(Output.of(primaryAzurePort));
        }

        /**
         * @param primaryPeerAddressPrefix A subnet for the primary link.
         * 
         * @return builder
         * 
         */
        public Builder primaryPeerAddressPrefix(@Nullable Output primaryPeerAddressPrefix) {
            $.primaryPeerAddressPrefix = primaryPeerAddressPrefix;
            return this;
        }

        /**
         * @param primaryPeerAddressPrefix A subnet for the primary link.
         * 
         * @return builder
         * 
         */
        public Builder primaryPeerAddressPrefix(String primaryPeerAddressPrefix) {
            return primaryPeerAddressPrefix(Output.of(primaryPeerAddressPrefix));
        }

        /**
         * @param resourceGroupName The name of the resource group in which to create the Express Route Circuit Peering. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(@Nullable Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group in which to create the Express Route Circuit Peering. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param routeFilterId The ID of the Route Filter. Only available when `peering_type` is set to `MicrosoftPeering`.
         * 
         * > **NOTE:** `ipv6` can be specified when `peering_type` is `MicrosoftPeering` or `AzurePrivatePeering`
         * 
         * @return builder
         * 
         */
        public Builder routeFilterId(@Nullable Output routeFilterId) {
            $.routeFilterId = routeFilterId;
            return this;
        }

        /**
         * @param routeFilterId The ID of the Route Filter. Only available when `peering_type` is set to `MicrosoftPeering`.
         * 
         * > **NOTE:** `ipv6` can be specified when `peering_type` is `MicrosoftPeering` or `AzurePrivatePeering`
         * 
         * @return builder
         * 
         */
        public Builder routeFilterId(String routeFilterId) {
            return routeFilterId(Output.of(routeFilterId));
        }

        /**
         * @param secondaryAzurePort The Secondary Port used by Azure for this Peering.
         * 
         * @return builder
         * 
         */
        public Builder secondaryAzurePort(@Nullable Output secondaryAzurePort) {
            $.secondaryAzurePort = secondaryAzurePort;
            return this;
        }

        /**
         * @param secondaryAzurePort The Secondary Port used by Azure for this Peering.
         * 
         * @return builder
         * 
         */
        public Builder secondaryAzurePort(String secondaryAzurePort) {
            return secondaryAzurePort(Output.of(secondaryAzurePort));
        }

        /**
         * @param secondaryPeerAddressPrefix A subnet for the secondary link.
         * 
         * @return builder
         * 
         */
        public Builder secondaryPeerAddressPrefix(@Nullable Output secondaryPeerAddressPrefix) {
            $.secondaryPeerAddressPrefix = secondaryPeerAddressPrefix;
            return this;
        }

        /**
         * @param secondaryPeerAddressPrefix A subnet for the secondary link.
         * 
         * @return builder
         * 
         */
        public Builder secondaryPeerAddressPrefix(String secondaryPeerAddressPrefix) {
            return secondaryPeerAddressPrefix(Output.of(secondaryPeerAddressPrefix));
        }

        /**
         * @param sharedKey The shared key. Can be a maximum of 25 characters.
         * 
         * @return builder
         * 
         */
        public Builder sharedKey(@Nullable Output sharedKey) {
            $.sharedKey = sharedKey;
            return this;
        }

        /**
         * @param sharedKey The shared key. Can be a maximum of 25 characters.
         * 
         * @return builder
         * 
         */
        public Builder sharedKey(String sharedKey) {
            return sharedKey(Output.of(sharedKey));
        }

        /**
         * @param vlanId A valid VLAN ID to establish this peering on.
         * 
         * @return builder
         * 
         */
        public Builder vlanId(@Nullable Output vlanId) {
            $.vlanId = vlanId;
            return this;
        }

        /**
         * @param vlanId A valid VLAN ID to establish this peering on.
         * 
         * @return builder
         * 
         */
        public Builder vlanId(Integer vlanId) {
            return vlanId(Output.of(vlanId));
        }

        public ExpressRouteCircuitPeeringState build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy