ServicesCommunicationsGatewayArgs

data class ServicesCommunicationsGatewayArgs(val apiBridge: Output<String>? = null, val autoGeneratedDomainNameLabelScope: Output<String>? = null, val codecs: Output<String>? = null, val connectivity: Output<String>? = null, val e911Type: Output<String>? = null, val emergencyDialStrings: Output<List<String>>? = null, val location: Output<String>? = null, val microsoftTeamsVoicemailPilotNumber: Output<String>? = null, val name: Output<String>? = null, val onPremMcpEnabled: Output<Boolean>? = null, val platforms: Output<List<String>>? = null, val resourceGroupName: Output<String>? = null, val serviceLocations: Output<List<ServicesCommunicationsGatewayServiceLocationArgs>>? = null, val tags: Output<Map<String, String>>? = null) : ConvertibleToJava<ServicesCommunicationsGatewayArgs>

Manages a Voice Services Communications Gateways. !>NOTE: You must have signed an Operator Connect agreement with Microsoft to use this resource. For more information, see Prerequisites. !>NOTE: Access to Azure Communications Gateway is restricted, see Get access to Azure Communications Gateway for your Azure subscription for details.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "example-resources",
location: "West Europe",
});
const exampleServicesCommunicationsGateway = new azure.voice.ServicesCommunicationsGateway("example", {
name: "example-vcg",
location: "West Europe",
resourceGroupName: example.name,
connectivity: "PublicAddress",
codecs: "PCMA",
e911Type: "DirectToEsrp",
platforms: [
"OperatorConnect",
"TeamsPhoneMobile",
],
serviceLocations: [
{
location: "eastus",
allowedMediaSourceAddressPrefixes: ["10&#46;1&#46;2&#46;0/24"],
allowedSignalingSourceAddressPrefixes: ["10&#46;1&#46;1&#46;0/24"],
esrpAddresses: ["198&#46;51&#46;100&#46;3"],
operatorAddresses: ["198&#46;51&#46;100&#46;1"],
},
{
location: "eastus2",
allowedMediaSourceAddressPrefixes: ["10&#46;2&#46;2&#46;0/24"],
allowedSignalingSourceAddressPrefixes: ["10&#46;2&#46;1&#46;0/24"],
esrpAddresses: ["198&#46;51&#46;100&#46;4"],
operatorAddresses: ["198&#46;51&#46;100&#46;2"],
},
],
autoGeneratedDomainNameLabelScope: "SubscriptionReuse",
apiBridge: JSON.stringify({}),
emergencyDialStrings: [
"911",
"933",
],
onPremMcpEnabled: false,
tags: {
key: "value",
},
microsoftTeamsVoicemailPilotNumber: "1",
});
import pulumi
import json
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_services_communications_gateway = azure.voice.ServicesCommunicationsGateway("example",
name="example-vcg",
location="West Europe",
resource_group_name=example.name,
connectivity="PublicAddress",
codecs="PCMA",
e911_type="DirectToEsrp",
platforms=[
"OperatorConnect",
"TeamsPhoneMobile",
],
service_locations=[
{
"location": "eastus",
"allowed_media_source_address_prefixes": ["10&#46;1&#46;2&#46;0/24"],
"allowed_signaling_source_address_prefixes": ["10&#46;1&#46;1&#46;0/24"],
"esrp_addresses": ["198&#46;51&#46;100&#46;3"],
"operator_addresses": ["198&#46;51&#46;100&#46;1"],
},
{
"location": "eastus2",
"allowed_media_source_address_prefixes": ["10&#46;2&#46;2&#46;0/24"],
"allowed_signaling_source_address_prefixes": ["10&#46;2&#46;1&#46;0/24"],
"esrp_addresses": ["198&#46;51&#46;100&#46;4"],
"operator_addresses": ["198&#46;51&#46;100&#46;2"],
},
],
auto_generated_domain_name_label_scope="SubscriptionReuse",
api_bridge=json.dumps({}),
emergency_dial_strings=[
"911",
"933",
],
on_prem_mcp_enabled=False,
tags={
"key": "value",
},
microsoft_teams_voicemail_pilot_number="1")
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Pulumi;
using Azure = Pulumi.Azure;
return await Deployment.RunAsync(() =>
{
var example = new Azure.Core.ResourceGroup("example", new()
{
Name = "example-resources",
Location = "West Europe",
});
var exampleServicesCommunicationsGateway = new Azure.Voice.ServicesCommunicationsGateway("example", new()
{
Name = "example-vcg",
Location = "West Europe",
ResourceGroupName = example.Name,
Connectivity = "PublicAddress",
Codecs = "PCMA",
E911Type = "DirectToEsrp",
Platforms = new[]
{
"OperatorConnect",
"TeamsPhoneMobile",
},
ServiceLocations = new[]
{
new Azure.Voice.Inputs.ServicesCommunicationsGatewayServiceLocationArgs
{
Location = "eastus",
AllowedMediaSourceAddressPrefixes = new[]
{
"10.1.2.0/24",
},
AllowedSignalingSourceAddressPrefixes = new[]
{
"10.1.1.0/24",
},
EsrpAddresses = new[]
{
"198.51.100.3",
},
OperatorAddresses = new[]
{
"198.51.100.1",
},
},
new Azure.Voice.Inputs.ServicesCommunicationsGatewayServiceLocationArgs
{
Location = "eastus2",
AllowedMediaSourceAddressPrefixes = new[]
{
"10.2.2.0/24",
},
AllowedSignalingSourceAddressPrefixes = new[]
{
"10.2.1.0/24",
},
EsrpAddresses = new[]
{
"198.51.100.4",
},
OperatorAddresses = new[]
{
"198.51.100.2",
},
},
},
AutoGeneratedDomainNameLabelScope = "SubscriptionReuse",
ApiBridge = JsonSerializer.Serialize(new Dictionary<string, object?>
{
}),
EmergencyDialStrings = new[]
{
"911",
"933",
},
OnPremMcpEnabled = false,
Tags =
{
{ "key", "value" },
},
MicrosoftTeamsVoicemailPilotNumber = "1",
});
});
package main
import (
"encoding/json"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/voice"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("example-resources"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
tmpJSON0, err := json.Marshal(map[string]interface{}{})
if err != nil {
return err
}
json0 := string(tmpJSON0)
_, err = voice.NewServicesCommunicationsGateway(ctx, "example", &voice.ServicesCommunicationsGatewayArgs{
Name: pulumi.String("example-vcg"),
Location: pulumi.String("West Europe"),
ResourceGroupName: example.Name,
Connectivity: pulumi.String("PublicAddress"),
Codecs: pulumi.String("PCMA"),
E911Type: pulumi.String("DirectToEsrp"),
Platforms: pulumi.StringArray{
pulumi.String("OperatorConnect"),
pulumi.String("TeamsPhoneMobile"),
},
ServiceLocations: voice.ServicesCommunicationsGatewayServiceLocationArray{
&voice.ServicesCommunicationsGatewayServiceLocationArgs{
Location: pulumi.String("eastus"),
AllowedMediaSourceAddressPrefixes: pulumi.StringArray{
pulumi.String("10.1.2.0/24"),
},
AllowedSignalingSourceAddressPrefixes: pulumi.StringArray{
pulumi.String("10.1.1.0/24"),
},
EsrpAddresses: pulumi.StringArray{
pulumi.String("198.51.100.3"),
},
OperatorAddresses: pulumi.StringArray{
pulumi.String("198.51.100.1"),
},
},
&voice.ServicesCommunicationsGatewayServiceLocationArgs{
Location: pulumi.String("eastus2"),
AllowedMediaSourceAddressPrefixes: pulumi.StringArray{
pulumi.String("10.2.2.0/24"),
},
AllowedSignalingSourceAddressPrefixes: pulumi.StringArray{
pulumi.String("10.2.1.0/24"),
},
EsrpAddresses: pulumi.StringArray{
pulumi.String("198.51.100.4"),
},
OperatorAddresses: pulumi.StringArray{
pulumi.String("198.51.100.2"),
},
},
},
AutoGeneratedDomainNameLabelScope: pulumi.String("SubscriptionReuse"),
ApiBridge: pulumi.String(json0),
EmergencyDialStrings: pulumi.StringArray{
pulumi.String("911"),
pulumi.String("933"),
},
OnPremMcpEnabled: pulumi.Bool(false),
Tags: pulumi.StringMap{
"key": pulumi.String("value"),
},
MicrosoftTeamsVoicemailPilotNumber: pulumi.String("1"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.voice.ServicesCommunicationsGateway;
import com.pulumi.azure.voice.ServicesCommunicationsGatewayArgs;
import com.pulumi.azure.voice.inputs.ServicesCommunicationsGatewayServiceLocationArgs;
import static com.pulumi.codegen.internal.Serialization.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("example-resources")
.location("West Europe")
.build());
var exampleServicesCommunicationsGateway = new ServicesCommunicationsGateway("exampleServicesCommunicationsGateway", ServicesCommunicationsGatewayArgs.builder()
.name("example-vcg")
.location("West Europe")
.resourceGroupName(example.name())
.connectivity("PublicAddress")
.codecs("PCMA")
.e911Type("DirectToEsrp")
.platforms(
"OperatorConnect",
"TeamsPhoneMobile")
.serviceLocations(
ServicesCommunicationsGatewayServiceLocationArgs.builder()
.location("eastus")
.allowedMediaSourceAddressPrefixes("10.1.2.0/24")
.allowedSignalingSourceAddressPrefixes("10.1.1.0/24")
.esrpAddresses("198.51.100.3")
.operatorAddresses("198.51.100.1")
.build(),
ServicesCommunicationsGatewayServiceLocationArgs.builder()
.location("eastus2")
.allowedMediaSourceAddressPrefixes("10.2.2.0/24")
.allowedSignalingSourceAddressPrefixes("10.2.1.0/24")
.esrpAddresses("198.51.100.4")
.operatorAddresses("198.51.100.2")
.build())
.autoGeneratedDomainNameLabelScope("SubscriptionReuse")
.apiBridge(serializeJson(
jsonObject(
)))
.emergencyDialStrings(
"911",
"933")
.onPremMcpEnabled(false)
.tags(Map.of("key", "value"))
.microsoftTeamsVoicemailPilotNumber("1")
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: example-resources
location: West Europe
exampleServicesCommunicationsGateway:
type: azure:voice:ServicesCommunicationsGateway
name: example
properties:
name: example-vcg
location: West Europe
resourceGroupName: ${example.name}
connectivity: PublicAddress
codecs: PCMA
e911Type: DirectToEsrp
platforms:
- OperatorConnect
- TeamsPhoneMobile
serviceLocations:
- location: eastus
allowedMediaSourceAddressPrefixes:
- 10.1.2.0/24
allowedSignalingSourceAddressPrefixes:
- 10.1.1.0/24
esrpAddresses:
- 198.51.100.3
operatorAddresses:
- 198.51.100.1
- location: eastus2
allowedMediaSourceAddressPrefixes:
- 10.2.2.0/24
allowedSignalingSourceAddressPrefixes:
- 10.2.1.0/24
esrpAddresses:
- 198.51.100.4
operatorAddresses:
- 198.51.100.2
autoGeneratedDomainNameLabelScope: SubscriptionReuse
apiBridge:
fn::toJSON: {}
emergencyDialStrings:
- '911'
- '933'
onPremMcpEnabled: false
tags:
key: value
microsoftTeamsVoicemailPilotNumber: '1'

Import

Voice Services Communications Gateways can be imported using the resource id, e.g.

$ pulumi import azure:voice/servicesCommunicationsGateway:ServicesCommunicationsGateway example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.VoiceServices/communicationsGateways/communicationsGateway1

Constructors

Link copied to clipboard
constructor(apiBridge: Output<String>? = null, autoGeneratedDomainNameLabelScope: Output<String>? = null, codecs: Output<String>? = null, connectivity: Output<String>? = null, e911Type: Output<String>? = null, emergencyDialStrings: Output<List<String>>? = null, location: Output<String>? = null, microsoftTeamsVoicemailPilotNumber: Output<String>? = null, name: Output<String>? = null, onPremMcpEnabled: Output<Boolean>? = null, platforms: Output<List<String>>? = null, resourceGroupName: Output<String>? = null, serviceLocations: Output<List<ServicesCommunicationsGatewayServiceLocationArgs>>? = null, tags: Output<Map<String, String>>? = null)

Properties

Link copied to clipboard
val apiBridge: Output<String>? = null

Details of API bridge functionality, if required.

Link copied to clipboard

Specifies the scope at which the auto-generated domain name can be re-used. Possible values are TenantReuse, SubscriptionReuse, ResourceGroupReuse and NoReuse . Changing this forces a new resource to be created. Defaults to TenantReuse.

Link copied to clipboard
val codecs: Output<String>? = null

The voice codecs expected for communication with Teams. Possible values are PCMA, PCMU,G722,G722_2,SILK_8 and SILK_16.

Link copied to clipboard
val connectivity: Output<String>? = null

How to connect back to the operator network, e.g. MAPS. Possible values is PublicAddress. Changing this forces a new Voice Services Communications Gateways to be created.

Link copied to clipboard
val e911Type: Output<String>? = null

How to handle 911 calls. Possible values are Standard and DirectToEsrp.

Link copied to clipboard
val emergencyDialStrings: Output<List<String>>? = null

A list of dial strings used for emergency calling.

Link copied to clipboard
val location: Output<String>? = null

Specifies the Azure Region where the Voice Services Communications Gateways should exist. Changing this forces a new resource to be created.

Link copied to clipboard

This number is used in Teams Phone Mobile scenarios for access to the voicemail IVR from the native dialer.

Link copied to clipboard
val name: Output<String>? = null

Specifies the name which should be used for this Voice Services Communications Gateways. Changing this forces a new resource to be created.

Link copied to clipboard
val onPremMcpEnabled: Output<Boolean>? = null

Whether an on-premises Mobile Control Point is in use.

Link copied to clipboard
val platforms: Output<List<String>>? = null

The Voice Services Communications GatewaysAvailable supports platform types. Possible values are OperatorConnect, TeamsPhoneMobile.

Link copied to clipboard
val resourceGroupName: Output<String>? = null

Specifies the name of the Resource Group where the Voice Services Communications Gateways should exist. Changing this forces a new resource to be created.

Link copied to clipboard

A service_location block as defined below.

Link copied to clipboard
val tags: Output<Map<String, String>>? = null

A mapping of tags which should be assigned to the Voice Services Communications Gateways.

Functions

Link copied to clipboard
open override fun toJava(): ServicesCommunicationsGatewayArgs