Class DataSource


  • public class DataSource
    extends com.pulumi.resources.CustomResource
    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.inputs.GetPolicyDocumentStatementArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
     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.ArrayList;
     import java.util.Arrays;
     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()
                 .attributes(TableAttributeArgs.builder()
                     .name("UserId")
                     .type("S")
                     .build())
                 .name("example")
                 .readCapacity(1)
                 .writeCapacity(1)
                 .hashKey("UserId")
                 .build());
     
             final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(GetPolicyDocumentStatementArgs.builder()
                     .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                         .type("Service")
                         .identifiers("appsync.amazonaws.com")
                         .build())
                     .effect("Allow")
                     .actions("sts:AssumeRole")
                     .build())
                 .build());
     
             var exampleRole = new Role("exampleRole", RoleArgs.builder()
                 .name("example")
                 .assumeRolePolicy(assumeRole.json())
                 .build());
     
             final var example = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(GetPolicyDocumentStatementArgs.builder()
                     .effect("Allow")
                     .actions("dynamodb:*")
                     .resources(exampleTable.arn())
                     .build())
                 .build());
     
             var exampleRolePolicy = new RolePolicy("exampleRolePolicy", RolePolicyArgs.builder()
                 .name("example")
                 .role(exampleRole.id())
                 .policy(example.applyValue(_example -> _example.json()))
                 .build());
     
             var exampleGraphQLApi = new GraphQLApi("exampleGraphQLApi", GraphQLApiArgs.builder()
                 .authenticationType("API_KEY")
                 .name("my_appsync_example")
                 .build());
     
             var exampleDataSource = new DataSource("exampleDataSource", DataSourceArgs.builder()
                 .dynamodbConfig(DataSourceDynamodbConfigArgs.builder()
                     .tableName(exampleTable.name())
                     .build())
                 .apiId(exampleGraphQLApi.id())
                 .name("my_appsync_example")
                 .serviceRoleArn(exampleRole.arn())
                 .type("AMAZON_DYNAMODB")
                 .build());
     
         }
     }
     
     
    ## Import Using `pulumi import`, import `aws.appsync.DataSource` using the `apiId`, a hyphen, and `name`. For example: ```sh $ pulumi import aws:appsync/dataSource:DataSource example abcdef123456-example ```
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • Constructor Detail

      • DataSource

        public DataSource​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • DataSource

        public DataSource​(java.lang.String name,
                          DataSourceArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • DataSource

        public DataSource​(java.lang.String name,
                          DataSourceArgs args,
                          @Nullable
                          com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • apiId

        public com.pulumi.core.Output<java.lang.String> apiId()
        Returns:
        API ID for the GraphQL API for the data source.
      • arn

        public com.pulumi.core.Output<java.lang.String> arn()
        Returns:
        ARN
      • description

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()
        Returns:
        Description of the data source.
      • dynamodbConfig

        public com.pulumi.core.Output<java.util.Optional<DataSourceDynamodbConfig>> dynamodbConfig()
        Returns:
        DynamoDB settings. See `dynamodbConfig` Block for details.
      • elasticsearchConfig

        public com.pulumi.core.Output<java.util.Optional<DataSourceElasticsearchConfig>> elasticsearchConfig()
        Returns:
        Amazon Elasticsearch settings. See `elasticsearchConfig` Block for details.
      • eventBridgeConfig

        public com.pulumi.core.Output<java.util.Optional<DataSourceEventBridgeConfig>> eventBridgeConfig()
        Returns:
        AWS EventBridge settings. See `eventBridgeConfig` Block for details.
      • httpConfig

        public com.pulumi.core.Output<java.util.Optional<DataSourceHttpConfig>> httpConfig()
        Returns:
        HTTP settings. See `httpConfig` Block for details.
      • lambdaConfig

        public com.pulumi.core.Output<java.util.Optional<DataSourceLambdaConfig>> lambdaConfig()
        Returns:
        AWS Lambda settings. See `lambdaConfig` Block for details.
      • name

        public com.pulumi.core.Output<java.lang.String> name()
        Returns:
        User-supplied name for the data source.
      • opensearchserviceConfig

        public com.pulumi.core.Output<java.util.Optional<DataSourceOpensearchserviceConfig>> opensearchserviceConfig()
        Returns:
        Amazon OpenSearch Service settings. See `opensearchserviceConfig` Block for details.
      • region

        public com.pulumi.core.Output<java.lang.String> region()
        Returns:
        Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
      • relationalDatabaseConfig

        public com.pulumi.core.Output<java.util.Optional<DataSourceRelationalDatabaseConfig>> relationalDatabaseConfig()
        Returns:
        AWS RDS settings. See `relationalDatabaseConfig` Block for details.
      • serviceRoleArn

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> serviceRoleArn()
        Returns:
        IAM service role ARN for the data source. Required if `type` is specified as `AWS_LAMBDA`, `AMAZON_DYNAMODB`, `AMAZON_ELASTICSEARCH`, `AMAZON_EVENTBRIDGE`, or `AMAZON_OPENSEARCH_SERVICE`.
      • type

        public com.pulumi.core.Output<java.lang.String> type()
        Returns:
        Type of the Data Source. Valid values: `AWS_LAMBDA`, `AMAZON_DYNAMODB`, `AMAZON_ELASTICSEARCH`, `HTTP`, `NONE`, `RELATIONAL_DATABASE`, `AMAZON_EVENTBRIDGE`, `AMAZON_OPENSEARCH_SERVICE`.
      • get

        public static DataSource get​(java.lang.String name,
                                     com.pulumi.core.Output<java.lang.String> id,
                                     @Nullable
                                     DataSourceState state,
                                     @Nullable
                                     com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        state -
        options - Optional settings to control the behavior of the CustomResource.