CreateDataSource - AWS AppSync
Creates a DataSource object.
Request Syntax
POST /v1/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
metricsConfigwon't be used unless thedataSourceLevelMetricsBehaviorvalue is set toPER_DATA_SOURCE_METRICS. If thedataSourceLevelMetricsBehavioris set toFULL_REQUEST_DATA_SOURCE_METRICSinstead,metricsConfigwill be ignored. However, you can still set its value.metricsConfigcan beENABLEDorDISABLED.Type: String
Valid Values:
ENABLED | DISABLEDRequired: 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 | AMAZON_BEDROCK_RUNTIMERequired: 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.
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.
- detail
-
Provides further details for the reason behind the bad request. For reason type
CODE_ERROR, the detail will contain a list of code errors. - reason
-
Provides context for the cause of the bad request. The only supported value is
CODE_ERROR.
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: