import * as core from "@terrascript/core"; export interface ContentTypeOptionsArgs extends core.SchemaArgs { override: boolean | core.BooleanOut; } export class ContentTypeOptions extends core.Schema { @core.attr(Boolean, { computed: true }) public override!: boolean | core.BooleanOut; } export interface FrameOptionsArgs extends core.SchemaArgs { frameOption: string | core.StringOut; override: boolean | core.BooleanOut; } export class FrameOptions extends core.Schema { @core.attr(String, { computed: true }) public frameOption!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public override!: boolean | core.BooleanOut; } export interface ReferrerPolicyArgs extends core.SchemaArgs { override: boolean | core.BooleanOut; referrerPolicy: string | core.StringOut; } export class ReferrerPolicy extends core.Schema { @core.attr(Boolean, { computed: true }) public override!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public referrerPolicy!: string | core.StringOut; } export interface StrictTransportSecurityArgs extends core.SchemaArgs { accessControlMaxAgeSec: number | core.NumberOut; includeSubdomains: boolean | core.BooleanOut; override: boolean | core.BooleanOut; preload: boolean | core.BooleanOut; } export class StrictTransportSecurity extends core.Schema { @core.attr(Number, { computed: true }) public accessControlMaxAgeSec!: number | core.NumberOut; @core.attr(Boolean, { computed: true }) public includeSubdomains!: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public override!: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public preload!: boolean | core.BooleanOut; } export interface XssProtectionArgs extends core.SchemaArgs { modeBlock: boolean | core.BooleanOut; override: boolean | core.BooleanOut; protection: boolean | core.BooleanOut; reportUri: string | core.StringOut; } export class XssProtection extends core.Schema { @core.attr(Boolean, { computed: true }) public modeBlock!: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public override!: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public protection!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public reportUri!: string | core.StringOut; } export interface ContentSecurityPolicyArgs extends core.SchemaArgs { contentSecurityPolicy: string | core.StringOut; override: boolean | core.BooleanOut; } export class ContentSecurityPolicy extends core.Schema { @core.attr(String, { computed: true }) public contentSecurityPolicy!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public override!: boolean | core.BooleanOut; } export interface SecurityHeadersConfigArgs extends core.SchemaArgs { contentSecurityPolicy: | core.Array | core.ArrayOut; contentTypeOptions: | core.Array | core.ArrayOut; frameOptions: core.Array | core.ArrayOut; referrerPolicy: core.Array | core.ArrayOut; strictTransportSecurity: | core.Array | core.ArrayOut; xssProtection: core.Array | core.ArrayOut; } export class SecurityHeadersConfig extends core.Schema { @core.attr(ContentSecurityPolicy, { computed: true, kind: "array" }) public contentSecurityPolicy!: | core.Array | core.ArrayOut; @core.attr(ContentTypeOptions, { computed: true, kind: "array" }) public contentTypeOptions!: | core.Array | core.ArrayOut; @core.attr(FrameOptions, { computed: true, kind: "array" }) public frameOptions!: core.Array | core.ArrayOut; @core.attr(ReferrerPolicy, { computed: true, kind: "array" }) public referrerPolicy!: | core.Array | core.ArrayOut; @core.attr(StrictTransportSecurity, { computed: true, kind: "array" }) public strictTransportSecurity!: | core.Array | core.ArrayOut; @core.attr(XssProtection, { computed: true, kind: "array" }) public xssProtection!: | core.Array | core.ArrayOut; } export interface ServerTimingHeadersConfigArgs extends core.SchemaArgs { enabled: boolean | core.BooleanOut; samplingRate: number | core.NumberOut; } export class ServerTimingHeadersConfig extends core.Schema { @core.attr(Boolean, { computed: true }) public enabled!: boolean | core.BooleanOut; @core.attr(Number, { computed: true }) public samplingRate!: number | core.NumberOut; } export interface AccessControlAllowHeadersArgs extends core.SchemaArgs { items: core.Array | core.ArrayOut; } export class AccessControlAllowHeaders extends core.Schema { @core.attr(String, { computed: true, kind: "array" }) public items!: core.Array | core.ArrayOut; } export interface AccessControlAllowMethodsArgs extends core.SchemaArgs { items: core.Array | core.ArrayOut; } export class AccessControlAllowMethods extends core.Schema { @core.attr(String, { computed: true, kind: "array" }) public items!: core.Array | core.ArrayOut; } export interface AccessControlAllowOriginsArgs extends core.SchemaArgs { items: core.Array | core.ArrayOut; } export class AccessControlAllowOrigins extends core.Schema { @core.attr(String, { computed: true, kind: "array" }) public items!: core.Array | core.ArrayOut; } export interface AccessControlExposeHeadersArgs extends core.SchemaArgs { items: core.Array | core.ArrayOut; } export class AccessControlExposeHeaders extends core.Schema { @core.attr(String, { computed: true, kind: "array" }) public items!: core.Array | core.ArrayOut; } export interface CorsConfigArgs extends core.SchemaArgs { accessControlAllowCredentials: boolean | core.BooleanOut; accessControlAllowHeaders: | core.Array | core.ArrayOut; accessControlAllowMethods: | core.Array | core.ArrayOut; accessControlAllowOrigins: | core.Array | core.ArrayOut; accessControlExposeHeaders: | core.Array | core.ArrayOut; accessControlMaxAgeSec: number | core.NumberOut; originOverride: boolean | core.BooleanOut; } export class CorsConfig extends core.Schema { @core.attr(Boolean, { computed: true }) public accessControlAllowCredentials!: boolean | core.BooleanOut; @core.attr(AccessControlAllowHeaders, { computed: true, kind: "array" }) public accessControlAllowHeaders!: | core.Array | core.ArrayOut; @core.attr(AccessControlAllowMethods, { computed: true, kind: "array" }) public accessControlAllowMethods!: | core.Array | core.ArrayOut; @core.attr(AccessControlAllowOrigins, { computed: true, kind: "array" }) public accessControlAllowOrigins!: | core.Array | core.ArrayOut; @core.attr(AccessControlExposeHeaders, { computed: true, kind: "array" }) public accessControlExposeHeaders!: | core.Array | core.ArrayOut; @core.attr(Number, { computed: true }) public accessControlMaxAgeSec!: number | core.NumberOut; @core.attr(Boolean, { computed: true }) public originOverride!: boolean | core.BooleanOut; } export interface ItemsArgs extends core.SchemaArgs { header: string | core.StringOut; override: boolean | core.BooleanOut; value: string | core.StringOut; } export class Items extends core.Schema { @core.attr(String, { computed: true }) public header!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public override!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public value!: string | core.StringOut; } export interface CustomHeadersConfigArgs extends core.SchemaArgs { items: core.Array | core.ArrayOut; } export class CustomHeadersConfig extends core.Schema { @core.attr(Items, { computed: true, kind: "array" }) public items!: core.Array | core.ArrayOut; } export interface DsResponseHeadersPolicyArgs { /** * (Optional) The identifier for the response headers policy. */ id?: string | core.StringOut; /** * (Optional) A unique name to identify the response headers policy. */ name?: string | core.StringOut; } export class DsResponseHeadersPolicy extends core.Data { /** * A comment to describe the response headers policy. The comment cannot be longer than 128 characters. */ @core.attr(String, { computed: true }) public comment!: string | core.StringOut; /** * A configuration for a set of HTTP response headers that are used for Cross-Origin Resource Sharing ( * CORS). See [Cors Config](#cors-config) for more information. */ @core.attr(CorsConfig, { computed: true, kind: "array" }) public corsConfig!: core.Array | core.ArrayOut; /** * Object that contains an attribute `items` that contains a list of Custom Headers See [Custom Header] * (#custom-header) for more information. */ @core.attr(CustomHeadersConfig, { computed: true, kind: "array" }) public customHeadersConfig!: | core.Array | core.ArrayOut; /** * The current version of the response headers policy. */ @core.attr(String, { computed: true }) public etag!: string | core.StringOut; /** * (Optional) The identifier for the response headers policy. */ @core.attr(String, { computed: true }) public id?: string | core.StringOut; /** * (Optional) A unique name to identify the response headers policy. */ @core.attr(String, { computed: true }) public name?: string | core.StringOut; /** * A configuration for a set of security-related HTTP response headers. See [Security Headers Config](# * security-headers-config) for more information. */ @core.attr(SecurityHeadersConfig, { computed: true, kind: "array" }) public securityHeadersConfig!: | core.Array | core.ArrayOut; /** * (Optional) A configuration for enabling the Server-Timing header in HTTP responses sent from CloudFr * ont. See [Server Timing Headers Config](#server-timing-headers-config) for more information. */ @core.attr(ServerTimingHeadersConfig, { computed: true, kind: "array" }) public serverTimingHeadersConfig!: | core.Array | core.ArrayOut; constructor(name: string, args?: DsResponseHeadersPolicyArgs) { super(name, "aws_cloudfront_response_headers_policy", args); } public override getNamespace(): string { return "aws_cloudfront"; } }