import * as core from "@terrascript/core"; export interface FilterArgs extends core.SchemaArgs { prefix?: string | core.StringOut; } export class Filter extends core.Schema { @core.attr(String) public prefix?: string | core.StringOut; } export interface SseKmsArgs extends core.SchemaArgs { keyId: string | core.StringOut; } export class SseKms extends core.Schema { @core.attr(String) public keyId!: string | core.StringOut; } export interface SseS3Args extends core.SchemaArgs {} export class SseS3 extends core.Schema {} export interface EncryptionArgs extends core.SchemaArgs { sseKms?: SseKms; sseS3?: SseS3; } export class Encryption extends core.Schema { @core.attr(SseKms) public sseKms?: SseKms; @core.attr(SseS3) public sseS3?: SseS3; } export interface BucketArgs extends core.SchemaArgs { accountId?: string | core.StringOut; bucketArn: string | core.StringOut; encryption?: Encryption; format: string | core.StringOut; prefix?: string | core.StringOut; } export class Bucket extends core.Schema { @core.attr(String) public accountId?: string | core.StringOut; @core.attr(String) public bucketArn!: string | core.StringOut; @core.attr(Encryption) public encryption?: Encryption; @core.attr(String) public format!: string | core.StringOut; @core.attr(String) public prefix?: string | core.StringOut; } export interface DestinationArgs extends core.SchemaArgs { bucket: Bucket; } export class Destination extends core.Schema { @core.attr(Bucket) public bucket!: Bucket; } export interface ScheduleArgs extends core.SchemaArgs { frequency: string | core.StringOut; } export class Schedule extends core.Schema { @core.attr(String) public frequency!: string | core.StringOut; } export interface BucketInventoryArgs extends core.ResourceArgs { /** * (Required) The name of the source bucket that inventory lists the objects for. */ bucket: string | core.StringOut; /** * (Required) Contains information about where to publish the inventory results (documented below). */ destination: Destination; /** * (Optional, Default: `true`) Specifies whether the inventory is enabled or disabled. */ enabled?: boolean | core.BooleanOut; /** * (Optional) Specifies an inventory filter. The inventory only includes objects that meet the filter's * criteria (documented below). */ filter?: Filter; /** * (Required) Object versions to include in the inventory list. Valid values: `All`, `Current`. */ includedObjectVersions: string | core.StringOut; /** * (Required) Unique identifier of the inventory configuration for the bucket. */ name: string | core.StringOut; /** * (Optional) List of optional fields that are included in the inventory results. Please refer to the S * 3 [documentation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_InventoryConfiguration.html#Am * azonS3-Type-InventoryConfiguration-OptionalFields) for more details. */ optionalFields?: core.Array | core.ArrayOut; /** * (Required) Specifies the schedule for generating inventory results (documented below). */ schedule: Schedule; } export class BucketInventory extends core.Resource { /** * (Required) The name of the source bucket that inventory lists the objects for. */ @core.attr(String) public bucket!: string | core.StringOut; /** * (Required) Contains information about where to publish the inventory results (documented below). */ @core.attr(Destination) public destination!: Destination; /** * (Optional, Default: `true`) Specifies whether the inventory is enabled or disabled. */ @core.attr(Boolean) public enabled?: boolean | core.BooleanOut; /** * (Optional) Specifies an inventory filter. The inventory only includes objects that meet the filter's * criteria (documented below). */ @core.attr(Filter) public filter?: Filter; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Object versions to include in the inventory list. Valid values: `All`, `Current`. */ @core.attr(String) public includedObjectVersions!: string | core.StringOut; /** * (Required) Unique identifier of the inventory configuration for the bucket. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) List of optional fields that are included in the inventory results. Please refer to the S * 3 [documentation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_InventoryConfiguration.html#Am * azonS3-Type-InventoryConfiguration-OptionalFields) for more details. */ @core.attr(String, { kind: "array" }) public optionalFields?: core.Array | core.ArrayOut; /** * (Required) Specifies the schedule for generating inventory results (documented below). */ @core.attr(Schedule) public schedule!: Schedule; constructor(name: string, args?: BucketInventoryArgs) { super(name, "aws_s3_bucket_inventory", args); } public override getNamespace(): string { return "aws_s3"; } }