import * as core from "@terrascript/core"; export interface LambdaConflictHandlerConfigArgs extends core.SchemaArgs { lambdaConflictHandlerArn?: string | core.StringOut; } export class LambdaConflictHandlerConfig extends core.Schema { @core.attr(String) public lambdaConflictHandlerArn?: string | core.StringOut; } export interface SyncConfigArgs extends core.SchemaArgs { conflictDetection?: string | core.StringOut; conflictHandler?: string | core.StringOut; lambdaConflictHandlerConfig?: LambdaConflictHandlerConfig; } export class SyncConfig extends core.Schema { @core.attr(String) public conflictDetection?: string | core.StringOut; @core.attr(String) public conflictHandler?: string | core.StringOut; @core.attr(LambdaConflictHandlerConfig) public lambdaConflictHandlerConfig?: LambdaConflictHandlerConfig; } export interface PipelineConfigArgs extends core.SchemaArgs { functions?: core.Array | core.ArrayOut; } export class PipelineConfig extends core.Schema { @core.attr(String, { kind: "array" }) public functions?: core.Array | core.ArrayOut; } export interface CachingConfigArgs extends core.SchemaArgs { cachingKeys?: core.Array | core.ArrayOut; ttl?: number | core.NumberOut; } export class CachingConfig extends core.Schema { @core.attr(String, { kind: "array" }) public cachingKeys?: core.Array | core.ArrayOut; @core.attr(Number) public ttl?: number | core.NumberOut; } export interface ResolverArgs extends core.ResourceArgs { /** * (Required) The API ID for the GraphQL API. */ apiId: string | core.StringOut; /** * (Optional) The CachingConfig. */ cachingConfig?: CachingConfig; /** * (Optional) The data source name. */ dataSource?: string | core.StringOut; /** * (Required) The field name from the schema defined in the GraphQL API. */ field: string | core.StringOut; kind?: string | core.StringOut; /** * (Optional) The maximum batching size for a resolver. Valid values are between `0` and `2000`. */ maxBatchSize?: number | core.NumberOut; /** * (Optional) The PipelineConfig. */ pipelineConfig?: PipelineConfig; /** * (Optional) The request mapping template for UNIT resolver or 'before mapping template' for PIPELINE * resolver. Required for non-Lambda resolvers. */ requestTemplate?: string | core.StringOut; /** * (Optional) The response mapping template for UNIT resolver or 'after mapping template' for PIPELINE * resolver. Required for non-Lambda resolvers. */ responseTemplate?: string | core.StringOut; /** * (Optional) Describes a Sync configuration for a resolver. See [Sync Config](#sync-config). */ syncConfig?: SyncConfig; /** * (Required) The type name from the schema defined in the GraphQL API. */ type: string | core.StringOut; } export class Resolver extends core.Resource { /** * (Required) The API ID for the GraphQL API. */ @core.attr(String) public apiId!: string | core.StringOut; /** * The ARN */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) The CachingConfig. */ @core.attr(CachingConfig) public cachingConfig?: CachingConfig; /** * (Optional) The data source name. */ @core.attr(String) public dataSource?: string | core.StringOut; /** * (Required) The field name from the schema defined in the GraphQL API. */ @core.attr(String) public field!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String) public kind?: string | core.StringOut; /** * (Optional) The maximum batching size for a resolver. Valid values are between `0` and `2000`. */ @core.attr(Number) public maxBatchSize?: number | core.NumberOut; /** * (Optional) The PipelineConfig. */ @core.attr(PipelineConfig) public pipelineConfig?: PipelineConfig; /** * (Optional) The request mapping template for UNIT resolver or 'before mapping template' for PIPELINE * resolver. Required for non-Lambda resolvers. */ @core.attr(String) public requestTemplate?: string | core.StringOut; /** * (Optional) The response mapping template for UNIT resolver or 'after mapping template' for PIPELINE * resolver. Required for non-Lambda resolvers. */ @core.attr(String) public responseTemplate?: string | core.StringOut; /** * (Optional) Describes a Sync configuration for a resolver. See [Sync Config](#sync-config). */ @core.attr(SyncConfig) public syncConfig?: SyncConfig; /** * (Required) The type name from the schema defined in the GraphQL API. */ @core.attr(String) public type!: string | core.StringOut; constructor(name: string, args?: ResolverArgs) { super(name, "aws_appsync_resolver", args); } public override getNamespace(): string { return "aws_appsync"; } }