import * as core from "@terrascript/core"; 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 BucketMetricArgs extends core.ResourceArgs { /** * (Required) The name of the bucket to put metric configuration. */ bucket: string | core.StringOut; /** * (Optional) [Object filtering](http://docs.aws.amazon.com/AmazonS3/latest/dev/metrics-configurations. * html#metrics-configurations-filter) that accepts a prefix, tags, or a logical AND of prefix and tags * (documented below). */ filter?: Filter; /** * (Required) Unique identifier of the metrics configuration for the bucket. Must be less than or equal * to 64 characters in length. */ name: string | core.StringOut; } export class BucketMetric extends core.Resource { /** * (Required) The name of the bucket to put metric configuration. */ @core.attr(String) public bucket!: string | core.StringOut; /** * (Optional) [Object filtering](http://docs.aws.amazon.com/AmazonS3/latest/dev/metrics-configurations. * html#metrics-configurations-filter) that accepts a prefix, tags, or a logical AND of prefix and tags * (documented below). */ @core.attr(Filter) public filter?: Filter; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Unique identifier of the metrics configuration for the bucket. Must be less than or equal * to 64 characters in length. */ @core.attr(String) public name!: string | core.StringOut; constructor(name: string, args?: BucketMetricArgs) { super(name, "aws_s3_bucket_metric", args); } public override getNamespace(): string { return "aws_s3"; } }