import { Value } from '../../cloudformation/Value';
import { OpenSearchServiceConfigProps } from './datasource/OpenSearchServiceConfigProps';
import { EventBridgeConfigProps } from './datasource/EventBridgeConfigProps';
import { HttpConfigProps } from './datasource/HttpConfigProps';
import { RelationalDatabaseConfigProps } from './datasource/RelationalDatabaseConfigProps';
import { LambdaConfigProps } from './datasource/LambdaConfigProps';
import { DynamoDBConfigProps } from './datasource/DynamoDBConfigProps';
import { ElasticsearchConfigProps } from './datasource/ElasticsearchConfigProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type DataSourceAttributes = {
    DataSourceArn: Attribute<string>;
    Name: Attribute<string>;
};
export type DataSource = AwsResource<'AWS::AppSync::DataSource', DataSourceProperties, DataSourceAttributes>;
/**
  The <code>AWS::AppSync::DataSource</code> resource creates data sources for resolvers in AWS AppSync to connect to, such as Amazon DynamoDB, AWS Lambda, and Amazon OpenSearch Service. Resolvers use these data sources to fetch data when clients make GraphQL calls.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html">the AWS Docs</a>
*/
export declare function dataSource(dataSourceProps: DataSourceProperties): DataSource;
/**
  The <code>AWS::AppSync::DataSource</code> resource creates data sources for resolvers in AWS AppSync to connect to, such as Amazon DynamoDB, AWS Lambda, and Amazon OpenSearch Service. Resolvers use these data sources to fetch data when clients make GraphQL calls.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html">the AWS Docs</a>
*/
export interface DataSourceProperties {
    /** <p> */
    type: Value<string>;
    /** <code>OpenSearchServiceConfig</code>  <a name="cfn-appsync-datasource-opensearchserviceconfig"></a>
  AWS Region and Endpoints for an Amazon OpenSearch Service domain in your account.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    openSearchServiceConfig?: OpenSearchServiceConfigProps;
    /** <code>Description</code>  <a name="cfn-appsync-datasource-description"></a>
  The description of the data source.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    description?: Value<string>;
    /** <code>ServiceRoleArn</code>  <a name="cfn-appsync-datasource-servicerolearn"></a>
  The AWS Identity and Access Management service role ARN for the data source. The system assumes this role when accessing the data source.<br />
  Required if <code>Type</code> is specified as <code>AWS_LAMBDA</code>, <code>AMAZON_DYNAMODB</code>, <code>AMAZON_ELASTICSEARCH</code>, <code>AMAZON_EVENTBRIDGE</code>, or <code>AMAZON_OPENSEARCH_SERVICE</code>.<br />
  
  Required: Conditional<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    serviceRoleArn?: Value<string>;
    /** <code>EventBridgeConfig</code>  <a name="cfn-appsync-datasource-eventbridgeconfig"></a>
  An EventBridge configuration that contains a valid ARN of an event bus.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    eventBridgeConfig?: EventBridgeConfigProps;
    /** <code>HttpConfig</code>  <a name="cfn-appsync-datasource-httpconfig"></a>
  Endpoints for an HTTP data source.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    httpConfig?: HttpConfigProps;
    /** <code>RelationalDatabaseConfig</code>  <a name="cfn-appsync-datasource-relationaldatabaseconfig"></a>
  Relational Database configuration of the relational database data source.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    relationalDatabaseConfig?: RelationalDatabaseConfigProps;
    /** <code>LambdaConfig</code>  <a name="cfn-appsync-datasource-lambdaconfig"></a>
  An ARN of a Lambda function in valid ARN format. This can be the ARN of a Lambda function that exists in the current account or in another account.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    lambdaConfig?: LambdaConfigProps;
    /** <code>ApiId</code>  <a name="cfn-appsync-datasource-apiid"></a>
  Unique AWS AppSync GraphQL API identifier where this data source will be created.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    apiId: Value<string>;
    /** <code>Name</code>  <a name="cfn-appsync-datasource-name"></a>
  Friendly name for you to identify your AppSync data source after creation.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    name: Value<string>;
    /** <code>DynamoDBConfig</code>  <a name="cfn-appsync-datasource-dynamodbconfig"></a>
  AWS Region and TableName for an Amazon DynamoDB table in your account.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    dynamoDBConfig?: DynamoDBConfigProps;
    /** <code>ElasticsearchConfig</code>  <a name="cfn-appsync-datasource-elasticsearchconfig"></a>
  AWS Region and Endpoints for an Amazon OpenSearch Service domain in your account.<br />
  As of September 2021, Amazon Elasticsearch Service is Amazon OpenSearch Service. This property is deprecated. For new data sources, use
  OpenSearchServiceConfig: o specify an OpenSearch Service data source.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    elasticsearchConfig?: ElasticsearchConfigProps;
}
