UpdateResolver - AWS AppSync

UpdateResolver

Updates a Resolver object.

Request Syntax

POST /apis/apiId/types/typeName/resolvers/fieldName HTTP/1.1 Content-type: application/json { "cachingConfig": { "cachingKeys": [ "string" ], "ttl": number }, "code": "string", "dataSourceName": "string", "kind": "string", "maxBatchSize": number, "metricsConfig": "string", "pipelineConfig": { "functions": [ "string" ] }, "requestMappingTemplate": "string", "responseMappingTemplate": "string", "runtime": { "name": "string", "runtimeVersion": "string" }, "syncConfig": { "conflictDetection": "string", "conflictHandler": "string", "lambdaConflictHandlerConfig": { "lambdaConflictHandlerArn": "string" } } }

URI Request Parameters

The request uses the following URI parameters.

apiId

The API ID.

Required: Yes

fieldName

The new field name.

Length Constraints: Minimum length of 1. Maximum length of 65536.

Pattern: [_A-Za-z][_0-9A-Za-z]*

Required: Yes

typeName

The new type name.

Length Constraints: Minimum length of 1. Maximum length of 65536.

Pattern: [_A-Za-z][_0-9A-Za-z]*

Required: Yes

Request Body

The request accepts the following data in JSON format.

cachingConfig

The caching configuration for the resolver.

Type: CachingConfig object

Required: No

code

The resolver code that contains the request and response functions. When code is used, the runtime is required. The runtime value must be APPSYNC_JS.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 32768.

Required: No

dataSourceName

The new data source name.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 65536.

Pattern: [_A-Za-z][_0-9A-Za-z]*

Required: No

kind

The resolver type.

  • UNIT: A UNIT resolver type. A UNIT resolver is the default resolver type. You can use a UNIT resolver to run a GraphQL query against a single data source.

  • PIPELINE: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of Function objects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources.

Type: String

Valid Values: UNIT | PIPELINE

Required: No

maxBatchSize

The maximum batching size for a resolver.

Type: Integer

Valid Range: Minimum value of 0. Maximum value of 2000.

Required: No

metricsConfig

Enables or disables enhanced resolver metrics for specified resolvers. Note that metricsConfig won't be used unless the resolverLevelMetricsBehavior value is set to PER_RESOLVER_METRICS. If the resolverLevelMetricsBehavior is set to FULL_REQUEST_RESOLVER_METRICS instead, metricsConfig will be ignored. However, you can still set its value.

metricsConfig can be ENABLED or DISABLED.

Type: String

Valid Values: ENABLED | DISABLED

Required: No

pipelineConfig

The PipelineConfig.

Type: PipelineConfig object

Required: No

requestMappingTemplate

The new request mapping template.

A resolver uses a request mapping template to convert a GraphQL expression into a format that a data source can understand. Mapping templates are written in Apache Velocity Template Language (VTL).

VTL request mapping templates are optional when using an AWS Lambda data source. For all other data sources, VTL request and response mapping templates are required.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 65536.

Pattern: ^.*$

Required: No

responseMappingTemplate

The new response mapping template.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 65536.

Pattern: ^.*$

Required: No

runtime

Describes a runtime used by an AWS AppSync pipeline resolver or AWS AppSync function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified.

Type: AppSyncRuntime object

Required: No

syncConfig

The SyncConfig for a resolver attached to a versioned data source.

Type: SyncConfig object

Required: No

Response Syntax

HTTP/1.1 200 Content-type: application/json { "resolver": { "cachingConfig": { "cachingKeys": [ "string" ], "ttl": number }, "code": "string", "dataSourceName": "string", "fieldName": "string", "kind": "string", "maxBatchSize": number, "metricsConfig": "string", "pipelineConfig": { "functions": [ "string" ] }, "requestMappingTemplate": "string", "resolverArn": "string", "responseMappingTemplate": "string", "runtime": { "name": "string", "runtimeVersion": "string" }, "syncConfig": { "conflictDetection": "string", "conflictHandler": "string", "lambdaConflictHandlerConfig": { "lambdaConflictHandlerArn": "string" } }, "typeName": "string" } }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

resolver

The updated Resolver object.

Type: Resolver object

Errors

For information about the errors that are common to all actions, see Common Errors.

BadRequestException

The request is not well formed. For example, a value is invalid or a required field is missing. Check the field values, and then try again.

HTTP Status Code: 400

ConcurrentModificationException

Another modification is in progress at this time and it must complete before you can make your change.

HTTP Status Code: 409

InternalFailureException

An internal AWS AppSync error occurred. Try your request again.

HTTP Status Code: 500

NotFoundException

The resource specified in the request was not found. Check the resource, and then try again.

HTTP Status Code: 404

UnauthorizedException

You aren't authorized to perform this operation.

HTTP Status Code: 401

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: