Class AgentDataSource


  • public class AgentDataSource
    extends com.pulumi.resources.CustomResource
    Manages an AWS Agents for Amazon Bedrock Data Source. ## Example Usage ### Basic Usage
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.bedrock.AgentDataSource;
     import com.pulumi.aws.bedrock.AgentDataSourceArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceDataSourceConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceDataSourceConfigurationS3ConfigurationArgs;
     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 example = new AgentDataSource("example", AgentDataSourceArgs.builder()
                 .dataSourceConfiguration(AgentDataSourceDataSourceConfigurationArgs.builder()
                     .s3Configuration(AgentDataSourceDataSourceConfigurationS3ConfigurationArgs.builder()
                         .bucketArn("arn:aws:s3:::example-bucket")
                         .build())
                     .type("S3")
                     .build())
                 .knowledgeBaseId("EMDPPAYPZI")
                 .name("example")
                 .build());
     
         }
     }
     
     
    ### Managed Knowledge Base Connector - S3
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.bedrock.AgentDataSource;
     import com.pulumi.aws.bedrock.AgentDataSourceArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceDataSourceConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceDataSourceConfigurationManagedKnowledgeBaseConnectorConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceDataSourceConfigurationManagedKnowledgeBaseConnectorConfigurationMediaExtractionConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceDataSourceConfigurationManagedKnowledgeBaseConnectorConfigurationMediaExtractionConfigurationImageExtractionConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationParsingConfigurationArgs;
     import static com.pulumi.codegen.internal.Serialization.*;
     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 example = new AgentDataSource("example", AgentDataSourceArgs.builder()
                 .dataSourceConfiguration(AgentDataSourceDataSourceConfigurationArgs.builder()
                     .managedKnowledgeBaseConnectorConfiguration(AgentDataSourceDataSourceConfigurationManagedKnowledgeBaseConnectorConfigurationArgs.builder()
                         .mediaExtractionConfiguration(AgentDataSourceDataSourceConfigurationManagedKnowledgeBaseConnectorConfigurationMediaExtractionConfigurationArgs.builder()
                             .imageExtractionConfiguration(AgentDataSourceDataSourceConfigurationManagedKnowledgeBaseConnectorConfigurationMediaExtractionConfigurationImageExtractionConfigurationArgs.builder()
                                 .imageExtractionStatus("ENABLED")
                                 .build())
                             .build())
                         .connectorParameters(serializeJson(
                             jsonObject(
                                 jsonProperty("type", "S3"),
                                 jsonProperty("version", "1"),
                                 jsonProperty("connectionConfiguration", jsonObject(
                                     jsonProperty("bucketName", "my-documents-bucket"),
                                     jsonProperty("bucketOwnerAccountId", "123456789012")
                                 )),
                                 jsonProperty("aclEnabled", false),
                                 jsonProperty("filterConfiguration", jsonObject(
                                     jsonProperty("maxFileSizeInMegaBytes", "500")
                                 ))
                             )))
                         .build())
                     .type("MANAGED_KNOWLEDGE_BASE_CONNECTOR")
                     .build())
                 .vectorIngestionConfiguration(AgentDataSourceVectorIngestionConfigurationArgs.builder()
                     .parsingConfiguration(AgentDataSourceVectorIngestionConfigurationParsingConfigurationArgs.builder()
                         .parsingStrategy("SMART_PARSING")
                         .build())
                     .build())
                 .knowledgeBaseId(exampleAwsBedrockagentKnowledgeBase.id())
                 .name("example-s3-managed")
                 .build());
     
         }
     }
     
     
    ### Managed Knowledge Base Connector - SharePoint
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.bedrock.AgentDataSource;
     import com.pulumi.aws.bedrock.AgentDataSourceArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceDataSourceConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceDataSourceConfigurationManagedKnowledgeBaseConnectorConfigurationArgs;
     import static com.pulumi.codegen.internal.Serialization.*;
     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 sharepoint = new AgentDataSource("sharepoint", AgentDataSourceArgs.builder()
                 .dataSourceConfiguration(AgentDataSourceDataSourceConfigurationArgs.builder()
                     .managedKnowledgeBaseConnectorConfiguration(AgentDataSourceDataSourceConfigurationManagedKnowledgeBaseConnectorConfigurationArgs.builder()
                         .connectorParameters(serializeJson(
                             jsonObject(
                                 jsonProperty("type", "SHAREPOINT"),
                                 jsonProperty("version", "1"),
                                 jsonProperty("connectionConfiguration", jsonObject(
                                     jsonProperty("tenantId", "your-entra-tenant-id"),
                                     jsonProperty("authType", "ENTRA_ID_APP_ONLY"),
                                     jsonProperty("secretArn", "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-sharepoint-secret"),
                                     jsonProperty("certificateS3Path", jsonObject(
                                         jsonProperty("s3BucketName", "my-certs-bucket"),
                                         jsonProperty("s3KeyName", "certs/sharepoint-cert.crt")
                                     ))
                                 )),
                                 jsonProperty("dataEntityConfiguration", jsonObject(
                                     jsonProperty("type", "DOCUMENT"),
                                     jsonProperty("crawlFiles", "true"),
                                     jsonProperty("crawlPages", "true"),
                                     jsonProperty("siteUrls", jsonArray("https://company.sharepoint.com/sites/MySite"))
                                 ))
                             )))
                         .build())
                     .type("MANAGED_KNOWLEDGE_BASE_CONNECTOR")
                     .build())
                 .knowledgeBaseId(example.id())
                 .name("example-sharepoint")
                 .build());
     
         }
     }
     
     
    ### Multimodal Parsing
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.bedrock.AgentDataSource;
     import com.pulumi.aws.bedrock.AgentDataSourceArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceDataSourceConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceDataSourceConfigurationS3ConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationChunkingConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationChunkingConfigurationFixedSizeChunkingConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationParsingConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationParsingConfigurationBedrockFoundationModelConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationParsingConfigurationBedrockFoundationModelConfigurationParsingPromptArgs;
     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 example = new AgentDataSource("example", AgentDataSourceArgs.builder()
                 .dataSourceConfiguration(AgentDataSourceDataSourceConfigurationArgs.builder()
                     .s3Configuration(AgentDataSourceDataSourceConfigurationS3ConfigurationArgs.builder()
                         .bucketArn(exampleAwsS3Bucket.arn())
                         .build())
                     .type("S3")
                     .build())
                 .vectorIngestionConfiguration(AgentDataSourceVectorIngestionConfigurationArgs.builder()
                     .chunkingConfiguration(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationArgs.builder()
                         .fixedSizeChunkingConfiguration(AgentDataSourceVectorIngestionConfigurationChunkingConfigurationFixedSizeChunkingConfigurationArgs.builder()
                             .maxTokens(512)
                             .overlapPercentage(20)
                             .build())
                         .chunkingStrategy("FIXED_SIZE")
                         .build())
                     .parsingConfiguration(AgentDataSourceVectorIngestionConfigurationParsingConfigurationArgs.builder()
                         .bedrockFoundationModelConfiguration(AgentDataSourceVectorIngestionConfigurationParsingConfigurationBedrockFoundationModelConfigurationArgs.builder()
                             .parsingPrompt(AgentDataSourceVectorIngestionConfigurationParsingConfigurationBedrockFoundationModelConfigurationParsingPromptArgs.builder()
                                 .parsingPromptString("Extract and transcribe all text and visual content from the document.")
                                 .build())
                             .modelArn("arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0")
                             .parsingModality("MULTIMODAL")
                             .build())
                         .parsingStrategy("BEDROCK_FOUNDATION_MODEL")
                         .build())
                     .build())
                 .knowledgeBaseId(exampleAwsBedrockagentKnowledgeBase.id())
                 .name("multimodal-example")
                 .build());
     
         }
     }
     
     
    ### GraphRAG with Neptune Analytics Knowledge bases that use `NEPTUNE_ANALYTICS` storage require every associated data source to set `contextEnrichmentConfiguration`. The graph construction model must be one that GraphRAG currently supports, and the supported models are reachable only through a cross-Region [inference profile](https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html). Passing a plain foundation model ARN fails with `ValidationException: Invalid graph bedrock foundation model provided`. The knowledge base service role needs: * `bedrock:GetInferenceProfile` on `*`. Scoping this to the profile ARN is not honored, and creation fails with `Not authorized to call GetInferenceProfile` even when the granted ARN matches the one in the error. * `bedrock:InvokeModel` on the inference profile ARN. * `bedrock:InvokeModel` on the underlying foundation model in every Region the profile routes to, which `aws bedrock get-inference-profile` reports as `models[].modelArn`.
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.bedrock.AgentKnowledgeBase;
     import com.pulumi.aws.bedrock.AgentKnowledgeBaseArgs;
     import com.pulumi.aws.bedrock.inputs.AgentKnowledgeBaseKnowledgeBaseConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentKnowledgeBaseKnowledgeBaseConfigurationVectorKnowledgeBaseConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentKnowledgeBaseStorageConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentKnowledgeBaseStorageConfigurationNeptuneAnalyticsConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentKnowledgeBaseStorageConfigurationNeptuneAnalyticsConfigurationFieldMappingArgs;
     import com.pulumi.aws.bedrock.AgentDataSource;
     import com.pulumi.aws.bedrock.AgentDataSourceArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceDataSourceConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceDataSourceConfigurationS3ConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationContextEnrichmentConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationContextEnrichmentConfigurationBedrockFoundationModelConfigurationArgs;
     import com.pulumi.aws.bedrock.inputs.AgentDataSourceVectorIngestionConfigurationContextEnrichmentConfigurationBedrockFoundationModelConfigurationEnrichmentStrategyConfigurationArgs;
     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 example = new AgentKnowledgeBase("example", AgentKnowledgeBaseArgs.builder()
                 .knowledgeBaseConfiguration(AgentKnowledgeBaseKnowledgeBaseConfigurationArgs.builder()
                     .vectorKnowledgeBaseConfiguration(AgentKnowledgeBaseKnowledgeBaseConfigurationVectorKnowledgeBaseConfigurationArgs.builder()
                         .embeddingModelArn("arn:aws:bedrock:us-east-1::foundation-model/cohere.embed-english-v3")
                         .build())
                     .type("VECTOR")
                     .build())
                 .storageConfiguration(AgentKnowledgeBaseStorageConfigurationArgs.builder()
                     .neptuneAnalyticsConfiguration(AgentKnowledgeBaseStorageConfigurationNeptuneAnalyticsConfigurationArgs.builder()
                         .fieldMapping(AgentKnowledgeBaseStorageConfigurationNeptuneAnalyticsConfigurationFieldMappingArgs.builder()
                             .metadataField("metadata")
                             .textField("text")
                             .build())
                         .graphArn(exampleAwsNeptunegraphGraph.arn())
                         .build())
                     .type("NEPTUNE_ANALYTICS")
                     .build())
                 .name("graphrag-example")
                 .roleArn(exampleAwsIamRole.arn())
                 .build());
     
             var exampleAgentDataSource = new AgentDataSource("exampleAgentDataSource", AgentDataSourceArgs.builder()
                 .dataSourceConfiguration(AgentDataSourceDataSourceConfigurationArgs.builder()
                     .s3Configuration(AgentDataSourceDataSourceConfigurationS3ConfigurationArgs.builder()
                         .bucketArn(exampleAwsS3Bucket.arn())
                         .build())
                     .type("S3")
                     .build())
                 .vectorIngestionConfiguration(AgentDataSourceVectorIngestionConfigurationArgs.builder()
                     .contextEnrichmentConfiguration(AgentDataSourceVectorIngestionConfigurationContextEnrichmentConfigurationArgs.builder()
                         .bedrockFoundationModelConfiguration(AgentDataSourceVectorIngestionConfigurationContextEnrichmentConfigurationBedrockFoundationModelConfigurationArgs.builder()
                             .enrichmentStrategyConfiguration(AgentDataSourceVectorIngestionConfigurationContextEnrichmentConfigurationBedrockFoundationModelConfigurationEnrichmentStrategyConfigurationArgs.builder()
                                 .method("CHUNK_ENTITY_EXTRACTION")
                                 .build())
                             .modelArn(String.format("arn:aws:bedrock:us-east-1:%s:inference-profile/us.anthropic.claude-haiku-4-5-20251001-v1:0", current.accountId()))
                             .build())
                         .type("BEDROCK_FOUNDATION_MODEL")
                         .build())
                     .build())
                 .knowledgeBaseId(example.id())
                 .name("graphrag-example")
                 .build());
     
         }
     }
     
     
    ## Import Using `pulumi import`, import Agents for Amazon Bedrock Data Source using the data source ID and the knowledge base ID. For example: ```sh $ pulumi import aws:bedrock/agentDataSource:AgentDataSource example GWCMFMQF6T,EMDPPAYPZI ```
    • Constructor Detail

      • AgentDataSource

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

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

        public AgentDataSource​(java.lang.String name,
                               AgentDataSourceArgs 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

      • dataDeletionPolicy

        public com.pulumi.core.Output<java.lang.String> dataDeletionPolicy()
        Returns:
        Data deletion policy for a data source. Valid values: `RETAIN`, `DELETE`.
      • dataSourceConfiguration

        public com.pulumi.core.Output<AgentDataSourceDataSourceConfiguration> dataSourceConfiguration()
        Returns:
        Details about how the data source is stored. See `dataSourceConfiguration` Block for details.
      • dataSourceId

        public com.pulumi.core.Output<java.lang.String> dataSourceId()
        Returns:
        Unique identifier of the data source.
      • description

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

        public com.pulumi.core.Output<java.lang.String> knowledgeBaseId()
        Returns:
        Unique identifier of the knowledge base to which the data source belongs.
      • name

        public com.pulumi.core.Output<java.lang.String> name()
        Returns:
        Name of the data source. The following arguments are optional:
      • 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.
      • serverSideEncryptionConfiguration

        public com.pulumi.core.Output<java.util.Optional<AgentDataSourceServerSideEncryptionConfiguration>> serverSideEncryptionConfiguration()
        Returns:
        Details about the configuration of the server-side encryption. See `serverSideEncryptionConfiguration` Block for details.
      • vectorIngestionConfiguration

        public com.pulumi.core.Output<java.util.Optional<AgentDataSourceVectorIngestionConfiguration>> vectorIngestionConfiguration()
        Returns:
        Details about how to ingest the documents in the data source. See `vectorIngestionConfiguration` Block for details.
      • get

        public static AgentDataSource get​(java.lang.String name,
                                          com.pulumi.core.Output<java.lang.String> id,
                                          @Nullable
                                          AgentDataSourceState 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.