CreateDataSource
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
metricsConfig
won't be used unless thedataSourceLevelMetricsBehavior
value is set toPER_DATA_SOURCE_METRICS
. If thedataSourceLevelMetricsBehavior
is set toFULL_REQUEST_DATA_SOURCE_METRICS
instead,metricsConfig
will be ignored. However, you can still set its value.metricsConfig
can beENABLED
orDISABLED
.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: