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

com.pulumi.azurenative.network.CustomIPPrefixArgs Maven / Gradle / Ivy

There is a newer version: 2.78.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.network;

import com.pulumi.azurenative.network.enums.CommissionedState;
import com.pulumi.azurenative.network.enums.CustomIpPrefixType;
import com.pulumi.azurenative.network.enums.Geo;
import com.pulumi.azurenative.network.inputs.ExtendedLocationArgs;
import com.pulumi.azurenative.network.inputs.SubResourceArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final CustomIPPrefixArgs Empty = new CustomIPPrefixArgs();

    /**
     * The ASN for CIDR advertising. Should be an integer as string.
     * 
     */
    @Import(name="asn")
    private @Nullable Output asn;

    /**
     * @return The ASN for CIDR advertising. Should be an integer as string.
     * 
     */
    public Optional> asn() {
        return Optional.ofNullable(this.asn);
    }

    /**
     * Authorization message for WAN validation.
     * 
     */
    @Import(name="authorizationMessage")
    private @Nullable Output authorizationMessage;

    /**
     * @return Authorization message for WAN validation.
     * 
     */
    public Optional> authorizationMessage() {
        return Optional.ofNullable(this.authorizationMessage);
    }

    /**
     * The prefix range in CIDR notation. Should include the start address and the prefix length.
     * 
     */
    @Import(name="cidr")
    private @Nullable Output cidr;

    /**
     * @return The prefix range in CIDR notation. Should include the start address and the prefix length.
     * 
     */
    public Optional> cidr() {
        return Optional.ofNullable(this.cidr);
    }

    /**
     * The commissioned state of the Custom IP Prefix.
     * 
     */
    @Import(name="commissionedState")
    private @Nullable Output> commissionedState;

    /**
     * @return The commissioned state of the Custom IP Prefix.
     * 
     */
    public Optional>> commissionedState() {
        return Optional.ofNullable(this.commissionedState);
    }

    /**
     * The name of the custom IP prefix.
     * 
     */
    @Import(name="customIpPrefixName")
    private @Nullable Output customIpPrefixName;

    /**
     * @return The name of the custom IP prefix.
     * 
     */
    public Optional> customIpPrefixName() {
        return Optional.ofNullable(this.customIpPrefixName);
    }

    /**
     * The Parent CustomIpPrefix for IPv6 /64 CustomIpPrefix.
     * 
     */
    @Import(name="customIpPrefixParent")
    private @Nullable Output customIpPrefixParent;

    /**
     * @return The Parent CustomIpPrefix for IPv6 /64 CustomIpPrefix.
     * 
     */
    public Optional> customIpPrefixParent() {
        return Optional.ofNullable(this.customIpPrefixParent);
    }

    /**
     * Whether to do express route advertise.
     * 
     */
    @Import(name="expressRouteAdvertise")
    private @Nullable Output expressRouteAdvertise;

    /**
     * @return Whether to do express route advertise.
     * 
     */
    public Optional> expressRouteAdvertise() {
        return Optional.ofNullable(this.expressRouteAdvertise);
    }

    /**
     * The extended location of the custom IP prefix.
     * 
     */
    @Import(name="extendedLocation")
    private @Nullable Output extendedLocation;

    /**
     * @return The extended location of the custom IP prefix.
     * 
     */
    public Optional> extendedLocation() {
        return Optional.ofNullable(this.extendedLocation);
    }

    /**
     * The Geo for CIDR advertising. Should be an Geo code.
     * 
     */
    @Import(name="geo")
    private @Nullable Output> geo;

    /**
     * @return The Geo for CIDR advertising. Should be an Geo code.
     * 
     */
    public Optional>> geo() {
        return Optional.ofNullable(this.geo);
    }

    /**
     * Resource ID.
     * 
     */
    @Import(name="id")
    private @Nullable Output id;

    /**
     * @return Resource ID.
     * 
     */
    public Optional> id() {
        return Optional.ofNullable(this.id);
    }

    /**
     * Resource location.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return Resource location.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Whether to Advertise the range to Internet.
     * 
     */
    @Import(name="noInternetAdvertise")
    private @Nullable Output noInternetAdvertise;

    /**
     * @return Whether to Advertise the range to Internet.
     * 
     */
    public Optional> noInternetAdvertise() {
        return Optional.ofNullable(this.noInternetAdvertise);
    }

    /**
     * Type of custom IP prefix. Should be Singular, Parent, or Child.
     * 
     */
    @Import(name="prefixType")
    private @Nullable Output> prefixType;

    /**
     * @return Type of custom IP prefix. Should be Singular, Parent, or Child.
     * 
     */
    public Optional>> prefixType() {
        return Optional.ofNullable(this.prefixType);
    }

    /**
     * The name of the resource group.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * Signed message for WAN validation.
     * 
     */
    @Import(name="signedMessage")
    private @Nullable Output signedMessage;

    /**
     * @return Signed message for WAN validation.
     * 
     */
    public Optional> signedMessage() {
        return Optional.ofNullable(this.signedMessage);
    }

    /**
     * Resource tags.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Resource tags.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * A list of availability zones denoting the IP allocated for the resource needs to come from.
     * 
     */
    @Import(name="zones")
    private @Nullable Output> zones;

    /**
     * @return A list of availability zones denoting the IP allocated for the resource needs to come from.
     * 
     */
    public Optional>> zones() {
        return Optional.ofNullable(this.zones);
    }

    private CustomIPPrefixArgs() {}

    private CustomIPPrefixArgs(CustomIPPrefixArgs $) {
        this.asn = $.asn;
        this.authorizationMessage = $.authorizationMessage;
        this.cidr = $.cidr;
        this.commissionedState = $.commissionedState;
        this.customIpPrefixName = $.customIpPrefixName;
        this.customIpPrefixParent = $.customIpPrefixParent;
        this.expressRouteAdvertise = $.expressRouteAdvertise;
        this.extendedLocation = $.extendedLocation;
        this.geo = $.geo;
        this.id = $.id;
        this.location = $.location;
        this.noInternetAdvertise = $.noInternetAdvertise;
        this.prefixType = $.prefixType;
        this.resourceGroupName = $.resourceGroupName;
        this.signedMessage = $.signedMessage;
        this.tags = $.tags;
        this.zones = $.zones;
    }

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

    public static final class Builder {
        private CustomIPPrefixArgs $;

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

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

        /**
         * @param asn The ASN for CIDR advertising. Should be an integer as string.
         * 
         * @return builder
         * 
         */
        public Builder asn(@Nullable Output asn) {
            $.asn = asn;
            return this;
        }

        /**
         * @param asn The ASN for CIDR advertising. Should be an integer as string.
         * 
         * @return builder
         * 
         */
        public Builder asn(String asn) {
            return asn(Output.of(asn));
        }

        /**
         * @param authorizationMessage Authorization message for WAN validation.
         * 
         * @return builder
         * 
         */
        public Builder authorizationMessage(@Nullable Output authorizationMessage) {
            $.authorizationMessage = authorizationMessage;
            return this;
        }

        /**
         * @param authorizationMessage Authorization message for WAN validation.
         * 
         * @return builder
         * 
         */
        public Builder authorizationMessage(String authorizationMessage) {
            return authorizationMessage(Output.of(authorizationMessage));
        }

        /**
         * @param cidr The prefix range in CIDR notation. Should include the start address and the prefix length.
         * 
         * @return builder
         * 
         */
        public Builder cidr(@Nullable Output cidr) {
            $.cidr = cidr;
            return this;
        }

        /**
         * @param cidr The prefix range in CIDR notation. Should include the start address and the prefix length.
         * 
         * @return builder
         * 
         */
        public Builder cidr(String cidr) {
            return cidr(Output.of(cidr));
        }

        /**
         * @param commissionedState The commissioned state of the Custom IP Prefix.
         * 
         * @return builder
         * 
         */
        public Builder commissionedState(@Nullable Output> commissionedState) {
            $.commissionedState = commissionedState;
            return this;
        }

        /**
         * @param commissionedState The commissioned state of the Custom IP Prefix.
         * 
         * @return builder
         * 
         */
        public Builder commissionedState(Either commissionedState) {
            return commissionedState(Output.of(commissionedState));
        }

        /**
         * @param commissionedState The commissioned state of the Custom IP Prefix.
         * 
         * @return builder
         * 
         */
        public Builder commissionedState(String commissionedState) {
            return commissionedState(Either.ofLeft(commissionedState));
        }

        /**
         * @param commissionedState The commissioned state of the Custom IP Prefix.
         * 
         * @return builder
         * 
         */
        public Builder commissionedState(CommissionedState commissionedState) {
            return commissionedState(Either.ofRight(commissionedState));
        }

        /**
         * @param customIpPrefixName The name of the custom IP prefix.
         * 
         * @return builder
         * 
         */
        public Builder customIpPrefixName(@Nullable Output customIpPrefixName) {
            $.customIpPrefixName = customIpPrefixName;
            return this;
        }

        /**
         * @param customIpPrefixName The name of the custom IP prefix.
         * 
         * @return builder
         * 
         */
        public Builder customIpPrefixName(String customIpPrefixName) {
            return customIpPrefixName(Output.of(customIpPrefixName));
        }

        /**
         * @param customIpPrefixParent The Parent CustomIpPrefix for IPv6 /64 CustomIpPrefix.
         * 
         * @return builder
         * 
         */
        public Builder customIpPrefixParent(@Nullable Output customIpPrefixParent) {
            $.customIpPrefixParent = customIpPrefixParent;
            return this;
        }

        /**
         * @param customIpPrefixParent The Parent CustomIpPrefix for IPv6 /64 CustomIpPrefix.
         * 
         * @return builder
         * 
         */
        public Builder customIpPrefixParent(SubResourceArgs customIpPrefixParent) {
            return customIpPrefixParent(Output.of(customIpPrefixParent));
        }

        /**
         * @param expressRouteAdvertise Whether to do express route advertise.
         * 
         * @return builder
         * 
         */
        public Builder expressRouteAdvertise(@Nullable Output expressRouteAdvertise) {
            $.expressRouteAdvertise = expressRouteAdvertise;
            return this;
        }

        /**
         * @param expressRouteAdvertise Whether to do express route advertise.
         * 
         * @return builder
         * 
         */
        public Builder expressRouteAdvertise(Boolean expressRouteAdvertise) {
            return expressRouteAdvertise(Output.of(expressRouteAdvertise));
        }

        /**
         * @param extendedLocation The extended location of the custom IP prefix.
         * 
         * @return builder
         * 
         */
        public Builder extendedLocation(@Nullable Output extendedLocation) {
            $.extendedLocation = extendedLocation;
            return this;
        }

        /**
         * @param extendedLocation The extended location of the custom IP prefix.
         * 
         * @return builder
         * 
         */
        public Builder extendedLocation(ExtendedLocationArgs extendedLocation) {
            return extendedLocation(Output.of(extendedLocation));
        }

        /**
         * @param geo The Geo for CIDR advertising. Should be an Geo code.
         * 
         * @return builder
         * 
         */
        public Builder geo(@Nullable Output> geo) {
            $.geo = geo;
            return this;
        }

        /**
         * @param geo The Geo for CIDR advertising. Should be an Geo code.
         * 
         * @return builder
         * 
         */
        public Builder geo(Either geo) {
            return geo(Output.of(geo));
        }

        /**
         * @param geo The Geo for CIDR advertising. Should be an Geo code.
         * 
         * @return builder
         * 
         */
        public Builder geo(String geo) {
            return geo(Either.ofLeft(geo));
        }

        /**
         * @param geo The Geo for CIDR advertising. Should be an Geo code.
         * 
         * @return builder
         * 
         */
        public Builder geo(Geo geo) {
            return geo(Either.ofRight(geo));
        }

        /**
         * @param id Resource ID.
         * 
         * @return builder
         * 
         */
        public Builder id(@Nullable Output id) {
            $.id = id;
            return this;
        }

        /**
         * @param id Resource ID.
         * 
         * @return builder
         * 
         */
        public Builder id(String id) {
            return id(Output.of(id));
        }

        /**
         * @param location Resource location.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location Resource location.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param noInternetAdvertise Whether to Advertise the range to Internet.
         * 
         * @return builder
         * 
         */
        public Builder noInternetAdvertise(@Nullable Output noInternetAdvertise) {
            $.noInternetAdvertise = noInternetAdvertise;
            return this;
        }

        /**
         * @param noInternetAdvertise Whether to Advertise the range to Internet.
         * 
         * @return builder
         * 
         */
        public Builder noInternetAdvertise(Boolean noInternetAdvertise) {
            return noInternetAdvertise(Output.of(noInternetAdvertise));
        }

        /**
         * @param prefixType Type of custom IP prefix. Should be Singular, Parent, or Child.
         * 
         * @return builder
         * 
         */
        public Builder prefixType(@Nullable Output> prefixType) {
            $.prefixType = prefixType;
            return this;
        }

        /**
         * @param prefixType Type of custom IP prefix. Should be Singular, Parent, or Child.
         * 
         * @return builder
         * 
         */
        public Builder prefixType(Either prefixType) {
            return prefixType(Output.of(prefixType));
        }

        /**
         * @param prefixType Type of custom IP prefix. Should be Singular, Parent, or Child.
         * 
         * @return builder
         * 
         */
        public Builder prefixType(String prefixType) {
            return prefixType(Either.ofLeft(prefixType));
        }

        /**
         * @param prefixType Type of custom IP prefix. Should be Singular, Parent, or Child.
         * 
         * @return builder
         * 
         */
        public Builder prefixType(CustomIpPrefixType prefixType) {
            return prefixType(Either.ofRight(prefixType));
        }

        /**
         * @param resourceGroupName The name of the resource group.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param signedMessage Signed message for WAN validation.
         * 
         * @return builder
         * 
         */
        public Builder signedMessage(@Nullable Output signedMessage) {
            $.signedMessage = signedMessage;
            return this;
        }

        /**
         * @param signedMessage Signed message for WAN validation.
         * 
         * @return builder
         * 
         */
        public Builder signedMessage(String signedMessage) {
            return signedMessage(Output.of(signedMessage));
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param zones A list of availability zones denoting the IP allocated for the resource needs to come from.
         * 
         * @return builder
         * 
         */
        public Builder zones(@Nullable Output> zones) {
            $.zones = zones;
            return this;
        }

        /**
         * @param zones A list of availability zones denoting the IP allocated for the resource needs to come from.
         * 
         * @return builder
         * 
         */
        public Builder zones(List zones) {
            return zones(Output.of(zones));
        }

        /**
         * @param zones A list of availability zones denoting the IP allocated for the resource needs to come from.
         * 
         * @return builder
         * 
         */
        public Builder zones(String... zones) {
            return zones(List.of(zones));
        }

        public CustomIPPrefixArgs build() {
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("CustomIPPrefixArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy