StaticWebAppCustomDomainArgs

data class StaticWebAppCustomDomainArgs(val domainName: Output<String>? = null, val staticWebAppId: Output<String>? = null, val validationType: Output<String>? = null) : ConvertibleToJava<StaticWebAppCustomDomainArgs>

Example Usage

CNAME validation

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 exampleStaticWebApp = new azure.appservice.StaticWebApp("example", {
name: "example",
resourceGroupName: example.name,
location: example.location,
});
const exampleCNameRecord = new azure.dns.CNameRecord("example", {
name: "my-domain",
zoneName: "contoso.com",
resourceGroupName: example.name,
ttl: 300,
record: exampleStaticWebApp.defaultHostName,
});
const exampleStaticWebAppCustomDomain = new azure.appservice.StaticWebAppCustomDomain("example", {
staticWebAppId: exampleStaticWebApp.id,
domainName: pulumi.interpolate`${exampleCNameRecord.name}.${exampleCNameRecord.zoneName}`,
validationType: "cname-delegation",
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_static_web_app = azure.appservice.StaticWebApp("example",
name="example",
resource_group_name=example.name,
location=example.location)
example_c_name_record = azure.dns.CNameRecord("example",
name="my-domain",
zone_name="contoso.com",
resource_group_name=example.name,
ttl=300,
record=example_static_web_app.default_host_name)
example_static_web_app_custom_domain = azure.appservice.StaticWebAppCustomDomain("example",
static_web_app_id=example_static_web_app.id,
domain_name=pulumi.Output.all(
name=example_c_name_record.name,
zone_name=example_c_name_record.zone_name
).apply(lambda resolved_outputs: f"{resolved_outputs['name']}&#46;{resolved_outputs['zone_name']}")
,
validation_type="cname-delegation")
using System.Collections.Generic;
using System.Linq;
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 exampleStaticWebApp = new Azure.AppService.StaticWebApp("example", new()
{
Name = "example",
ResourceGroupName = example.Name,
Location = example.Location,
});
var exampleCNameRecord = new Azure.Dns.CNameRecord("example", new()
{
Name = "my-domain",
ZoneName = "contoso.com",
ResourceGroupName = example.Name,
Ttl = 300,
Record = exampleStaticWebApp.DefaultHostName,
});
var exampleStaticWebAppCustomDomain = new Azure.AppService.StaticWebAppCustomDomain("example", new()
{
StaticWebAppId = exampleStaticWebApp.Id,
DomainName = Output.Tuple(exampleCNameRecord.Name, exampleCNameRecord.ZoneName).Apply(values =>
{
var name = values.Item1;
var zoneName = values.Item2;
return $"{name}.{zoneName}";
}),
ValidationType = "cname-delegation",
});
});
package main
import (
"fmt"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/appservice"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/dns"
"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
}
exampleStaticWebApp, err := appservice.NewStaticWebApp(ctx, "example", &appservice.StaticWebAppArgs{
Name: pulumi.String("example"),
ResourceGroupName: example.Name,
Location: example.Location,
})
if err != nil {
return err
}
exampleCNameRecord, err := dns.NewCNameRecord(ctx, "example", &dns.CNameRecordArgs{
Name: pulumi.String("my-domain"),
ZoneName: pulumi.String("contoso.com"),
ResourceGroupName: example.Name,
Ttl: pulumi.Int(300),
Record: exampleStaticWebApp.DefaultHostName,
})
if err != nil {
return err
}
_, err = appservice.NewStaticWebAppCustomDomain(ctx, "example", &appservice.StaticWebAppCustomDomainArgs{
StaticWebAppId: exampleStaticWebApp.ID(),
DomainName: pulumi.All(exampleCNameRecord.Name, exampleCNameRecord.ZoneName).ApplyT(func(_args []interface{}) (string, error) {
name := _args[0].(string)
zoneName := _args[1].(string)
return fmt.Sprintf("%v.%v", name, zoneName), nil
}).(pulumi.StringOutput),
ValidationType: pulumi.String("cname-delegation"),
})
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.appservice.StaticWebApp;
import com.pulumi.azure.appservice.StaticWebAppArgs;
import com.pulumi.azure.dns.CNameRecord;
import com.pulumi.azure.dns.CNameRecordArgs;
import com.pulumi.azure.appservice.StaticWebAppCustomDomain;
import com.pulumi.azure.appservice.StaticWebAppCustomDomainArgs;
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 exampleStaticWebApp = new StaticWebApp("exampleStaticWebApp", StaticWebAppArgs.builder()
.name("example")
.resourceGroupName(example.name())
.location(example.location())
.build());
var exampleCNameRecord = new CNameRecord("exampleCNameRecord", CNameRecordArgs.builder()
.name("my-domain")
.zoneName("contoso.com")
.resourceGroupName(example.name())
.ttl(300)
.record(exampleStaticWebApp.defaultHostName())
.build());
var exampleStaticWebAppCustomDomain = new StaticWebAppCustomDomain("exampleStaticWebAppCustomDomain", StaticWebAppCustomDomainArgs.builder()
.staticWebAppId(exampleStaticWebApp.id())
.domainName(Output.tuple(exampleCNameRecord.name(), exampleCNameRecord.zoneName()).applyValue(values -> {
var name = values.t1;
var zoneName = values.t2;
return String.format("%s.%s", name,zoneName);
}))
.validationType("cname-delegation")
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: example-resources
location: West Europe
exampleStaticWebApp:
type: azure:appservice:StaticWebApp
name: example
properties:
name: example
resourceGroupName: ${example.name}
location: ${example.location}
exampleCNameRecord:
type: azure:dns:CNameRecord
name: example
properties:
name: my-domain
zoneName: contoso.com
resourceGroupName: ${example.name}
ttl: 300
record: ${exampleStaticWebApp.defaultHostName}
exampleStaticWebAppCustomDomain:
type: azure:appservice:StaticWebAppCustomDomain
name: example
properties:
staticWebAppId: ${exampleStaticWebApp.id}
domainName: ${exampleCNameRecord.name}.${exampleCNameRecord.zoneName}
validationType: cname-delegation

TXT validation

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 exampleStaticWebApp = new azure.appservice.StaticWebApp("example", {
name: "example",
resourceGroupName: example.name,
location: example.location,
});
const exampleStaticWebAppCustomDomain = new azure.appservice.StaticWebAppCustomDomain("example", {
staticWebAppId: exampleStaticWebApp.id,
domainName: "my-domain.contoso.com",
validationType: "dns-txt-token",
});
const exampleTxtRecord = new azure.dns.TxtRecord("example", {
name: "_dnsauth.my-domain",
zoneName: "contoso.com",
resourceGroupName: example.name,
ttl: 300,
records: [{
value: exampleStaticWebAppCustomDomain.validationToken,
}],
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_static_web_app = azure.appservice.StaticWebApp("example",
name="example",
resource_group_name=example.name,
location=example.location)
example_static_web_app_custom_domain = azure.appservice.StaticWebAppCustomDomain("example",
static_web_app_id=example_static_web_app.id,
domain_name="my-domain.contoso.com",
validation_type="dns-txt-token")
example_txt_record = azure.dns.TxtRecord("example",
name="_dnsauth.my-domain",
zone_name="contoso.com",
resource_group_name=example.name,
ttl=300,
records=[{
"value": example_static_web_app_custom_domain.validation_token,
}])
using System.Collections.Generic;
using System.Linq;
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 exampleStaticWebApp = new Azure.AppService.StaticWebApp("example", new()
{
Name = "example",
ResourceGroupName = example.Name,
Location = example.Location,
});
var exampleStaticWebAppCustomDomain = new Azure.AppService.StaticWebAppCustomDomain("example", new()
{
StaticWebAppId = exampleStaticWebApp.Id,
DomainName = "my-domain.contoso.com",
ValidationType = "dns-txt-token",
});
var exampleTxtRecord = new Azure.Dns.TxtRecord("example", new()
{
Name = "_dnsauth.my-domain",
ZoneName = "contoso.com",
ResourceGroupName = example.Name,
Ttl = 300,
Records = new[]
{
new Azure.Dns.Inputs.TxtRecordRecordArgs
{
Value = exampleStaticWebAppCustomDomain.ValidationToken,
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/appservice"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/dns"
"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
}
exampleStaticWebApp, err := appservice.NewStaticWebApp(ctx, "example", &appservice.StaticWebAppArgs{
Name: pulumi.String("example"),
ResourceGroupName: example.Name,
Location: example.Location,
})
if err != nil {
return err
}
exampleStaticWebAppCustomDomain, err := appservice.NewStaticWebAppCustomDomain(ctx, "example", &appservice.StaticWebAppCustomDomainArgs{
StaticWebAppId: exampleStaticWebApp.ID(),
DomainName: pulumi.String("my-domain.contoso.com"),
ValidationType: pulumi.String("dns-txt-token"),
})
if err != nil {
return err
}
_, err = dns.NewTxtRecord(ctx, "example", &dns.TxtRecordArgs{
Name: pulumi.String("_dnsauth.my-domain"),
ZoneName: pulumi.String("contoso.com"),
ResourceGroupName: example.Name,
Ttl: pulumi.Int(300),
Records: dns.TxtRecordRecordArray{
&dns.TxtRecordRecordArgs{
Value: exampleStaticWebAppCustomDomain.ValidationToken,
},
},
})
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.appservice.StaticWebApp;
import com.pulumi.azure.appservice.StaticWebAppArgs;
import com.pulumi.azure.appservice.StaticWebAppCustomDomain;
import com.pulumi.azure.appservice.StaticWebAppCustomDomainArgs;
import com.pulumi.azure.dns.TxtRecord;
import com.pulumi.azure.dns.TxtRecordArgs;
import com.pulumi.azure.dns.inputs.TxtRecordRecordArgs;
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 exampleStaticWebApp = new StaticWebApp("exampleStaticWebApp", StaticWebAppArgs.builder()
.name("example")
.resourceGroupName(example.name())
.location(example.location())
.build());
var exampleStaticWebAppCustomDomain = new StaticWebAppCustomDomain("exampleStaticWebAppCustomDomain", StaticWebAppCustomDomainArgs.builder()
.staticWebAppId(exampleStaticWebApp.id())
.domainName("my-domain.contoso.com")
.validationType("dns-txt-token")
.build());
var exampleTxtRecord = new TxtRecord("exampleTxtRecord", TxtRecordArgs.builder()
.name("_dnsauth.my-domain")
.zoneName("contoso.com")
.resourceGroupName(example.name())
.ttl(300)
.records(TxtRecordRecordArgs.builder()
.value(exampleStaticWebAppCustomDomain.validationToken())
.build())
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: example-resources
location: West Europe
exampleStaticWebApp:
type: azure:appservice:StaticWebApp
name: example
properties:
name: example
resourceGroupName: ${example.name}
location: ${example.location}
exampleStaticWebAppCustomDomain:
type: azure:appservice:StaticWebAppCustomDomain
name: example
properties:
staticWebAppId: ${exampleStaticWebApp.id}
domainName: my-domain.contoso.com
validationType: dns-txt-token
exampleTxtRecord:
type: azure:dns:TxtRecord
name: example
properties:
name: _dnsauth.my-domain
zoneName: contoso.com
resourceGroupName: ${example.name}
ttl: 300
records:
- value: ${exampleStaticWebAppCustomDomain.validationToken}

API Providers

This resource uses the following Azure API Providers:

  • Microsoft.Web: 2023-01-01

Import

Static Site Custom Domains can be imported using the resource id, e.g.

$ pulumi import azure:appservice/staticWebAppCustomDomain:StaticWebAppCustomDomain example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.Web/staticSites/my-static-site1/customDomains/name.contoso.com

Constructors

Link copied to clipboard
constructor(domainName: Output<String>? = null, staticWebAppId: Output<String>? = null, validationType: Output<String>? = null)

Properties

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

The Domain Name which should be associated with this Static Site. Changing this forces a new Static Site Custom Domain to be created.

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

The ID of the Static Site. Changing this forces a new Static Site Custom Domain to be created.

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

Functions

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