CustomDomain

class CustomDomain : KotlinCustomResource

Manages an Azure Web PubSub Custom Domain.

Example Usage

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.CoreFunctions;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.webpubsub.Service;
import com.pulumi.azure.webpubsub.ServiceArgs;
import com.pulumi.azure.webpubsub.inputs.ServiceIdentityArgs;
import com.pulumi.azure.keyvault.KeyVault;
import com.pulumi.azure.keyvault.KeyVaultArgs;
import com.pulumi.azure.keyvault.inputs.KeyVaultAccessPolicyArgs;
import com.pulumi.azure.keyvault.Certificate;
import com.pulumi.azure.keyvault.CertificateArgs;
import com.pulumi.azure.keyvault.inputs.CertificateCertificateArgs;
import com.pulumi.azure.webpubsub.CustomCertificate;
import com.pulumi.azure.webpubsub.CustomCertificateArgs;
import com.pulumi.azure.webpubsub.CustomDomain;
import com.pulumi.azure.webpubsub.CustomDomainArgs;
import com.pulumi.resources.CustomResourceOptions;
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) {
final var current = CoreFunctions.getClientConfig();
var example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("example-resources")
.location("West Europe")
.build());
var exampleService = new Service("exampleService", ServiceArgs.builder()
.name("example-webpubsub")
.location(testAzurermResourceGroup.location())
.resourceGroupName(testAzurermResourceGroup.name())
.sku(Map.ofEntries(
Map.entry("name", "Premium_P1"),
Map.entry("capacity", 1)
))
.identity(ServiceIdentityArgs.builder()
.type("SystemAssigned")
.build())
.build());
var exampleKeyVault = new KeyVault("exampleKeyVault", KeyVaultArgs.builder()
.name("examplekeyvault")
.location(example.location())
.resourceGroupName(example.name())
.tenantId(current.applyValue(getClientConfigResult -> getClientConfigResult.tenantId()))
.skuName("premium")
.accessPolicies(
KeyVaultAccessPolicyArgs.builder()
.tenantId(current.applyValue(getClientConfigResult -> getClientConfigResult.tenantId()))
.objectId(current.applyValue(getClientConfigResult -> getClientConfigResult.objectId()))
.certificatePermissions(
"Create",
"Get",
"List")
.secretPermissions(
"Get",
"List")
.build(),
KeyVaultAccessPolicyArgs.builder()
.tenantId(current.applyValue(getClientConfigResult -> getClientConfigResult.tenantId()))
.objectId(testAzurermWebPubsub.identity()[0].principalId())
.certificatePermissions(
"Create",
"Get",
"List")
.secretPermissions(
"Get",
"List")
.build())
.build());
var exampleCertificate = new Certificate("exampleCertificate", CertificateArgs.builder()
.name("imported-cert")
.keyVaultId(exampleKeyVault.id())
.certificate(CertificateCertificateArgs.builder()
.contents(StdFunctions.filebase64(Filebase64Args.builder()
.input("certificate-to-import.pfx")
.build()).result())
.password("")
.build())
.build());
var test = new CustomCertificate("test", CustomCertificateArgs.builder()
.name("example-cert")
.webPubsubId(exampleService.id())
.customCertificateId(exampleCertificate.id())
.build(), CustomResourceOptions.builder()
.dependsOn(exampleAzurermKeyVaultAccessPolicy)
.build());
var testCustomDomain = new CustomDomain("testCustomDomain", CustomDomainArgs.builder()
.name("example-domain")
.domainName("tftest.com")
.webPubsubId(testAzurermWebPubsub.id())
.webPubsubCustomCertificateId(test.id())
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: example-resources
location: West Europe
exampleService:
type: azure:webpubsub:Service
name: example
properties:
name: example-webpubsub
location: ${testAzurermResourceGroup.location}
resourceGroupName: ${testAzurermResourceGroup.name}
sku:
- name: Premium_P1
capacity: 1
identity:
type: SystemAssigned
exampleKeyVault:
type: azure:keyvault:KeyVault
name: example
properties:
name: examplekeyvault
location: ${example.location}
resourceGroupName: ${example.name}
tenantId: ${current.tenantId}
skuName: premium
accessPolicies:
- tenantId: ${current.tenantId}
objectId: ${current.objectId}
certificatePermissions:
- Create
- Get
- List
secretPermissions:
- Get
- List
- tenantId: ${current.tenantId}
objectId: ${testAzurermWebPubsub.identity[0].principalId}
certificatePermissions:
- Create
- Get
- List
secretPermissions:
- Get
- List
exampleCertificate:
type: azure:keyvault:Certificate
name: example
properties:
name: imported-cert
keyVaultId: ${exampleKeyVault.id}
certificate:
contents:
fn::invoke:
function: std:filebase64
arguments:
input: certificate-to-import.pfx
return: result
password: ""
test:
type: azure:webpubsub:CustomCertificate
properties:
name: example-cert
webPubsubId: ${exampleService.id}
customCertificateId: ${exampleCertificate.id}
options:
dependsOn:
- ${exampleAzurermKeyVaultAccessPolicy}
testCustomDomain:
type: azure:webpubsub:CustomDomain
name: test
properties:
name: example-domain
domainName: tftest.com
webPubsubId: ${testAzurermWebPubsub.id}
webPubsubCustomCertificateId: ${test.id}
variables:
current:
fn::invoke:
function: azure:core:getClientConfig
arguments: {}

Import

Custom Domain for a Web PubSub service can be imported using the resource id, e.g.

$ pulumi import azure:webpubsub/customDomain:CustomDomain example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.SignalRService/webPubSub/webpubsub1/customDomains/customDomain1

Properties

Link copied to clipboard
val domainName: Output<String>

Specifies the custom domain name of the Web PubSub Custom Domain. Changing this forces a new resource to be created.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val name: Output<String>

Specifies the name of the Web PubSub Custom Domain. Changing this forces a new resource to be created.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val urn: Output<String>
Link copied to clipboard

Specifies the Web PubSub Custom Certificate ID of the Web PubSub Custom Domain. Changing this forces a new resource to be created.

Link copied to clipboard
val webPubsubId: Output<String>

Specifies the Web PubSub ID of the Web PubSub Custom Domain. Changing this forces a new resource to be created.