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

com.pulumi.azurenative.voiceservices.CommunicationsGatewayArgs Maven / Gradle / Ivy

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

import com.pulumi.azurenative.voiceservices.enums.AutoGeneratedDomainNameLabelScope;
import com.pulumi.azurenative.voiceservices.enums.CommunicationsPlatform;
import com.pulumi.azurenative.voiceservices.enums.Connectivity;
import com.pulumi.azurenative.voiceservices.enums.E911Type;
import com.pulumi.azurenative.voiceservices.enums.TeamsCodecs;
import com.pulumi.azurenative.voiceservices.inputs.ManagedServiceIdentityArgs;
import com.pulumi.azurenative.voiceservices.inputs.ServiceRegionPropertiesArgs;
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.Boolean;
import java.lang.Object;
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 CommunicationsGatewayArgs extends com.pulumi.resources.ResourceArgs {

    public static final CommunicationsGatewayArgs Empty = new CommunicationsGatewayArgs();

    /**
     * Details of API bridge functionality, if required
     * 
     */
    @Import(name="apiBridge")
    private @Nullable Output apiBridge;

    /**
     * @return Details of API bridge functionality, if required
     * 
     */
    public Optional> apiBridge() {
        return Optional.ofNullable(this.apiBridge);
    }

    /**
     * The scope at which the auto-generated domain name can be re-used
     * 
     */
    @Import(name="autoGeneratedDomainNameLabelScope")
    private @Nullable Output> autoGeneratedDomainNameLabelScope;

    /**
     * @return The scope at which the auto-generated domain name can be re-used
     * 
     */
    public Optional>> autoGeneratedDomainNameLabelScope() {
        return Optional.ofNullable(this.autoGeneratedDomainNameLabelScope);
    }

    /**
     * Voice codecs to support
     * 
     */
    @Import(name="codecs", required=true)
    private Output>> codecs;

    /**
     * @return Voice codecs to support
     * 
     */
    public Output>> codecs() {
        return this.codecs;
    }

    /**
     * Unique identifier for this deployment
     * 
     */
    @Import(name="communicationsGatewayName")
    private @Nullable Output communicationsGatewayName;

    /**
     * @return Unique identifier for this deployment
     * 
     */
    public Optional> communicationsGatewayName() {
        return Optional.ofNullable(this.communicationsGatewayName);
    }

    /**
     * How to connect back to the operator network, e.g. MAPS
     * 
     */
    @Import(name="connectivity", required=true)
    private Output> connectivity;

    /**
     * @return How to connect back to the operator network, e.g. MAPS
     * 
     */
    public Output> connectivity() {
        return this.connectivity;
    }

    /**
     * How to handle 911 calls
     * 
     */
    @Import(name="e911Type", required=true)
    private Output> e911Type;

    /**
     * @return How to handle 911 calls
     * 
     */
    public Output> e911Type() {
        return this.e911Type;
    }

    /**
     * A list of dial strings used for emergency calling.
     * 
     */
    @Import(name="emergencyDialStrings")
    private @Nullable Output> emergencyDialStrings;

    /**
     * @return A list of dial strings used for emergency calling.
     * 
     */
    public Optional>> emergencyDialStrings() {
        return Optional.ofNullable(this.emergencyDialStrings);
    }

    /**
     * The managed service identities assigned to this resource.
     * 
     */
    @Import(name="identity")
    private @Nullable Output identity;

    /**
     * @return The managed service identities assigned to this resource.
     * 
     */
    public Optional> identity() {
        return Optional.ofNullable(this.identity);
    }

    /**
     * Whether an integrated Mobile Control Point is in use.
     * 
     */
    @Import(name="integratedMcpEnabled")
    private @Nullable Output integratedMcpEnabled;

    /**
     * @return Whether an integrated Mobile Control Point is in use.
     * 
     */
    public Optional> integratedMcpEnabled() {
        return Optional.ofNullable(this.integratedMcpEnabled);
    }

    /**
     * The geo-location where the resource lives
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The geo-location where the resource lives
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Whether an on-premises Mobile Control Point is in use.
     * 
     */
    @Import(name="onPremMcpEnabled")
    private @Nullable Output onPremMcpEnabled;

    /**
     * @return Whether an on-premises Mobile Control Point is in use.
     * 
     */
    public Optional> onPremMcpEnabled() {
        return Optional.ofNullable(this.onPremMcpEnabled);
    }

    /**
     * What platforms to support
     * 
     */
    @Import(name="platforms", required=true)
    private Output>> platforms;

    /**
     * @return What platforms to support
     * 
     */
    public Output>> platforms() {
        return this.platforms;
    }

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

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

    /**
     * The regions in which to deploy the resources needed for Teams Calling
     * 
     */
    @Import(name="serviceLocations", required=true)
    private Output> serviceLocations;

    /**
     * @return The regions in which to deploy the resources needed for Teams Calling
     * 
     */
    public Output> serviceLocations() {
        return this.serviceLocations;
    }

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

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

    /**
     * This number is used in Teams Phone Mobile scenarios for access to the voicemail IVR from the native dialer.
     * 
     */
    @Import(name="teamsVoicemailPilotNumber")
    private @Nullable Output teamsVoicemailPilotNumber;

    /**
     * @return This number is used in Teams Phone Mobile scenarios for access to the voicemail IVR from the native dialer.
     * 
     */
    public Optional> teamsVoicemailPilotNumber() {
        return Optional.ofNullable(this.teamsVoicemailPilotNumber);
    }

    private CommunicationsGatewayArgs() {}

    private CommunicationsGatewayArgs(CommunicationsGatewayArgs $) {
        this.apiBridge = $.apiBridge;
        this.autoGeneratedDomainNameLabelScope = $.autoGeneratedDomainNameLabelScope;
        this.codecs = $.codecs;
        this.communicationsGatewayName = $.communicationsGatewayName;
        this.connectivity = $.connectivity;
        this.e911Type = $.e911Type;
        this.emergencyDialStrings = $.emergencyDialStrings;
        this.identity = $.identity;
        this.integratedMcpEnabled = $.integratedMcpEnabled;
        this.location = $.location;
        this.onPremMcpEnabled = $.onPremMcpEnabled;
        this.platforms = $.platforms;
        this.resourceGroupName = $.resourceGroupName;
        this.serviceLocations = $.serviceLocations;
        this.tags = $.tags;
        this.teamsVoicemailPilotNumber = $.teamsVoicemailPilotNumber;
    }

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

    public static final class Builder {
        private CommunicationsGatewayArgs $;

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

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

        /**
         * @param apiBridge Details of API bridge functionality, if required
         * 
         * @return builder
         * 
         */
        public Builder apiBridge(@Nullable Output apiBridge) {
            $.apiBridge = apiBridge;
            return this;
        }

        /**
         * @param apiBridge Details of API bridge functionality, if required
         * 
         * @return builder
         * 
         */
        public Builder apiBridge(Object apiBridge) {
            return apiBridge(Output.of(apiBridge));
        }

        /**
         * @param autoGeneratedDomainNameLabelScope The scope at which the auto-generated domain name can be re-used
         * 
         * @return builder
         * 
         */
        public Builder autoGeneratedDomainNameLabelScope(@Nullable Output> autoGeneratedDomainNameLabelScope) {
            $.autoGeneratedDomainNameLabelScope = autoGeneratedDomainNameLabelScope;
            return this;
        }

        /**
         * @param autoGeneratedDomainNameLabelScope The scope at which the auto-generated domain name can be re-used
         * 
         * @return builder
         * 
         */
        public Builder autoGeneratedDomainNameLabelScope(Either autoGeneratedDomainNameLabelScope) {
            return autoGeneratedDomainNameLabelScope(Output.of(autoGeneratedDomainNameLabelScope));
        }

        /**
         * @param autoGeneratedDomainNameLabelScope The scope at which the auto-generated domain name can be re-used
         * 
         * @return builder
         * 
         */
        public Builder autoGeneratedDomainNameLabelScope(String autoGeneratedDomainNameLabelScope) {
            return autoGeneratedDomainNameLabelScope(Either.ofLeft(autoGeneratedDomainNameLabelScope));
        }

        /**
         * @param autoGeneratedDomainNameLabelScope The scope at which the auto-generated domain name can be re-used
         * 
         * @return builder
         * 
         */
        public Builder autoGeneratedDomainNameLabelScope(AutoGeneratedDomainNameLabelScope autoGeneratedDomainNameLabelScope) {
            return autoGeneratedDomainNameLabelScope(Either.ofRight(autoGeneratedDomainNameLabelScope));
        }

        /**
         * @param codecs Voice codecs to support
         * 
         * @return builder
         * 
         */
        public Builder codecs(Output>> codecs) {
            $.codecs = codecs;
            return this;
        }

        /**
         * @param codecs Voice codecs to support
         * 
         * @return builder
         * 
         */
        public Builder codecs(List> codecs) {
            return codecs(Output.of(codecs));
        }

        /**
         * @param codecs Voice codecs to support
         * 
         * @return builder
         * 
         */
        public Builder codecs(Either... codecs) {
            return codecs(List.of(codecs));
        }

        /**
         * @param communicationsGatewayName Unique identifier for this deployment
         * 
         * @return builder
         * 
         */
        public Builder communicationsGatewayName(@Nullable Output communicationsGatewayName) {
            $.communicationsGatewayName = communicationsGatewayName;
            return this;
        }

        /**
         * @param communicationsGatewayName Unique identifier for this deployment
         * 
         * @return builder
         * 
         */
        public Builder communicationsGatewayName(String communicationsGatewayName) {
            return communicationsGatewayName(Output.of(communicationsGatewayName));
        }

        /**
         * @param connectivity How to connect back to the operator network, e.g. MAPS
         * 
         * @return builder
         * 
         */
        public Builder connectivity(Output> connectivity) {
            $.connectivity = connectivity;
            return this;
        }

        /**
         * @param connectivity How to connect back to the operator network, e.g. MAPS
         * 
         * @return builder
         * 
         */
        public Builder connectivity(Either connectivity) {
            return connectivity(Output.of(connectivity));
        }

        /**
         * @param connectivity How to connect back to the operator network, e.g. MAPS
         * 
         * @return builder
         * 
         */
        public Builder connectivity(String connectivity) {
            return connectivity(Either.ofLeft(connectivity));
        }

        /**
         * @param connectivity How to connect back to the operator network, e.g. MAPS
         * 
         * @return builder
         * 
         */
        public Builder connectivity(Connectivity connectivity) {
            return connectivity(Either.ofRight(connectivity));
        }

        /**
         * @param e911Type How to handle 911 calls
         * 
         * @return builder
         * 
         */
        public Builder e911Type(Output> e911Type) {
            $.e911Type = e911Type;
            return this;
        }

        /**
         * @param e911Type How to handle 911 calls
         * 
         * @return builder
         * 
         */
        public Builder e911Type(Either e911Type) {
            return e911Type(Output.of(e911Type));
        }

        /**
         * @param e911Type How to handle 911 calls
         * 
         * @return builder
         * 
         */
        public Builder e911Type(String e911Type) {
            return e911Type(Either.ofLeft(e911Type));
        }

        /**
         * @param e911Type How to handle 911 calls
         * 
         * @return builder
         * 
         */
        public Builder e911Type(E911Type e911Type) {
            return e911Type(Either.ofRight(e911Type));
        }

        /**
         * @param emergencyDialStrings A list of dial strings used for emergency calling.
         * 
         * @return builder
         * 
         */
        public Builder emergencyDialStrings(@Nullable Output> emergencyDialStrings) {
            $.emergencyDialStrings = emergencyDialStrings;
            return this;
        }

        /**
         * @param emergencyDialStrings A list of dial strings used for emergency calling.
         * 
         * @return builder
         * 
         */
        public Builder emergencyDialStrings(List emergencyDialStrings) {
            return emergencyDialStrings(Output.of(emergencyDialStrings));
        }

        /**
         * @param emergencyDialStrings A list of dial strings used for emergency calling.
         * 
         * @return builder
         * 
         */
        public Builder emergencyDialStrings(String... emergencyDialStrings) {
            return emergencyDialStrings(List.of(emergencyDialStrings));
        }

        /**
         * @param identity The managed service identities assigned to this resource.
         * 
         * @return builder
         * 
         */
        public Builder identity(@Nullable Output identity) {
            $.identity = identity;
            return this;
        }

        /**
         * @param identity The managed service identities assigned to this resource.
         * 
         * @return builder
         * 
         */
        public Builder identity(ManagedServiceIdentityArgs identity) {
            return identity(Output.of(identity));
        }

        /**
         * @param integratedMcpEnabled Whether an integrated Mobile Control Point is in use.
         * 
         * @return builder
         * 
         */
        public Builder integratedMcpEnabled(@Nullable Output integratedMcpEnabled) {
            $.integratedMcpEnabled = integratedMcpEnabled;
            return this;
        }

        /**
         * @param integratedMcpEnabled Whether an integrated Mobile Control Point is in use.
         * 
         * @return builder
         * 
         */
        public Builder integratedMcpEnabled(Boolean integratedMcpEnabled) {
            return integratedMcpEnabled(Output.of(integratedMcpEnabled));
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param onPremMcpEnabled Whether an on-premises Mobile Control Point is in use.
         * 
         * @return builder
         * 
         */
        public Builder onPremMcpEnabled(@Nullable Output onPremMcpEnabled) {
            $.onPremMcpEnabled = onPremMcpEnabled;
            return this;
        }

        /**
         * @param onPremMcpEnabled Whether an on-premises Mobile Control Point is in use.
         * 
         * @return builder
         * 
         */
        public Builder onPremMcpEnabled(Boolean onPremMcpEnabled) {
            return onPremMcpEnabled(Output.of(onPremMcpEnabled));
        }

        /**
         * @param platforms What platforms to support
         * 
         * @return builder
         * 
         */
        public Builder platforms(Output>> platforms) {
            $.platforms = platforms;
            return this;
        }

        /**
         * @param platforms What platforms to support
         * 
         * @return builder
         * 
         */
        public Builder platforms(List> platforms) {
            return platforms(Output.of(platforms));
        }

        /**
         * @param platforms What platforms to support
         * 
         * @return builder
         * 
         */
        public Builder platforms(Either... platforms) {
            return platforms(List.of(platforms));
        }

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

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

        /**
         * @param serviceLocations The regions in which to deploy the resources needed for Teams Calling
         * 
         * @return builder
         * 
         */
        public Builder serviceLocations(Output> serviceLocations) {
            $.serviceLocations = serviceLocations;
            return this;
        }

        /**
         * @param serviceLocations The regions in which to deploy the resources needed for Teams Calling
         * 
         * @return builder
         * 
         */
        public Builder serviceLocations(List serviceLocations) {
            return serviceLocations(Output.of(serviceLocations));
        }

        /**
         * @param serviceLocations The regions in which to deploy the resources needed for Teams Calling
         * 
         * @return builder
         * 
         */
        public Builder serviceLocations(ServiceRegionPropertiesArgs... serviceLocations) {
            return serviceLocations(List.of(serviceLocations));
        }

        /**
         * @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 teamsVoicemailPilotNumber This number is used in Teams Phone Mobile scenarios for access to the voicemail IVR from the native dialer.
         * 
         * @return builder
         * 
         */
        public Builder teamsVoicemailPilotNumber(@Nullable Output teamsVoicemailPilotNumber) {
            $.teamsVoicemailPilotNumber = teamsVoicemailPilotNumber;
            return this;
        }

        /**
         * @param teamsVoicemailPilotNumber This number is used in Teams Phone Mobile scenarios for access to the voicemail IVR from the native dialer.
         * 
         * @return builder
         * 
         */
        public Builder teamsVoicemailPilotNumber(String teamsVoicemailPilotNumber) {
            return teamsVoicemailPilotNumber(Output.of(teamsVoicemailPilotNumber));
        }

        public CommunicationsGatewayArgs build() {
            $.autoGeneratedDomainNameLabelScope = Codegen.stringProp("autoGeneratedDomainNameLabelScope").left(AutoGeneratedDomainNameLabelScope.class).output().arg($.autoGeneratedDomainNameLabelScope).def("TenantReuse").getNullable();
            if ($.codecs == null) {
                throw new MissingRequiredPropertyException("CommunicationsGatewayArgs", "codecs");
            }
            if ($.connectivity == null) {
                throw new MissingRequiredPropertyException("CommunicationsGatewayArgs", "connectivity");
            }
            if ($.e911Type == null) {
                throw new MissingRequiredPropertyException("CommunicationsGatewayArgs", "e911Type");
            }
            $.integratedMcpEnabled = Codegen.booleanProp("integratedMcpEnabled").output().arg($.integratedMcpEnabled).def(false).getNullable();
            $.onPremMcpEnabled = Codegen.booleanProp("onPremMcpEnabled").output().arg($.onPremMcpEnabled).def(false).getNullable();
            if ($.platforms == null) {
                throw new MissingRequiredPropertyException("CommunicationsGatewayArgs", "platforms");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("CommunicationsGatewayArgs", "resourceGroupName");
            }
            if ($.serviceLocations == null) {
                throw new MissingRequiredPropertyException("CommunicationsGatewayArgs", "serviceLocations");
            }
            return $;
        }
    }

}