{"files":{"SKILL.md":"---\nname: aws-appsync\ndescription: \"AWS AppSync API skill. Use when working with AWS AppSync for domainnames, sourceApis, mergedApis. Covers 64 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# AWS AppSync\nAPI version: 2017-07-25\n\n## Auth\nAWS SigV4\n\n## Base URL\nNot specified.\n\n## Setup\n1. Configure auth: AWS SigV4\n2. GET /v1/domainnames -- lists multiple custom domain names.\n3. POST /v1/domainnames/{domainName}/apiassociation -- create first apiassociation\n\n## Endpoints\n64 endpoints across 8 groups. See references/api-spec.lap for full details.\n\n### Domainnames\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/domainnames/{domainName}/apiassociation | Maps an endpoint to your custom domain. |\n| POST | /v1/domainnames | Creates a custom DomainName object. |\n| DELETE | /v1/domainnames/{domainName} | Deletes a custom DomainName object. |\n| DELETE | /v1/domainnames/{domainName}/apiassociation | Removes an ApiAssociation object from a custom domain. |\n| GET | /v1/domainnames/{domainName}/apiassociation | Retrieves an ApiAssociation object. |\n| GET | /v1/domainnames/{domainName} | Retrieves a custom DomainName object. |\n| GET | /v1/domainnames | Lists multiple custom domain names. |\n| POST | /v1/domainnames/{domainName} | Updates a custom DomainName object. |\n\n### SourceApis\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/sourceApis/{sourceApiIdentifier}/mergedApiAssociations | Creates an association between a Merged API and source API using the source API's identifier. |\n| DELETE | /v1/sourceApis/{sourceApiIdentifier}/mergedApiAssociations/{associationId} | Deletes an association between a Merged API and source API using the source API's identifier and the association ID. |\n\n### MergedApis\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations | Creates an association between a Merged API and source API using the Merged API's identifier. |\n| DELETE | /v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId} | Deletes an association between a Merged API and source API using the Merged API's identifier and the association ID. |\n| GET | /v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId} | Retrieves a SourceApiAssociation object. |\n| GET | /v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}/types | Lists Type objects by the source API association ID. |\n| POST | /v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}/merge | Initiates a merge operation. Returns a status that shows the result of the merge operation. |\n| POST | /v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId} | Updates some of the configuration choices of a particular source API association. |\n\n### Apis\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/apis/{apiId}/ApiCaches | Creates a cache for the GraphQL API. |\n| POST | /v1/apis/{apiId}/apikeys | Creates a unique key that you can distribute to clients who invoke your API. |\n| POST | /v1/apis/{apiId}/datasources | Creates a DataSource object. |\n| POST | /v1/apis/{apiId}/functions | Creates a Function object. A function is a reusable entity. You can use multiple functions to compose the resolver logic. |\n| POST | /v1/apis | Creates a GraphqlApi object. |\n| POST | /v1/apis/{apiId}/types/{typeName}/resolvers | Creates a Resolver object. A resolver converts incoming requests into a format that a data source can understand, and converts the data source's responses into GraphQL. |\n| POST | /v1/apis/{apiId}/types | Creates a Type object. |\n| DELETE | /v1/apis/{apiId}/ApiCaches | Deletes an ApiCache object. |\n| DELETE | /v1/apis/{apiId}/apikeys/{id} | Deletes an API key. |\n| DELETE | /v1/apis/{apiId}/datasources/{name} | Deletes a DataSource object. |\n| DELETE | /v1/apis/{apiId}/functions/{functionId} | Deletes a Function. |\n| DELETE | /v1/apis/{apiId} | Deletes a GraphqlApi object. |\n| DELETE | /v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName} | Deletes a Resolver object. |\n| DELETE | /v1/apis/{apiId}/types/{typeName} | Deletes a Type object. |\n| DELETE | /v1/apis/{apiId}/FlushCache | Flushes an ApiCache object. |\n| GET | /v1/apis/{apiId}/ApiCaches | Retrieves an ApiCache object. |\n| GET | /v1/apis/{apiId}/datasources/{name} | Retrieves a DataSource object. |\n| GET | /v1/apis/{apiId}/functions/{functionId} | Get a Function. |\n| GET | /v1/apis/{apiId} | Retrieves a GraphqlApi object. |\n| GET | /v1/apis/{apiId}/environmentVariables | Retrieves the list of environmental variable key-value pairs associated with an API by its ID value. |\n| GET | /v1/apis/{apiId}/schema | Retrieves the introspection schema for a GraphQL API. |\n| GET | /v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName} | Retrieves a Resolver object. |\n| GET | /v1/apis/{apiId}/schemacreation | Retrieves the current status of a schema creation operation. |\n| GET | /v1/apis/{apiId}/types/{typeName} | Retrieves a Type object. |\n| GET | /v1/apis/{apiId}/apikeys | Lists the API keys for a given API.  API keys are deleted automatically 60 days after they expire. However, they may still be included in the response until they have actually been deleted. You can safely call DeleteApiKey to manually delete a key before it's automatically deleted. |\n| GET | /v1/apis/{apiId}/datasources | Lists the data sources for a given API. |\n| GET | /v1/apis/{apiId}/functions | List multiple functions. |\n| GET | /v1/apis | Lists your GraphQL APIs. |\n| GET | /v1/apis/{apiId}/types/{typeName}/resolvers | Lists the resolvers for a given API and type. |\n| GET | /v1/apis/{apiId}/functions/{functionId}/resolvers | List the resolvers that are associated with a specific function. |\n| GET | /v1/apis/{apiId}/sourceApiAssociations | Lists the SourceApiAssociationSummary data. |\n| GET | /v1/apis/{apiId}/types | Lists the types for a given API. |\n| PUT | /v1/apis/{apiId}/environmentVariables | Creates a list of environmental variables in an API by its ID value.  When creating an environmental variable, it must follow the constraints below:   Both JavaScript and VTL templates support environmental variables.   Environmental variables are not evaluated before function invocation.   Environmental variables only support string values.   Any defined value in an environmental variable is considered a string literal and not expanded.   Variable evaluations should ideally be performed in the function code.   When creating an environmental variable key-value pair, it must follow the additional constraints below:   Keys must begin with a letter.   Keys must be at least two characters long.   Keys can only contain letters, numbers, and the underscore character (_).   Values can be up to 512 characters long.   You can configure up to 50 key-value pairs in a GraphQL API.   You can create a list of environmental variables by adding it to the environmentVariables payload as a list in the format {\"key1\":\"value1\",\"key2\":\"value2\", …}. Note that each call of the PutGraphqlApiEnvironmentVariables action will result in the overwriting of the existing environmental variable list of that API. This means the existing environmental variables will be lost. To avoid this, you must include all existing and new environmental variables in the list each time you call this action. |\n| POST | /v1/apis/{apiId}/schemacreation | Adds a new schema to your GraphQL API. This operation is asynchronous. Use to determine when it has completed. |\n| POST | /v1/apis/{apiId}/ApiCaches/update | Updates the cache for the GraphQL API. |\n| POST | /v1/apis/{apiId}/apikeys/{id} | Updates an API key. You can update the key as long as it's not deleted. |\n| POST | /v1/apis/{apiId}/datasources/{name} | Updates a DataSource object. |\n| POST | /v1/apis/{apiId}/functions/{functionId} | Updates a Function object. |\n| POST | /v1/apis/{apiId} | Updates a GraphqlApi object. |\n| POST | /v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName} | Updates a Resolver object. |\n| POST | /v1/apis/{apiId}/types/{typeName} | Updates a Type object. |\n\n### Dataplane-evaluatecode\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/dataplane-evaluatecode | Evaluates the given code and returns the response. The code definition requirements depend on the specified runtime. For APPSYNC_JS runtimes, the code defines the request and response functions. The request function takes the incoming request after a GraphQL operation is parsed and converts it into a request configuration for the selected data source operation. The response function interprets responses from the data source and maps it to the shape of the GraphQL field output type. |\n\n### Dataplane-evaluatetemplate\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/dataplane-evaluatetemplate | Evaluates a given template and returns the response. The mapping template can be a request or response template. Request templates take the incoming request after a GraphQL operation is parsed and convert it into a request configuration for the selected data source operation. Response templates interpret responses from the data source and map it to the shape of the GraphQL field output type. Mapping templates are written in the Apache Velocity Template Language (VTL). |\n\n### Datasources\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/datasources/introspections/{introspectionId} | Retrieves the record of an existing introspection. If the retrieval is successful, the result of the instrospection will also be returned. If the retrieval fails the operation, an error message will be returned instead. |\n| POST | /v1/datasources/introspections | Creates a new introspection. Returns the introspectionId of the new introspection after its creation. |\n\n### Tags\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/tags/{resourceArn} | Lists the tags for a resource. |\n| POST | /v1/tags/{resourceArn} | Tags a resource with user-supplied tags. |\n| DELETE | /v1/tags/{resourceArn} | Untags a resource. |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a apiassociation?\" -> POST /v1/domainnames/{domainName}/apiassociation\n- \"Create a mergedApiAssociation?\" -> POST /v1/sourceApis/{sourceApiIdentifier}/mergedApiAssociations\n- \"Create a sourceApiAssociation?\" -> POST /v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations\n- \"Create a ApiCache?\" -> POST /v1/apis/{apiId}/ApiCaches\n- \"Create a apikey?\" -> POST /v1/apis/{apiId}/apikeys\n- \"Create a datasource?\" -> POST /v1/apis/{apiId}/datasources\n- \"Create a domainname?\" -> POST /v1/domainnames\n- \"Create a function?\" -> POST /v1/apis/{apiId}/functions\n- \"Create a apis?\" -> POST /v1/apis\n- \"Create a resolver?\" -> POST /v1/apis/{apiId}/types/{typeName}/resolvers\n- \"Create a type?\" -> POST /v1/apis/{apiId}/types\n- \"Delete a apikey?\" -> DELETE /v1/apis/{apiId}/apikeys/{id}\n- \"Delete a datasource?\" -> DELETE /v1/apis/{apiId}/datasources/{name}\n- \"Delete a domainname?\" -> DELETE /v1/domainnames/{domainName}\n- \"Delete a function?\" -> DELETE /v1/apis/{apiId}/functions/{functionId}\n- \"Delete a apis?\" -> DELETE /v1/apis/{apiId}\n- \"Delete a resolver?\" -> DELETE /v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}\n- \"Delete a type?\" -> DELETE /v1/apis/{apiId}/types/{typeName}\n- \"Delete a mergedApiAssociation?\" -> DELETE /v1/sourceApis/{sourceApiIdentifier}/mergedApiAssociations/{associationId}\n- \"Delete a sourceApiAssociation?\" -> DELETE /v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}\n- \"Create a dataplane-evaluatecode?\" -> POST /v1/dataplane-evaluatecode\n- \"Create a dataplane-evaluatetemplate?\" -> POST /v1/dataplane-evaluatetemplate\n- \"List all apiassociation?\" -> GET /v1/domainnames/{domainName}/apiassociation\n- \"List all ApiCaches?\" -> GET /v1/apis/{apiId}/ApiCaches\n- \"Get datasource details?\" -> GET /v1/apis/{apiId}/datasources/{name}\n- \"Get introspection details?\" -> GET /v1/datasources/introspections/{introspectionId}\n- \"Get domainname details?\" -> GET /v1/domainnames/{domainName}\n- \"Get function details?\" -> GET /v1/apis/{apiId}/functions/{functionId}\n- \"Get apis details?\" -> GET /v1/apis/{apiId}\n- \"List all environmentVariables?\" -> GET /v1/apis/{apiId}/environmentVariables\n- \"List all schema?\" -> GET /v1/apis/{apiId}/schema\n- \"Get resolver details?\" -> GET /v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}\n- \"List all schemacreation?\" -> GET /v1/apis/{apiId}/schemacreation\n- \"Get sourceApiAssociation details?\" -> GET /v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}\n- \"Get type details?\" -> GET /v1/apis/{apiId}/types/{typeName}\n- \"List all apikeys?\" -> GET /v1/apis/{apiId}/apikeys\n- \"List all datasources?\" -> GET /v1/apis/{apiId}/datasources\n- \"List all domainnames?\" -> GET /v1/domainnames\n- \"List all functions?\" -> GET /v1/apis/{apiId}/functions\n- \"List all apis?\" -> GET /v1/apis\n- \"List all resolvers?\" -> GET /v1/apis/{apiId}/types/{typeName}/resolvers\n- \"List all sourceApiAssociations?\" -> GET /v1/apis/{apiId}/sourceApiAssociations\n- \"Get tag details?\" -> GET /v1/tags/{resourceArn}\n- \"List all types?\" -> GET /v1/apis/{apiId}/types\n- \"Create a introspection?\" -> POST /v1/datasources/introspections\n- \"Create a schemacreation?\" -> POST /v1/apis/{apiId}/schemacreation\n- \"Create a merge?\" -> POST /v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}/merge\n- \"Delete a tag?\" -> DELETE /v1/tags/{resourceArn}\n- \"Create a update?\" -> POST /v1/apis/{apiId}/ApiCaches/update\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api AWS AppSync\n@version 2017-07-25\n@auth AWS SigV4\n@endpoints 64\n@hint download_for_search\n@toc domainnames(8), sourceApis(2), mergedApis(6), apis(41), dataplane-evaluatecode(1), dataplane-evaluatetemplate(1), datasources(2), tags(3)\n\n@group domainnames\n@endpoint POST /v1/domainnames/{domainName}/apiassociation\n@desc Maps an endpoint to your custom domain.\n@required {domainName: str, apiId: str}\n@returns(200) {apiAssociation: ApiAssociation?{domainName: str?, apiId: str?, associationStatus: str?, deploymentDetail: str?}}\n\n@endgroup\n\n@group sourceApis\n@endpoint POST /v1/sourceApis/{sourceApiIdentifier}/mergedApiAssociations\n@desc Creates an association between a Merged API and source API using the source API's identifier.\n@required {sourceApiIdentifier: str, mergedApiIdentifier: str}\n@optional {description: str, sourceApiAssociationConfig: SourceApiAssociationConfig}\n@returns(200) {sourceApiAssociation: SourceApiAssociation?{associationId: str?, associationArn: str?, sourceApiId: str?, sourceApiArn: str?, mergedApiArn: str?, mergedApiId: str?, description: str?, sourceApiAssociationConfig: SourceApiAssociationConfig?{mergeType: str?}, sourceApiAssociationStatus: str?, sourceApiAssociationStatusDetail: str?, lastSuccessfulMergeDate: str(timestamp)?}}\n\n@endgroup\n\n@group mergedApis\n@endpoint POST /v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations\n@desc Creates an association between a Merged API and source API using the Merged API's identifier.\n@required {mergedApiIdentifier: str, sourceApiIdentifier: str}\n@optional {description: str, sourceApiAssociationConfig: SourceApiAssociationConfig}\n@returns(200) {sourceApiAssociation: SourceApiAssociation?{associationId: str?, associationArn: str?, sourceApiId: str?, sourceApiArn: str?, mergedApiArn: str?, mergedApiId: str?, description: str?, sourceApiAssociationConfig: SourceApiAssociationConfig?{mergeType: str?}, sourceApiAssociationStatus: str?, sourceApiAssociationStatusDetail: str?, lastSuccessfulMergeDate: str(timestamp)?}}\n\n@endgroup\n\n@group apis\n@endpoint POST /v1/apis/{apiId}/ApiCaches\n@desc Creates a cache for the GraphQL API.\n@required {apiId: str, ttl: int(i64), apiCachingBehavior: str, type: str}\n@optional {transitEncryptionEnabled: bool, atRestEncryptionEnabled: bool, healthMetricsConfig: str}\n@returns(200) {apiCache: ApiCache?{ttl: int(i64)?, apiCachingBehavior: str?, transitEncryptionEnabled: bool?, atRestEncryptionEnabled: bool?, type: str?, status: str?, healthMetricsConfig: str?}}\n\n@endpoint POST /v1/apis/{apiId}/apikeys\n@desc Creates a unique key that you can distribute to clients who invoke your API.\n@required {apiId: str}\n@optional {description: str, expires: int(i64)}\n@returns(200) {apiKey: ApiKey?{id: str?, description: str?, expires: int(i64)?, deletes: int(i64)?}}\n\n@endpoint POST /v1/apis/{apiId}/datasources\n@desc Creates a DataSource object.\n@required {apiId: str, name: str, type: str}\n@optional {description: str, serviceRoleArn: str, dynamodbConfig: DynamodbDataSourceConfig, lambdaConfig: LambdaDataSourceConfig, elasticsearchConfig: ElasticsearchDataSourceConfig, openSearchServiceConfig: OpenSearchServiceDataSourceConfig, httpConfig: HttpDataSourceConfig, relationalDatabaseConfig: RelationalDatabaseDataSourceConfig, eventBridgeConfig: EventBridgeDataSourceConfig, metricsConfig: str}\n@returns(200) {dataSource: DataSource?{dataSourceArn: str?, name: str?, description: str?, type: str?, serviceRoleArn: str?, dynamodbConfig: DynamodbDataSourceConfig?{tableName: str, awsRegion: str, useCallerCredentials: bool?, deltaSyncConfig: DeltaSyncConfig?{baseTableTTL: int(i64)?, deltaSyncTableName: str?, deltaSyncTableTTL: int(i64)?}, versioned: bool?}, lambdaConfig: LambdaDataSourceConfig?{lambdaFunctionArn: str}, elasticsearchConfig: ElasticsearchDataSourceConfig?{endpoint: str, awsRegion: str}, openSearchServiceConfig: OpenSearchServiceDataSourceConfig?{endpoint: str, awsRegion: str}, httpConfig: HttpDataSourceConfig?{endpoint: str?, authorizationConfig: AuthorizationConfig?{authorizationType: str, awsIamConfig: AwsIamConfig?}}, relationalDatabaseConfig: RelationalDatabaseDataSourceConfig?{relationalDatabaseSourceType: str?, rdsHttpEndpointConfig: RdsHttpEndpointConfig?{awsRegion: str?, dbClusterIdentifier: str?, databaseName: str?, schema: str?, awsSecretStoreArn: str?}}, eventBridgeConfig: EventBridgeDataSourceConfig?{eventBusArn: str}, metricsConfig: str?}}\n\n@endgroup\n\n@group domainnames\n@endpoint POST /v1/domainnames\n@desc Creates a custom DomainName object.\n@required {domainName: str, certificateArn: str}\n@optional {description: str}\n@returns(200) {domainNameConfig: DomainNameConfig?{domainName: str?, description: str?, certificateArn: str?, appsyncDomainName: str?, hostedZoneId: str?}}\n\n@endgroup\n\n@group apis\n@endpoint POST /v1/apis/{apiId}/functions\n@desc Creates a Function object. A function is a reusable entity. You can use multiple functions to compose the resolver logic.\n@required {apiId: str, name: str, dataSourceName: str}\n@optional {description: str, requestMappingTemplate: str, responseMappingTemplate: str, functionVersion: str, syncConfig: SyncConfig, maxBatchSize: int, runtime: AppSyncRuntime, code: str}\n@returns(200) {functionConfiguration: FunctionConfiguration?{functionId: str?, functionArn: str?, name: str?, description: str?, dataSourceName: str?, requestMappingTemplate: str?, responseMappingTemplate: str?, functionVersion: str?, syncConfig: SyncConfig?{conflictHandler: str?, conflictDetection: str?, lambdaConflictHandlerConfig: LambdaConflictHandlerConfig?{lambdaConflictHandlerArn: str?}}, maxBatchSize: int?, runtime: AppSyncRuntime?{name: str, runtimeVersion: str}, code: str?}}\n\n@endpoint POST /v1/apis\n@desc Creates a GraphqlApi object.\n@required {name: str, authenticationType: str}\n@optional {logConfig: LogConfig, userPoolConfig: UserPoolConfig, openIDConnectConfig: OpenIDConnectConfig, tags: map<str,str>, additionalAuthenticationProviders: [AdditionalAuthenticationProvider], xrayEnabled: bool, lambdaAuthorizerConfig: LambdaAuthorizerConfig, visibility: str, apiType: str, mergedApiExecutionRoleArn: str, ownerContact: str, introspectionConfig: str, queryDepthLimit: int, resolverCountLimit: int, enhancedMetricsConfig: EnhancedMetricsConfig}\n@returns(200) {graphqlApi: GraphqlApi?{name: str?, apiId: str?, authenticationType: str?, logConfig: LogConfig?{fieldLogLevel: str, cloudWatchLogsRoleArn: str, excludeVerboseContent: bool?}, userPoolConfig: UserPoolConfig?{userPoolId: str, awsRegion: str, defaultAction: str, appIdClientRegex: str?}, openIDConnectConfig: OpenIDConnectConfig?{issuer: str, clientId: str?, iatTTL: int(i64)?, authTTL: int(i64)?}, arn: str?, uris: map<str, str>?: any, tags: map<str, str>?: any, additionalAuthenticationProviders: [AdditionalAuthenticationProvider]?, xrayEnabled: bool?, wafWebAclArn: str?, lambdaAuthorizerConfig: LambdaAuthorizerConfig?{authorizerResultTtlInSeconds: int?, authorizerUri: str, identityValidationExpression: str?}, dns: map<str, str>?: any, visibility: str?, apiType: str?, mergedApiExecutionRoleArn: str?, owner: str?, ownerContact: str?, introspectionConfig: str?, queryDepthLimit: int?, resolverCountLimit: int?, enhancedMetricsConfig: EnhancedMetricsConfig?{resolverLevelMetricsBehavior: str, dataSourceLevelMetricsBehavior: str, operationLevelMetricsConfig: str}}}\n\n@endpoint POST /v1/apis/{apiId}/types/{typeName}/resolvers\n@desc Creates a Resolver object. A resolver converts incoming requests into a format that a data source can understand, and converts the data source's responses into GraphQL.\n@required {apiId: str, typeName: str, fieldName: str}\n@optional {dataSourceName: str, requestMappingTemplate: str, responseMappingTemplate: str, kind: str, pipelineConfig: PipelineConfig, syncConfig: SyncConfig, cachingConfig: CachingConfig, maxBatchSize: int, runtime: AppSyncRuntime, code: str, metricsConfig: str}\n@returns(200) {resolver: Resolver?{typeName: str?, fieldName: str?, dataSourceName: str?, resolverArn: str?, requestMappingTemplate: str?, responseMappingTemplate: str?, kind: str?, pipelineConfig: PipelineConfig?{functions: [str]?}, syncConfig: SyncConfig?{conflictHandler: str?, conflictDetection: str?, lambdaConflictHandlerConfig: LambdaConflictHandlerConfig?{lambdaConflictHandlerArn: str?}}, cachingConfig: CachingConfig?{ttl: int(i64), cachingKeys: [str]?}, maxBatchSize: int?, runtime: AppSyncRuntime?{name: str, runtimeVersion: str}, code: str?, metricsConfig: str?}}\n\n@endpoint POST /v1/apis/{apiId}/types\n@desc Creates a Type object.\n@required {apiId: str, definition: str, format: str}\n@returns(200) {type: Type?{name: str?, description: str?, arn: str?, definition: str?, format: str?}}\n\n@endpoint DELETE /v1/apis/{apiId}/ApiCaches\n@desc Deletes an ApiCache object.\n@required {apiId: str}\n\n@endpoint DELETE /v1/apis/{apiId}/apikeys/{id}\n@desc Deletes an API key.\n@required {apiId: str, id: str}\n\n@endpoint DELETE /v1/apis/{apiId}/datasources/{name}\n@desc Deletes a DataSource object.\n@required {apiId: str, name: str}\n\n@endgroup\n\n@group domainnames\n@endpoint DELETE /v1/domainnames/{domainName}\n@desc Deletes a custom DomainName object.\n@required {domainName: str}\n\n@endgroup\n\n@group apis\n@endpoint DELETE /v1/apis/{apiId}/functions/{functionId}\n@desc Deletes a Function.\n@required {apiId: str, functionId: str}\n\n@endpoint DELETE /v1/apis/{apiId}\n@desc Deletes a GraphqlApi object.\n@required {apiId: str}\n\n@endpoint DELETE /v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}\n@desc Deletes a Resolver object.\n@required {apiId: str, typeName: str, fieldName: str}\n\n@endpoint DELETE /v1/apis/{apiId}/types/{typeName}\n@desc Deletes a Type object.\n@required {apiId: str, typeName: str}\n\n@endgroup\n\n@group domainnames\n@endpoint DELETE /v1/domainnames/{domainName}/apiassociation\n@desc Removes an ApiAssociation object from a custom domain.\n@required {domainName: str}\n\n@endgroup\n\n@group sourceApis\n@endpoint DELETE /v1/sourceApis/{sourceApiIdentifier}/mergedApiAssociations/{associationId}\n@desc Deletes an association between a Merged API and source API using the source API's identifier and the association ID.\n@required {sourceApiIdentifier: str, associationId: str}\n@returns(200) {sourceApiAssociationStatus: str?}\n\n@endgroup\n\n@group mergedApis\n@endpoint DELETE /v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}\n@desc Deletes an association between a Merged API and source API using the Merged API's identifier and the association ID.\n@required {mergedApiIdentifier: str, associationId: str}\n@returns(200) {sourceApiAssociationStatus: str?}\n\n@endgroup\n\n@group dataplane-evaluatecode\n@endpoint POST /v1/dataplane-evaluatecode\n@desc Evaluates the given code and returns the response. The code definition requirements depend on the specified runtime. For APPSYNC_JS runtimes, the code defines the request and response functions. The request function takes the incoming request after a GraphQL operation is parsed and converts it into a request configuration for the selected data source operation. The response function interprets responses from the data source and maps it to the shape of the GraphQL field output type.\n@required {runtime: AppSyncRuntime, code: str, context: str}\n@optional {function: str}\n@returns(200) {evaluationResult: str?, error: EvaluateCodeErrorDetail?{message: str?, codeErrors: [CodeError]?}, logs: [str]?}\n\n@endgroup\n\n@group dataplane-evaluatetemplate\n@endpoint POST /v1/dataplane-evaluatetemplate\n@desc Evaluates a given template and returns the response. The mapping template can be a request or response template. Request templates take the incoming request after a GraphQL operation is parsed and convert it into a request configuration for the selected data source operation. Response templates interpret responses from the data source and map it to the shape of the GraphQL field output type. Mapping templates are written in the Apache Velocity Template Language (VTL).\n@required {template: str, context: str}\n@returns(200) {evaluationResult: str?, error: ErrorDetail?{message: str?}, logs: [str]?}\n\n@endgroup\n\n@group apis\n@endpoint DELETE /v1/apis/{apiId}/FlushCache\n@desc Flushes an ApiCache object.\n@required {apiId: str}\n\n@endgroup\n\n@group domainnames\n@endpoint GET /v1/domainnames/{domainName}/apiassociation\n@desc Retrieves an ApiAssociation object.\n@required {domainName: str}\n@returns(200) {apiAssociation: ApiAssociation?{domainName: str?, apiId: str?, associationStatus: str?, deploymentDetail: str?}}\n\n@endgroup\n\n@group apis\n@endpoint GET /v1/apis/{apiId}/ApiCaches\n@desc Retrieves an ApiCache object.\n@required {apiId: str}\n@returns(200) {apiCache: ApiCache?{ttl: int(i64)?, apiCachingBehavior: str?, transitEncryptionEnabled: bool?, atRestEncryptionEnabled: bool?, type: str?, status: str?, healthMetricsConfig: str?}}\n\n@endpoint GET /v1/apis/{apiId}/datasources/{name}\n@desc Retrieves a DataSource object.\n@required {apiId: str, name: str}\n@returns(200) {dataSource: DataSource?{dataSourceArn: str?, name: str?, description: str?, type: str?, serviceRoleArn: str?, dynamodbConfig: DynamodbDataSourceConfig?{tableName: str, awsRegion: str, useCallerCredentials: bool?, deltaSyncConfig: DeltaSyncConfig?{baseTableTTL: int(i64)?, deltaSyncTableName: str?, deltaSyncTableTTL: int(i64)?}, versioned: bool?}, lambdaConfig: LambdaDataSourceConfig?{lambdaFunctionArn: str}, elasticsearchConfig: ElasticsearchDataSourceConfig?{endpoint: str, awsRegion: str}, openSearchServiceConfig: OpenSearchServiceDataSourceConfig?{endpoint: str, awsRegion: str}, httpConfig: HttpDataSourceConfig?{endpoint: str?, authorizationConfig: AuthorizationConfig?{authorizationType: str, awsIamConfig: AwsIamConfig?}}, relationalDatabaseConfig: RelationalDatabaseDataSourceConfig?{relationalDatabaseSourceType: str?, rdsHttpEndpointConfig: RdsHttpEndpointConfig?{awsRegion: str?, dbClusterIdentifier: str?, databaseName: str?, schema: str?, awsSecretStoreArn: str?}}, eventBridgeConfig: EventBridgeDataSourceConfig?{eventBusArn: str}, metricsConfig: str?}}\n\n@endgroup\n\n@group datasources\n@endpoint GET /v1/datasources/introspections/{introspectionId}\n@desc Retrieves the record of an existing introspection. If the retrieval is successful, the result of the instrospection will also be returned. If the retrieval fails the operation, an error message will be returned instead.\n@required {introspectionId: str}\n@optional {includeModelsSDL: bool, nextToken: str, maxResults: int}\n@returns(200) {introspectionId: str?, introspectionStatus: str?, introspectionStatusDetail: str?, introspectionResult: DataSourceIntrospectionResult?{models: [DataSourceIntrospectionModel]?, nextToken: str?}}\n\n@endgroup\n\n@group domainnames\n@endpoint GET /v1/domainnames/{domainName}\n@desc Retrieves a custom DomainName object.\n@required {domainName: str}\n@returns(200) {domainNameConfig: DomainNameConfig?{domainName: str?, description: str?, certificateArn: str?, appsyncDomainName: str?, hostedZoneId: str?}}\n\n@endgroup\n\n@group apis\n@endpoint GET /v1/apis/{apiId}/functions/{functionId}\n@desc Get a Function.\n@required {apiId: str, functionId: str}\n@returns(200) {functionConfiguration: FunctionConfiguration?{functionId: str?, functionArn: str?, name: str?, description: str?, dataSourceName: str?, requestMappingTemplate: str?, responseMappingTemplate: str?, functionVersion: str?, syncConfig: SyncConfig?{conflictHandler: str?, conflictDetection: str?, lambdaConflictHandlerConfig: LambdaConflictHandlerConfig?{lambdaConflictHandlerArn: str?}}, maxBatchSize: int?, runtime: AppSyncRuntime?{name: str, runtimeVersion: str}, code: str?}}\n\n@endpoint GET /v1/apis/{apiId}\n@desc Retrieves a GraphqlApi object.\n@required {apiId: str}\n@returns(200) {graphqlApi: GraphqlApi?{name: str?, apiId: str?, authenticationType: str?, logConfig: LogConfig?{fieldLogLevel: str, cloudWatchLogsRoleArn: str, excludeVerboseContent: bool?}, userPoolConfig: UserPoolConfig?{userPoolId: str, awsRegion: str, defaultAction: str, appIdClientRegex: str?}, openIDConnectConfig: OpenIDConnectConfig?{issuer: str, clientId: str?, iatTTL: int(i64)?, authTTL: int(i64)?}, arn: str?, uris: map<str, str>?: any, tags: map<str, str>?: any, additionalAuthenticationProviders: [AdditionalAuthenticationProvider]?, xrayEnabled: bool?, wafWebAclArn: str?, lambdaAuthorizerConfig: LambdaAuthorizerConfig?{authorizerResultTtlInSeconds: int?, authorizerUri: str, identityValidationExpression: str?}, dns: map<str, str>?: any, visibility: str?, apiType: str?, mergedApiExecutionRoleArn: str?, owner: str?, ownerContact: str?, introspectionConfig: str?, queryDepthLimit: int?, resolverCountLimit: int?, enhancedMetricsConfig: EnhancedMetricsConfig?{resolverLevelMetricsBehavior: str, dataSourceLevelMetricsBehavior: str, operationLevelMetricsConfig: str}}}\n\n@endpoint GET /v1/apis/{apiId}/environmentVariables\n@desc Retrieves the list of environmental variable key-value pairs associated with an API by its ID value.\n@required {apiId: str}\n@returns(200) {environmentVariables: map<str,str>?}\n\n@endpoint GET /v1/apis/{apiId}/schema\n@desc Retrieves the introspection schema for a GraphQL API.\n@required {apiId: str, format: str}\n@optional {includeDirectives: bool}\n@returns(200) {schema: bytes?}\n\n@endpoint GET /v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}\n@desc Retrieves a Resolver object.\n@required {apiId: str, typeName: str, fieldName: str}\n@returns(200) {resolver: Resolver?{typeName: str?, fieldName: str?, dataSourceName: str?, resolverArn: str?, requestMappingTemplate: str?, responseMappingTemplate: str?, kind: str?, pipelineConfig: PipelineConfig?{functions: [str]?}, syncConfig: SyncConfig?{conflictHandler: str?, conflictDetection: str?, lambdaConflictHandlerConfig: LambdaConflictHandlerConfig?{lambdaConflictHandlerArn: str?}}, cachingConfig: CachingConfig?{ttl: int(i64), cachingKeys: [str]?}, maxBatchSize: int?, runtime: AppSyncRuntime?{name: str, runtimeVersion: str}, code: str?, metricsConfig: str?}}\n\n@endpoint GET /v1/apis/{apiId}/schemacreation\n@desc Retrieves the current status of a schema creation operation.\n@required {apiId: str}\n@returns(200) {status: str?, details: str?}\n\n@endgroup\n\n@group mergedApis\n@endpoint GET /v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}\n@desc Retrieves a SourceApiAssociation object.\n@required {mergedApiIdentifier: str, associationId: str}\n@returns(200) {sourceApiAssociation: SourceApiAssociation?{associationId: str?, associationArn: str?, sourceApiId: str?, sourceApiArn: str?, mergedApiArn: str?, mergedApiId: str?, description: str?, sourceApiAssociationConfig: SourceApiAssociationConfig?{mergeType: str?}, sourceApiAssociationStatus: str?, sourceApiAssociationStatusDetail: str?, lastSuccessfulMergeDate: str(timestamp)?}}\n\n@endgroup\n\n@group apis\n@endpoint GET /v1/apis/{apiId}/types/{typeName}\n@desc Retrieves a Type object.\n@required {apiId: str, typeName: str, format: str}\n@returns(200) {type: Type?{name: str?, description: str?, arn: str?, definition: str?, format: str?}}\n\n@endpoint GET /v1/apis/{apiId}/apikeys\n@desc Lists the API keys for a given API.  API keys are deleted automatically 60 days after they expire. However, they may still be included in the response until they have actually been deleted. You can safely call DeleteApiKey to manually delete a key before it's automatically deleted.\n@required {apiId: str}\n@optional {nextToken: str, maxResults: int}\n@returns(200) {apiKeys: [ApiKey]?, nextToken: str?}\n\n@endpoint GET /v1/apis/{apiId}/datasources\n@desc Lists the data sources for a given API.\n@required {apiId: str}\n@optional {nextToken: str, maxResults: int}\n@returns(200) {dataSources: [DataSource]?, nextToken: str?}\n\n@endgroup\n\n@group domainnames\n@endpoint GET /v1/domainnames\n@desc Lists multiple custom domain names.\n@optional {nextToken: str, maxResults: int}\n@returns(200) {domainNameConfigs: [DomainNameConfig]?, nextToken: str?}\n\n@endgroup\n\n@group apis\n@endpoint GET /v1/apis/{apiId}/functions\n@desc List multiple functions.\n@required {apiId: str}\n@optional {nextToken: str, maxResults: int}\n@returns(200) {functions: [FunctionConfiguration]?, nextToken: str?}\n\n@endpoint GET /v1/apis\n@desc Lists your GraphQL APIs.\n@optional {nextToken: str, maxResults: int, apiType: str, owner: str}\n@returns(200) {graphqlApis: [GraphqlApi]?, nextToken: str?}\n\n@endpoint GET /v1/apis/{apiId}/types/{typeName}/resolvers\n@desc Lists the resolvers for a given API and type.\n@required {apiId: str, typeName: str}\n@optional {nextToken: str, maxResults: int}\n@returns(200) {resolvers: [Resolver]?, nextToken: str?}\n\n@endpoint GET /v1/apis/{apiId}/functions/{functionId}/resolvers\n@desc List the resolvers that are associated with a specific function.\n@required {apiId: str, functionId: str}\n@optional {nextToken: str, maxResults: int}\n@returns(200) {resolvers: [Resolver]?, nextToken: str?}\n\n@endpoint GET /v1/apis/{apiId}/sourceApiAssociations\n@desc Lists the SourceApiAssociationSummary data.\n@required {apiId: str}\n@optional {nextToken: str, maxResults: int}\n@returns(200) {sourceApiAssociationSummaries: [SourceApiAssociationSummary]?, nextToken: str?}\n\n@endgroup\n\n@group tags\n@endpoint GET /v1/tags/{resourceArn}\n@desc Lists the tags for a resource.\n@required {resourceArn: str}\n@returns(200) {tags: map<str,str>?}\n\n@endgroup\n\n@group apis\n@endpoint GET /v1/apis/{apiId}/types\n@desc Lists the types for a given API.\n@required {apiId: str, format: str}\n@optional {nextToken: str, maxResults: int}\n@returns(200) {types: [Type]?, nextToken: str?}\n\n@endgroup\n\n@group mergedApis\n@endpoint GET /v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}/types\n@desc Lists Type objects by the source API association ID.\n@required {mergedApiIdentifier: str, associationId: str, format: str}\n@optional {nextToken: str, maxResults: int}\n@returns(200) {types: [Type]?, nextToken: str?}\n\n@endgroup\n\n@group apis\n@endpoint PUT /v1/apis/{apiId}/environmentVariables\n@desc Creates a list of environmental variables in an API by its ID value.  When creating an environmental variable, it must follow the constraints below:   Both JavaScript and VTL templates support environmental variables.   Environmental variables are not evaluated before function invocation.   Environmental variables only support string values.   Any defined value in an environmental variable is considered a string literal and not expanded.   Variable evaluations should ideally be performed in the function code.   When creating an environmental variable key-value pair, it must follow the additional constraints below:   Keys must begin with a letter.   Keys must be at least two characters long.   Keys can only contain letters, numbers, and the underscore character (_).   Values can be up to 512 characters long.   You can configure up to 50 key-value pairs in a GraphQL API.   You can create a list of environmental variables by adding it to the environmentVariables payload as a list in the format {\"key1\":\"value1\",\"key2\":\"value2\", …}. Note that each call of the PutGraphqlApiEnvironmentVariables action will result in the overwriting of the existing environmental variable list of that API. This means the existing environmental variables will be lost. To avoid this, you must include all existing and new environmental variables in the list each time you call this action.\n@required {apiId: str, environmentVariables: map<str,str>}\n@returns(200) {environmentVariables: map<str,str>?}\n\n@endgroup\n\n@group datasources\n@endpoint POST /v1/datasources/introspections\n@desc Creates a new introspection. Returns the introspectionId of the new introspection after its creation.\n@optional {rdsDataApiConfig: RdsDataApiConfig}\n@returns(200) {introspectionId: str?, introspectionStatus: str?, introspectionStatusDetail: str?}\n\n@endgroup\n\n@group apis\n@endpoint POST /v1/apis/{apiId}/schemacreation\n@desc Adds a new schema to your GraphQL API. This operation is asynchronous. Use to determine when it has completed.\n@required {apiId: str, definition: bytes}\n@returns(200) {status: str?}\n\n@endgroup\n\n@group mergedApis\n@endpoint POST /v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}/merge\n@desc Initiates a merge operation. Returns a status that shows the result of the merge operation.\n@required {associationId: str, mergedApiIdentifier: str}\n@returns(200) {sourceApiAssociationStatus: str?}\n\n@endgroup\n\n@group tags\n@endpoint POST /v1/tags/{resourceArn}\n@desc Tags a resource with user-supplied tags.\n@required {resourceArn: str, tags: map<str,str>}\n\n@endpoint DELETE /v1/tags/{resourceArn}\n@desc Untags a resource.\n@required {resourceArn: str, tagKeys: [str]}\n\n@endgroup\n\n@group apis\n@endpoint POST /v1/apis/{apiId}/ApiCaches/update\n@desc Updates the cache for the GraphQL API.\n@required {apiId: str, ttl: int(i64), apiCachingBehavior: str, type: str}\n@optional {healthMetricsConfig: str}\n@returns(200) {apiCache: ApiCache?{ttl: int(i64)?, apiCachingBehavior: str?, transitEncryptionEnabled: bool?, atRestEncryptionEnabled: bool?, type: str?, status: str?, healthMetricsConfig: str?}}\n\n@endpoint POST /v1/apis/{apiId}/apikeys/{id}\n@desc Updates an API key. You can update the key as long as it's not deleted.\n@required {apiId: str, id: str}\n@optional {description: str, expires: int(i64)}\n@returns(200) {apiKey: ApiKey?{id: str?, description: str?, expires: int(i64)?, deletes: int(i64)?}}\n\n@endpoint POST /v1/apis/{apiId}/datasources/{name}\n@desc Updates a DataSource object.\n@required {apiId: str, name: str, type: str}\n@optional {description: str, serviceRoleArn: str, dynamodbConfig: DynamodbDataSourceConfig, lambdaConfig: LambdaDataSourceConfig, elasticsearchConfig: ElasticsearchDataSourceConfig, openSearchServiceConfig: OpenSearchServiceDataSourceConfig, httpConfig: HttpDataSourceConfig, relationalDatabaseConfig: RelationalDatabaseDataSourceConfig, eventBridgeConfig: EventBridgeDataSourceConfig, metricsConfig: str}\n@returns(200) {dataSource: DataSource?{dataSourceArn: str?, name: str?, description: str?, type: str?, serviceRoleArn: str?, dynamodbConfig: DynamodbDataSourceConfig?{tableName: str, awsRegion: str, useCallerCredentials: bool?, deltaSyncConfig: DeltaSyncConfig?{baseTableTTL: int(i64)?, deltaSyncTableName: str?, deltaSyncTableTTL: int(i64)?}, versioned: bool?}, lambdaConfig: LambdaDataSourceConfig?{lambdaFunctionArn: str}, elasticsearchConfig: ElasticsearchDataSourceConfig?{endpoint: str, awsRegion: str}, openSearchServiceConfig: OpenSearchServiceDataSourceConfig?{endpoint: str, awsRegion: str}, httpConfig: HttpDataSourceConfig?{endpoint: str?, authorizationConfig: AuthorizationConfig?{authorizationType: str, awsIamConfig: AwsIamConfig?}}, relationalDatabaseConfig: RelationalDatabaseDataSourceConfig?{relationalDatabaseSourceType: str?, rdsHttpEndpointConfig: RdsHttpEndpointConfig?{awsRegion: str?, dbClusterIdentifier: str?, databaseName: str?, schema: str?, awsSecretStoreArn: str?}}, eventBridgeConfig: EventBridgeDataSourceConfig?{eventBusArn: str}, metricsConfig: str?}}\n\n@endgroup\n\n@group domainnames\n@endpoint POST /v1/domainnames/{domainName}\n@desc Updates a custom DomainName object.\n@required {domainName: str}\n@optional {description: str}\n@returns(200) {domainNameConfig: DomainNameConfig?{domainName: str?, description: str?, certificateArn: str?, appsyncDomainName: str?, hostedZoneId: str?}}\n\n@endgroup\n\n@group apis\n@endpoint POST /v1/apis/{apiId}/functions/{functionId}\n@desc Updates a Function object.\n@required {apiId: str, functionId: str, name: str, dataSourceName: str}\n@optional {description: str, requestMappingTemplate: str, responseMappingTemplate: str, functionVersion: str, syncConfig: SyncConfig, maxBatchSize: int, runtime: AppSyncRuntime, code: str}\n@returns(200) {functionConfiguration: FunctionConfiguration?{functionId: str?, functionArn: str?, name: str?, description: str?, dataSourceName: str?, requestMappingTemplate: str?, responseMappingTemplate: str?, functionVersion: str?, syncConfig: SyncConfig?{conflictHandler: str?, conflictDetection: str?, lambdaConflictHandlerConfig: LambdaConflictHandlerConfig?{lambdaConflictHandlerArn: str?}}, maxBatchSize: int?, runtime: AppSyncRuntime?{name: str, runtimeVersion: str}, code: str?}}\n\n@endpoint POST /v1/apis/{apiId}\n@desc Updates a GraphqlApi object.\n@required {apiId: str, name: str, authenticationType: str}\n@optional {logConfig: LogConfig, userPoolConfig: UserPoolConfig, openIDConnectConfig: OpenIDConnectConfig, additionalAuthenticationProviders: [AdditionalAuthenticationProvider], xrayEnabled: bool, lambdaAuthorizerConfig: LambdaAuthorizerConfig, mergedApiExecutionRoleArn: str, ownerContact: str, introspectionConfig: str, queryDepthLimit: int, resolverCountLimit: int, enhancedMetricsConfig: EnhancedMetricsConfig}\n@returns(200) {graphqlApi: GraphqlApi?{name: str?, apiId: str?, authenticationType: str?, logConfig: LogConfig?{fieldLogLevel: str, cloudWatchLogsRoleArn: str, excludeVerboseContent: bool?}, userPoolConfig: UserPoolConfig?{userPoolId: str, awsRegion: str, defaultAction: str, appIdClientRegex: str?}, openIDConnectConfig: OpenIDConnectConfig?{issuer: str, clientId: str?, iatTTL: int(i64)?, authTTL: int(i64)?}, arn: str?, uris: map<str, str>?: any, tags: map<str, str>?: any, additionalAuthenticationProviders: [AdditionalAuthenticationProvider]?, xrayEnabled: bool?, wafWebAclArn: str?, lambdaAuthorizerConfig: LambdaAuthorizerConfig?{authorizerResultTtlInSeconds: int?, authorizerUri: str, identityValidationExpression: str?}, dns: map<str, str>?: any, visibility: str?, apiType: str?, mergedApiExecutionRoleArn: str?, owner: str?, ownerContact: str?, introspectionConfig: str?, queryDepthLimit: int?, resolverCountLimit: int?, enhancedMetricsConfig: EnhancedMetricsConfig?{resolverLevelMetricsBehavior: str, dataSourceLevelMetricsBehavior: str, operationLevelMetricsConfig: str}}}\n\n@endpoint POST /v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}\n@desc Updates a Resolver object.\n@required {apiId: str, typeName: str, fieldName: str}\n@optional {dataSourceName: str, requestMappingTemplate: str, responseMappingTemplate: str, kind: str, pipelineConfig: PipelineConfig, syncConfig: SyncConfig, cachingConfig: CachingConfig, maxBatchSize: int, runtime: AppSyncRuntime, code: str, metricsConfig: str}\n@returns(200) {resolver: Resolver?{typeName: str?, fieldName: str?, dataSourceName: str?, resolverArn: str?, requestMappingTemplate: str?, responseMappingTemplate: str?, kind: str?, pipelineConfig: PipelineConfig?{functions: [str]?}, syncConfig: SyncConfig?{conflictHandler: str?, conflictDetection: str?, lambdaConflictHandlerConfig: LambdaConflictHandlerConfig?{lambdaConflictHandlerArn: str?}}, cachingConfig: CachingConfig?{ttl: int(i64), cachingKeys: [str]?}, maxBatchSize: int?, runtime: AppSyncRuntime?{name: str, runtimeVersion: str}, code: str?, metricsConfig: str?}}\n\n@endgroup\n\n@group mergedApis\n@endpoint POST /v1/mergedApis/{mergedApiIdentifier}/sourceApiAssociations/{associationId}\n@desc Updates some of the configuration choices of a particular source API association.\n@required {associationId: str, mergedApiIdentifier: str}\n@optional {description: str, sourceApiAssociationConfig: SourceApiAssociationConfig}\n@returns(200) {sourceApiAssociation: SourceApiAssociation?{associationId: str?, associationArn: str?, sourceApiId: str?, sourceApiArn: str?, mergedApiArn: str?, mergedApiId: str?, description: str?, sourceApiAssociationConfig: SourceApiAssociationConfig?{mergeType: str?}, sourceApiAssociationStatus: str?, sourceApiAssociationStatusDetail: str?, lastSuccessfulMergeDate: str(timestamp)?}}\n\n@endgroup\n\n@group apis\n@endpoint POST /v1/apis/{apiId}/types/{typeName}\n@desc Updates a Type object.\n@required {apiId: str, typeName: str, format: str}\n@optional {definition: str}\n@returns(200) {type: Type?{name: str?, description: str?, arn: str?, definition: str?, format: str?}}\n\n@endgroup\n\n@end\n"}}