import * as core from "@terrascript/core"; export interface QueryArgProfilesItemsArgs extends core.SchemaArgs { profileId: string | core.StringOut; queryArg: string | core.StringOut; } export class QueryArgProfilesItems extends core.Schema { @core.attr(String) public profileId!: string | core.StringOut; @core.attr(String) public queryArg!: string | core.StringOut; } export interface QueryArgProfilesArgs extends core.SchemaArgs { items?: | core.Array | core.ArrayOut; } export class QueryArgProfiles extends core.Schema { @core.attr(QueryArgProfilesItems, { kind: "array" }) public items?: | core.Array | core.ArrayOut; } export interface QueryArgProfileConfigArgs extends core.SchemaArgs { forwardWhenQueryArgProfileIsUnknown: boolean | core.BooleanOut; queryArgProfiles?: QueryArgProfiles; } export class QueryArgProfileConfig extends core.Schema { @core.attr(Boolean) public forwardWhenQueryArgProfileIsUnknown!: boolean | core.BooleanOut; @core.attr(QueryArgProfiles) public queryArgProfiles?: QueryArgProfiles; } export interface ContentTypeProfilesItemsArgs extends core.SchemaArgs { contentType: string | core.StringOut; format: string | core.StringOut; profileId?: string | core.StringOut; } export class ContentTypeProfilesItems extends core.Schema { @core.attr(String) public contentType!: string | core.StringOut; @core.attr(String) public format!: string | core.StringOut; @core.attr(String) public profileId?: string | core.StringOut; } export interface ContentTypeProfilesArgs extends core.SchemaArgs { items: | core.Array | core.ArrayOut; } export class ContentTypeProfiles extends core.Schema { @core.attr(ContentTypeProfilesItems, { kind: "array" }) public items!: | core.Array | core.ArrayOut; } export interface ContentTypeProfileConfigArgs extends core.SchemaArgs { contentTypeProfiles: ContentTypeProfiles; forwardWhenContentTypeIsUnknown: boolean | core.BooleanOut; } export class ContentTypeProfileConfig extends core.Schema { @core.attr(ContentTypeProfiles) public contentTypeProfiles!: ContentTypeProfiles; @core.attr(Boolean) public forwardWhenContentTypeIsUnknown!: boolean | core.BooleanOut; } export interface FieldLevelEncryptionConfigArgs extends core.ResourceArgs { /** * (Optional) An optional comment about the Field Level Encryption Config. */ comment?: string | core.StringOut; /** * (Required) [Content Type Profile Config](#content-type-profile-config) specifies when to forward con * tent if a content type isn't recognized and profiles to use as by default in a request if a query ar * gument doesn't specify a profile to use. */ contentTypeProfileConfig: ContentTypeProfileConfig; /** * (Required) [Query Arg Profile Config](#query-arg-profile-config) that specifies when to forward cont * ent if a profile isn't found and the profile that can be provided as a query argument in a request. */ queryArgProfileConfig: QueryArgProfileConfig; } export class FieldLevelEncryptionConfig extends core.Resource { /** * Internal value used by CloudFront to allow future updates to the Field Level Encryption Config. */ @core.attr(String, { computed: true }) public callerReference!: string | core.StringOut; /** * (Optional) An optional comment about the Field Level Encryption Config. */ @core.attr(String) public comment?: string | core.StringOut; /** * (Required) [Content Type Profile Config](#content-type-profile-config) specifies when to forward con * tent if a content type isn't recognized and profiles to use as by default in a request if a query ar * gument doesn't specify a profile to use. */ @core.attr(ContentTypeProfileConfig) public contentTypeProfileConfig!: ContentTypeProfileConfig; /** * The current version of the Field Level Encryption Config. For example: `E2QWRUHAPOMQZL`. */ @core.attr(String, { computed: true }) public etag!: string | core.StringOut; /** * The identifier for the Field Level Encryption Config. For example: `K3D5EWEUDCCXON`. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) [Query Arg Profile Config](#query-arg-profile-config) that specifies when to forward cont * ent if a profile isn't found and the profile that can be provided as a query argument in a request. */ @core.attr(QueryArgProfileConfig) public queryArgProfileConfig!: QueryArgProfileConfig; constructor(name: string, args?: FieldLevelEncryptionConfigArgs) { super(name, "aws_cloudfront_field_level_encryption_config", args); } public override getNamespace(): string { return "aws_cloudfront"; } }