import * as core from "@terrascript/core"; export interface SimpleCriterionArgs extends core.SchemaArgs { comparator?: string | core.StringOut; key?: string | core.StringOut; values?: core.Array | core.ArrayOut; } export class SimpleCriterion extends core.Schema { @core.attr(String, { computed: true }) public comparator?: string | core.StringOut; @core.attr(String, { computed: true }) public key?: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public values?: core.Array | core.ArrayOut; } export interface TagValuesArgs extends core.SchemaArgs { key?: string | core.StringOut; value?: string | core.StringOut; } export class TagValues extends core.Schema { @core.attr(String, { computed: true }) public key?: string | core.StringOut; @core.attr(String, { computed: true }) public value?: string | core.StringOut; } export interface TagCriterionArgs extends core.SchemaArgs { comparator?: string | core.StringOut; tagValues?: core.Array | core.ArrayOut; } export class TagCriterion extends core.Schema { @core.attr(String, { computed: true }) public comparator?: string | core.StringOut; @core.attr(TagValues, { kind: "array" }) public tagValues?: core.Array | core.ArrayOut; } export interface BucketCriteriaExcludesAndArgs extends core.SchemaArgs { simpleCriterion?: SimpleCriterion; tagCriterion?: TagCriterion; } export class BucketCriteriaExcludesAnd extends core.Schema { @core.attr(SimpleCriterion, { computed: true }) public simpleCriterion?: SimpleCriterion; @core.attr(TagCriterion, { computed: true }) public tagCriterion?: TagCriterion; } export interface BucketCriteriaExcludesArgs extends core.SchemaArgs { and?: | core.Array | core.ArrayOut; } export class BucketCriteriaExcludes extends core.Schema { @core.attr(BucketCriteriaExcludesAnd, { computed: true, kind: "array" }) public and?: | core.Array | core.ArrayOut; } export interface BucketCriteriaIncludesArgs extends core.SchemaArgs { and?: | core.Array | core.ArrayOut; } export class BucketCriteriaIncludes extends core.Schema { @core.attr(BucketCriteriaExcludesAnd, { computed: true, kind: "array" }) public and?: | core.Array | core.ArrayOut; } export interface BucketCriteriaArgs extends core.SchemaArgs { excludes?: BucketCriteriaExcludes; includes?: BucketCriteriaIncludes; } export class BucketCriteria extends core.Schema { @core.attr(BucketCriteriaExcludes, { computed: true }) public excludes?: BucketCriteriaExcludes; @core.attr(BucketCriteriaIncludes, { computed: true }) public includes?: BucketCriteriaIncludes; } export interface SimpleScopeTermArgs extends core.SchemaArgs { comparator?: string | core.StringOut; key?: string | core.StringOut; values?: core.Array | core.ArrayOut; } export class SimpleScopeTerm extends core.Schema { @core.attr(String, { computed: true }) public comparator?: string | core.StringOut; @core.attr(String, { computed: true }) public key?: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public values?: core.Array | core.ArrayOut; } export interface ScopingExcludesAndTagScopeTermArgs extends core.SchemaArgs { comparator?: string | core.StringOut; key?: string | core.StringOut; tagValues?: core.Array | core.ArrayOut; target?: string | core.StringOut; } export class ScopingExcludesAndTagScopeTerm extends core.Schema { @core.attr(String, { computed: true }) public comparator?: string | core.StringOut; @core.attr(String, { computed: true }) public key?: string | core.StringOut; @core.attr(TagValues, { computed: true, kind: "array" }) public tagValues?: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public target?: string | core.StringOut; } export interface ScopingExcludesAndArgs extends core.SchemaArgs { simpleScopeTerm?: SimpleScopeTerm; tagScopeTerm?: ScopingExcludesAndTagScopeTerm; } export class ScopingExcludesAnd extends core.Schema { @core.attr(SimpleScopeTerm, { computed: true }) public simpleScopeTerm?: SimpleScopeTerm; @core.attr(ScopingExcludesAndTagScopeTerm, { computed: true }) public tagScopeTerm?: ScopingExcludesAndTagScopeTerm; } export interface ScopingExcludesArgs extends core.SchemaArgs { and?: core.Array | core.ArrayOut; } export class ScopingExcludes extends core.Schema { @core.attr(ScopingExcludesAnd, { computed: true, kind: "array" }) public and?: | core.Array | core.ArrayOut; } export interface ScopingIncludesAndTagScopeTermArgs extends core.SchemaArgs { comparator?: string | core.StringOut; key?: string | core.StringOut; tagValues?: core.Array | core.ArrayOut; target?: string | core.StringOut; } export class ScopingIncludesAndTagScopeTerm extends core.Schema { @core.attr(String, { computed: true }) public comparator?: string | core.StringOut; @core.attr(String, { computed: true }) public key?: string | core.StringOut; @core.attr(TagValues, { kind: "array" }) public tagValues?: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public target?: string | core.StringOut; } export interface ScopingIncludesAndArgs extends core.SchemaArgs { simpleScopeTerm?: SimpleScopeTerm; tagScopeTerm?: ScopingIncludesAndTagScopeTerm; } export class ScopingIncludesAnd extends core.Schema { @core.attr(SimpleScopeTerm, { computed: true }) public simpleScopeTerm?: SimpleScopeTerm; @core.attr(ScopingIncludesAndTagScopeTerm, { computed: true }) public tagScopeTerm?: ScopingIncludesAndTagScopeTerm; } export interface ScopingIncludesArgs extends core.SchemaArgs { and?: core.Array | core.ArrayOut; } export class ScopingIncludes extends core.Schema { @core.attr(ScopingIncludesAnd, { computed: true, kind: "array" }) public and?: | core.Array | core.ArrayOut; } export interface ScopingArgs extends core.SchemaArgs { excludes?: ScopingExcludes; includes?: ScopingIncludes; } export class Scoping extends core.Schema { @core.attr(ScopingExcludes, { computed: true }) public excludes?: ScopingExcludes; @core.attr(ScopingIncludes, { computed: true }) public includes?: ScopingIncludes; } export interface BucketDefinitionsArgs extends core.SchemaArgs { accountId: string | core.StringOut; buckets: core.Array | core.ArrayOut; } export class BucketDefinitions extends core.Schema { @core.attr(String) public accountId!: string | core.StringOut; @core.attr(String, { kind: "array" }) public buckets!: core.Array | core.ArrayOut; } export interface S3JobDefinitionArgs extends core.SchemaArgs { bucketCriteria?: BucketCriteria; bucketDefinitions?: | core.Array | core.ArrayOut; scoping?: Scoping; } export class S3JobDefinition extends core.Schema { @core.attr(BucketCriteria, { computed: true }) public bucketCriteria?: BucketCriteria; @core.attr(BucketDefinitions, { kind: "array" }) public bucketDefinitions?: | core.Array | core.ArrayOut; @core.attr(Scoping, { computed: true }) public scoping?: Scoping; } export interface UserPausedDetailsArgs extends core.SchemaArgs { jobExpiresAt: string | core.StringOut; jobImminentExpirationHealthEventArn: string | core.StringOut; jobPausedAt: string | core.StringOut; } export class UserPausedDetails extends core.Schema { @core.attr(String, { computed: true }) public jobExpiresAt!: string | core.StringOut; @core.attr(String, { computed: true }) public jobImminentExpirationHealthEventArn!: string | core.StringOut; @core.attr(String, { computed: true }) public jobPausedAt!: string | core.StringOut; } export interface ScheduleFrequencyArgs extends core.SchemaArgs { dailySchedule?: boolean | core.BooleanOut; monthlySchedule?: number | core.NumberOut; weeklySchedule?: string | core.StringOut; } export class ScheduleFrequency extends core.Schema { @core.attr(Boolean) public dailySchedule?: boolean | core.BooleanOut; @core.attr(Number, { computed: true }) public monthlySchedule?: number | core.NumberOut; @core.attr(String, { computed: true }) public weeklySchedule?: string | core.StringOut; } export interface ClassificationJobArgs extends core.ResourceArgs { /** * (Optional) The custom data identifiers to use for data analysis and classification. */ customDataIdentifierIds?: core.Array | core.ArrayOut; /** * (Optional) A custom description of the job. The description can contain as many as 200 characters. */ description?: string | core.StringOut; /** * (Optional) Specifies whether to analyze all existing, eligible objects immediately after the job is * created. */ initialRun?: boolean | core.BooleanOut; /** * (Optional) The status for the job. Valid values are: `CANCELLED`, `RUNNING` and `USER_PAUSED` */ jobStatus?: string | core.StringOut; /** * (Required) The schedule for running the job. Valid values are: `ONE_TIME` - Run the job only once. * If you specify this value, don't specify a value for the `schedule_frequency` property. `SCHEDULED` * Run the job on a daily, weekly, or monthly basis. If you specify this value, use the `schedule_fre * quency` property to define the recurrence pattern for the job. */ jobType: string | core.StringOut; /** * (Optional) A custom name for the job. The name can contain as many as 500 characters. If omitted, T * erraform will assign a random, unique name. Conflicts with `name_prefix`. */ name?: string | core.StringOut; /** * (Optional) Creates a unique name beginning with the specified prefix. Conflicts with `name`. */ namePrefix?: string | core.StringOut; /** * (Optional) The S3 buckets that contain the objects to analyze, and the scope of that analysis. (doc * umented below) */ s3JobDefinition: S3JobDefinition; /** * (Optional) The sampling depth, as a percentage, to apply when processing objects. This value determ * ines the percentage of eligible objects that the job analyzes. If this value is less than 100, Amazo * n Macie selects the objects to analyze at random, up to the specified percentage, and analyzes all t * he data in those objects. */ samplingPercentage?: number | core.NumberOut; /** * (Optional) The recurrence pattern for running the job. To run the job only once, don't specify a va * lue for this property and set the value for the `job_type` property to `ONE_TIME`. (documented below * ) */ scheduleFrequency?: ScheduleFrequency; /** * (Optional) A map of key-value pairs that specifies the tags to associate with the job. A job can ha * ve a maximum of 50 tags. Each tag consists of a tag key and an associated tag value. The maximum len * gth of a tag key is 128 characters. The maximum length of a tag value is 256 characters. */ tags?: core.Map | core.MapOut; tagsAll?: core.Map | core.MapOut; } export class ClassificationJob extends core.Resource { /** * The date and time, in UTC and extended RFC 3339 format, when the job was created. */ @core.attr(String, { computed: true }) public createdAt!: string | core.StringOut; /** * (Optional) The custom data identifiers to use for data analysis and classification. */ @core.attr(String, { computed: true, kind: "array" }) public customDataIdentifierIds?: | core.Array | core.ArrayOut; /** * (Optional) A custom description of the job. The description can contain as many as 200 characters. */ @core.attr(String, { computed: true }) public description?: string | core.StringOut; /** * The unique identifier (ID) of the macie classification job. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) Specifies whether to analyze all existing, eligible objects immediately after the job is * created. */ @core.attr(Boolean) public initialRun?: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public jobArn!: string | core.StringOut; @core.attr(String, { computed: true }) public jobId!: string | core.StringOut; /** * (Optional) The status for the job. Valid values are: `CANCELLED`, `RUNNING` and `USER_PAUSED` */ @core.attr(String, { computed: true }) public jobStatus?: string | core.StringOut; /** * (Required) The schedule for running the job. Valid values are: `ONE_TIME` - Run the job only once. * If you specify this value, don't specify a value for the `schedule_frequency` property. `SCHEDULED` * Run the job on a daily, weekly, or monthly basis. If you specify this value, use the `schedule_fre * quency` property to define the recurrence pattern for the job. */ @core.attr(String) public jobType!: string | core.StringOut; /** * (Optional) A custom name for the job. The name can contain as many as 500 characters. If omitted, T * erraform will assign a random, unique name. Conflicts with `name_prefix`. */ @core.attr(String, { computed: true }) public name?: string | core.StringOut; /** * (Optional) Creates a unique name beginning with the specified prefix. Conflicts with `name`. */ @core.attr(String, { computed: true }) public namePrefix?: string | core.StringOut; /** * (Optional) The S3 buckets that contain the objects to analyze, and the scope of that analysis. (doc * umented below) */ @core.attr(S3JobDefinition) public s3JobDefinition!: S3JobDefinition; /** * (Optional) The sampling depth, as a percentage, to apply when processing objects. This value determ * ines the percentage of eligible objects that the job analyzes. If this value is less than 100, Amazo * n Macie selects the objects to analyze at random, up to the specified percentage, and analyzes all t * he data in those objects. */ @core.attr(Number, { computed: true }) public samplingPercentage?: number | core.NumberOut; /** * (Optional) The recurrence pattern for running the job. To run the job only once, don't specify a va * lue for this property and set the value for the `job_type` property to `ONE_TIME`. (documented below * ) */ @core.attr(ScheduleFrequency, { computed: true }) public scheduleFrequency?: ScheduleFrequency; /** * (Optional) A map of key-value pairs that specifies the tags to associate with the job. A job can ha * ve a maximum of 50 tags. Each tag consists of a tag key and an associated tag value. The maximum len * gth of a tag key is 128 characters. The maximum length of a tag value is 256 characters. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * If the current status of the job is `USER_PAUSED`, specifies when the job was paused and when the jo * b or job run will expire and be cancelled if it isn't resumed. This value is present only if the val * ue for `job-status` is `USER_PAUSED`. */ @core.attr(UserPausedDetails, { computed: true, kind: "array" }) public userPausedDetails!: | core.Array | core.ArrayOut; constructor(name: string, args?: ClassificationJobArgs) { super(name, "aws_macie2_classification_job", args); } public override getNamespace(): string { return "aws_macie2"; } }