Package com.pulumi.aws.bedrock
Class AgentDataSource
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.bedrock.AgentDataSource
-
public class AgentDataSource extends com.pulumi.resources.CustomResourceManages an AWS Agents for Amazon Bedrock Data Source. ## Example Usage ### Basic Usage
### Managed Knowledge Base Connector - S3package 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 - SharePointpackage 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()); } }
### Multimodal Parsingpackage 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()); } }
### 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.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()); } }
## 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 ```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()); } }
-
-
Constructor Summary
Constructors Constructor Description AgentDataSource(java.lang.String name)AgentDataSource(java.lang.String name, AgentDataSourceArgs args)AgentDataSource(java.lang.String name, AgentDataSourceArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.lang.String>dataDeletionPolicy()com.pulumi.core.Output<AgentDataSourceDataSourceConfiguration>dataSourceConfiguration()com.pulumi.core.Output<java.lang.String>dataSourceId()com.pulumi.core.Output<java.util.Optional<java.lang.String>>description()static AgentDataSourceget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, AgentDataSourceState state, 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.com.pulumi.core.Output<java.lang.String>knowledgeBaseId()com.pulumi.core.Output<java.lang.String>name()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.util.Optional<AgentDataSourceServerSideEncryptionConfiguration>>serverSideEncryptionConfiguration()com.pulumi.core.Output<java.util.Optional<AgentDataSourceTimeouts>>timeouts()com.pulumi.core.Output<java.util.Optional<AgentDataSourceVectorIngestionConfiguration>>vectorIngestionConfiguration()
-
-
-
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.
-
timeouts
public com.pulumi.core.Output<java.util.Optional<AgentDataSourceTimeouts>> timeouts()
-
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.
-
-