Data Source Args
data class DataSourceArgs(val apiId: Output<String>? = null, val description: Output<String>? = null, val dynamodbConfig: Output<DataSourceDynamodbConfigArgs>? = null, val elasticsearchConfig: Output<DataSourceElasticsearchConfigArgs>? = null, val eventBridgeConfig: Output<DataSourceEventBridgeConfigArgs>? = null, val httpConfig: Output<DataSourceHttpConfigArgs>? = null, val lambdaConfig: Output<DataSourceLambdaConfigArgs>? = null, val name: Output<String>? = null, val opensearchserviceConfig: Output<DataSourceOpensearchserviceConfigArgs>? = null, val relationalDatabaseConfig: Output<DataSourceRelationalDatabaseConfigArgs>? = null, val serviceRoleArn: Output<String>? = null, val type: Output<String>? = null) : ConvertibleToJava<DataSourceArgs>
Provides an AppSync Data Source.
Example Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.dynamodb.Table;
import com.pulumi.aws.dynamodb.TableArgs;
import com.pulumi.aws.dynamodb.inputs.TableAttributeArgs;
import com.pulumi.aws.iam.IamFunctions;
import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
import com.pulumi.aws.iam.Role;
import com.pulumi.aws.iam.RoleArgs;
import com.pulumi.aws.iam.RolePolicy;
import com.pulumi.aws.iam.RolePolicyArgs;
import com.pulumi.aws.appsync.GraphQLApi;
import com.pulumi.aws.appsync.GraphQLApiArgs;
import com.pulumi.aws.appsync.DataSource;
import com.pulumi.aws.appsync.DataSourceArgs;
import com.pulumi.aws.appsync.inputs.DataSourceDynamodbConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var exampleTable = new Table("exampleTable", TableArgs.builder()
.readCapacity(1)
.writeCapacity(1)
.hashKey("UserId")
.attributes(TableAttributeArgs.builder()
.name("UserId")
.type("S")
.build())
.build());
final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
.statements(GetPolicyDocumentStatementArgs.builder()
.effect("Allow")
.principals(GetPolicyDocumentStatementPrincipalArgs.builder()
.type("Service")
.identifiers("appsync.amazonaws.com")
.build())
.actions("sts:AssumeRole")
.build())
.build());
var exampleRole = new Role("exampleRole", RoleArgs.builder()
.assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
.build());
final var examplePolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
.statements(GetPolicyDocumentStatementArgs.builder()
.effect("Allow")
.actions("dynamodb:*")
.resources(exampleTable.arn())
.build())
.build());
var exampleRolePolicy = new RolePolicy("exampleRolePolicy", RolePolicyArgs.builder()
.role(exampleRole.id())
.policy(examplePolicyDocument.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult).applyValue(examplePolicyDocument -> examplePolicyDocument.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json())))
.build());
var exampleGraphQLApi = new GraphQLApi("exampleGraphQLApi", GraphQLApiArgs.builder()
.authenticationType("API_KEY")
.build());
var exampleDataSource = new DataSource("exampleDataSource", DataSourceArgs.builder()
.apiId(exampleGraphQLApi.id())
.name("my_appsync_example")
.serviceRoleArn(exampleRole.arn())
.type("AMAZON_DYNAMODB")
.dynamodbConfig(DataSourceDynamodbConfigArgs.builder()
.tableName(exampleTable.name())
.build())
.build());
}
}
Content copied to clipboard
Import
aws_appsync_datasource
can be imported with their api_id
, a hyphen, and name
, e.g.,
$ pulumi import aws:appsync/dataSource:DataSource example abcdef123456-example
Content copied to clipboard
Constructors
Link copied to clipboard
fun DataSourceArgs(apiId: Output<String>? = null, description: Output<String>? = null, dynamodbConfig: Output<DataSourceDynamodbConfigArgs>? = null, elasticsearchConfig: Output<DataSourceElasticsearchConfigArgs>? = null, eventBridgeConfig: Output<DataSourceEventBridgeConfigArgs>? = null, httpConfig: Output<DataSourceHttpConfigArgs>? = null, lambdaConfig: Output<DataSourceLambdaConfigArgs>? = null, name: Output<String>? = null, opensearchserviceConfig: Output<DataSourceOpensearchserviceConfigArgs>? = null, relationalDatabaseConfig: Output<DataSourceRelationalDatabaseConfigArgs>? = null, serviceRoleArn: Output<String>? = null, type: Output<String>? = null)