import * as core from "@terrascript/core"; export interface ApiCacheArgs extends core.ResourceArgs { /** * (Required) Caching behavior. Valid values are `FULL_REQUEST_CACHING` and `PER_RESOLVER_CACHING`. */ apiCachingBehavior: string | core.StringOut; /** * (Required) The GraphQL API ID. */ apiId: string | core.StringOut; /** * (Optional) At-rest encryption flag for cache. You cannot update this setting after creation. */ atRestEncryptionEnabled?: boolean | core.BooleanOut; /** * (Optional) Transit encryption flag when connecting to cache. You cannot update this setting after cr * eation. */ transitEncryptionEnabled?: boolean | core.BooleanOut; /** * (Required) TTL in seconds for cache entries. */ ttl: number | core.NumberOut; /** * (Required) The cache instance type. Valid values are `SMALL`, `MEDIUM`, `LARGE`, `XLARGE`, `LARGE_2X * , `LARGE_4X`, `LARGE_8X`, `LARGE_12X`, `T2_SMALL`, `T2_MEDIUM`, `R4_LARGE`, `R4_XLARGE`, `R4_2XLARG * E`, `R4_4XLARGE`, `R4_8XLARGE`. */ type: string | core.StringOut; } export class ApiCache extends core.Resource { /** * (Required) Caching behavior. Valid values are `FULL_REQUEST_CACHING` and `PER_RESOLVER_CACHING`. */ @core.attr(String) public apiCachingBehavior!: string | core.StringOut; /** * (Required) The GraphQL API ID. */ @core.attr(String) public apiId!: string | core.StringOut; /** * (Optional) At-rest encryption flag for cache. You cannot update this setting after creation. */ @core.attr(Boolean) public atRestEncryptionEnabled?: boolean | core.BooleanOut; /** * The AppSync API ID. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) Transit encryption flag when connecting to cache. You cannot update this setting after cr * eation. */ @core.attr(Boolean) public transitEncryptionEnabled?: boolean | core.BooleanOut; /** * (Required) TTL in seconds for cache entries. */ @core.attr(Number) public ttl!: number | core.NumberOut; /** * (Required) The cache instance type. Valid values are `SMALL`, `MEDIUM`, `LARGE`, `XLARGE`, `LARGE_2X * , `LARGE_4X`, `LARGE_8X`, `LARGE_12X`, `T2_SMALL`, `T2_MEDIUM`, `R4_LARGE`, `R4_XLARGE`, `R4_2XLARG * E`, `R4_4XLARGE`, `R4_8XLARGE`. */ @core.attr(String) public type!: string | core.StringOut; constructor(name: string, args?: ApiCacheArgs) { super(name, "aws_appsync_api_cache", args); } public override getNamespace(): string { return "aws_appsync"; } }