1. Packages
  2. Fastly Provider
  3. API Docs
  4. TlsSubscription
Fastly v11.2.0 published on Friday, Nov 21, 2025 by Pulumi
fastly logo
Fastly v11.2.0 published on Friday, Nov 21, 2025 by Pulumi

    Enables TLS on a domain using a certificate managed by Fastly.

    DNS records need to be modified on the domain being secured, in order to respond to the ACME domain ownership challenge.

    There are two options for doing this: the managed_dns_challenges, which is the default method; and the managed_http_challenges, which points production traffic to Fastly.

    See the Fastly documentation for more information on verifying domain ownership.

    The examples below demonstrate usage with AWS Route53 to configure DNS, and the fastly.TlsSubscriptionValidation resource to wait for validation to complete.

    Example Usage

    Basic usage:

    The following example demonstrates how to configure two subdomains (e.g. a.example.com, b.example.com).

    The workflow configures a fastly.TlsSubscription resource, then a aws_route53_record resource for handling the creation of the ‘challenge’ DNS records (e.g. _acme-challenge.a.example.com and _acme-challenge.b.example.com).

    We configure the fastly.TlsSubscriptionValidation resource, which blocks other resources until the challenge DNS records have been validated by Fastly.

    Once the validation has been successful, the configured fastly.getTlsConfiguration data source will filter the available results looking for an appropriate TLS configuration object. If that filtering process is successful, then the subsequent aws_route53_record resources (for configuring the subdomains) will be executed using the returned TLS configuration data.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    import * as fastly from "@pulumi/fastly";
    import * as std from "@pulumi/std";
    
    // NOTE: Creating a hosted zone will automatically create SOA/NS records.
    const production = new aws.index.Route53Zone("production", {name: "example.com"});
    const example = new aws.index.Route53domainsRegisteredDomain("example", {
        nameServer: Object.entries(production.nameServers).map(([k, v]) => ({key: k, value: v})).map(entry => ({
            name: entry.value,
        })),
        domainName: "example.com",
    });
    const subdomains = [
        "a.example.com",
        "b.example.com",
    ];
    const exampleServiceVcl = new fastly.ServiceVcl("example", {
        domains: subdomains.map((v, k) => ({key: k, value: v})).map(entry => ({
            name: entry.value,
        })),
        name: "example-service",
        backends: [{
            address: "127.0.0.1",
            name: "localhost",
        }],
        forceDestroy: true,
    });
    const exampleTlsSubscription = new fastly.TlsSubscription("example", {
        domains: exampleServiceVcl.domains.apply(domains => .map(domain => (domain.name))),
        certificateAuthority: "lets-encrypt",
    });
    const domainValidation: aws.index.Route53Record[] = [];
    exampleTlsSubscription.domains.apply(domains => {
        for (const range of Object.entries(domains.reduce((__obj, domain) => ({ ...__obj, [domain]: exampleTlsSubscription.managedDnsChallenges.apply(managedDnsChallenges => managedDnsChallenges.filter(obj => obj.recordName == `_acme-challenge.${domain}`).map(obj => (obj)))[0] }))).map(([k, v]) => ({key: k, value: v}))) {
            domainValidation.push(new aws.index.Route53Record(`domain_validation-${range.key}`, {
                name: range.value.recordName,
                type: range.value.recordType,
                zoneId: production.zoneId,
                allowOverwrite: true,
                records: [range.value.recordValue],
                ttl: 60,
            }, {
            dependsOn: [exampleTlsSubscription],
        }));
        }
    });
    // This is a resource that other resources can depend on if they require the certificate to be issued.
    // NOTE: Internally the resource keeps retrying `GetTLSSubscription` until no error is returned (or the configured timeout is reached).
    const exampleTlsSubscriptionValidation = new fastly.TlsSubscriptionValidation("example", {subscriptionId: exampleTlsSubscription.id}, {
        dependsOn: [domainValidation],
    });
    // This data source lists all available configuration objects.
    // It uses a `default` attribute to narrow down the list to just one configuration object.
    // If the filtered list has a length that is not exactly one element, you'll see an error returned.
    // The single TLS configuration is then returned and can be referenced by other resources (see aws_route53_record below).
    //
    // IMPORTANT: Not all customers will have a 'default' configuration.
    // If you have issues filtering with `default = true`, then you may need another attribute.
    // Refer to the fastly_tls_configuration documentation for available attributes:
    // https://registry.terraform.io/providers/fastly/fastly/latest/docs/data-sources/tls_configuration#optional
    const defaultTls = fastly.getTlsConfiguration({
        "default": true,
    });
    // Once validation is complete and we've retrieved the TLS configuration data, we can create multiple subdomain records.
    const subdomain: aws.index.Route53Record[] = [];
    for (const range = {value: 0}; range.value < std.index.toset({
        input: subdomains,
    }).result; range.value++) {
        subdomain.push(new aws.index.Route53Record(`subdomain-${range.value}`, {
            name: range.value,
            records: .filter(record => record.recordType == "CNAME").map(record => (record.recordValue)),
            ttl: 300,
            type: "CNAME",
            zoneId: production.zoneId,
        }));
    }
    
    import pulumi
    import pulumi_aws as aws
    import pulumi_fastly as fastly
    import pulumi_std as std
    
    # NOTE: Creating a hosted zone will automatically create SOA/NS records.
    production = aws.index.Route53Zone("production", name=example.com)
    example = aws.index.Route53domainsRegisteredDomain("example",
        name_server=[{
            name: entry.value,
        } for entry in [{"key": k, "value": v} for k, v in production.name_servers]],
        domain_name=example.com)
    subdomains = [
        "a.example.com",
        "b.example.com",
    ]
    example_service_vcl = fastly.ServiceVcl("example",
        domains=[{
            "name": entry["value"],
        } for entry in [{"key": k, "value": v} for k, v in subdomains]],
        name="example-service",
        backends=[{
            "address": "127.0.0.1",
            "name": "localhost",
        }],
        force_destroy=True)
    example_tls_subscription = fastly.TlsSubscription("example",
        domains=example_service_vcl.domains.apply(lambda domains: [domain.name for domain in domains]),
        certificate_authority="lets-encrypt")
    domain_validation = []
    def create_domain_validation(range_body):
        for range in [{"key": k, "value": v} for [k, v] in enumerate(range_body)]:
            domain_validation.append(aws.index.Route53Record(f"domain_validation-{range['key']}",
                name=range.value.record_name,
                type=range.value.record_type,
                zone_id=production.zone_id,
                allow_overwrite=True,
                records=[range.value.record_value],
                ttl=60,
                opts = pulumi.ResourceOptions(depends_on=[example_tls_subscription])))
    
    example_tls_subscription.domains.apply(lambda resolved_outputs: create_domain_validation({domain: example_tls_subscription.managed_dns_challenges.apply(lambda managed_dns_challenges: [obj for obj in managed_dns_challenges if obj.record_name == f"_acme-challenge.{domain}"])[0] for domain in resolved_outputs['domains']}))
    # This is a resource that other resources can depend on if they require the certificate to be issued.
    # NOTE: Internally the resource keeps retrying `GetTLSSubscription` until no error is returned (or the configured timeout is reached).
    example_tls_subscription_validation = fastly.TlsSubscriptionValidation("example", subscription_id=example_tls_subscription.id,
    opts = pulumi.ResourceOptions(depends_on=[domain_validation]))
    # This data source lists all available configuration objects.
    # It uses a `default` attribute to narrow down the list to just one configuration object.
    # If the filtered list has a length that is not exactly one element, you'll see an error returned.
    # The single TLS configuration is then returned and can be referenced by other resources (see aws_route53_record below).
    #
    # IMPORTANT: Not all customers will have a 'default' configuration.
    # If you have issues filtering with `default = true`, then you may need another attribute.
    # Refer to the fastly_tls_configuration documentation for available attributes:
    # https://registry.terraform.io/providers/fastly/fastly/latest/docs/data-sources/tls_configuration#optional
    default_tls = fastly.get_tls_configuration(default=True)
    # Once validation is complete and we've retrieved the TLS configuration data, we can create multiple subdomain records.
    subdomain = []
    for range in [{"value": i} for i in range(0, std.index.toset(input=subdomains).result)]:
        subdomain.append(aws.index.Route53Record(f"subdomain-{range['value']}",
            name=range.value,
            records=[record.record_value for record in default_tls.dns_records if record.record_type == CNAME],
            ttl=300,
            type=CNAME,
            zone_id=production.zone_id))
    
    Example coming soon!
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    using Fastly = Pulumi.Fastly;
    using Std = Pulumi.Std;
    
    return await Deployment.RunAsync(() => 
    {
        // NOTE: Creating a hosted zone will automatically create SOA/NS records.
        var production = new Aws.Index.Route53Zone("production", new()
        {
            Name = "example.com",
        });
    
        var example = new Aws.Index.Route53domainsRegisteredDomain("example", new()
        {
            NameServer = .Select(entry => 
            {
                return 
                {
                    { "name", entry.Value },
                };
            }).ToList(),
            DomainName = "example.com",
        });
    
        var subdomains = new[]
        {
            "a.example.com",
            "b.example.com",
        };
    
        var exampleServiceVcl = new Fastly.ServiceVcl("example", new()
        {
            Domains = subdomains.Select((v, k) => new { Key = k, Value = v }).Select(entry => 
            {
                return new Fastly.Inputs.ServiceVclDomainArgs
                {
                    Name = entry.Value,
                };
            }).ToList(),
            Name = "example-service",
            Backends = new[]
            {
                new Fastly.Inputs.ServiceVclBackendArgs
                {
                    Address = "127.0.0.1",
                    Name = "localhost",
                },
            },
            ForceDestroy = true,
        });
    
        var exampleTlsSubscription = new Fastly.TlsSubscription("example", new()
        {
            Domains = exampleServiceVcl.Domains.Apply(domains => .Select(domain => 
            {
                return domain.Name;
            }).ToList()),
            CertificateAuthority = "lets-encrypt",
        });
    
        var domainValidation = new List<Aws.Index.Route53Record>();
        foreach (var range in exampleTlsSubscription.Domains.Apply(domains => domains.ToDictionary(item => {
            var domain = item.Value;
            return domain;
        }, item => {
            var domain = item.Value;
            return exampleTlsSubscription.ManagedDnsChallenges.Apply(managedDnsChallenges => managedDnsChallenges.Where(obj => obj.RecordName == $"_acme-challenge.{domain}").Select(obj => 
            {
                return obj;
            }).ToList())[0];
        })).Select(pair => new { pair.Key, pair.Value }))
        {
            domainValidation.Add(new Aws.Index.Route53Record($"domain_validation-{range.Key}", new()
            {
                Name = range.Value.RecordName,
                Type = range.Value.RecordType,
                ZoneId = production.ZoneId,
                AllowOverwrite = true,
                Records = new[]
                {
                    range.Value.RecordValue,
                },
                Ttl = 60,
            }, new CustomResourceOptions
            {
                DependsOn =
                {
                    exampleTlsSubscription,
                },
            }));
        }
        // This is a resource that other resources can depend on if they require the certificate to be issued.
        // NOTE: Internally the resource keeps retrying `GetTLSSubscription` until no error is returned (or the configured timeout is reached).
        var exampleTlsSubscriptionValidation = new Fastly.TlsSubscriptionValidation("example", new()
        {
            SubscriptionId = exampleTlsSubscription.Id,
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                domainValidation,
            },
        });
    
        // This data source lists all available configuration objects.
        // It uses a `default` attribute to narrow down the list to just one configuration object.
        // If the filtered list has a length that is not exactly one element, you'll see an error returned.
        // The single TLS configuration is then returned and can be referenced by other resources (see aws_route53_record below).
        //
        // IMPORTANT: Not all customers will have a 'default' configuration.
        // If you have issues filtering with `default = true`, then you may need another attribute.
        // Refer to the fastly_tls_configuration documentation for available attributes:
        // https://registry.terraform.io/providers/fastly/fastly/latest/docs/data-sources/tls_configuration#optional
        var defaultTls = Fastly.GetTlsConfiguration.Invoke(new()
        {
            Default = true,
        });
    
        // Once validation is complete and we've retrieved the TLS configuration data, we can create multiple subdomain records.
        var subdomain = new List<Aws.Index.Route53Record>();
        for (var rangeIndex = 0; rangeIndex < Std.Index.Toset.Invoke(new()
        {
            Input = subdomains,
        }).Result; rangeIndex++)
        {
            var range = new { Value = rangeIndex };
            subdomain.Add(new Aws.Index.Route53Record($"subdomain-{range.Value}", new()
            {
                Name = range.Value,
                Records = ,
                Ttl = 300,
                Type = "CNAME",
                ZoneId = production.ZoneId,
            }));
        }
    });
    
    Example coming soon!
    
    Example coming soon!
    

    Configuring an apex and a wildcard domain:

    The following example is similar to the above but differs by demonstrating how to handle configuring an apex domain (e.g. example.com) and a wildcard domain (e.g. *.example.com) so you can support multiple subdomains to your service.

    The difference in the workflow is with how to handle the Fastly API returning a single ‘challenge’ for both domains (e.g. _acme-challenge.example.com). This is done by normalising the wildcard (i.e. replacing *.example.com with example.com) and then working around the issue of the returned object having two identical keys.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    import * as fastly from "@pulumi/fastly";
    import * as std from "@pulumi/std";
    
    // NOTE: Creating a hosted zone will automatically create SOA/NS records.
    const production = new aws.index.Route53Zone("production", {name: "example.com"});
    const example = new aws.index.Route53domainsRegisteredDomain("example", {
        nameServer: Object.entries(production.nameServers).map(([k, v]) => ({key: k, value: v})).map(entry => ({
            name: entry.value,
        })),
        domainName: "example.com",
    });
    const domains = [
        "example.com",
        "*.example.com",
    ];
    const exampleServiceVcl = new fastly.ServiceVcl("example", {
        domains: domains.map((v, k) => ({key: k, value: v})).map(entry => ({
            name: entry.value,
        })),
        name: "example-service",
        backends: [{
            address: "127.0.0.1",
            name: "localhost",
        }],
        forceDestroy: true,
    });
    const exampleTlsSubscription = new fastly.TlsSubscription("example", {
        domains: exampleServiceVcl.domains.apply(domains => .map(domain => (domain.name))),
        certificateAuthority: "lets-encrypt",
    });
    const domainValidation: aws.index.Route53Record[] = [];
    exampleTlsSubscription.domains.apply(domains => {
        const domainValidation: aws.index.Route53Record[] = [];
    pulumi.all(domains.reduce((__obj, domain) => ({ ...__obj, [std.index.replace({
            text: domain,
            search: "*.",
            replace: "",
        }).result]: exampleTlsSubscription.managedDnsChallenges.apply(managedDnsChallenges => managedDnsChallenges.filter(obj => obj.recordName == `_acme-challenge.${std.index.replace({
            text: domain,
            search: "*.",
            replace: "",
        }).result}`).map(obj => (obj)))[0] }))).apply(rangeBody => {
            for (const range of Object.entries(rangeBody).map(([k, v]) => ({key: k, value: v}))) {
                domainValidation.push(new aws.index.Route53Record(`domain_validation-${range.key}`, {
                    name: range.value[0].recordName,
                    type: range.value[0].recordType,
                    zoneId: production.zoneId,
                    allowOverwrite: true,
                    records: [range.value[0].recordValue],
                    ttl: 60,
                }, {
                dependsOn: [exampleTlsSubscription],
            }));
            }
        });
    });
    // This is a resource that other resources can depend on if they require the certificate to be issued.
    // NOTE: Internally the resource keeps retrying `GetTLSSubscription` until no error is returned (or the configured timeout is reached).
    const exampleTlsSubscriptionValidation = new fastly.TlsSubscriptionValidation("example", {subscriptionId: exampleTlsSubscription.id}, {
        dependsOn: [domainValidation],
    });
    // This data source lists all available configuration objects.
    // It uses a `default` attribute to narrow down the list to just one configuration object.
    // If the filtered list has a length that is not exactly one element, you'll see an error returned.
    // The single TLS configuration is then returned and can be referenced by other resources (see aws_route53_record below).
    //
    // IMPORTANT: Not all customers will have a 'default' configuration.
    // If you have issues filtering with `default = true`, then you may need another attribute.
    // Refer to the fastly_tls_configuration documentation for available attributes:
    // https://registry.terraform.io/providers/fastly/fastly/latest/docs/data-sources/tls_configuration#optional
    const defaultTls = fastly.getTlsConfiguration({
        "default": true,
    });
    // Once validation is complete and we've retrieved the TLS configuration data, we can create multiple records...
    const apex = new aws.index.Route53Record("apex", {
        name: "example.com",
        records: .filter(record => record.recordType == "A").map(record => (record.recordValue)),
        ttl: 300,
        type: "A",
        zoneId: production.zoneId,
    });
    // NOTE: This subdomain matches our Fastly service because of the wildcard domain (`*.example.com`) that was added to the service.
    const subdomain = new aws.index.Route53Record("subdomain", {
        name: "test.example.com",
        records: .filter(record => record.recordType == "CNAME").map(record => (record.recordValue)),
        ttl: 300,
        type: "CNAME",
        zoneId: production.zoneId,
    });
    
    import pulumi
    import pulumi_aws as aws
    import pulumi_fastly as fastly
    import pulumi_std as std
    
    # NOTE: Creating a hosted zone will automatically create SOA/NS records.
    production = aws.index.Route53Zone("production", name=example.com)
    example = aws.index.Route53domainsRegisteredDomain("example",
        name_server=[{
            name: entry.value,
        } for entry in [{"key": k, "value": v} for k, v in production.name_servers]],
        domain_name=example.com)
    domains = [
        "example.com",
        "*.example.com",
    ]
    example_service_vcl = fastly.ServiceVcl("example",
        domains=[{
            "name": entry["value"],
        } for entry in [{"key": k, "value": v} for k, v in domains]],
        name="example-service",
        backends=[{
            "address": "127.0.0.1",
            "name": "localhost",
        }],
        force_destroy=True)
    example_tls_subscription = fastly.TlsSubscription("example",
        domains=example_service_vcl.domains.apply(lambda domains: [domain.name for domain in domains]),
        certificate_authority="lets-encrypt")
    domain_validation = []
    def create_domain_validation(range_body):
        for range in [{"key": k, "value": v} for [k, v] in enumerate(range_body)]:
            domain_validation.append(aws.index.Route53Record(f"domain_validation-{range['key']}",
                name=range.value[0].record_name,
                type=range.value[0].record_type,
                zone_id=production.zone_id,
                allow_overwrite=True,
                records=[range.value[0].record_value],
                ttl=60,
                opts = pulumi.ResourceOptions(depends_on=[example_tls_subscription])))
    
    example_tls_subscription.domains.apply(lambda resolved_outputs: create_domain_validation({std.index.replace(text=domain,
        search="*.",
        replace="")["result"]: example_tls_subscription.managed_dns_challenges.apply(lambda managed_dns_challenges: [obj for obj in managed_dns_challenges if obj.record_name == f"_acme-challenge.{std.index.replace(text=domain,
        search='*.',
        replace='')['result']}"])[0] for domain in resolved_outputs['domains']}))
    # This is a resource that other resources can depend on if they require the certificate to be issued.
    # NOTE: Internally the resource keeps retrying `GetTLSSubscription` until no error is returned (or the configured timeout is reached).
    example_tls_subscription_validation = fastly.TlsSubscriptionValidation("example", subscription_id=example_tls_subscription.id,
    opts = pulumi.ResourceOptions(depends_on=[domain_validation]))
    # This data source lists all available configuration objects.
    # It uses a `default` attribute to narrow down the list to just one configuration object.
    # If the filtered list has a length that is not exactly one element, you'll see an error returned.
    # The single TLS configuration is then returned and can be referenced by other resources (see aws_route53_record below).
    #
    # IMPORTANT: Not all customers will have a 'default' configuration.
    # If you have issues filtering with `default = true`, then you may need another attribute.
    # Refer to the fastly_tls_configuration documentation for available attributes:
    # https://registry.terraform.io/providers/fastly/fastly/latest/docs/data-sources/tls_configuration#optional
    default_tls = fastly.get_tls_configuration(default=True)
    # Once validation is complete and we've retrieved the TLS configuration data, we can create multiple records...
    apex = aws.index.Route53Record("apex",
        name=example.com,
        records=[record.record_value for record in default_tls.dns_records if record.record_type == A],
        ttl=300,
        type=A,
        zone_id=production.zone_id)
    # NOTE: This subdomain matches our Fastly service because of the wildcard domain (`*.example.com`) that was added to the service.
    subdomain = aws.index.Route53Record("subdomain",
        name=test.example.com,
        records=[record.record_value for record in default_tls.dns_records if record.record_type == CNAME],
        ttl=300,
        type=CNAME,
        zone_id=production.zone_id)
    
    Example coming soon!
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    using Fastly = Pulumi.Fastly;
    using Std = Pulumi.Std;
    
    return await Deployment.RunAsync(() => 
    {
        // NOTE: Creating a hosted zone will automatically create SOA/NS records.
        var production = new Aws.Index.Route53Zone("production", new()
        {
            Name = "example.com",
        });
    
        var example = new Aws.Index.Route53domainsRegisteredDomain("example", new()
        {
            NameServer = .Select(entry => 
            {
                return 
                {
                    { "name", entry.Value },
                };
            }).ToList(),
            DomainName = "example.com",
        });
    
        var domains = new[]
        {
            "example.com",
            "*.example.com",
        };
    
        var exampleServiceVcl = new Fastly.ServiceVcl("example", new()
        {
            Domains = domains.Select((v, k) => new { Key = k, Value = v }).Select(entry => 
            {
                return new Fastly.Inputs.ServiceVclDomainArgs
                {
                    Name = entry.Value,
                };
            }).ToList(),
            Name = "example-service",
            Backends = new[]
            {
                new Fastly.Inputs.ServiceVclBackendArgs
                {
                    Address = "127.0.0.1",
                    Name = "localhost",
                },
            },
            ForceDestroy = true,
        });
    
        var exampleTlsSubscription = new Fastly.TlsSubscription("example", new()
        {
            Domains = exampleServiceVcl.Domains.Apply(domains => .Select(domain => 
            {
                return domain.Name;
            }).ToList()),
            CertificateAuthority = "lets-encrypt",
        });
    
        var domainValidation = new List<Aws.Index.Route53Record>();
        foreach (var range in exampleTlsSubscription.Domains.Apply(domains => domains).Select(pair => new { pair.Key, pair.Value }))
        {
            domainValidation.Add(new Aws.Index.Route53Record($"domain_validation-{range.Key}", new()
            {
                Name = range.Value[0].RecordName,
                Type = range.Value[0].RecordType,
                ZoneId = production.ZoneId,
                AllowOverwrite = true,
                Records = new[]
                {
                    range.Value[0].RecordValue,
                },
                Ttl = 60,
            }, new CustomResourceOptions
            {
                DependsOn =
                {
                    exampleTlsSubscription,
                },
            }));
        }
        // This is a resource that other resources can depend on if they require the certificate to be issued.
        // NOTE: Internally the resource keeps retrying `GetTLSSubscription` until no error is returned (or the configured timeout is reached).
        var exampleTlsSubscriptionValidation = new Fastly.TlsSubscriptionValidation("example", new()
        {
            SubscriptionId = exampleTlsSubscription.Id,
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                domainValidation,
            },
        });
    
        // This data source lists all available configuration objects.
        // It uses a `default` attribute to narrow down the list to just one configuration object.
        // If the filtered list has a length that is not exactly one element, you'll see an error returned.
        // The single TLS configuration is then returned and can be referenced by other resources (see aws_route53_record below).
        //
        // IMPORTANT: Not all customers will have a 'default' configuration.
        // If you have issues filtering with `default = true`, then you may need another attribute.
        // Refer to the fastly_tls_configuration documentation for available attributes:
        // https://registry.terraform.io/providers/fastly/fastly/latest/docs/data-sources/tls_configuration#optional
        var defaultTls = Fastly.GetTlsConfiguration.Invoke(new()
        {
            Default = true,
        });
    
        // Once validation is complete and we've retrieved the TLS configuration data, we can create multiple records...
        var apex = new Aws.Index.Route53Record("apex", new()
        {
            Name = "example.com",
            Records = ,
            Ttl = 300,
            Type = "A",
            ZoneId = production.ZoneId,
        });
    
        // NOTE: This subdomain matches our Fastly service because of the wildcard domain (`*.example.com`) that was added to the service.
        var subdomain = new Aws.Index.Route53Record("subdomain", new()
        {
            Name = "test.example.com",
            Records = ,
            Ttl = 300,
            Type = "CNAME",
            ZoneId = production.ZoneId,
        });
    
    });
    
    Example coming soon!
    
    Example coming soon!
    

    Create TlsSubscription Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new TlsSubscription(name: string, args: TlsSubscriptionArgs, opts?: CustomResourceOptions);
    @overload
    def TlsSubscription(resource_name: str,
                        args: TlsSubscriptionArgs,
                        opts: Optional[ResourceOptions] = None)
    
    @overload
    def TlsSubscription(resource_name: str,
                        opts: Optional[ResourceOptions] = None,
                        certificate_authority: Optional[str] = None,
                        domains: Optional[Sequence[str]] = None,
                        common_name: Optional[str] = None,
                        configuration_id: Optional[str] = None,
                        force_destroy: Optional[bool] = None,
                        force_update: Optional[bool] = None)
    func NewTlsSubscription(ctx *Context, name string, args TlsSubscriptionArgs, opts ...ResourceOption) (*TlsSubscription, error)
    public TlsSubscription(string name, TlsSubscriptionArgs args, CustomResourceOptions? opts = null)
    public TlsSubscription(String name, TlsSubscriptionArgs args)
    public TlsSubscription(String name, TlsSubscriptionArgs args, CustomResourceOptions options)
    
    type: fastly:TlsSubscription
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args TlsSubscriptionArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args TlsSubscriptionArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args TlsSubscriptionArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args TlsSubscriptionArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args TlsSubscriptionArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var tlsSubscriptionResource = new Fastly.TlsSubscription("tlsSubscriptionResource", new()
    {
        CertificateAuthority = "string",
        Domains = new[]
        {
            "string",
        },
        CommonName = "string",
        ConfigurationId = "string",
        ForceDestroy = false,
        ForceUpdate = false,
    });
    
    example, err := fastly.NewTlsSubscription(ctx, "tlsSubscriptionResource", &fastly.TlsSubscriptionArgs{
    	CertificateAuthority: pulumi.String("string"),
    	Domains: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	CommonName:      pulumi.String("string"),
    	ConfigurationId: pulumi.String("string"),
    	ForceDestroy:    pulumi.Bool(false),
    	ForceUpdate:     pulumi.Bool(false),
    })
    
    var tlsSubscriptionResource = new TlsSubscription("tlsSubscriptionResource", TlsSubscriptionArgs.builder()
        .certificateAuthority("string")
        .domains("string")
        .commonName("string")
        .configurationId("string")
        .forceDestroy(false)
        .forceUpdate(false)
        .build());
    
    tls_subscription_resource = fastly.TlsSubscription("tlsSubscriptionResource",
        certificate_authority="string",
        domains=["string"],
        common_name="string",
        configuration_id="string",
        force_destroy=False,
        force_update=False)
    
    const tlsSubscriptionResource = new fastly.TlsSubscription("tlsSubscriptionResource", {
        certificateAuthority: "string",
        domains: ["string"],
        commonName: "string",
        configurationId: "string",
        forceDestroy: false,
        forceUpdate: false,
    });
    
    type: fastly:TlsSubscription
    properties:
        certificateAuthority: string
        commonName: string
        configurationId: string
        domains:
            - string
        forceDestroy: false
        forceUpdate: false
    

    TlsSubscription Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The TlsSubscription resource accepts the following input properties:

    CertificateAuthority string
    The entity that issues and certifies the TLS certificates for your subscription. Valid values are lets-encrypt, globalsign or certainly.
    Domains List<string>
    List of domains on which to enable TLS.
    CommonName string
    The common name associated with the subscription generated by Fastly TLS. If you do not pass a common name on create, we will default to the first TLS domain included. If provided, the domain chosen as the common name must be included in TLS domains.
    ConfigurationId string
    The ID of the set of TLS configuration options that apply to the enabled domains on this subscription.
    ForceDestroy bool
    Force delete the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly. Defaults to false.
    ForceUpdate bool
    Force update the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly.
    CertificateAuthority string
    The entity that issues and certifies the TLS certificates for your subscription. Valid values are lets-encrypt, globalsign or certainly.
    Domains []string
    List of domains on which to enable TLS.
    CommonName string
    The common name associated with the subscription generated by Fastly TLS. If you do not pass a common name on create, we will default to the first TLS domain included. If provided, the domain chosen as the common name must be included in TLS domains.
    ConfigurationId string
    The ID of the set of TLS configuration options that apply to the enabled domains on this subscription.
    ForceDestroy bool
    Force delete the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly. Defaults to false.
    ForceUpdate bool
    Force update the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly.
    certificateAuthority String
    The entity that issues and certifies the TLS certificates for your subscription. Valid values are lets-encrypt, globalsign or certainly.
    domains List<String>
    List of domains on which to enable TLS.
    commonName String
    The common name associated with the subscription generated by Fastly TLS. If you do not pass a common name on create, we will default to the first TLS domain included. If provided, the domain chosen as the common name must be included in TLS domains.
    configurationId String
    The ID of the set of TLS configuration options that apply to the enabled domains on this subscription.
    forceDestroy Boolean
    Force delete the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly. Defaults to false.
    forceUpdate Boolean
    Force update the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly.
    certificateAuthority string
    The entity that issues and certifies the TLS certificates for your subscription. Valid values are lets-encrypt, globalsign or certainly.
    domains string[]
    List of domains on which to enable TLS.
    commonName string
    The common name associated with the subscription generated by Fastly TLS. If you do not pass a common name on create, we will default to the first TLS domain included. If provided, the domain chosen as the common name must be included in TLS domains.
    configurationId string
    The ID of the set of TLS configuration options that apply to the enabled domains on this subscription.
    forceDestroy boolean
    Force delete the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly. Defaults to false.
    forceUpdate boolean
    Force update the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly.
    certificate_authority str
    The entity that issues and certifies the TLS certificates for your subscription. Valid values are lets-encrypt, globalsign or certainly.
    domains Sequence[str]
    List of domains on which to enable TLS.
    common_name str
    The common name associated with the subscription generated by Fastly TLS. If you do not pass a common name on create, we will default to the first TLS domain included. If provided, the domain chosen as the common name must be included in TLS domains.
    configuration_id str
    The ID of the set of TLS configuration options that apply to the enabled domains on this subscription.
    force_destroy bool
    Force delete the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly. Defaults to false.
    force_update bool
    Force update the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly.
    certificateAuthority String
    The entity that issues and certifies the TLS certificates for your subscription. Valid values are lets-encrypt, globalsign or certainly.
    domains List<String>
    List of domains on which to enable TLS.
    commonName String
    The common name associated with the subscription generated by Fastly TLS. If you do not pass a common name on create, we will default to the first TLS domain included. If provided, the domain chosen as the common name must be included in TLS domains.
    configurationId String
    The ID of the set of TLS configuration options that apply to the enabled domains on this subscription.
    forceDestroy Boolean
    Force delete the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly. Defaults to false.
    forceUpdate Boolean
    Force update the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the TlsSubscription resource produces the following output properties:

    CertificateId string
    The certificate ID associated with the subscription.
    CreatedAt string
    Timestamp (GMT) when the subscription was created.
    Id string
    The provider-assigned unique ID for this managed resource.
    ManagedDnsChallenge Dictionary<string, string>
    The details required to configure DNS to respond to ACME DNS challenge in order to verify domain ownership.

    Deprecated: Use 'managed_dns_challenges' attribute instead

    ManagedDnsChallenges List<TlsSubscriptionManagedDnsChallenge>
    A list of options for configuring DNS to respond to ACME DNS challenge in order to verify domain ownership.
    ManagedHttpChallenges List<TlsSubscriptionManagedHttpChallenge>
    A list of options for configuring DNS to respond to ACME HTTP challenge in order to verify domain ownership. Best accessed through a for expression to filter the relevant record.
    State string
    The current state of the subscription. The list of possible states are: pending, processing, issued, and renewing.
    UpdatedAt string
    Timestamp (GMT) when the subscription was updated.
    CertificateId string
    The certificate ID associated with the subscription.
    CreatedAt string
    Timestamp (GMT) when the subscription was created.
    Id string
    The provider-assigned unique ID for this managed resource.
    ManagedDnsChallenge map[string]string
    The details required to configure DNS to respond to ACME DNS challenge in order to verify domain ownership.

    Deprecated: Use 'managed_dns_challenges' attribute instead

    ManagedDnsChallenges []TlsSubscriptionManagedDnsChallenge
    A list of options for configuring DNS to respond to ACME DNS challenge in order to verify domain ownership.
    ManagedHttpChallenges []TlsSubscriptionManagedHttpChallenge
    A list of options for configuring DNS to respond to ACME HTTP challenge in order to verify domain ownership. Best accessed through a for expression to filter the relevant record.
    State string
    The current state of the subscription. The list of possible states are: pending, processing, issued, and renewing.
    UpdatedAt string
    Timestamp (GMT) when the subscription was updated.
    certificateId String
    The certificate ID associated with the subscription.
    createdAt String
    Timestamp (GMT) when the subscription was created.
    id String
    The provider-assigned unique ID for this managed resource.
    managedDnsChallenge Map<String,String>
    The details required to configure DNS to respond to ACME DNS challenge in order to verify domain ownership.

    Deprecated: Use 'managed_dns_challenges' attribute instead

    managedDnsChallenges List<TlsSubscriptionManagedDnsChallenge>
    A list of options for configuring DNS to respond to ACME DNS challenge in order to verify domain ownership.
    managedHttpChallenges List<TlsSubscriptionManagedHttpChallenge>
    A list of options for configuring DNS to respond to ACME HTTP challenge in order to verify domain ownership. Best accessed through a for expression to filter the relevant record.
    state String
    The current state of the subscription. The list of possible states are: pending, processing, issued, and renewing.
    updatedAt String
    Timestamp (GMT) when the subscription was updated.
    certificateId string
    The certificate ID associated with the subscription.
    createdAt string
    Timestamp (GMT) when the subscription was created.
    id string
    The provider-assigned unique ID for this managed resource.
    managedDnsChallenge {[key: string]: string}
    The details required to configure DNS to respond to ACME DNS challenge in order to verify domain ownership.

    Deprecated: Use 'managed_dns_challenges' attribute instead

    managedDnsChallenges TlsSubscriptionManagedDnsChallenge[]
    A list of options for configuring DNS to respond to ACME DNS challenge in order to verify domain ownership.
    managedHttpChallenges TlsSubscriptionManagedHttpChallenge[]
    A list of options for configuring DNS to respond to ACME HTTP challenge in order to verify domain ownership. Best accessed through a for expression to filter the relevant record.
    state string
    The current state of the subscription. The list of possible states are: pending, processing, issued, and renewing.
    updatedAt string
    Timestamp (GMT) when the subscription was updated.
    certificate_id str
    The certificate ID associated with the subscription.
    created_at str
    Timestamp (GMT) when the subscription was created.
    id str
    The provider-assigned unique ID for this managed resource.
    managed_dns_challenge Mapping[str, str]
    The details required to configure DNS to respond to ACME DNS challenge in order to verify domain ownership.

    Deprecated: Use 'managed_dns_challenges' attribute instead

    managed_dns_challenges Sequence[TlsSubscriptionManagedDnsChallenge]
    A list of options for configuring DNS to respond to ACME DNS challenge in order to verify domain ownership.
    managed_http_challenges Sequence[TlsSubscriptionManagedHttpChallenge]
    A list of options for configuring DNS to respond to ACME HTTP challenge in order to verify domain ownership. Best accessed through a for expression to filter the relevant record.
    state str
    The current state of the subscription. The list of possible states are: pending, processing, issued, and renewing.
    updated_at str
    Timestamp (GMT) when the subscription was updated.
    certificateId String
    The certificate ID associated with the subscription.
    createdAt String
    Timestamp (GMT) when the subscription was created.
    id String
    The provider-assigned unique ID for this managed resource.
    managedDnsChallenge Map<String>
    The details required to configure DNS to respond to ACME DNS challenge in order to verify domain ownership.

    Deprecated: Use 'managed_dns_challenges' attribute instead

    managedDnsChallenges List<Property Map>
    A list of options for configuring DNS to respond to ACME DNS challenge in order to verify domain ownership.
    managedHttpChallenges List<Property Map>
    A list of options for configuring DNS to respond to ACME HTTP challenge in order to verify domain ownership. Best accessed through a for expression to filter the relevant record.
    state String
    The current state of the subscription. The list of possible states are: pending, processing, issued, and renewing.
    updatedAt String
    Timestamp (GMT) when the subscription was updated.

    Look up Existing TlsSubscription Resource

    Get an existing TlsSubscription resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: TlsSubscriptionState, opts?: CustomResourceOptions): TlsSubscription
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            certificate_authority: Optional[str] = None,
            certificate_id: Optional[str] = None,
            common_name: Optional[str] = None,
            configuration_id: Optional[str] = None,
            created_at: Optional[str] = None,
            domains: Optional[Sequence[str]] = None,
            force_destroy: Optional[bool] = None,
            force_update: Optional[bool] = None,
            managed_dns_challenge: Optional[Mapping[str, str]] = None,
            managed_dns_challenges: Optional[Sequence[TlsSubscriptionManagedDnsChallengeArgs]] = None,
            managed_http_challenges: Optional[Sequence[TlsSubscriptionManagedHttpChallengeArgs]] = None,
            state: Optional[str] = None,
            updated_at: Optional[str] = None) -> TlsSubscription
    func GetTlsSubscription(ctx *Context, name string, id IDInput, state *TlsSubscriptionState, opts ...ResourceOption) (*TlsSubscription, error)
    public static TlsSubscription Get(string name, Input<string> id, TlsSubscriptionState? state, CustomResourceOptions? opts = null)
    public static TlsSubscription get(String name, Output<String> id, TlsSubscriptionState state, CustomResourceOptions options)
    resources:  _:    type: fastly:TlsSubscription    get:      id: ${id}
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    CertificateAuthority string
    The entity that issues and certifies the TLS certificates for your subscription. Valid values are lets-encrypt, globalsign or certainly.
    CertificateId string
    The certificate ID associated with the subscription.
    CommonName string
    The common name associated with the subscription generated by Fastly TLS. If you do not pass a common name on create, we will default to the first TLS domain included. If provided, the domain chosen as the common name must be included in TLS domains.
    ConfigurationId string
    The ID of the set of TLS configuration options that apply to the enabled domains on this subscription.
    CreatedAt string
    Timestamp (GMT) when the subscription was created.
    Domains List<string>
    List of domains on which to enable TLS.
    ForceDestroy bool
    Force delete the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly. Defaults to false.
    ForceUpdate bool
    Force update the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly.
    ManagedDnsChallenge Dictionary<string, string>
    The details required to configure DNS to respond to ACME DNS challenge in order to verify domain ownership.

    Deprecated: Use 'managed_dns_challenges' attribute instead

    ManagedDnsChallenges List<TlsSubscriptionManagedDnsChallenge>
    A list of options for configuring DNS to respond to ACME DNS challenge in order to verify domain ownership.
    ManagedHttpChallenges List<TlsSubscriptionManagedHttpChallenge>
    A list of options for configuring DNS to respond to ACME HTTP challenge in order to verify domain ownership. Best accessed through a for expression to filter the relevant record.
    State string
    The current state of the subscription. The list of possible states are: pending, processing, issued, and renewing.
    UpdatedAt string
    Timestamp (GMT) when the subscription was updated.
    CertificateAuthority string
    The entity that issues and certifies the TLS certificates for your subscription. Valid values are lets-encrypt, globalsign or certainly.
    CertificateId string
    The certificate ID associated with the subscription.
    CommonName string
    The common name associated with the subscription generated by Fastly TLS. If you do not pass a common name on create, we will default to the first TLS domain included. If provided, the domain chosen as the common name must be included in TLS domains.
    ConfigurationId string
    The ID of the set of TLS configuration options that apply to the enabled domains on this subscription.
    CreatedAt string
    Timestamp (GMT) when the subscription was created.
    Domains []string
    List of domains on which to enable TLS.
    ForceDestroy bool
    Force delete the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly. Defaults to false.
    ForceUpdate bool
    Force update the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly.
    ManagedDnsChallenge map[string]string
    The details required to configure DNS to respond to ACME DNS challenge in order to verify domain ownership.

    Deprecated: Use 'managed_dns_challenges' attribute instead

    ManagedDnsChallenges []TlsSubscriptionManagedDnsChallengeArgs
    A list of options for configuring DNS to respond to ACME DNS challenge in order to verify domain ownership.
    ManagedHttpChallenges []TlsSubscriptionManagedHttpChallengeArgs
    A list of options for configuring DNS to respond to ACME HTTP challenge in order to verify domain ownership. Best accessed through a for expression to filter the relevant record.
    State string
    The current state of the subscription. The list of possible states are: pending, processing, issued, and renewing.
    UpdatedAt string
    Timestamp (GMT) when the subscription was updated.
    certificateAuthority String
    The entity that issues and certifies the TLS certificates for your subscription. Valid values are lets-encrypt, globalsign or certainly.
    certificateId String
    The certificate ID associated with the subscription.
    commonName String
    The common name associated with the subscription generated by Fastly TLS. If you do not pass a common name on create, we will default to the first TLS domain included. If provided, the domain chosen as the common name must be included in TLS domains.
    configurationId String
    The ID of the set of TLS configuration options that apply to the enabled domains on this subscription.
    createdAt String
    Timestamp (GMT) when the subscription was created.
    domains List<String>
    List of domains on which to enable TLS.
    forceDestroy Boolean
    Force delete the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly. Defaults to false.
    forceUpdate Boolean
    Force update the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly.
    managedDnsChallenge Map<String,String>
    The details required to configure DNS to respond to ACME DNS challenge in order to verify domain ownership.

    Deprecated: Use 'managed_dns_challenges' attribute instead

    managedDnsChallenges List<TlsSubscriptionManagedDnsChallenge>
    A list of options for configuring DNS to respond to ACME DNS challenge in order to verify domain ownership.
    managedHttpChallenges List<TlsSubscriptionManagedHttpChallenge>
    A list of options for configuring DNS to respond to ACME HTTP challenge in order to verify domain ownership. Best accessed through a for expression to filter the relevant record.
    state String
    The current state of the subscription. The list of possible states are: pending, processing, issued, and renewing.
    updatedAt String
    Timestamp (GMT) when the subscription was updated.
    certificateAuthority string
    The entity that issues and certifies the TLS certificates for your subscription. Valid values are lets-encrypt, globalsign or certainly.
    certificateId string
    The certificate ID associated with the subscription.
    commonName string
    The common name associated with the subscription generated by Fastly TLS. If you do not pass a common name on create, we will default to the first TLS domain included. If provided, the domain chosen as the common name must be included in TLS domains.
    configurationId string
    The ID of the set of TLS configuration options that apply to the enabled domains on this subscription.
    createdAt string
    Timestamp (GMT) when the subscription was created.
    domains string[]
    List of domains on which to enable TLS.
    forceDestroy boolean
    Force delete the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly. Defaults to false.
    forceUpdate boolean
    Force update the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly.
    managedDnsChallenge {[key: string]: string}
    The details required to configure DNS to respond to ACME DNS challenge in order to verify domain ownership.

    Deprecated: Use 'managed_dns_challenges' attribute instead

    managedDnsChallenges TlsSubscriptionManagedDnsChallenge[]
    A list of options for configuring DNS to respond to ACME DNS challenge in order to verify domain ownership.
    managedHttpChallenges TlsSubscriptionManagedHttpChallenge[]
    A list of options for configuring DNS to respond to ACME HTTP challenge in order to verify domain ownership. Best accessed through a for expression to filter the relevant record.
    state string
    The current state of the subscription. The list of possible states are: pending, processing, issued, and renewing.
    updatedAt string
    Timestamp (GMT) when the subscription was updated.
    certificate_authority str
    The entity that issues and certifies the TLS certificates for your subscription. Valid values are lets-encrypt, globalsign or certainly.
    certificate_id str
    The certificate ID associated with the subscription.
    common_name str
    The common name associated with the subscription generated by Fastly TLS. If you do not pass a common name on create, we will default to the first TLS domain included. If provided, the domain chosen as the common name must be included in TLS domains.
    configuration_id str
    The ID of the set of TLS configuration options that apply to the enabled domains on this subscription.
    created_at str
    Timestamp (GMT) when the subscription was created.
    domains Sequence[str]
    List of domains on which to enable TLS.
    force_destroy bool
    Force delete the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly. Defaults to false.
    force_update bool
    Force update the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly.
    managed_dns_challenge Mapping[str, str]
    The details required to configure DNS to respond to ACME DNS challenge in order to verify domain ownership.

    Deprecated: Use 'managed_dns_challenges' attribute instead

    managed_dns_challenges Sequence[TlsSubscriptionManagedDnsChallengeArgs]
    A list of options for configuring DNS to respond to ACME DNS challenge in order to verify domain ownership.
    managed_http_challenges Sequence[TlsSubscriptionManagedHttpChallengeArgs]
    A list of options for configuring DNS to respond to ACME HTTP challenge in order to verify domain ownership. Best accessed through a for expression to filter the relevant record.
    state str
    The current state of the subscription. The list of possible states are: pending, processing, issued, and renewing.
    updated_at str
    Timestamp (GMT) when the subscription was updated.
    certificateAuthority String
    The entity that issues and certifies the TLS certificates for your subscription. Valid values are lets-encrypt, globalsign or certainly.
    certificateId String
    The certificate ID associated with the subscription.
    commonName String
    The common name associated with the subscription generated by Fastly TLS. If you do not pass a common name on create, we will default to the first TLS domain included. If provided, the domain chosen as the common name must be included in TLS domains.
    configurationId String
    The ID of the set of TLS configuration options that apply to the enabled domains on this subscription.
    createdAt String
    Timestamp (GMT) when the subscription was created.
    domains List<String>
    List of domains on which to enable TLS.
    forceDestroy Boolean
    Force delete the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly. Defaults to false.
    forceUpdate Boolean
    Force update the subscription even if it has active domains. Warning: this can disable production traffic if used incorrectly.
    managedDnsChallenge Map<String>
    The details required to configure DNS to respond to ACME DNS challenge in order to verify domain ownership.

    Deprecated: Use 'managed_dns_challenges' attribute instead

    managedDnsChallenges List<Property Map>
    A list of options for configuring DNS to respond to ACME DNS challenge in order to verify domain ownership.
    managedHttpChallenges List<Property Map>
    A list of options for configuring DNS to respond to ACME HTTP challenge in order to verify domain ownership. Best accessed through a for expression to filter the relevant record.
    state String
    The current state of the subscription. The list of possible states are: pending, processing, issued, and renewing.
    updatedAt String
    Timestamp (GMT) when the subscription was updated.

    Supporting Types

    TlsSubscriptionManagedDnsChallenge, TlsSubscriptionManagedDnsChallengeArgs

    RecordName string
    The name of the DNS record to add. For example _acme-challenge.example.com.
    RecordType string
    The type of DNS record to add, e.g. A, or CNAME.
    RecordValue string
    The value to which the DNS record should point, e.g. xxxxx.fastly-validations.com.
    RecordName string
    The name of the DNS record to add. For example _acme-challenge.example.com.
    RecordType string
    The type of DNS record to add, e.g. A, or CNAME.
    RecordValue string
    The value to which the DNS record should point, e.g. xxxxx.fastly-validations.com.
    recordName String
    The name of the DNS record to add. For example _acme-challenge.example.com.
    recordType String
    The type of DNS record to add, e.g. A, or CNAME.
    recordValue String
    The value to which the DNS record should point, e.g. xxxxx.fastly-validations.com.
    recordName string
    The name of the DNS record to add. For example _acme-challenge.example.com.
    recordType string
    The type of DNS record to add, e.g. A, or CNAME.
    recordValue string
    The value to which the DNS record should point, e.g. xxxxx.fastly-validations.com.
    record_name str
    The name of the DNS record to add. For example _acme-challenge.example.com.
    record_type str
    The type of DNS record to add, e.g. A, or CNAME.
    record_value str
    The value to which the DNS record should point, e.g. xxxxx.fastly-validations.com.
    recordName String
    The name of the DNS record to add. For example _acme-challenge.example.com.
    recordType String
    The type of DNS record to add, e.g. A, or CNAME.
    recordValue String
    The value to which the DNS record should point, e.g. xxxxx.fastly-validations.com.

    TlsSubscriptionManagedHttpChallenge, TlsSubscriptionManagedHttpChallengeArgs

    RecordName string
    The name of the DNS record to add. For example example.com. Best accessed through a for expression to filter the relevant record.
    RecordType string
    The type of DNS record to add, e.g. A, or CNAME.
    RecordValues List<string>
    A list with the value(s) to which the DNS record should point.
    RecordName string
    The name of the DNS record to add. For example example.com. Best accessed through a for expression to filter the relevant record.
    RecordType string
    The type of DNS record to add, e.g. A, or CNAME.
    RecordValues []string
    A list with the value(s) to which the DNS record should point.
    recordName String
    The name of the DNS record to add. For example example.com. Best accessed through a for expression to filter the relevant record.
    recordType String
    The type of DNS record to add, e.g. A, or CNAME.
    recordValues List<String>
    A list with the value(s) to which the DNS record should point.
    recordName string
    The name of the DNS record to add. For example example.com. Best accessed through a for expression to filter the relevant record.
    recordType string
    The type of DNS record to add, e.g. A, or CNAME.
    recordValues string[]
    A list with the value(s) to which the DNS record should point.
    record_name str
    The name of the DNS record to add. For example example.com. Best accessed through a for expression to filter the relevant record.
    record_type str
    The type of DNS record to add, e.g. A, or CNAME.
    record_values Sequence[str]
    A list with the value(s) to which the DNS record should point.
    recordName String
    The name of the DNS record to add. For example example.com. Best accessed through a for expression to filter the relevant record.
    recordType String
    The type of DNS record to add, e.g. A, or CNAME.
    recordValues List<String>
    A list with the value(s) to which the DNS record should point.

    Import

    A subscription can be imported using its Fastly subscription ID, e.g.

    $ pulumi import fastly:index/tlsSubscription:TlsSubscription demo xxxxxxxxxxx
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Fastly pulumi/pulumi-fastly
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the fastly Terraform Provider.
    fastly logo
    Fastly v11.2.0 published on Friday, Nov 21, 2025 by Pulumi
      Meet Neo: Your AI Platform Teammate