import * as core from "@terrascript/core"; export interface OutputLocationArgs extends core.SchemaArgs { s3BucketName: string | core.StringOut; s3KeyPrefix?: string | core.StringOut; s3Region?: string | core.StringOut; } export class OutputLocation extends core.Schema { @core.attr(String) public s3BucketName!: string | core.StringOut; @core.attr(String) public s3KeyPrefix?: string | core.StringOut; @core.attr(String) public s3Region?: string | core.StringOut; } export interface TargetsArgs extends core.SchemaArgs { key: string | core.StringOut; values: core.Array | core.ArrayOut; } export class Targets extends core.Schema { @core.attr(String) public key!: string | core.StringOut; @core.attr(String, { kind: "array" }) public values!: core.Array | core.ArrayOut; } export interface AssociationArgs extends core.ResourceArgs { /** * (Optional) By default, when you create a new or update associations, the system runs it immediately * and then according to the schedule you specified. Enable this option if you do not want an associati * on to run immediately after you create or update it. This parameter is not supported for rate expres * sions. Default: `false`. */ applyOnlyAtCronInterval?: boolean | core.BooleanOut; /** * (Optional) The descriptive name for the association. */ associationName?: string | core.StringOut; /** * (Optional) Specify the target for the association. This target is required for associations that use * an `Automation` document and target resources by using rate controls. This should be set to the SSM * document `parameter` that will define how your automation will branch out. */ automationTargetParameterName?: string | core.StringOut; /** * (Optional) The compliance severity for the association. Can be one of the following: `UNSPECIFIED`, * LOW`, `MEDIUM`, `HIGH` or `CRITICAL` */ complianceSeverity?: string | core.StringOut; /** * (Optional) The document version you want to associate with the target(s). Can be a specific version * or the default version. */ documentVersion?: string | core.StringOut; /** * (Optional) The instance ID to apply an SSM document to. Use `targets` with key `InstanceIds` for doc * ument schema versions 2.0 and above. */ instanceId?: string | core.StringOut; /** * (Optional) The maximum number of targets allowed to run the association at the same time. You can sp * ecify a number, for example 10, or a percentage of the target set, for example 10%. */ maxConcurrency?: string | core.StringOut; /** * (Optional) The number of errors that are allowed before the system stops sending requests to run the * association on additional targets. You can specify a number, for example 10, or a percentage of the * target set, for example 10%. */ maxErrors?: string | core.StringOut; /** * (Required) The name of the SSM document to apply. */ name: string | core.StringOut; /** * (Optional) An output location block. Output Location is documented below. */ outputLocation?: OutputLocation; /** * (Optional) A block of arbitrary string parameters to pass to the SSM document. */ parameters?: core.Map | core.MapOut; /** * (Optional) A cron expression when the association will be applied to the target(s). */ scheduleExpression?: string | core.StringOut; /** * (Optional) A block containing the targets of the SSM association. Targets are documented below. AWS * currently supports a maximum of 5 targets. */ targets?: core.Array | core.ArrayOut; /** * (Optional) The number of seconds to wait for the association status to be `Success`. If `Success` st * atus is not reached within the given time, create opration will fail. */ waitForSuccessTimeoutSeconds?: number | core.NumberOut; } export class Association extends core.Resource { /** * (Optional) By default, when you create a new or update associations, the system runs it immediately * and then according to the schedule you specified. Enable this option if you do not want an associati * on to run immediately after you create or update it. This parameter is not supported for rate expres * sions. Default: `false`. */ @core.attr(Boolean) public applyOnlyAtCronInterval?: boolean | core.BooleanOut; /** * The ARN of the SSM association */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * The ID of the SSM association. */ @core.attr(String, { computed: true }) public associationId!: string | core.StringOut; /** * (Optional) The descriptive name for the association. */ @core.attr(String) public associationName?: string | core.StringOut; /** * (Optional) Specify the target for the association. This target is required for associations that use * an `Automation` document and target resources by using rate controls. This should be set to the SSM * document `parameter` that will define how your automation will branch out. */ @core.attr(String) public automationTargetParameterName?: string | core.StringOut; /** * (Optional) The compliance severity for the association. Can be one of the following: `UNSPECIFIED`, * LOW`, `MEDIUM`, `HIGH` or `CRITICAL` */ @core.attr(String) public complianceSeverity?: string | core.StringOut; /** * (Optional) The document version you want to associate with the target(s). Can be a specific version * or the default version. */ @core.attr(String, { computed: true }) public documentVersion?: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The instance ID to apply an SSM document to. Use `targets` with key `InstanceIds` for doc * ument schema versions 2.0 and above. */ @core.attr(String) public instanceId?: string | core.StringOut; /** * (Optional) The maximum number of targets allowed to run the association at the same time. You can sp * ecify a number, for example 10, or a percentage of the target set, for example 10%. */ @core.attr(String) public maxConcurrency?: string | core.StringOut; /** * (Optional) The number of errors that are allowed before the system stops sending requests to run the * association on additional targets. You can specify a number, for example 10, or a percentage of the * target set, for example 10%. */ @core.attr(String) public maxErrors?: string | core.StringOut; /** * (Required) The name of the SSM document to apply. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) An output location block. Output Location is documented below. */ @core.attr(OutputLocation) public outputLocation?: OutputLocation; /** * (Optional) A block of arbitrary string parameters to pass to the SSM document. */ @core.attr(String, { computed: true, kind: "map" }) public parameters?: core.Map | core.MapOut; /** * (Optional) A cron expression when the association will be applied to the target(s). */ @core.attr(String) public scheduleExpression?: string | core.StringOut; /** * (Optional) A block containing the targets of the SSM association. Targets are documented below. AWS * currently supports a maximum of 5 targets. */ @core.attr(Targets, { computed: true, kind: "array" }) public targets?: core.Array | core.ArrayOut; /** * (Optional) The number of seconds to wait for the association status to be `Success`. If `Success` st * atus is not reached within the given time, create opration will fail. */ @core.attr(Number) public waitForSuccessTimeoutSeconds?: number | core.NumberOut; constructor(name: string, args?: AssociationArgs) { super(name, "aws_ssm_association", args); } public override getNamespace(): string { return "aws_ssm"; } }