import * as core from "@terrascript/core"; export interface SettingsArgs extends core.SchemaArgs { cacheDataEncrypted?: boolean | core.BooleanOut; cacheTtlInSeconds?: number | core.NumberOut; cachingEnabled?: boolean | core.BooleanOut; dataTraceEnabled?: boolean | core.BooleanOut; loggingLevel?: string | core.StringOut; metricsEnabled?: boolean | core.BooleanOut; requireAuthorizationForCacheControl?: boolean | core.BooleanOut; throttlingBurstLimit?: number | core.NumberOut; throttlingRateLimit?: number | core.NumberOut; unauthorizedCacheControlHeaderStrategy?: string | core.StringOut; } export class Settings extends core.Schema { @core.attr(Boolean, { computed: true }) public cacheDataEncrypted?: boolean | core.BooleanOut; @core.attr(Number, { computed: true }) public cacheTtlInSeconds?: number | core.NumberOut; @core.attr(Boolean, { computed: true }) public cachingEnabled?: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public dataTraceEnabled?: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public loggingLevel?: string | core.StringOut; @core.attr(Boolean, { computed: true }) public metricsEnabled?: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public requireAuthorizationForCacheControl?: boolean | core.BooleanOut; @core.attr(Number) public throttlingBurstLimit?: number | core.NumberOut; @core.attr(Number) public throttlingRateLimit?: number | core.NumberOut; @core.attr(String, { computed: true }) public unauthorizedCacheControlHeaderStrategy?: string | core.StringOut; } export interface MethodSettingsArgs extends core.ResourceArgs { /** * (Required) Method path defined as `{resource_path}/{http_method}` for an individual method override, * or `**` for overriding all methods in the stage. Ensure to trim any leading forward slashes in the * path (e.g., `trimprefix(aws_api_gateway_resource.example.path, "/")`). */ methodPath: string | core.StringOut; /** * (Required) The ID of the REST API */ restApiId: string | core.StringOut; /** * (Required) The settings block, see below. */ settings: Settings; /** * (Required) The name of the stage */ stageName: string | core.StringOut; } export class MethodSettings extends core.Resource { @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Method path defined as `{resource_path}/{http_method}` for an individual method override, * or `**` for overriding all methods in the stage. Ensure to trim any leading forward slashes in the * path (e.g., `trimprefix(aws_api_gateway_resource.example.path, "/")`). */ @core.attr(String) public methodPath!: string | core.StringOut; /** * (Required) The ID of the REST API */ @core.attr(String) public restApiId!: string | core.StringOut; /** * (Required) The settings block, see below. */ @core.attr(Settings) public settings!: Settings; /** * (Required) The name of the stage */ @core.attr(String) public stageName!: string | core.StringOut; constructor(name: string, args?: MethodSettingsArgs) { super(name, "aws_api_gateway_method_settings", args); } public override getNamespace(): string { return "aws_api_gateway"; } }