import * as core from "@terrascript/core"; export interface FieldPatternsArgs extends core.SchemaArgs { items?: core.Array | core.ArrayOut; } export class FieldPatterns extends core.Schema { @core.attr(String, { kind: "array" }) public items?: core.Array | core.ArrayOut; } export interface ItemsArgs extends core.SchemaArgs { fieldPatterns: FieldPatterns; providerId: string | core.StringOut; publicKeyId: string | core.StringOut; } export class Items extends core.Schema { @core.attr(FieldPatterns) public fieldPatterns!: FieldPatterns; @core.attr(String) public providerId!: string | core.StringOut; @core.attr(String) public publicKeyId!: string | core.StringOut; } export interface EncryptionEntitiesArgs extends core.SchemaArgs { items?: core.Array | core.ArrayOut; } export class EncryptionEntities extends core.Schema { @core.attr(Items, { kind: "array" }) public items?: core.Array | core.ArrayOut; } export interface FieldLevelEncryptionProfileArgs extends core.ResourceArgs { /** * (Optional) An optional comment about the Field Level Encryption Profile. */ comment?: string | core.StringOut; /** * (Required) The [encryption entities](#encryption-entities) config block for field-level encryption p * rofiles that contains an attribute `items` which includes the encryption key and field pattern speci * fications. */ encryptionEntities: EncryptionEntities; /** * (Required) The name of the Field Level Encryption Profile. */ name: string | core.StringOut; } export class FieldLevelEncryptionProfile extends core.Resource { /** * Internal value used by CloudFront to allow future updates to the Field Level Encryption Profile. */ @core.attr(String, { computed: true }) public callerReference!: string | core.StringOut; /** * (Optional) An optional comment about the Field Level Encryption Profile. */ @core.attr(String) public comment?: string | core.StringOut; /** * (Required) The [encryption entities](#encryption-entities) config block for field-level encryption p * rofiles that contains an attribute `items` which includes the encryption key and field pattern speci * fications. */ @core.attr(EncryptionEntities) public encryptionEntities!: EncryptionEntities; /** * The current version of the Field Level Encryption Profile. For example: `E2QWRUHAPOMQZL`. */ @core.attr(String, { computed: true }) public etag!: string | core.StringOut; /** * The identifier for the Field Level Encryption Profile. For example: `K3D5EWEUDCCXON`. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) The name of the Field Level Encryption Profile. */ @core.attr(String) public name!: string | core.StringOut; constructor(name: string, args?: FieldLevelEncryptionProfileArgs) { super(name, "aws_cloudfront_field_level_encryption_profile", args); } public override getNamespace(): string { return "aws_cloudfront"; } }