import * as core from "@terrascript/core"; export interface SnapshotDeliveryPropertiesArgs extends core.SchemaArgs { deliveryFrequency?: string | core.StringOut; } export class SnapshotDeliveryProperties extends core.Schema { @core.attr(String) public deliveryFrequency?: string | core.StringOut; } export interface DeliveryChannelArgs extends core.ResourceArgs { /** * (Optional) The name of the delivery channel. Defaults to `default`. Changing it recreates the resour * ce. */ name?: string | core.StringOut; /** * (Required) The name of the S3 bucket used to store the configuration history. */ s3BucketName: string | core.StringOut; /** * (Optional) The prefix for the specified S3 bucket. */ s3KeyPrefix?: string | core.StringOut; /** * (Optional) The ARN of the AWS KMS key used to encrypt objects delivered by AWS Config. Must belong t * o the same Region as the destination S3 bucket. */ s3KmsKeyArn?: string | core.StringOut; /** * (Optional) Options for how AWS Config delivers configuration snapshots. See below */ snapshotDeliveryProperties?: SnapshotDeliveryProperties; /** * (Optional) The ARN of the SNS topic that AWS Config delivers notifications to. */ snsTopicArn?: string | core.StringOut; } export class DeliveryChannel extends core.Resource { /** * The name of the delivery channel. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The name of the delivery channel. Defaults to `default`. Changing it recreates the resour * ce. */ @core.attr(String) public name?: string | core.StringOut; /** * (Required) The name of the S3 bucket used to store the configuration history. */ @core.attr(String) public s3BucketName!: string | core.StringOut; /** * (Optional) The prefix for the specified S3 bucket. */ @core.attr(String) public s3KeyPrefix?: string | core.StringOut; /** * (Optional) The ARN of the AWS KMS key used to encrypt objects delivered by AWS Config. Must belong t * o the same Region as the destination S3 bucket. */ @core.attr(String) public s3KmsKeyArn?: string | core.StringOut; /** * (Optional) Options for how AWS Config delivers configuration snapshots. See below */ @core.attr(SnapshotDeliveryProperties) public snapshotDeliveryProperties?: SnapshotDeliveryProperties; /** * (Optional) The ARN of the SNS topic that AWS Config delivers notifications to. */ @core.attr(String) public snsTopicArn?: string | core.StringOut; constructor(name: string, args?: DeliveryChannelArgs) { super(name, "aws_config_delivery_channel", args); } public override getNamespace(): string { return "aws_config"; } }