import * as core from "@terrascript/core"; export interface OrganizationManagedRuleArgs extends core.ResourceArgs { /** * (Optional) Description of the rule */ description?: string | core.StringOut; /** * (Optional) List of AWS account identifiers to exclude from the rule */ excludedAccounts?: core.Array | core.ArrayOut; /** * (Optional) A string in JSON format that is passed to the AWS Config Rule Lambda Function */ inputParameters?: string | core.StringOut; /** * (Optional) The maximum frequency with which AWS Config runs evaluations for a rule, if the rule is t * riggered at a periodic frequency. Defaults to `TwentyFour_Hours` for periodic frequency triggered ru * les. Valid values: `One_Hour`, `Three_Hours`, `Six_Hours`, `Twelve_Hours`, or `TwentyFour_Hours`. */ maximumExecutionFrequency?: string | core.StringOut; /** * (Required) The name of the rule */ name: string | core.StringOut; /** * (Optional) Identifier of the AWS resource to evaluate */ resourceIdScope?: string | core.StringOut; /** * (Optional) List of types of AWS resources to evaluate */ resourceTypesScope?: core.Array | core.ArrayOut; /** * (Required) Identifier of an available AWS Config Managed Rule to call. For available values, see the * [List of AWS Config Managed Rules](https://docs.aws.amazon.com/config/latest/developerguide/managed * rules-by-aws-config.html) documentation */ ruleIdentifier: string | core.StringOut; /** * (Optional, Required if `tag_value_scope` is configured) Tag key of AWS resources to evaluate */ tagKeyScope?: string | core.StringOut; /** * (Optional) Tag value of AWS resources to evaluate */ tagValueScope?: string | core.StringOut; } export class OrganizationManagedRule extends core.Resource { /** * Amazon Resource Name (ARN) of the rule */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) Description of the rule */ @core.attr(String) public description?: string | core.StringOut; /** * (Optional) List of AWS account identifiers to exclude from the rule */ @core.attr(String, { kind: "array" }) public excludedAccounts?: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) A string in JSON format that is passed to the AWS Config Rule Lambda Function */ @core.attr(String) public inputParameters?: string | core.StringOut; /** * (Optional) The maximum frequency with which AWS Config runs evaluations for a rule, if the rule is t * riggered at a periodic frequency. Defaults to `TwentyFour_Hours` for periodic frequency triggered ru * les. Valid values: `One_Hour`, `Three_Hours`, `Six_Hours`, `Twelve_Hours`, or `TwentyFour_Hours`. */ @core.attr(String) public maximumExecutionFrequency?: string | core.StringOut; /** * (Required) The name of the rule */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) Identifier of the AWS resource to evaluate */ @core.attr(String) public resourceIdScope?: string | core.StringOut; /** * (Optional) List of types of AWS resources to evaluate */ @core.attr(String, { kind: "array" }) public resourceTypesScope?: | core.Array | core.ArrayOut; /** * (Required) Identifier of an available AWS Config Managed Rule to call. For available values, see the * [List of AWS Config Managed Rules](https://docs.aws.amazon.com/config/latest/developerguide/managed * rules-by-aws-config.html) documentation */ @core.attr(String) public ruleIdentifier!: string | core.StringOut; /** * (Optional, Required if `tag_value_scope` is configured) Tag key of AWS resources to evaluate */ @core.attr(String) public tagKeyScope?: string | core.StringOut; /** * (Optional) Tag value of AWS resources to evaluate */ @core.attr(String) public tagValueScope?: string | core.StringOut; constructor(name: string, args?: OrganizationManagedRuleArgs) { super(name, "aws_config_organization_managed_rule", args); } public override getNamespace(): string { return "aws_config"; } }