import * as core from "@terrascript/core"; export interface S3BucketDestinationArgs extends core.SchemaArgs { bucketAccountId?: string | core.StringOut; bucketArn: string | core.StringOut; format?: string | core.StringOut; prefix?: string | core.StringOut; } export class S3BucketDestination extends core.Schema { @core.attr(String) public bucketAccountId?: string | core.StringOut; @core.attr(String) public bucketArn!: string | core.StringOut; @core.attr(String) public format?: string | core.StringOut; @core.attr(String) public prefix?: string | core.StringOut; } export interface DestinationArgs extends core.SchemaArgs { s3BucketDestination: S3BucketDestination; } export class Destination extends core.Schema { @core.attr(S3BucketDestination) public s3BucketDestination!: S3BucketDestination; } export interface DataExportArgs extends core.SchemaArgs { destination: Destination; outputSchemaVersion?: string | core.StringOut; } export class DataExport extends core.Schema { @core.attr(Destination) public destination!: Destination; @core.attr(String) public outputSchemaVersion?: string | core.StringOut; } export interface StorageClassAnalysisArgs extends core.SchemaArgs { dataExport: DataExport; } export class StorageClassAnalysis extends core.Schema { @core.attr(DataExport) public dataExport!: DataExport; } export interface FilterArgs extends core.SchemaArgs { prefix?: string | core.StringOut; tags?: core.Map | core.MapOut; } export class Filter extends core.Schema { @core.attr(String) public prefix?: string | core.StringOut; @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; } export interface BucketAnalyticsConfigurationArgs extends core.ResourceArgs { /** * (Required) The name of the bucket this analytics configuration is associated with. */ bucket: string | core.StringOut; /** * (Optional) Object filtering that accepts a prefix, tags, or a logical AND of prefix and tags (docume * nted below). */ filter?: Filter; /** * (Required) Unique identifier of the analytics configuration for the bucket. */ name: string | core.StringOut; /** * (Optional) Configuration for the analytics data export (documented below). */ storageClassAnalysis?: StorageClassAnalysis; } export class BucketAnalyticsConfiguration extends core.Resource { /** * (Required) The name of the bucket this analytics configuration is associated with. */ @core.attr(String) public bucket!: string | core.StringOut; /** * (Optional) Object filtering that accepts a prefix, tags, or a logical AND of prefix and tags (docume * nted below). */ @core.attr(Filter) public filter?: Filter; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Unique identifier of the analytics configuration for the bucket. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) Configuration for the analytics data export (documented below). */ @core.attr(StorageClassAnalysis) public storageClassAnalysis?: StorageClassAnalysis; constructor(name: string, args?: BucketAnalyticsConfigurationArgs) { super(name, "aws_s3_bucket_analytics_configuration", args); } public override getNamespace(): string { return "aws_s3"; } }