import * as core from "@terrascript/core"; export interface EncryptionConfigurationArgs extends core.SchemaArgs { keyId: string | core.StringOut; type: string | core.StringOut; } export class EncryptionConfiguration extends core.Schema { @core.attr(String, { computed: true }) public keyId!: string | core.StringOut; @core.attr(String, { computed: true }) public type!: string | core.StringOut; } export interface SubnetMappingArgs extends core.SchemaArgs { subnetId: string | core.StringOut; } export class SubnetMapping extends core.Schema { @core.attr(String) public subnetId!: string | core.StringOut; } export interface AttachmentArgs extends core.SchemaArgs { endpointId: string | core.StringOut; status: string | core.StringOut; subnetId: string | core.StringOut; } export class Attachment extends core.Schema { @core.attr(String, { computed: true }) public endpointId!: string | core.StringOut; @core.attr(String, { computed: true }) public status!: string | core.StringOut; @core.attr(String, { computed: true }) public subnetId!: string | core.StringOut; } export interface SyncStatesArgs extends core.SchemaArgs { attachment: core.Array | core.ArrayOut; availabilityZone: string | core.StringOut; } export class SyncStates extends core.Schema { @core.attr(Attachment, { computed: true, kind: "array" }) public attachment!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public availabilityZone!: string | core.StringOut; } export interface IpSetReferencesArgs extends core.SchemaArgs { resolvedCidrCount: number | core.NumberOut; } export class IpSetReferences extends core.Schema { @core.attr(Number, { computed: true }) public resolvedCidrCount!: number | core.NumberOut; } export interface CidrsArgs extends core.SchemaArgs { availableCidrCount: number | core.NumberOut; ipSetReferences: core.Array | core.ArrayOut; utilizedCidrCount: number | core.NumberOut; } export class Cidrs extends core.Schema { @core.attr(Number, { computed: true }) public availableCidrCount!: number | core.NumberOut; @core.attr(IpSetReferences, { computed: true, kind: "array" }) public ipSetReferences!: | core.Array | core.ArrayOut; @core.attr(Number, { computed: true }) public utilizedCidrCount!: number | core.NumberOut; } export interface CapacityUsageSummaryArgs extends core.SchemaArgs { cidrs: core.Array | core.ArrayOut; } export class CapacityUsageSummary extends core.Schema { @core.attr(Cidrs, { computed: true, kind: "array" }) public cidrs!: core.Array | core.ArrayOut; } export interface FirewallStatusArgs extends core.SchemaArgs { capacityUsageSummary: | core.Array | core.ArrayOut; configurationSyncStateSummary: string | core.StringOut; status: string | core.StringOut; syncStates: core.Array | core.ArrayOut; } export class FirewallStatus extends core.Schema { @core.attr(CapacityUsageSummary, { computed: true, kind: "array" }) public capacityUsageSummary!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public configurationSyncStateSummary!: string | core.StringOut; @core.attr(String, { computed: true }) public status!: string | core.StringOut; @core.attr(SyncStates, { computed: true, kind: "array" }) public syncStates!: core.Array | core.ArrayOut; } export interface DsFirewallArgs { /** * The Amazon Resource Name (ARN) of the firewall. */ arn?: string | core.StringOut; /** * The descriptive name of the firewall. */ name?: string | core.StringOut; /** * Map of resource tags to associate with the resource. If configured with a provider [`default_tags` c * onfiguration block](/docs/providers/aws/index.html#default_tags-configuration-block) present, tags w * ith matching keys will overwrite those defined at the provider-level. */ tags?: core.Map | core.MapOut; } export class DsFirewall extends core.Data { /** * The Amazon Resource Name (ARN) of the firewall. */ @core.attr(String, { computed: true }) public arn?: string | core.StringOut; /** * A boolean flag indicating whether it is possible to delete the firewall. */ @core.attr(Boolean, { computed: true }) public deleteProtection!: boolean | core.BooleanOut; /** * A description of the firewall. */ @core.attr(String, { computed: true }) public description!: string | core.StringOut; /** * AWS Key Management Service (AWS KMS) encryption settings for the firewall. */ @core.attr(EncryptionConfiguration, { computed: true, kind: "array" }) public encryptionConfiguration!: | core.Array | core.ArrayOut; /** * The Amazon Resource Name (ARN) of the VPC Firewall policy. */ @core.attr(String, { computed: true }) public firewallPolicyArn!: string | core.StringOut; /** * A boolean flag indicating whether it is possible to change the associated firewall policy. */ @core.attr(Boolean, { computed: true }) public firewallPolicyChangeProtection!: boolean | core.BooleanOut; /** * Nested list of information about the current status of the firewall. */ @core.attr(FirewallStatus, { computed: true, kind: "array" }) public firewallStatus!: | core.Array | core.ArrayOut; /** * The Amazon Resource Name (ARN) that identifies the firewall. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * The descriptive name of the firewall. */ @core.attr(String, { computed: true }) public name?: string | core.StringOut; /** * A boolean flag indicating whether it is possible to change the associated subnet(s). */ @core.attr(Boolean, { computed: true }) public subnetChangeProtection!: boolean | core.BooleanOut; /** * Set of configuration blocks describing the public subnets. Each subnet must belong to a different Av * ailability Zone in the VPC. AWS Network Firewall creates a firewall endpoint in each subnet. */ @core.attr(SubnetMapping, { computed: true, kind: "array" }) public subnetMapping!: | core.Array | core.ArrayOut; /** * Map of resource tags to associate with the resource. If configured with a provider [`default_tags` c * onfiguration block](/docs/providers/aws/index.html#default_tags-configuration-block) present, tags w * ith matching keys will overwrite those defined at the provider-level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A string token used when updating a firewall. */ @core.attr(String, { computed: true }) public updateToken!: string | core.StringOut; /** * The unique identifier of the VPC where AWS Network Firewall should create the firewall. */ @core.attr(String, { computed: true }) public vpcId!: string | core.StringOut; constructor(name: string, args?: DsFirewallArgs) { super(name, "aws_networkfirewall_firewall", args); } public override getNamespace(): string { return "aws_networkfirewall"; } }