import * as core from "@terrascript/core"; export interface DimensionArgs extends core.SchemaArgs { value: string | core.StringOut; } export class Dimension extends core.Schema { @core.attr(String, { computed: true }) public value!: string | core.StringOut; } export interface PublishMetricActionArgs extends core.SchemaArgs { dimension: core.Array | core.ArrayOut; } export class PublishMetricAction extends core.Schema { @core.attr(Dimension, { computed: true, kind: "array" }) public dimension!: core.Array | core.ArrayOut; } export interface ActionDefinitionArgs extends core.SchemaArgs { publishMetricAction: | core.Array | core.ArrayOut; } export class ActionDefinition extends core.Schema { @core.attr(PublishMetricAction, { computed: true, kind: "array" }) public publishMetricAction!: | core.Array | core.ArrayOut; } export interface StatelessCustomActionArgs extends core.SchemaArgs { actionDefinition: | core.Array | core.ArrayOut; actionName: string | core.StringOut; } export class StatelessCustomAction extends core.Schema { @core.attr(ActionDefinition, { computed: true, kind: "array" }) public actionDefinition!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public actionName!: string | core.StringOut; } export interface StatelessRuleGroupReferenceArgs extends core.SchemaArgs { priority: number | core.NumberOut; resourceArn: string | core.StringOut; } export class StatelessRuleGroupReference extends core.Schema { @core.attr(Number, { computed: true }) public priority!: number | core.NumberOut; @core.attr(String, { computed: true }) public resourceArn!: string | core.StringOut; } export interface StatefulEngineOptionsArgs extends core.SchemaArgs { ruleOrder: string | core.StringOut; } export class StatefulEngineOptions extends core.Schema { @core.attr(String, { computed: true }) public ruleOrder!: string | core.StringOut; } export interface StatefulRuleGroupReferenceArgs extends core.SchemaArgs { priority: number | core.NumberOut; resourceArn: string | core.StringOut; } export class StatefulRuleGroupReference extends core.Schema { @core.attr(Number, { computed: true }) public priority!: number | core.NumberOut; @core.attr(String, { computed: true }) public resourceArn!: string | core.StringOut; } export interface FirewallPolicyBlkArgs extends core.SchemaArgs { statefulDefaultActions: core.Array | core.ArrayOut; statefulEngineOptions: | core.Array | core.ArrayOut; statefulRuleGroupReference: | core.Array | core.ArrayOut; statelessCustomAction: | core.Array | core.ArrayOut; statelessDefaultActions: core.Array | core.ArrayOut; statelessFragmentDefaultActions: | core.Array | core.ArrayOut; statelessRuleGroupReference: | core.Array | core.ArrayOut; } export class FirewallPolicyBlk extends core.Schema { @core.attr(String, { computed: true, kind: "array" }) public statefulDefaultActions!: | core.Array | core.ArrayOut; @core.attr(StatefulEngineOptions, { computed: true, kind: "array" }) public statefulEngineOptions!: | core.Array | core.ArrayOut; @core.attr(StatefulRuleGroupReference, { computed: true, kind: "array" }) public statefulRuleGroupReference!: | core.Array | core.ArrayOut; @core.attr(StatelessCustomAction, { computed: true, kind: "array" }) public statelessCustomAction!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public statelessDefaultActions!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public statelessFragmentDefaultActions!: | core.Array | core.ArrayOut; @core.attr(StatelessRuleGroupReference, { computed: true, kind: "array" }) public statelessRuleGroupReference!: | core.Array | core.ArrayOut; } export interface DsFirewallPolicyArgs { /** * The Amazon Resource Name (ARN) of the firewall policy. */ arn?: string | core.StringOut; /** * The descriptive name of the firewall policy. */ name?: string | core.StringOut; /** * Key-value tags for the firewall policy. */ tags?: core.Map | core.MapOut; } export class DsFirewallPolicy extends core.Data { /** * The Amazon Resource Name (ARN) of the firewall policy. */ @core.attr(String) public arn?: string | core.StringOut; /** * A description of the firewall policy. */ @core.attr(String, { computed: true }) public description!: string | core.StringOut; /** * The [policy][2] for the specified firewall policy. */ @core.attr(FirewallPolicyBlk, { computed: true, kind: "array" }) public firewallPolicy!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * The descriptive name of the firewall policy. */ @core.attr(String) public name?: string | core.StringOut; /** * Key-value tags for the firewall policy. */ @core.attr(String, { computed: true, kind: "map" }) public tags?: core.Map | core.MapOut; /** * A token used for optimistic locking. */ @core.attr(String, { computed: true }) public updateToken!: string | core.StringOut; constructor(name: string, args?: DsFirewallPolicyArgs) { super(name, "aws_networkfirewall_firewall_policy", args); } public override getNamespace(): string { return "aws_networkfirewall"; } }