import { ResourceBase } from '../resource' ; import { Value , List } from '../dataTypes' ; export class RelationalDatabaseConfig { RdsHttpEndpointConfig ? : RdsHttpEndpointConfig ; RelationalDatabaseSourceType ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LambdaConfig { LambdaFunctionArn ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class HttpConfig { Endpoint ! : Value < string > ; AuthorizationConfig ? : AuthorizationConfig ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AwsIamConfig { SigningRegion ? : Value < string > ; SigningServiceName ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class DynamoDBConfig { TableName ! : Value < string > ; AwsRegion ! : Value < string > ; Versioned ? : Value < boolean > ; DeltaSyncConfig ? : DeltaSyncConfig ; UseCallerCredentials ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AuthorizationConfig { AwsIamConfig ? : AwsIamConfig ; AuthorizationType ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class RdsHttpEndpointConfig { AwsRegion ! : Value < string > ; Schema ? : Value < string > ; DatabaseName ? : Value < string > ; DbClusterIdentifier ! : Value < string > ; AwsSecretStoreArn ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ElasticsearchConfig { AwsRegion ! : Value < string > ; Endpoint ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class DeltaSyncConfig { BaseTableTTL ! : Value < string > ; DeltaSyncTableTTL ! : Value < string > ; DeltaSyncTableName ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface DataSourceProperties { Type : Value < string > ; Description ? : Value < string > ; ServiceRoleArn ? : Value < string > ; HttpConfig ? : HttpConfig ; RelationalDatabaseConfig ? : RelationalDatabaseConfig ; LambdaConfig ? : LambdaConfig ; ApiId : Value < string > ; Name : Value < string > ; DynamoDBConfig ? : DynamoDBConfig ; ElasticsearchConfig ? : ElasticsearchConfig ; } export default class DataSource extends ResourceBase < DataSourceProperties > { static RelationalDatabaseConfig = RelationalDatabaseConfig ; static LambdaConfig = LambdaConfig ; static HttpConfig = HttpConfig ; static AwsIamConfig = AwsIamConfig ; static DynamoDBConfig = DynamoDBConfig ; static AuthorizationConfig = AuthorizationConfig ; static RdsHttpEndpointConfig = RdsHttpEndpointConfig ; static ElasticsearchConfig = ElasticsearchConfig ; static DeltaSyncConfig = DeltaSyncConfig ; constructor ( properties ) { super ( 'AWS::AppSync::DataSource' , properties ) ; } }