CreateDataSource - AWS AppSync

CreateDataSource

Creates a DataSource object.

Request Syntax

POST /apis/apiId/datasources HTTP/1.1 Content-type: application/json { "description": "string", "dynamodbConfig": { "awsRegion": "string", "deltaSyncConfig": { "baseTableTTL": number, "deltaSyncTableName": "string", "deltaSyncTableTTL": number }, "tableName": "string", "useCallerCredentials": boolean, "versioned": boolean }, "elasticsearchConfig": { "awsRegion": "string", "endpoint": "string" }, "eventBridgeConfig": { "eventBusArn": "string" }, "httpConfig": { "authorizationConfig": { "authorizationType": "string", "awsIamConfig": { "signingRegion": "string", "signingServiceName": "string" } }, "endpoint": "string" }, "lambdaConfig": { "lambdaFunctionArn": "string" }, "metricsConfig": "string", "name": "string", "openSearchServiceConfig": { "awsRegion": "string", "endpoint": "string" }, "relationalDatabaseConfig": { "rdsHttpEndpointConfig": { "awsRegion": "string", "awsSecretStoreArn": "string", "databaseName": "string", "dbClusterIdentifier": "string", "schema": "string" }, "relationalDatabaseSourceType": "string" }, "serviceRoleArn": "string", "type": "string" }

URI Request Parameters

The request uses the following URI parameters.

apiId

The API ID for the GraphQL API for the DataSource.

Required: Yes

Request Body

The request accepts the following data in JSON format.

description

A description of the DataSource.

Type: String

Required: No

dynamodbConfig

Amazon DynamoDB settings.

Type: DynamodbDataSourceConfig object

Required: No

elasticsearchConfig

Amazon OpenSearch Service settings.

As of September 2021, Amazon Elasticsearch service is Amazon OpenSearch Service. This configuration is deprecated. For new data sources, use CreateDataSource:openSearchServiceConfig to create an OpenSearch data source.

Type: ElasticsearchDataSourceConfig object

Required: No

eventBridgeConfig

Amazon EventBridge settings.

Type: EventBridgeDataSourceConfig object

Required: No

httpConfig

HTTP endpoint settings.

Type: HttpDataSourceConfig object

Required: No

lambdaConfig

AWS Lambda settings.

Type: LambdaDataSourceConfig object

Required: No

metricsConfig

Enables or disables enhanced data source metrics for specified data sources. Note that metricsConfig won't be used unless the dataSourceLevelMetricsBehavior value is set to PER_DATA_SOURCE_METRICS. If the dataSourceLevelMetricsBehavior is set to FULL_REQUEST_DATA_SOURCE_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

name

A user-supplied name for the DataSource.

Type: String

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

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

Required: Yes

openSearchServiceConfig

Amazon OpenSearch Service settings.

Type: OpenSearchServiceDataSourceConfig object

Required: No

relationalDatabaseConfig

Relational database settings.

Type: RelationalDatabaseDataSourceConfig object

Required: No

serviceRoleArn

The AWS Identity and Access Management (IAM) service role Amazon Resource Name (ARN) for the data source. The system assumes this role when accessing the data source.

Type: String

Required: No

type

The type of the DataSource.

Type: String

Valid Values: AWS_LAMBDA | AMAZON_DYNAMODB | AMAZON_ELASTICSEARCH | NONE | HTTP | RELATIONAL_DATABASE | AMAZON_OPENSEARCH_SERVICE | AMAZON_EVENTBRIDGE

Required: Yes

Response Syntax

HTTP/1.1 200 Content-type: application/json { "dataSource": { "dataSourceArn": "string", "description": "string", "dynamodbConfig": { "awsRegion": "string", "deltaSyncConfig": { "baseTableTTL": number, "deltaSyncTableName": "string", "deltaSyncTableTTL": number }, "tableName": "string", "useCallerCredentials": boolean, "versioned": boolean }, "elasticsearchConfig": { "awsRegion": "string", "endpoint": "string" }, "eventBridgeConfig": { "eventBusArn": "string" }, "httpConfig": { "authorizationConfig": { "authorizationType": "string", "awsIamConfig": { "signingRegion": "string", "signingServiceName": "string" } }, "endpoint": "string" }, "lambdaConfig": { "lambdaFunctionArn": "string" }, "metricsConfig": "string", "name": "string", "openSearchServiceConfig": { "awsRegion": "string", "endpoint": "string" }, "relationalDatabaseConfig": { "rdsHttpEndpointConfig": { "awsRegion": "string", "awsSecretStoreArn": "string", "databaseName": "string", "dbClusterIdentifier": "string", "schema": "string" }, "relationalDatabaseSourceType": "string" }, "serviceRoleArn": "string", "type": "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.

dataSource

The DataSource object.

Type: DataSource 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: