import * as core from "@terrascript/core"; export interface HealthCheckCustomConfigArgs extends core.SchemaArgs { failureThreshold?: number | core.NumberOut; } export class HealthCheckCustomConfig extends core.Schema { @core.attr(Number) public failureThreshold?: number | core.NumberOut; } export interface HealthCheckConfigArgs extends core.SchemaArgs { failureThreshold?: number | core.NumberOut; resourcePath?: string | core.StringOut; type?: string | core.StringOut; } export class HealthCheckConfig extends core.Schema { @core.attr(Number) public failureThreshold?: number | core.NumberOut; @core.attr(String) public resourcePath?: string | core.StringOut; @core.attr(String) public type?: string | core.StringOut; } export interface DnsRecordsArgs extends core.SchemaArgs { ttl: number | core.NumberOut; type: string | core.StringOut; } export class DnsRecords extends core.Schema { @core.attr(Number) public ttl!: number | core.NumberOut; @core.attr(String) public type!: string | core.StringOut; } export interface DnsConfigArgs extends core.SchemaArgs { dnsRecords: core.Array | core.ArrayOut; namespaceId: string | core.StringOut; routingPolicy?: string | core.StringOut; } export class DnsConfig extends core.Schema { @core.attr(DnsRecords, { kind: "array" }) public dnsRecords!: core.Array | core.ArrayOut; @core.attr(String) public namespaceId!: string | core.StringOut; @core.attr(String) public routingPolicy?: string | core.StringOut; } export interface ServiceDiscoveryServiceArgs extends core.ResourceArgs { /** * (Optional) The description of the service. */ description?: string | core.StringOut; /** * (Optional) A complex type that contains information about the resource record sets that you want Ama * zon Route 53 to create when you register an instance. */ dnsConfig?: DnsConfig; /** * (Optional, Default:false ) A boolean that indicates all instances should be deleted from the service * so that the service can be destroyed without error. These instances are not recoverable. */ forceDestroy?: boolean | core.BooleanOut; /** * (Optional) A complex type that contains settings for an optional health check. Only for Public DNS n * amespaces. */ healthCheckConfig?: HealthCheckConfig; /** * (Optional, ForceNew) A complex type that contains settings for ECS managed health checks. */ healthCheckCustomConfig?: HealthCheckCustomConfig; /** * (Required, ForceNew) The name of the service. */ name: string | core.StringOut; /** * (Optional) The ID of the namespace that you want to use to create the service. */ namespaceId?: string | core.StringOut; /** * (Optional) A map of tags to assign to the service. If configured with a provider [`default_tags` con * figuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-con * figuration-block) present, tags with matching keys will overwrite those defined at the provider-leve * l. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; } export class ServiceDiscoveryService extends core.Resource { /** * The ARN of the service. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) The description of the service. */ @core.attr(String) public description?: string | core.StringOut; /** * (Optional) A complex type that contains information about the resource record sets that you want Ama * zon Route 53 to create when you register an instance. */ @core.attr(DnsConfig) public dnsConfig?: DnsConfig; /** * (Optional, Default:false ) A boolean that indicates all instances should be deleted from the service * so that the service can be destroyed without error. These instances are not recoverable. */ @core.attr(Boolean) public forceDestroy?: boolean | core.BooleanOut; /** * (Optional) A complex type that contains settings for an optional health check. Only for Public DNS n * amespaces. */ @core.attr(HealthCheckConfig) public healthCheckConfig?: HealthCheckConfig; /** * (Optional, ForceNew) A complex type that contains settings for ECS managed health checks. */ @core.attr(HealthCheckCustomConfig) public healthCheckCustomConfig?: HealthCheckCustomConfig; /** * The ID of the service. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required, ForceNew) The name of the service. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) The ID of the namespace that you want to use to create the service. */ @core.attr(String, { computed: true }) public namespaceId?: string | core.StringOut; /** * (Optional) A map of tags to assign to the service. If configured with a provider [`default_tags` con * figuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-con * figuration-block) present, tags with matching keys will overwrite those defined at the provider-leve * l. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; constructor(name: string, args?: ServiceDiscoveryServiceArgs) { super(name, "aws_service_discovery_service", args); } public override getNamespace(): string { return "aws_cloud_map"; } }