import * as core from "@terrascript/core"; export interface NlbResourceArgs extends core.SchemaArgs { arn?: string | core.StringOut; } export class NlbResource extends core.Schema { @core.attr(String) public arn?: string | core.StringOut; } export interface R53ResourceArgs extends core.SchemaArgs { domainName?: string | core.StringOut; recordSetId?: string | core.StringOut; } export class R53Resource extends core.Schema { @core.attr(String) public domainName?: string | core.StringOut; @core.attr(String) public recordSetId?: string | core.StringOut; } export interface TargetResourceArgs extends core.SchemaArgs { nlbResource?: NlbResource; r53Resource?: R53Resource; } export class TargetResource extends core.Schema { @core.attr(NlbResource) public nlbResource?: NlbResource; @core.attr(R53Resource) public r53Resource?: R53Resource; } export interface DnsTargetResourceArgs extends core.SchemaArgs { domainName: string | core.StringOut; hostedZoneArn?: string | core.StringOut; recordSetId?: string | core.StringOut; recordType?: string | core.StringOut; targetResource?: TargetResource; } export class DnsTargetResource extends core.Schema { @core.attr(String) public domainName!: string | core.StringOut; @core.attr(String) public hostedZoneArn?: string | core.StringOut; @core.attr(String) public recordSetId?: string | core.StringOut; @core.attr(String) public recordType?: string | core.StringOut; @core.attr(TargetResource) public targetResource?: TargetResource; } export interface ResourcesArgs extends core.SchemaArgs { componentId: string | core.StringOut; dnsTargetResource?: DnsTargetResource; readinessScopes?: core.Array | core.ArrayOut; resourceArn?: string | core.StringOut; } export class Resources extends core.Schema { @core.attr(String, { computed: true }) public componentId!: string | core.StringOut; @core.attr(DnsTargetResource) public dnsTargetResource?: DnsTargetResource; @core.attr(String, { kind: "array" }) public readinessScopes?: core.Array | core.ArrayOut; @core.attr(String) public resourceArn?: string | core.StringOut; } export interface ResourceSetArgs extends core.ResourceArgs { /** * (Required) Unique name describing the resource set. */ resourceSetName: string | core.StringOut; /** * (Required) Type of the resources in the resource set. */ resourceSetType: string | core.StringOut; /** * (Required) List of resources to add to this resource set. See below. */ resources: core.Array | core.ArrayOut; /** * (Optional) Key-value mapping of resource tags. If configured with a provider [`default_tags` configu * ration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configu * ration-block) present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: core.Map | core.MapOut; /** * Map of tags assigned to the resource, including those inherited from the provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block). */ tagsAll?: core.Map | core.MapOut; } export class ResourceSet extends core.Resource { /** * (Required) NLB resource ARN. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Unique name describing the resource set. */ @core.attr(String) public resourceSetName!: string | core.StringOut; /** * (Required) Type of the resources in the resource set. */ @core.attr(String) public resourceSetType!: string | core.StringOut; /** * (Required) List of resources to add to this resource set. See below. */ @core.attr(Resources, { kind: "array" }) public resources!: core.Array | core.ArrayOut; /** * (Optional) Key-value mapping of resource tags. If configured with a provider [`default_tags` configu * ration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configu * ration-block) present, tags with matching keys will overwrite those defined at the provider-level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * Map of tags assigned to the resource, including those inherited from the provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; constructor(name: string, args?: ResourceSetArgs) { super(name, "aws_route53recoveryreadiness_resource_set", args); } public override getNamespace(): string { return "aws_route53recoveryreadiness"; } }