import * as core from "@terrascript/core"; export interface QueryStringsArgs extends core.SchemaArgs { items?: core.Array | core.ArrayOut; } export class QueryStrings extends core.Schema { @core.attr(String, { kind: "array" }) public items?: core.Array | core.ArrayOut; } export interface QueryStringsConfigArgs extends core.SchemaArgs { queryStringBehavior: string | core.StringOut; queryStrings?: QueryStrings; } export class QueryStringsConfig extends core.Schema { @core.attr(String) public queryStringBehavior!: string | core.StringOut; @core.attr(QueryStrings) public queryStrings?: QueryStrings; } export interface CookiesArgs extends core.SchemaArgs { items?: core.Array | core.ArrayOut; } export class Cookies extends core.Schema { @core.attr(String, { kind: "array" }) public items?: core.Array | core.ArrayOut; } export interface CookiesConfigArgs extends core.SchemaArgs { cookieBehavior: string | core.StringOut; cookies?: Cookies; } export class CookiesConfig extends core.Schema { @core.attr(String) public cookieBehavior!: string | core.StringOut; @core.attr(Cookies) public cookies?: Cookies; } export interface HeadersArgs extends core.SchemaArgs { items?: core.Array | core.ArrayOut; } export class Headers extends core.Schema { @core.attr(String, { kind: "array" }) public items?: core.Array | core.ArrayOut; } export interface HeadersConfigArgs extends core.SchemaArgs { headerBehavior?: string | core.StringOut; headers?: Headers; } export class HeadersConfig extends core.Schema { @core.attr(String) public headerBehavior?: string | core.StringOut; @core.attr(Headers) public headers?: Headers; } export interface OriginRequestPolicyArgs extends core.ResourceArgs { /** * (Optional) Comment to describe the origin request policy. */ comment?: string | core.StringOut; /** * (Required) Object that determines whether any cookies in viewer requests (and if so, which cookies) * are included in the origin request key and automatically included in requests that CloudFront sends * to the origin. See [Cookies Config](#cookies-config) for more information. */ cookiesConfig: CookiesConfig; /** * (Required) Object that determines whether any HTTP headers (and if so, which headers) are included i * n the origin request key and automatically included in requests that CloudFront sends to the origin. * See [Headers Config](#headers-config) for more information. */ headersConfig: HeadersConfig; /** * (Required) Unique name to identify the origin request policy. */ name: string | core.StringOut; /** * (Required) Object that determines whether any URL query strings in viewer requests (and if so, which * query strings) are included in the origin request key and automatically included in requests that C * loudFront sends to the origin. See [Query String Config](#query-string-config) for more information. */ queryStringsConfig: QueryStringsConfig; } export class OriginRequestPolicy extends core.Resource { /** * (Optional) Comment to describe the origin request policy. */ @core.attr(String) public comment?: string | core.StringOut; /** * (Required) Object that determines whether any cookies in viewer requests (and if so, which cookies) * are included in the origin request key and automatically included in requests that CloudFront sends * to the origin. See [Cookies Config](#cookies-config) for more information. */ @core.attr(CookiesConfig) public cookiesConfig!: CookiesConfig; /** * The current version of the origin request policy. */ @core.attr(String, { computed: true }) public etag!: string | core.StringOut; /** * (Required) Object that determines whether any HTTP headers (and if so, which headers) are included i * n the origin request key and automatically included in requests that CloudFront sends to the origin. * See [Headers Config](#headers-config) for more information. */ @core.attr(HeadersConfig) public headersConfig!: HeadersConfig; /** * The identifier for the origin request policy. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Unique name to identify the origin request policy. */ @core.attr(String) public name!: string | core.StringOut; /** * (Required) Object that determines whether any URL query strings in viewer requests (and if so, which * query strings) are included in the origin request key and automatically included in requests that C * loudFront sends to the origin. See [Query String Config](#query-string-config) for more information. */ @core.attr(QueryStringsConfig) public queryStringsConfig!: QueryStringsConfig; constructor(name: string, args?: OriginRequestPolicyArgs) { super(name, "aws_cloudfront_origin_request_policy", args); } public override getNamespace(): string { return "aws_cloudfront"; } }