import * as core from "@terrascript/core"; export interface AwsIamConfigArgs extends core.SchemaArgs { signingRegion?: string | core.StringOut; signingServiceName?: string | core.StringOut; } export class AwsIamConfig extends core.Schema { @core.attr(String) public signingRegion?: string | core.StringOut; @core.attr(String) public signingServiceName?: string | core.StringOut; } export interface AuthorizationConfigArgs extends core.SchemaArgs { authorizationType?: string | core.StringOut; awsIamConfig?: AwsIamConfig; } export class AuthorizationConfig extends core.Schema { @core.attr(String) public authorizationType?: string | core.StringOut; @core.attr(AwsIamConfig) public awsIamConfig?: AwsIamConfig; } export interface HttpConfigArgs extends core.SchemaArgs { authorizationConfig?: AuthorizationConfig; endpoint: string | core.StringOut; } export class HttpConfig extends core.Schema { @core.attr(AuthorizationConfig) public authorizationConfig?: AuthorizationConfig; @core.attr(String) public endpoint!: string | core.StringOut; } export interface DeltaSyncConfigArgs extends core.SchemaArgs { baseTableTtl?: number | core.NumberOut; deltaSyncTableName: string | core.StringOut; deltaSyncTableTtl?: number | core.NumberOut; } export class DeltaSyncConfig extends core.Schema { @core.attr(Number) public baseTableTtl?: number | core.NumberOut; @core.attr(String) public deltaSyncTableName!: string | core.StringOut; @core.attr(Number) public deltaSyncTableTtl?: number | core.NumberOut; } export interface DynamodbConfigArgs extends core.SchemaArgs { deltaSyncConfig?: DeltaSyncConfig; region?: string | core.StringOut; tableName: string | core.StringOut; useCallerCredentials?: boolean | core.BooleanOut; versioned?: boolean | core.BooleanOut; } export class DynamodbConfig extends core.Schema { @core.attr(DeltaSyncConfig) public deltaSyncConfig?: DeltaSyncConfig; @core.attr(String, { computed: true }) public region?: string | core.StringOut; @core.attr(String) public tableName!: string | core.StringOut; @core.attr(Boolean) public useCallerCredentials?: boolean | core.BooleanOut; @core.attr(Boolean) public versioned?: boolean | core.BooleanOut; } export interface LambdaConfigArgs extends core.SchemaArgs { functionArn: string | core.StringOut; } export class LambdaConfig extends core.Schema { @core.attr(String) public functionArn!: string | core.StringOut; } export interface ElasticsearchConfigArgs extends core.SchemaArgs { endpoint: string | core.StringOut; region?: string | core.StringOut; } export class ElasticsearchConfig extends core.Schema { @core.attr(String) public endpoint!: string | core.StringOut; @core.attr(String, { computed: true }) public region?: string | core.StringOut; } export interface HttpEndpointConfigArgs extends core.SchemaArgs { awsSecretStoreArn: string | core.StringOut; databaseName?: string | core.StringOut; dbClusterIdentifier: string | core.StringOut; region?: string | core.StringOut; schema?: string | core.StringOut; } export class HttpEndpointConfig extends core.Schema { @core.attr(String) public awsSecretStoreArn!: string | core.StringOut; @core.attr(String) public databaseName?: string | core.StringOut; @core.attr(String) public dbClusterIdentifier!: string | core.StringOut; @core.attr(String, { computed: true }) public region?: string | core.StringOut; @core.attr(String) public schema?: string | core.StringOut; } export interface RelationalDatabaseConfigArgs extends core.SchemaArgs { httpEndpointConfig?: HttpEndpointConfig; sourceType?: string | core.StringOut; } export class RelationalDatabaseConfig extends core.Schema { @core.attr(HttpEndpointConfig) public httpEndpointConfig?: HttpEndpointConfig; @core.attr(String) public sourceType?: string | core.StringOut; } export interface DatasourceArgs extends core.ResourceArgs { /** * (Required) The API ID for the GraphQL API for the data source. */ apiId: string | core.StringOut; /** * (Optional) A description of the data source. */ description?: string | core.StringOut; /** * (Optional) DynamoDB settings. See [below](#dynamodb_config) */ dynamodbConfig?: DynamodbConfig; /** * (Optional) Amazon Elasticsearch settings. See [below](#elasticsearch_config) */ elasticsearchConfig?: ElasticsearchConfig; /** * (Optional) HTTP settings. See [below](#http_config) */ httpConfig?: HttpConfig; /** * (Optional) AWS Lambda settings. See [below](#lambda_config) */ lambdaConfig?: LambdaConfig; /** * (Required) A user-supplied name for the data source. */ name: string | core.StringOut; relationalDatabaseConfig?: RelationalDatabaseConfig; /** * (Optional) The IAM service role ARN for the data source. */ serviceRoleArn?: string | core.StringOut; /** * (Required) The type of the Data Source. Valid values: `AWS_LAMBDA`, `AMAZON_DYNAMODB`, `AMAZON_ELAST * ICSEARCH`, `HTTP`, `NONE`, `RELATIONAL_DATABASE`. */ type: string | core.StringOut; } export class Datasource extends core.Resource { /** * (Required) The API ID for the GraphQL API for the data source. */ @core.attr(String) public apiId!: string | core.StringOut; /** * The ARN */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) A description of the data source. */ @core.attr(String) public description?: string | core.StringOut; /** * (Optional) DynamoDB settings. See [below](#dynamodb_config) */ @core.attr(DynamodbConfig) public dynamodbConfig?: DynamodbConfig; /** * (Optional) Amazon Elasticsearch settings. See [below](#elasticsearch_config) */ @core.attr(ElasticsearchConfig) public elasticsearchConfig?: ElasticsearchConfig; /** * (Optional) HTTP settings. See [below](#http_config) */ @core.attr(HttpConfig) public httpConfig?: HttpConfig; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) AWS Lambda settings. See [below](#lambda_config) */ @core.attr(LambdaConfig) public lambdaConfig?: LambdaConfig; /** * (Required) A user-supplied name for the data source. */ @core.attr(String) public name!: string | core.StringOut; @core.attr(RelationalDatabaseConfig) public relationalDatabaseConfig?: RelationalDatabaseConfig; /** * (Optional) The IAM service role ARN for the data source. */ @core.attr(String) public serviceRoleArn?: string | core.StringOut; /** * (Required) The type of the Data Source. Valid values: `AWS_LAMBDA`, `AMAZON_DYNAMODB`, `AMAZON_ELAST * ICSEARCH`, `HTTP`, `NONE`, `RELATIONAL_DATABASE`. */ @core.attr(String) public type!: string | core.StringOut; constructor(name: string, args?: DatasourceArgs) { super(name, "aws_appsync_datasource", args); } public override getNamespace(): string { return "aws_appsync"; } }