import * as core from "@terrascript/core"; export interface EncryptionConfigArgs extends core.SchemaArgs { encryptionType: string | core.StringOut; keyId: string | core.StringOut; } export class EncryptionConfig extends core.Schema { @core.attr(String) public encryptionType!: string | core.StringOut; @core.attr(String) public keyId!: string | core.StringOut; } export interface S3ConfigArgs extends core.SchemaArgs { bucketName: string | core.StringOut; bucketPrefix: string | core.StringOut; encryptionConfig?: EncryptionConfig; } export class S3Config extends core.Schema { @core.attr(String) public bucketName!: string | core.StringOut; @core.attr(String) public bucketPrefix!: string | core.StringOut; @core.attr(EncryptionConfig) public encryptionConfig?: EncryptionConfig; } export interface KinesisFirehoseConfigArgs extends core.SchemaArgs { firehoseArn: string | core.StringOut; } export class KinesisFirehoseConfig extends core.Schema { @core.attr(String) public firehoseArn!: string | core.StringOut; } export interface KinesisStreamConfigArgs extends core.SchemaArgs { streamArn: string | core.StringOut; } export class KinesisStreamConfig extends core.Schema { @core.attr(String) public streamArn!: string | core.StringOut; } export interface KinesisVideoStreamConfigArgs extends core.SchemaArgs { encryptionConfig: EncryptionConfig; prefix: string | core.StringOut; retentionPeriodHours: number | core.NumberOut; } export class KinesisVideoStreamConfig extends core.Schema { @core.attr(EncryptionConfig) public encryptionConfig!: EncryptionConfig; @core.attr(String) public prefix!: string | core.StringOut; @core.attr(Number) public retentionPeriodHours!: number | core.NumberOut; } export interface StorageConfigArgs extends core.SchemaArgs { kinesisFirehoseConfig?: KinesisFirehoseConfig; kinesisStreamConfig?: KinesisStreamConfig; kinesisVideoStreamConfig?: KinesisVideoStreamConfig; s3Config?: S3Config; storageType: string | core.StringOut; } export class StorageConfig extends core.Schema { @core.attr(KinesisFirehoseConfig) public kinesisFirehoseConfig?: KinesisFirehoseConfig; @core.attr(KinesisStreamConfig) public kinesisStreamConfig?: KinesisStreamConfig; @core.attr(KinesisVideoStreamConfig) public kinesisVideoStreamConfig?: KinesisVideoStreamConfig; @core.attr(S3Config) public s3Config?: S3Config; @core.attr(String) public storageType!: string | core.StringOut; } export interface InstanceStorageConfigArgs extends core.ResourceArgs { /** * (Required) Specifies the identifier of the hosting Amazon Connect Instance. */ instanceId: string | core.StringOut; /** * (Required) A valid resource type. Valid Values: `CHAT_TRANSCRIPTS` | `CALL_RECORDINGS` | `SCHEDULED_ * REPORTS` | `MEDIA_STREAMS` | `CONTACT_TRACE_RECORDS` | `AGENT_EVENTS` | `REAL_TIME_CONTACT_ANALYSIS_ * SEGMENTS`. */ resourceType: string | core.StringOut; /** * (Required) Specifies the storage configuration options for the Connect Instance. [Documented below]( * #storage_config). */ storageConfig: StorageConfig; } export class InstanceStorageConfig extends core.Resource { /** * The existing association identifier that uniquely identifies the resource type and storage config fo * r the given instance ID. */ @core.attr(String, { computed: true }) public associationId!: string | core.StringOut; /** * The identifier of the hosting Amazon Connect Instance, `association_id`, and `resource_type` separat * ed by a colon (`:`). */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Specifies the identifier of the hosting Amazon Connect Instance. */ @core.attr(String) public instanceId!: string | core.StringOut; /** * (Required) A valid resource type. Valid Values: `CHAT_TRANSCRIPTS` | `CALL_RECORDINGS` | `SCHEDULED_ * REPORTS` | `MEDIA_STREAMS` | `CONTACT_TRACE_RECORDS` | `AGENT_EVENTS` | `REAL_TIME_CONTACT_ANALYSIS_ * SEGMENTS`. */ @core.attr(String) public resourceType!: string | core.StringOut; /** * (Required) Specifies the storage configuration options for the Connect Instance. [Documented below]( * #storage_config). */ @core.attr(StorageConfig) public storageConfig!: StorageConfig; constructor(name: string, args?: InstanceStorageConfigArgs) { super(name, "aws_connect_instance_storage_config", args); } public override getNamespace(): string { return "aws_connect"; } }