import * as core from "@terrascript/core"; export interface SourceArgs extends core.SchemaArgs { configuration: string | core.StringOut; name: string | core.StringOut; products: core.Array | core.ArrayOut; } export class Source extends core.Schema { @core.attr(String) public configuration!: string | core.StringOut; @core.attr(String) public name!: string | core.StringOut; @core.attr(String, { kind: "array" }) public products!: core.Array | core.ArrayOut; } export interface GlobalFilterArgs extends core.SchemaArgs { key: string | core.StringOut; values: core.Array | core.ArrayOut; } export class GlobalFilter extends core.Schema { @core.attr(String) public key!: string | core.StringOut; @core.attr(String, { kind: "array" }) public values!: core.Array | core.ArrayOut; } export interface PatchFilterArgs extends core.SchemaArgs { key: string | core.StringOut; values: core.Array | core.ArrayOut; } export class PatchFilter extends core.Schema { @core.attr(String) public key!: string | core.StringOut; @core.attr(String, { kind: "array" }) public values!: core.Array | core.ArrayOut; } export interface ApprovalRuleArgs extends core.SchemaArgs { approveAfterDays?: number | core.NumberOut; approveUntilDate?: string | core.StringOut; complianceLevel?: string | core.StringOut; enableNonSecurity?: boolean | core.BooleanOut; patchFilter: core.Array | core.ArrayOut; } export class ApprovalRule extends core.Schema { @core.attr(Number) public approveAfterDays?: number | core.NumberOut; @core.attr(String) public approveUntilDate?: string | core.StringOut; @core.attr(String) public complianceLevel?: string | core.StringOut; @core.attr(Boolean) public enableNonSecurity?: boolean | core.BooleanOut; @core.attr(PatchFilter, { kind: "array" }) public patchFilter!: core.Array | core.ArrayOut; } export interface PatchBaselineArgs extends core.ResourceArgs { /** * (Optional) A set of rules used to include patches in the baseline. up to 10 approval rules can be sp * ecified. Each approval_rule block requires the fields documented below. */ approvalRule?: core.Array | core.ArrayOut; /** * (Optional) A list of explicitly approved patches for the baseline. */ approvedPatches?: core.Array | core.ArrayOut; /** * (Optional) Defines the compliance level for approved patches. This means that if an approved patch i * s reported as missing, this is the severity of the compliance violation. Valid compliance levels inc * lude the following: `CRITICAL`, `HIGH`, `MEDIUM`, `LOW`, `INFORMATIONAL`, `UNSPECIFIED`. The default * value is `UNSPECIFIED`. */ approvedPatchesComplianceLevel?: string | core.StringOut; /** * (Optional) Indicates whether the list of approved patches includes non-security updates that should * be applied to the instances. Applies to Linux instances only. */ approvedPatchesEnableNonSecurity?: boolean | core.BooleanOut; /** * (Optional) The description of the patch baseline. */ description?: string | core.StringOut; /** * (Optional) A set of global filters used to exclude patches from the baseline. Up to 4 global filters * can be specified using Key/Value pairs. Valid Keys are `PRODUCT | CLASSIFICATION | MSRC_SEVERITY | * PATCH_ID`. */ globalFilter?: core.Array | core.ArrayOut; /** * (Required) The name of the patch baseline. */ name: string | core.StringOut; /** * (Optional) Defines the operating system the patch baseline applies to. Supported operating systems i * nclude `WINDOWS`, `AMAZON_LINUX`, `AMAZON_LINUX_2`, `SUSE`, `UBUNTU`, `CENTOS`, and `REDHAT_ENTERPRI * SE_LINUX`. The Default value is `WINDOWS`. */ operatingSystem?: string | core.StringOut; /** * (Optional) A list of rejected patches. */ rejectedPatches?: core.Array | core.ArrayOut; /** * (Optional) The action for Patch Manager to take on patches included in the `rejected_patches` list. * Allow values are `ALLOW_AS_DEPENDENCY` and `BLOCK`. */ rejectedPatchesAction?: string | core.StringOut; /** * (Optional) Configuration block(s) with alternate sources for patches. Applies to Linux instances onl * y. Documented below. */ source?: core.Array | core.ArrayOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ 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 PatchBaseline extends core.Resource { /** * (Optional) A set of rules used to include patches in the baseline. up to 10 approval rules can be sp * ecified. Each approval_rule block requires the fields documented below. */ @core.attr(ApprovalRule, { kind: "array" }) public approvalRule?: core.Array | core.ArrayOut; /** * (Optional) A list of explicitly approved patches for the baseline. */ @core.attr(String, { kind: "array" }) public approvedPatches?: core.Array | core.ArrayOut; /** * (Optional) Defines the compliance level for approved patches. This means that if an approved patch i * s reported as missing, this is the severity of the compliance violation. Valid compliance levels inc * lude the following: `CRITICAL`, `HIGH`, `MEDIUM`, `LOW`, `INFORMATIONAL`, `UNSPECIFIED`. The default * value is `UNSPECIFIED`. */ @core.attr(String) public approvedPatchesComplianceLevel?: string | core.StringOut; /** * (Optional) Indicates whether the list of approved patches includes non-security updates that should * be applied to the instances. Applies to Linux instances only. */ @core.attr(Boolean) public approvedPatchesEnableNonSecurity?: boolean | core.BooleanOut; /** * The ARN of the patch baseline. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) The description of the patch baseline. */ @core.attr(String) public description?: string | core.StringOut; /** * (Optional) A set of global filters used to exclude patches from the baseline. Up to 4 global filters * can be specified using Key/Value pairs. Valid Keys are `PRODUCT | CLASSIFICATION | MSRC_SEVERITY | * PATCH_ID`. */ @core.attr(GlobalFilter, { kind: "array" }) public globalFilter?: core.Array | core.ArrayOut; /** * The ID of the patch baseline. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) The name of the patch baseline. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) Defines the operating system the patch baseline applies to. Supported operating systems i * nclude `WINDOWS`, `AMAZON_LINUX`, `AMAZON_LINUX_2`, `SUSE`, `UBUNTU`, `CENTOS`, and `REDHAT_ENTERPRI * SE_LINUX`. The Default value is `WINDOWS`. */ @core.attr(String) public operatingSystem?: string | core.StringOut; /** * (Optional) A list of rejected patches. */ @core.attr(String, { kind: "array" }) public rejectedPatches?: core.Array | core.ArrayOut; /** * (Optional) The action for Patch Manager to take on patches included in the `rejected_patches` list. * Allow values are `ALLOW_AS_DEPENDENCY` and `BLOCK`. */ @core.attr(String, { computed: true }) public rejectedPatchesAction?: string | core.StringOut; /** * (Optional) Configuration block(s) with alternate sources for patches. Applies to Linux instances onl * y. Documented below. */ @core.attr(Source, { kind: "array" }) public source?: core.Array | core.ArrayOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ @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?: PatchBaselineArgs) { super(name, "aws_ssm_patch_baseline", args); } public override getNamespace(): string { return "aws_ssm"; } }