import * as core from "@terrascript/core"; export interface IncludeMapArgs extends core.SchemaArgs { account?: core.Array | core.ArrayOut; orgunit?: core.Array | core.ArrayOut; } export class IncludeMap extends core.Schema { @core.attr(String, { kind: "array" }) public account?: core.Array | core.ArrayOut; @core.attr(String, { kind: "array" }) public orgunit?: core.Array | core.ArrayOut; } export interface ExcludeMapArgs extends core.SchemaArgs { account?: core.Array | core.ArrayOut; orgunit?: core.Array | core.ArrayOut; } export class ExcludeMap extends core.Schema { @core.attr(String, { kind: "array" }) public account?: core.Array | core.ArrayOut; @core.attr(String, { kind: "array" }) public orgunit?: core.Array | core.ArrayOut; } export interface SecurityServicePolicyDataArgs extends core.SchemaArgs { managedServiceData?: string | core.StringOut; type: string | core.StringOut; } export class SecurityServicePolicyData extends core.Schema { @core.attr(String) public managedServiceData?: string | core.StringOut; @core.attr(String) public type!: string | core.StringOut; } export interface PolicyArgs extends core.ResourceArgs { /** * (Optional) If true, the request will also perform a clean-up process. Defaults to `true`. More infor * mation can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-0 * 1-01/APIReference/API_DeletePolicy.html) */ deleteAllPolicyResources?: boolean | core.BooleanOut; /** * (Optional) If true, Firewall Manager will automatically remove protections from resources that leave * the policy scope. Defaults to `false`. More information can be found here [AWS Firewall Manager pol * icy contents](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_Policy.html) */ deleteUnusedFmManagedResources?: boolean | core.BooleanOut; /** * (Optional) A map of lists of accounts and OU's to exclude from the policy. */ excludeMap?: ExcludeMap; /** * (Required, Forces new resource) A boolean value, if true the tags that are specified in the `resourc * e_tags` are not protected by this policy. If set to false and resource_tags are populated, resources * that contain tags will be protected by this policy. */ excludeResourceTags: boolean | core.BooleanOut; /** * (Optional) A map of lists of accounts and OU's to include in the policy. */ includeMap?: IncludeMap; /** * (Required, Forces new resource) The friendly name of the AWS Firewall Manager Policy. */ name: string | core.StringOut; /** * (Required) A boolean value, indicates if the policy should automatically applied to resources that a * lready exist in the account. */ remediationEnabled?: boolean | core.BooleanOut; /** * (Optional) A map of resource tags, that if present will filter protections on resources based on the * exclude_resource_tags. */ resourceTags?: core.Map | core.MapOut; /** * (Optional) A resource type to protect. Conflicts with `resource_type_list`. See the [FMS API Referen * ce](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_Policy.html#fms-Type-Policy-Resource * Type) for more information about supported values. */ resourceType?: string | core.StringOut; /** * (Optional) A list of resource types to protect. Conflicts with `resource_type`. See the [FMS API Ref * erence](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_Policy.html#fms-Type-Policy-Reso * urceType) for more information about supported values. Lists with only one element are not supported * , instead use `resource_type`. */ resourceTypeList?: core.Array | core.ArrayOut; /** * (Required) The objects to include in Security Service Policy Data. Documented below. */ securityServicePolicyData: SecurityServicePolicyData; /** * (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; /** * 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 Policy extends core.Resource { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) If true, the request will also perform a clean-up process. Defaults to `true`. More infor * mation can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-0 * 1-01/APIReference/API_DeletePolicy.html) */ @core.attr(Boolean) public deleteAllPolicyResources?: boolean | core.BooleanOut; /** * (Optional) If true, Firewall Manager will automatically remove protections from resources that leave * the policy scope. Defaults to `false`. More information can be found here [AWS Firewall Manager pol * icy contents](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_Policy.html) */ @core.attr(Boolean) public deleteUnusedFmManagedResources?: boolean | core.BooleanOut; /** * (Optional) A map of lists of accounts and OU's to exclude from the policy. */ @core.attr(ExcludeMap) public excludeMap?: ExcludeMap; /** * (Required, Forces new resource) A boolean value, if true the tags that are specified in the `resourc * e_tags` are not protected by this policy. If set to false and resource_tags are populated, resources * that contain tags will be protected by this policy. */ @core.attr(Boolean) public excludeResourceTags!: boolean | core.BooleanOut; /** * The AWS account ID of the AWS Firewall Manager administrator account. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) A map of lists of accounts and OU's to include in the policy. */ @core.attr(IncludeMap) public includeMap?: IncludeMap; /** * (Required, Forces new resource) The friendly name of the AWS Firewall Manager Policy. */ @core.attr(String) public name!: string | core.StringOut; /** * A unique identifier for each update to the policy. */ @core.attr(String, { computed: true }) public policyUpdateToken!: string | core.StringOut; /** * (Required) A boolean value, indicates if the policy should automatically applied to resources that a * lready exist in the account. */ @core.attr(Boolean) public remediationEnabled?: boolean | core.BooleanOut; /** * (Optional) A map of resource tags, that if present will filter protections on resources based on the * exclude_resource_tags. */ @core.attr(String, { kind: "map" }) public resourceTags?: core.Map | core.MapOut; /** * (Optional) A resource type to protect. Conflicts with `resource_type_list`. See the [FMS API Referen * ce](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_Policy.html#fms-Type-Policy-Resource * Type) for more information about supported values. */ @core.attr(String, { computed: true }) public resourceType?: string | core.StringOut; /** * (Optional) A list of resource types to protect. Conflicts with `resource_type`. See the [FMS API Ref * erence](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_Policy.html#fms-Type-Policy-Reso * urceType) for more information about supported values. Lists with only one element are not supported * , instead use `resource_type`. */ @core.attr(String, { computed: true, kind: "array" }) public resourceTypeList?: core.Array | core.ArrayOut; /** * (Required) The objects to include in Security Service Policy Data. Documented below. */ @core.attr(SecurityServicePolicyData) public securityServicePolicyData!: SecurityServicePolicyData; /** * (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; /** * 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?: PolicyArgs) { super(name, "aws_fms_policy", args); } public override getNamespace(): string { return "aws_fms"; } }