bedrock

package
v0.1.315 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 11, 2026 License: Apache-2.0 Imports: 19 Imported by: 0

README

Amazon Bedrock Construct Library

---

All classes are under active development and subject to non-backward compatible changes or removal in any future version. These are not subject to the Semantic Versioning model. This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package.


Language Package
Typescript Logo TypeScript @cdklabs/generative-ai-cdk-constructs
Python Logo Python cdklabs.generative_ai_cdk_constructs
Java Logo Java io.github.cdklabs.generative_ai_cdk_constructs
.Net .Net CdkLabs.GenerativeAICdkConstructs
Go Go github.com/cdklabs/generative-ai-cdk-constructs-go/generativeaicdkconstructs

[!WARNING] Important: Amazon Bedrock L2 constructs are transitioning to the AWS CDK core repository. You can now find these constructs at: https://github.com/aws/aws-cdk/tree/main/packages/%40aws-cdk/aws-bedrock-alpha. Please migrate to the alpha package, as Bedrock L2 constructs in this repository are now deprecated and will no longer receive updates.

Amazon Bedrock is a fully managed service that offers a choice of high-performing foundation models (FMs) from leading AI companies and Amazon through a single API, along with a broad set of capabilities you need to build generative AI applications with security, privacy, and responsible AI.

This construct library facilitates the deployment of Amazon Bedrock resources through a higher level, L2 set of constructs. It leverages underlying CloudFormation L1 resources to provision these Bedrock features.

Table of contents

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AgentAliasBase_IsConstruct

func AgentAliasBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func AgentAliasBase_IsOwnedResource

func AgentAliasBase_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func AgentAliasBase_IsResource

func AgentAliasBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func AgentAlias_IsConstruct

func AgentAlias_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func AgentAlias_IsOwnedResource

func AgentAlias_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func AgentAlias_IsResource

func AgentAlias_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func AgentBase_IsConstruct

func AgentBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func AgentBase_IsOwnedResource

func AgentBase_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func AgentBase_IsResource

func AgentBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func Agent_IsConstruct

func Agent_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func Agent_IsOwnedResource

func Agent_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func Agent_IsResource

func Agent_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func ApplicationInferenceProfile_IsConstruct

func ApplicationInferenceProfile_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func ApplicationInferenceProfile_IsOwnedResource

func ApplicationInferenceProfile_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func ApplicationInferenceProfile_IsResource

func ApplicationInferenceProfile_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func ConfluenceDataSource_IsConstruct

func ConfluenceDataSource_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func ConfluenceDataSource_IsOwnedResource

func ConfluenceDataSource_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func ConfluenceDataSource_IsResource

func ConfluenceDataSource_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func CustomDataSource_IsConstruct

func CustomDataSource_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func CustomDataSource_IsOwnedResource

func CustomDataSource_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func CustomDataSource_IsResource

func CustomDataSource_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func DataSourceBase_IsConstruct

func DataSourceBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func DataSourceBase_IsOwnedResource

func DataSourceBase_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func DataSourceBase_IsResource

func DataSourceBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func DataSourceNew_IsConstruct

func DataSourceNew_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func DataSourceNew_IsOwnedResource

func DataSourceNew_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func DataSourceNew_IsResource

func DataSourceNew_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func DataSource_IsConstruct

func DataSource_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func DataSource_IsOwnedResource

func DataSource_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func DataSource_IsResource

func DataSource_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func GraphKnowledgeBaseBase_IsConstruct

func GraphKnowledgeBaseBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func GraphKnowledgeBaseBase_IsOwnedResource

func GraphKnowledgeBaseBase_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func GraphKnowledgeBaseBase_IsResource

func GraphKnowledgeBaseBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func GraphKnowledgeBase_IsConstruct

func GraphKnowledgeBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func GraphKnowledgeBase_IsOwnedResource

func GraphKnowledgeBase_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func GraphKnowledgeBase_IsResource

func GraphKnowledgeBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func GuardrailBase_IsConstruct

func GuardrailBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func GuardrailBase_IsOwnedResource

func GuardrailBase_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func GuardrailBase_IsResource

func GuardrailBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func GuardrailBase_MetricAll

func GuardrailBase_MetricAll(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric

Return the given named metric for all guardrails.

By default, the metric will be calculated as a sum over a period of 5 minutes. You can customize this by using the `statistic` and `period` properties. Experimental.

func GuardrailBase_MetricAllInvocationLatency

func GuardrailBase_MetricAllInvocationLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric

Return the invocation latency metric for all guardrails. Experimental.

func GuardrailBase_MetricAllInvocations

func GuardrailBase_MetricAllInvocations(props *awscloudwatch.MetricOptions) awscloudwatch.Metric

Return the invocations metric for all guardrails. Experimental.

func GuardrailBase_MetricAllInvocationsIntervened

func GuardrailBase_MetricAllInvocationsIntervened(props *awscloudwatch.MetricOptions) awscloudwatch.Metric

Return the invocations intervened metric for all guardrails. Experimental.

func GuardrailBase_MetricAllTextUnitCount

func GuardrailBase_MetricAllTextUnitCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric

Return the text unit count metric for all guardrails. Experimental.

func Guardrail_IsConstruct

func Guardrail_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func Guardrail_IsOwnedResource

func Guardrail_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func Guardrail_IsResource

func Guardrail_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func Guardrail_MetricAll

func Guardrail_MetricAll(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric

Return the given named metric for all guardrails.

By default, the metric will be calculated as a sum over a period of 5 minutes. You can customize this by using the `statistic` and `period` properties. Experimental.

func Guardrail_MetricAllInvocationLatency

func Guardrail_MetricAllInvocationLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric

Return the invocation latency metric for all guardrails. Experimental.

func Guardrail_MetricAllInvocations

func Guardrail_MetricAllInvocations(props *awscloudwatch.MetricOptions) awscloudwatch.Metric

Return the invocations metric for all guardrails. Experimental.

func Guardrail_MetricAllInvocationsIntervened

func Guardrail_MetricAllInvocationsIntervened(props *awscloudwatch.MetricOptions) awscloudwatch.Metric

Return the invocations intervened metric for all guardrails. Experimental.

func Guardrail_MetricAllTextUnitCount

func Guardrail_MetricAllTextUnitCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric

Return the text unit count metric for all guardrails. Experimental.

func InferenceProfileBase_IsConstruct

func InferenceProfileBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func InferenceProfileBase_IsOwnedResource

func InferenceProfileBase_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func InferenceProfileBase_IsResource

func InferenceProfileBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func KendraKnowledgeBaseBase_IsConstruct

func KendraKnowledgeBaseBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func KendraKnowledgeBaseBase_IsOwnedResource

func KendraKnowledgeBaseBase_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func KendraKnowledgeBaseBase_IsResource

func KendraKnowledgeBaseBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func KendraKnowledgeBase_IsConstruct

func KendraKnowledgeBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func KendraKnowledgeBase_IsOwnedResource

func KendraKnowledgeBase_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func KendraKnowledgeBase_IsResource

func KendraKnowledgeBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func KnowledgeBaseBase_IsConstruct

func KnowledgeBaseBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func KnowledgeBaseBase_IsOwnedResource

func KnowledgeBaseBase_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func KnowledgeBaseBase_IsResource

func KnowledgeBaseBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func Memory_SessionSummary

Creates a session summary memory with custom configuration.

Returns: Memory configuration object. Experimental.

func NewAgentActionGroup_Override

func NewAgentActionGroup_Override(a AgentActionGroup, props *AgentActionGroupProps)

Experimental.

func NewAgentAliasBase_Override

func NewAgentAliasBase_Override(a AgentAliasBase, scope constructs.Construct, id *string, props *awscdk.ResourceProps)

Experimental.

func NewAgentAlias_Override

func NewAgentAlias_Override(a AgentAlias, scope constructs.Construct, id *string, props *AgentAliasProps)

Experimental.

func NewAgentBase_Override

func NewAgentBase_Override(a AgentBase, scope constructs.Construct, id *string, props *awscdk.ResourceProps)

Experimental.

func NewAgentCollaborator_Override

func NewAgentCollaborator_Override(a AgentCollaborator, props *AgentCollaboratorProps)

Experimental.

func NewAgent_Override

func NewAgent_Override(a Agent, scope constructs.Construct, id *string, props *AgentProps)

Experimental.

func NewApiSchema_Override

func NewApiSchema_Override(a ApiSchema, s3File *awss3.Location, inlineSchema *string)

Constructor accessible only to extending classes. Experimental.

func NewApplicationInferenceProfile_Override

func NewApplicationInferenceProfile_Override(a ApplicationInferenceProfile, scope constructs.Construct, id *string, props *ApplicationInferenceProfileProps)

Experimental.

func NewBedrockFoundationModel_Override

func NewBedrockFoundationModel_Override(b BedrockFoundationModel, value *string, props *BedrockFoundationModelProps)

Experimental.

func NewChatMessage_Override

func NewChatMessage_Override(c ChatMessage, role ChatMessageRole, text *string)

Experimental.

func NewConfluenceDataSource_Override

func NewConfluenceDataSource_Override(c ConfluenceDataSource, scope constructs.Construct, id *string, props *ConfluenceDataSourceProps)

Experimental.

func NewContextEnrichment_Override

func NewContextEnrichment_Override(c ContextEnrichment)

Experimental.

func NewCustomDataSource_Override

func NewCustomDataSource_Override(c CustomDataSource, scope constructs.Construct, id *string, props *CustomDataSourceProps)

Experimental.

func NewCustomTransformation_Override

func NewCustomTransformation_Override(c CustomTransformation)

Experimental.

func NewDataSourceBase_Override

func NewDataSourceBase_Override(d DataSourceBase, scope constructs.Construct, id *string, props *awscdk.ResourceProps)

Experimental.

func NewDataSourceNew_Override

func NewDataSourceNew_Override(d DataSourceNew, scope constructs.Construct, id *string, props *awscdk.ResourceProps)

Experimental.

func NewGraphKnowledgeBaseBase_Override

func NewGraphKnowledgeBaseBase_Override(g GraphKnowledgeBaseBase, scope constructs.Construct, id *string)

Experimental.

func NewGraphKnowledgeBase_Override

func NewGraphKnowledgeBase_Override(g GraphKnowledgeBase, scope constructs.Construct, id *string, props *GraphKnowledgeBaseProps)

Experimental.

func NewGuardrailBase_Override

func NewGuardrailBase_Override(g GuardrailBase, scope constructs.Construct, id *string, props *awscdk.ResourceProps)

Experimental.

func NewGuardrail_Override

func NewGuardrail_Override(g Guardrail, scope constructs.Construct, id *string, props *GuardrailProps)

Experimental.

func NewInferenceProfileBase_Override

func NewInferenceProfileBase_Override(i InferenceProfileBase, scope constructs.Construct, id *string, props *awscdk.ResourceProps)

Experimental.

func NewInlineApiSchema_Override

func NewInlineApiSchema_Override(i InlineApiSchema, schema *string)

Experimental.

func NewKendraKnowledgeBaseBase_Override

func NewKendraKnowledgeBaseBase_Override(k KendraKnowledgeBaseBase, scope constructs.Construct, id *string)

Experimental.

func NewKendraKnowledgeBase_Override

func NewKendraKnowledgeBase_Override(k KendraKnowledgeBase, scope constructs.Construct, id *string, props *KendraKnowledgeBaseProps)

Experimental.

func NewKnowledgeBaseBase_Override

func NewKnowledgeBaseBase_Override(k KnowledgeBaseBase, scope constructs.Construct, id *string)

Experimental.

func NewMemory_Override

func NewMemory_Override(m Memory)

Experimental.

func NewParentActionGroupSignature_Override

func NewParentActionGroupSignature_Override(p ParentActionGroupSignature, value *string)

Constructor should be used as a temporary solution when a new signature is supported but its implementation in CDK hasn't been added yet. Experimental.

func NewParsingStrategy_Override

func NewParsingStrategy_Override(p ParsingStrategy)

Experimental.

func NewPromptBase_Override

func NewPromptBase_Override(p PromptBase, scope constructs.Construct, id *string, props *awscdk.ResourceProps)

Experimental.

func NewPromptRouter_Override

func NewPromptRouter_Override(p PromptRouter, props *PromptRouterProps, region *string)

Experimental.

func NewPromptVariant_Override

func NewPromptVariant_Override(p PromptVariant)

Experimental.

func NewPromptVersion_Override

func NewPromptVersion_Override(p PromptVersion, scope constructs.Construct, id *string, props *PromptVersionProps)

Experimental.

func NewPrompt_Override

func NewPrompt_Override(p Prompt, scope constructs.Construct, id *string, props *PromptProps)

Experimental.

func NewS3ApiSchema_Override

func NewS3ApiSchema_Override(s S3ApiSchema, location *awss3.Location)

Experimental.

func NewS3DataSource_Override

func NewS3DataSource_Override(s S3DataSource, scope constructs.Construct, id *string, props *S3DataSourceProps)

Experimental.

func NewSalesforceDataSource_Override

func NewSalesforceDataSource_Override(s SalesforceDataSource, scope constructs.Construct, id *string, props *SalesforceDataSourceProps)

Experimental.

func NewSharePointDataSource_Override

func NewSharePointDataSource_Override(s SharePointDataSource, scope constructs.Construct, id *string, props *SharePointDataSourceProps)

Experimental.

func NewSupplementalDataStorageLocation_Override

func NewSupplementalDataStorageLocation_Override(s SupplementalDataStorageLocation, type_ SupplementalDataStorageLocationType, locationConfig *SupplementalDataStorageS3Config)

Creates a new SupplementalDataStorageLocation. Experimental.

func NewToolChoice_Override

func NewToolChoice_Override(t ToolChoice, any interface{}, auto interface{}, tool *string)

Experimental.

func NewTopic_Override

func NewTopic_Override(t Topic, props *CustomTopicProps)

Experimental.

func NewVectorKnowledgeBaseBase_Override

func NewVectorKnowledgeBaseBase_Override(v VectorKnowledgeBaseBase, scope constructs.Construct, id *string)

Experimental.

func NewVectorKnowledgeBase_Override

func NewVectorKnowledgeBase_Override(v VectorKnowledgeBase, scope constructs.Construct, id *string, props *VectorKnowledgeBaseProps)

Experimental.

func NewWebCrawlerDataSource_Override

func NewWebCrawlerDataSource_Override(w WebCrawlerDataSource, scope constructs.Construct, id *string, props *WebCrawlerDataSourceProps)

Experimental.

func PromptBase_IsConstruct

func PromptBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func PromptBase_IsOwnedResource

func PromptBase_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func PromptBase_IsResource

func PromptBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func PromptVersion_IsConstruct

func PromptVersion_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func Prompt_IsConstruct

func Prompt_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func S3DataSource_IsConstruct

func S3DataSource_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func S3DataSource_IsOwnedResource

func S3DataSource_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func S3DataSource_IsResource

func S3DataSource_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func SalesforceDataSource_IsConstruct

func SalesforceDataSource_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func SalesforceDataSource_IsOwnedResource

func SalesforceDataSource_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func SalesforceDataSource_IsResource

func SalesforceDataSource_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func SharePointDataSource_IsConstruct

func SharePointDataSource_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func SharePointDataSource_IsOwnedResource

func SharePointDataSource_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func SharePointDataSource_IsResource

func SharePointDataSource_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func VectorKnowledgeBaseBase_IsConstruct

func VectorKnowledgeBaseBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func VectorKnowledgeBaseBase_IsOwnedResource

func VectorKnowledgeBaseBase_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func VectorKnowledgeBaseBase_IsResource

func VectorKnowledgeBaseBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func VectorKnowledgeBase_IsConstruct

func VectorKnowledgeBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func VectorKnowledgeBase_IsOwnedResource

func VectorKnowledgeBase_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func VectorKnowledgeBase_IsResource

func VectorKnowledgeBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func WebCrawlerDataSource_IsConstruct

func WebCrawlerDataSource_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func WebCrawlerDataSource_IsOwnedResource

func WebCrawlerDataSource_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func WebCrawlerDataSource_IsResource

func WebCrawlerDataSource_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

Types

type ActionGroupExecutor

type ActionGroupExecutor interface {
	// Experimental.
	CustomControl() *string
	// Experimental.
	LambdaFunction() awslambda.IFunction
}

Defines how fulfillment of the action group is handled after the necessary information has been elicited from the user.

Valid executors are: - Lambda function - Return Control. See: https://docs.aws.amazon.com/bedrock/latest/userguide/action-handle.html

Experimental.

func ActionGroupExecutor_FromlambdaFunction

func ActionGroupExecutor_FromlambdaFunction(lambdaFunction awslambda.IFunction) ActionGroupExecutor

Defines an action group with a Lambda function containing the business logic. See: https://docs.aws.amazon.com/bedrock/latest/userguide/agents-lambda.html

Experimental.

func ActionGroupExecutor_RETURN_CONTROL

func ActionGroupExecutor_RETURN_CONTROL() ActionGroupExecutor

type Agent

type Agent interface {
	AgentBase
	// The action groups associated with the agent.
	// Experimental.
	ActionGroups() *[]AgentActionGroup
	// Experimental.
	SetActionGroups(val *[]AgentActionGroup)
	// The ARN of the agent.
	// Experimental.
	AgentArn() *string
	// Agent collaboration type.
	// Experimental.
	AgentCollaboration() AgentCollaboratorType
	// Agent collaborators.
	// Experimental.
	AgentCollaborators() *[]AgentCollaborator
	// The unique identifier for the agent.
	// Experimental.
	AgentId() *string
	// The version of the agent.
	// Experimental.
	AgentVersion() *string
	// Experimental.
	SetAgentVersion(val *string)
	// Whether the agent can generate, run, and troubleshoot code when trying to complete a task.
	// Experimental.
	CodeInterpreterEnabled() *bool
	// Custom orchestration configuration.
	// Experimental.
	CustomOrchestration() *CustomOrchestration
	// The description for the agent.
	// Experimental.
	Description() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// Whether the resource will be deleted even if it's in use.
	// Experimental.
	ForceDelete() *bool
	// The foundation model used for orchestration by the agent.
	// Experimental.
	FoundationModel() IInvokable
	// The guardrail associated with the agent.
	// Experimental.
	Guardrail() IGuardrail
	// Experimental.
	SetGuardrail(val IGuardrail)
	// How long sessions should be kept open for the agent.
	// Experimental.
	IdleSessionTTL() awscdk.Duration
	// The instruction used by the agent.
	//
	// This determines how the agent will perform his task.
	// Experimental.
	Instruction() *string
	// Optional KMS encryption key associated with this agent.
	// Experimental.
	KmsKey() awskms.IKey
	// The KnowledgeBases associated with the agent.
	// Experimental.
	KnowledgeBases() *[]IKnowledgeBase
	// Experimental.
	SetKnowledgeBases(val *[]IKnowledgeBase)
	// When this agent was last updated.
	// Experimental.
	LastUpdated() *string
	// The memory configuration for the agent.
	// Experimental.
	Memory() Memory
	// The name of the agent.
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// The type of orchestration for the agent.
	// Experimental.
	OrchestrationType() OrchestrationType
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// Overrides some prompt templates in different parts of an agent sequence configuration.
	// Default: - No overrides are provided.
	//
	// Experimental.
	PromptOverrideConfiguration() PromptOverrideConfiguration
	// The IAM role associated to the agent.
	// Experimental.
	Role() awsiam.IRole
	// Whether the agent will automatically update the DRAFT version of the agent after making changes to the agent.
	// Experimental.
	ShouldPrepareAgent() *bool
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// The default test alias for this agent.
	//
	// This corresponds to the test alias
	// (`TSTALIASID`) that points to the working (`DRAFT`) version.
	// Experimental.
	TestAlias() IAgentAlias
	// Whether the agent can prompt additional information from the user when it does not have enough information to respond to an utterance.
	// Experimental.
	UserInputEnabled() *bool
	// Add an action group to the agent.
	// Experimental.
	AddActionGroup(actionGroup AgentActionGroup)
	// Add multiple action groups to the agent.
	// Experimental.
	AddActionGroups(actionGroups ...AgentActionGroup)
	// Add an agent collaborator to the agent.
	// Experimental.
	AddAgentCollaborator(agentCollaborator AgentCollaborator)
	// Add guardrail to the agent.
	// Experimental.
	AddGuardrail(guardrail IGuardrail)
	// Add knowledge base to the agent.
	// Experimental.
	AddKnowledgeBase(knowledgeBase IKnowledgeBase)
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Class to create (or import) an Agent with CDK. Experimental.

func NewAgent

func NewAgent(scope constructs.Construct, id *string, props *AgentProps) Agent

Experimental.

type AgentActionGroup

type AgentActionGroup interface {
	// The api schema for this action group (if defined).
	// Experimental.
	ApiSchema() ApiSchema
	// A description of the action group.
	// Experimental.
	Description() *string
	// Whether this action group is available for the agent to invoke or not.
	// Experimental.
	Enabled() *bool
	// The action group executor for this action group (if defined).
	// Experimental.
	Executor() ActionGroupExecutor
	// Whether to delete the resource even if it's in use.
	// Experimental.
	ForceDelete() *bool
	// The function schema for this action group (if defined).
	// Experimental.
	FunctionSchema() *awsbedrock.CfnAgent_FunctionSchemaProperty
	// The name of the action group.
	// Experimental.
	Name() *string
	// The AWS Defined signature (if defined).
	// Experimental.
	ParentActionGroupSignature() ParentActionGroupSignature
}

**************************************************************************** DEF - Action Group Class ***************************************************************************. Experimental.

func AgentActionGroup_CodeInterpreter

func AgentActionGroup_CodeInterpreter(enabled *bool) AgentActionGroup

Defines an action group that allows your agent to request the user for additional information when trying to complete a task. Experimental.

func AgentActionGroup_UserInput

func AgentActionGroup_UserInput(enabled *bool) AgentActionGroup

Defines an action group that allows your agent to request the user for additional information when trying to complete a task. Experimental.

func NewAgentActionGroup

func NewAgentActionGroup(props *AgentActionGroupProps) AgentActionGroup

Experimental.

type AgentActionGroupProps

type AgentActionGroupProps struct {
	// The name of the action group.
	// Experimental.
	Name *string `field:"required" json:"name" yaml:"name"`
	// The API Schema.
	// Default: - No API Schema.
	//
	// Experimental.
	ApiSchema ApiSchema `field:"optional" json:"apiSchema" yaml:"apiSchema"`
	// A description of the action group.
	// Default: - No description.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Specifies whether the action group is available for the agent to invoke or not when sending an InvokeAgent request.
	// Default: true.
	//
	// Experimental.
	Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"`
	// The action group executor.
	// Default: - No executor.
	//
	// Experimental.
	Executor ActionGroupExecutor `field:"optional" json:"executor" yaml:"executor"`
	// Specifies whether to delete the resource even if it's in use.
	// Default: false.
	//
	// Experimental.
	ForceDelete *bool `field:"optional" json:"forceDelete" yaml:"forceDelete"`
	// Defines functions that each define parameters that the agent needs to invoke from the user.
	//
	// NO L2 yet as this doesn't make much sense IMHO.
	// Experimental.
	FunctionSchema *awsbedrock.CfnAgent_FunctionSchemaProperty `field:"optional" json:"functionSchema" yaml:"functionSchema"`
	// The AWS Defined signature for enabling certain capabilities in your agent.
	//
	// When this property is specified, you must leave the description, apiSchema,
	// and actionGroupExecutor fields blank for this action group.
	// Experimental.
	ParentActionGroupSignature ParentActionGroupSignature `field:"optional" json:"parentActionGroupSignature" yaml:"parentActionGroupSignature"`
}

**************************************************************************** PROPS - Action Group Class ***************************************************************************. Experimental.

type AgentAlias

type AgentAlias interface {
	AgentAliasBase
	// The underlying agent for this alias.
	// Experimental.
	Agent() IAgent
	// The ARN of the agent alias.
	// Experimental.
	AliasArn() *string
	// The unique identifier of the agent alias.
	// Experimental.
	AliasId() *string
	// Experimental.
	AliasName() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Grant the given principal identity permissions to perform actions on this agent alias.
	// Experimental.
	Grant(grantee awsiam.IGrantable, actions ...*string) awsiam.Grant
	// Grant the given identity permissions to get the agent alias.
	// Experimental.
	GrantGet(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to invoke the agent alias.
	// Experimental.
	GrantInvoke(grantee awsiam.IGrantable) awsiam.Grant
	// Define an EventBridge rule that triggers when something happens to this agent alias.
	//
	// Requires that there exists at least one CloudTrail Trail in your account
	// that captures the event. This method will not create the Trail.
	// Experimental.
	OnCloudTrailEvent(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Class to create an Agent Alias with CDK. Experimental.

func NewAgentAlias

func NewAgentAlias(scope constructs.Construct, id *string, props *AgentAliasProps) AgentAlias

Experimental.

type AgentAliasAttributes

type AgentAliasAttributes struct {
	// The underlying agent for this alias.
	// Experimental.
	Agent IAgent `field:"required" json:"agent" yaml:"agent"`
	// The agent version for this alias.
	// Experimental.
	AgentVersion *string `field:"required" json:"agentVersion" yaml:"agentVersion"`
	// The Id of the agent alias.
	// Experimental.
	AliasId *string `field:"required" json:"aliasId" yaml:"aliasId"`
	// The name of the agent alias.
	// Experimental.
	AliasName *string `field:"optional" json:"aliasName" yaml:"aliasName"`
}

Attributes needed to create an import. Experimental.

type AgentAliasBase

type AgentAliasBase interface {
	awscdk.Resource
	IAgentAlias
	// The underlying agent for this alias.
	// Experimental.
	Agent() IAgent
	// The ARN of the agent alias.
	// Experimental.
	AliasArn() *string
	// The unique identifier of the agent alias.
	// Experimental.
	AliasId() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Grant the given principal identity permissions to perform actions on this agent alias.
	// Experimental.
	Grant(grantee awsiam.IGrantable, actions ...*string) awsiam.Grant
	// Grant the given identity permissions to get the agent alias.
	// Experimental.
	GrantGet(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to invoke the agent alias.
	// Experimental.
	GrantInvoke(grantee awsiam.IGrantable) awsiam.Grant
	// Define an EventBridge rule that triggers when something happens to this agent alias.
	//
	// Requires that there exists at least one CloudTrail Trail in your account
	// that captures the event. This method will not create the Trail.
	// Experimental.
	OnCloudTrailEvent(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Abstract base class for an Agent.

Contains methods and attributes valid for Agents either created with CDK or imported. Experimental.

type AgentAliasProps

type AgentAliasProps struct {
	// The agent associated to this alias.
	// Experimental.
	Agent IAgent `field:"required" json:"agent" yaml:"agent"`
	// The version of the agent to associate with the agent alias.
	// Default: - Creates a new version of the agent.
	//
	// Experimental.
	AgentVersion *string `field:"optional" json:"agentVersion" yaml:"agentVersion"`
	// The name for the agent alias.
	// Default: - "latest-{hash}".
	//
	// Experimental.
	AliasName *string `field:"optional" json:"aliasName" yaml:"aliasName"`
	// Description for the agent alias.
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
}

Properties for creating a CDK-Managed Agent Alias. Experimental.

type AgentAttributes

type AgentAttributes struct {
	// The ARN of the agent.
	// Experimental.
	AgentArn *string `field:"required" json:"agentArn" yaml:"agentArn"`
	// The ARN of the IAM role associated to the agent.
	// Experimental.
	RoleArn *string `field:"required" json:"roleArn" yaml:"roleArn"`
	// The agent version.
	//
	// If no explicit versions have been created,
	// leave this  empty to use the DRAFT version. Otherwise, use the
	// version number (e.g. 1).
	// Experimental.
	AgentVersion *string `field:"optional" json:"agentVersion" yaml:"agentVersion"`
	// Optional KMS encryption key associated with this agent.
	// Experimental.
	KmsKeyArn *string `field:"optional" json:"kmsKeyArn" yaml:"kmsKeyArn"`
	// When this agent was last updated.
	// Experimental.
	LastUpdated *string `field:"optional" json:"lastUpdated" yaml:"lastUpdated"`
}

Attributes for specifying an imported Bedrock Agent. Experimental.

type AgentBase

type AgentBase interface {
	awscdk.Resource
	IAgent
	// The ARN of the agent.
	// Experimental.
	AgentArn() *string
	// The ID of the Agent.
	// Experimental.
	AgentId() *string
	// Experimental.
	AgentVersion() *string
	// Experimental.
	SetAgentVersion(val *string)
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// Optional KMS encryption key associated with this agent.
	// Experimental.
	KmsKey() awskms.IKey
	// When this agent was last updated.
	// Experimental.
	LastUpdated() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The IAM role associated to the agent.
	// Experimental.
	Role() awsiam.IRole
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Abstract base class for an Agent.

Contains methods and attributes valid for Agents either created with CDK or imported. Experimental.

type AgentCollaborator

type AgentCollaborator interface {
	// Experimental.
	AgentAlias() IAgentAlias
	// Instructions on how this agent should collaborate with the main agent.
	// Experimental.
	CollaborationInstruction() *string
	// A friendly name for the collaborator.
	// Experimental.
	CollaboratorName() *string
	// Whether to relay conversation history to this collaborator.
	// Default: - undefined (uses service default).
	//
	// Experimental.
	RelayConversationHistory() *bool
	// Grants the specified principal permissions to get the agent alias and invoke the agent from this collaborator.
	//
	// Returns: The Grant object.
	// Experimental.
	Grant(grantee awsiam.IGrantable) awsiam.Grant
}

**************************************************************************** DEF - Agent Collaborator Class ***************************************************************************. Experimental.

func NewAgentCollaborator

func NewAgentCollaborator(props *AgentCollaboratorProps) AgentCollaborator

Experimental.

type AgentCollaboratorProps

type AgentCollaboratorProps struct {
	// Descriptor for the collaborating agent.
	//
	// This cannot be the TSTALIASID (`agent.testAlias`).
	// Experimental.
	AgentAlias IAgentAlias `field:"required" json:"agentAlias" yaml:"agentAlias"`
	// Instructions on how this agent should collaborate with the main agent.
	// Experimental.
	CollaborationInstruction *string `field:"required" json:"collaborationInstruction" yaml:"collaborationInstruction"`
	// A friendly name for the collaborator.
	// Experimental.
	CollaboratorName *string `field:"required" json:"collaboratorName" yaml:"collaboratorName"`
	// Whether to relay conversation history to this collaborator.
	// Default: - undefined (uses service default).
	//
	// Experimental.
	RelayConversationHistory *bool `field:"optional" json:"relayConversationHistory" yaml:"relayConversationHistory"`
}

**************************************************************************** PROPS - Agent Collaborator Class ***************************************************************************. Experimental.

type AgentCollaboratorType

type AgentCollaboratorType string

Enum for collaborator's relay conversation history types. Experimental.

const (
	// Supervisor agent.
	// Experimental.
	AgentCollaboratorType_SUPERVISOR AgentCollaboratorType = "SUPERVISOR"
	// Disabling collaboration.
	// Experimental.
	AgentCollaboratorType_DISABLED AgentCollaboratorType = "DISABLED"
	// Supervisor router.
	// Experimental.
	AgentCollaboratorType_SUPERVISOR_ROUTER AgentCollaboratorType = "SUPERVISOR_ROUTER"
)

type AgentPromptVariantProps

type AgentPromptVariantProps struct {
	// The model which is used to run the prompt.
	//
	// The model could be a foundation
	// model, a custom model, or a provisioned model.
	// Experimental.
	Model IInvokable `field:"required" json:"model" yaml:"model"`
	// The name of the prompt variant.
	// Experimental.
	VariantName *string `field:"required" json:"variantName" yaml:"variantName"`
	// The variables in the prompt template that can be filled in at runtime.
	// Experimental.
	PromptVariables *[]*string `field:"optional" json:"promptVariables" yaml:"promptVariables"`
	// An alias pointing to the agent version to be used.
	// Experimental.
	AgentAlias IAgentAlias `field:"required" json:"agentAlias" yaml:"agentAlias"`
	// The text prompt.
	//
	// Variables are used by enclosing its name with double curly braces
	// as in `{{variable_name}}`.
	// Experimental.
	PromptText *string `field:"required" json:"promptText" yaml:"promptText"`
}

Experimental.

type AgentProps

type AgentProps struct {
	// The foundation model used for orchestration by the agent.
	// Experimental.
	FoundationModel IInvokable `field:"required" json:"foundationModel" yaml:"foundationModel"`
	// The instruction used by the agent.
	//
	// This determines how the agent will perform his task.
	// This instruction must have a minimum of 40 characters.
	// Experimental.
	Instruction *string `field:"required" json:"instruction" yaml:"instruction"`
	// The Action Groups associated with the agent.
	// Experimental.
	ActionGroups *[]AgentActionGroup `field:"optional" json:"actionGroups" yaml:"actionGroups"`
	// The collaboration type for the agent.
	// Default: - No collaboration (AgentCollaboratorType.DISABLED).
	//
	// Experimental.
	AgentCollaboration AgentCollaboratorType `field:"optional" json:"agentCollaboration" yaml:"agentCollaboration"`
	// Collaborators that this agent will work with.
	// Default: - No collaborators.
	//
	// Experimental.
	AgentCollaborators *[]AgentCollaborator `field:"optional" json:"agentCollaborators" yaml:"agentCollaborators"`
	// Select whether the agent can generate, run, and troubleshoot code when trying to complete a task.
	// Default: - false.
	//
	// Experimental.
	CodeInterpreterEnabled *bool `field:"optional" json:"codeInterpreterEnabled" yaml:"codeInterpreterEnabled"`
	// Details of custom orchestration for the agent.
	// Default: - Standard orchestration.
	//
	// Experimental.
	CustomOrchestration *CustomOrchestration `field:"optional" json:"customOrchestration" yaml:"customOrchestration"`
	// A description of the agent.
	// Default: - No description is provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The existing IAM Role for the agent to use.
	//
	// Ensure the role has a trust policy that allows the Bedrock service to assume the role.
	// Default: - A new role is created for you.
	//
	// Experimental.
	ExistingRole awsiam.IRole `field:"optional" json:"existingRole" yaml:"existingRole"`
	// Whether to delete the resource even if it's in use.
	// Default: - true.
	//
	// Experimental.
	ForceDelete *bool `field:"optional" json:"forceDelete" yaml:"forceDelete"`
	// The guardrail that will be associated with the agent.
	// Experimental.
	Guardrail IGuardrail `field:"optional" json:"guardrail" yaml:"guardrail"`
	// How long sessions should be kept open for the agent.
	//
	// If no conversation occurs
	// during this time, the session expires and Amazon Bedrock deletes any data
	// provided before the timeout.
	// Default: - 1 hour.
	//
	// Experimental.
	IdleSessionTTL awscdk.Duration `field:"optional" json:"idleSessionTTL" yaml:"idleSessionTTL"`
	// The KMS key of the agent if custom encryption is configured.
	// Default: - An AWS managed key is used.
	//
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
	// The KnowledgeBases associated with the agent.
	// Experimental.
	KnowledgeBases *[]IKnowledgeBase `field:"optional" json:"knowledgeBases" yaml:"knowledgeBases"`
	// The type and configuration of the memory to maintain context across multiple sessions and recall past interactions.
	//
	// This can be useful for maintaining continuity in multi-turn conversations and recalling user preferences
	// or past interactions.
	// See: https://docs.aws.amazon.com/bedrock/latest/userguide/agents-memory.html
	//
	// Default: - No memory will be used. Agents will retain context from the current session only.
	//
	// Experimental.
	Memory Memory `field:"optional" json:"memory" yaml:"memory"`
	// The name of the agent.
	// Default: - A name is generated by CDK.
	//
	// Experimental.
	Name *string `field:"optional" json:"name" yaml:"name"`
	// The type of orchestration to use for the agent.
	// Default: - STANDARD.
	//
	// Experimental.
	OrchestrationType OrchestrationType `field:"optional" json:"orchestrationType" yaml:"orchestrationType"`
	// Overrides some prompt templates in different parts of an agent sequence configuration.
	// Default: - No overrides are provided.
	//
	// Experimental.
	PromptOverrideConfiguration PromptOverrideConfiguration `field:"optional" json:"promptOverrideConfiguration" yaml:"promptOverrideConfiguration"`
	// Specifies whether to automatically update the `DRAFT` version of the agent after making changes to the agent.
	//
	// The `DRAFT` version can be continually iterated
	// upon during internal development.
	// Default: - false.
	//
	// Experimental.
	ShouldPrepareAgent *bool `field:"optional" json:"shouldPrepareAgent" yaml:"shouldPrepareAgent"`
	// Select whether the agent can prompt additional information from the user when it does not have enough information to respond to an utterance.
	// Default: - false.
	//
	// Experimental.
	UserInputEnabled *bool `field:"optional" json:"userInputEnabled" yaml:"userInputEnabled"`
}

Properties for creating a CDK managed Bedrock Agent. Experimental.

type AgentStepType

type AgentStepType string

The step in the agent sequence that this prompt configuration applies to. Experimental.

const (
	// Experimental.
	AgentStepType_PRE_PROCESSING AgentStepType = "PRE_PROCESSING"
	// Experimental.
	AgentStepType_ORCHESTRATION AgentStepType = "ORCHESTRATION"
	// Experimental.
	AgentStepType_POST_PROCESSING AgentStepType = "POST_PROCESSING"
	// Experimental.
	AgentStepType_ROUTING_CLASSIFIER AgentStepType = "ROUTING_CLASSIFIER"
	// Experimental.
	AgentStepType_MEMORY_SUMMARIZATION AgentStepType = "MEMORY_SUMMARIZATION"
	// Experimental.
	AgentStepType_KNOWLEDGE_BASE_RESPONSE_GENERATION AgentStepType = "KNOWLEDGE_BASE_RESPONSE_GENERATION"
)

type ApiSchema

type ApiSchema interface {
	// Experimental.
	InlineSchema() *string
	// Experimental.
	S3File() *awss3.Location
}

Represents the concept of an API Schema for a Bedrock Agent Action Group. Experimental.

type ApplicationInferenceProfile

type ApplicationInferenceProfile interface {
	InferenceProfileBase
	IInvokable
	// Time Stamp for ApplicationInferenceProfile creation.
	// Experimental.
	CreatedAt() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// The ARN of the application application inference profile.
	// Experimental.
	InferenceProfileArn() *string
	// The unique identifier of the application inference profile.
	// Experimental.
	InferenceProfileId() *string
	// The underlying model/cross-region model used by the application inference profile.
	// Experimental.
	InferenceProfileModel() IInvokable
	// The name of the application inference profile.
	// Experimental.
	InferenceProfileName() *string
	// This equals to the inferenceProfileArn property, useful just to implement IInvokable interface.
	// Experimental.
	InvokableArn() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// The status of the application inference profile.
	//
	// ACTIVE means that the inference profile is ready to be used.
	// Experimental.
	Status() *string
	// The type of the inference profile.
	//
	// The following types are possible:
	// SYSTEM_DEFINED – The inference profile is defined by Amazon Bedrock.
	// You can route inference requests across regions with these inference profiles.
	// APPLICATION – The inference profile was created by a user.
	// This type of inference profile can track metrics and costs when invoking the model in it.
	// The inference profile may route requests to one or multiple regions.
	// Experimental.
	Type() InferenceProfileType
	// Time Stamp for ApplicationInferenceProfile update.
	// Experimental.
	UpdatedAt() *string
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Gives the appropriate policies to invoke and use the application inference profile.
	// Experimental.
	GrantInvoke(grantee awsiam.IGrantable) awsiam.Grant
	// Grants appropriate permissions to use the application inference profile (AIP).
	//
	// Does not grant permissions to use the model/cross-region profile in the AIP.
	// Experimental.
	GrantProfileUsage(grantee awsiam.IGrantable) awsiam.Grant
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Class to create a ApplicationInferenceProfile with CDK.

These are inference profiles created by users (user defined). This helps to track costs and model usage. See: https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-create.html

Experimental.

func NewApplicationInferenceProfile

func NewApplicationInferenceProfile(scope constructs.Construct, id *string, props *ApplicationInferenceProfileProps) ApplicationInferenceProfile

Experimental.

type ApplicationInferenceProfileAttributes

type ApplicationInferenceProfileAttributes struct {
	// The ARN of the application inference profile.
	// Experimental.
	InferenceProfileArn *string `field:"required" json:"inferenceProfileArn" yaml:"inferenceProfileArn"`
	// The ID or Amazon Resource Name (ARN) of the inference profile.
	// Experimental.
	InferenceProfileIdentifier *string `field:"required" json:"inferenceProfileIdentifier" yaml:"inferenceProfileIdentifier"`
}

**************************************************************************** ATTRS FOR IMPORTED CONSTRUCT ***************************************************************************. Experimental.

type ApplicationInferenceProfileProps

type ApplicationInferenceProfileProps struct {
	// The name of the inference profile.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-applicationinferenceprofile.html#cfn-bedrock-applicationinferenceprofile-inferenceprofilename
	//
	// Experimental.
	InferenceProfileName *string `field:"required" json:"inferenceProfileName" yaml:"inferenceProfileName"`
	// To create an application inference profile for one Region, specify a foundation model.
	//
	// Usage and costs for requests made to that Region with that model will be tracked.
	//
	// To create an application inference profile for multiple Regions,
	// specify a cross region (system-defined) inference profile.
	// The inference profile will route requests to the Regions defined in
	// the cross region (system-defined) inference profile that you choose.
	// Usage and costs for requests made to the Regions in the inference profile will be tracked.
	// Experimental.
	ModelSource IInvokable `field:"required" json:"modelSource" yaml:"modelSource"`
	// Description of the inference profile.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-bedrock-applicationinferenceprofile.html#cfn-bedrock-applicationinferenceprofile-description
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// A list of tags associated with the inference profile.
	// Experimental.
	Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"`
}

Properties for creating a ApplicationInferenceProfile. Experimental.

type BedrockFoundationModel

type BedrockFoundationModel interface {
	IInvokable
	// The ARN of the Bedrock invokable abstraction.
	// Experimental.
	InvokableArn() *string
	// Experimental.
	ModelArn() *string
	// **************************************************************************                           Constructor *************************************************************************.
	// Experimental.
	ModelId() *string
	// Experimental.
	SupportedVectorType() *[]VectorType
	// Experimental.
	SupportsAgents() *bool
	// Experimental.
	SupportsCrossRegion() *bool
	// Experimental.
	SupportsKnowledgeBase() *bool
	// Experimental.
	VectorDimensions() *float64
	// Returns the ARN of the foundation model in the following format: `arn:${Partition}:bedrock:${Region}::foundation-model/${ResourceId}`.
	// Experimental.
	AsArn(construct constructs.IConstruct) *string
	// Experimental.
	AsIModel(construct constructs.IConstruct) awsbedrock.IModel
	// Gives the appropriate policies to invoke and use the Foundation Model in the stack region.
	// Experimental.
	GrantInvoke(grantee awsiam.IGrantable) awsiam.Grant
	// Gives the appropriate policies to invoke and use the Foundation Model in all regions.
	// Experimental.
	GrantInvokeAllRegions(grantee awsiam.IGrantable) awsiam.Grant
	// Returns a string representation of an object.
	// Experimental.
	ToString() *string
}

Bedrock models.

If you need to use a model name that doesn't exist as a static member, you can instantiate a `BedrockFoundationModel` object, e.g: `new BedrockFoundationModel('my-model')`. Experimental.

func BedrockFoundationModel_AI21_JAMBA_1_5_LARGE_V1

func BedrockFoundationModel_AI21_JAMBA_1_5_LARGE_V1() BedrockFoundationModel

func BedrockFoundationModel_AI21_JAMBA_1_5_MINI_V1

func BedrockFoundationModel_AI21_JAMBA_1_5_MINI_V1() BedrockFoundationModel

func BedrockFoundationModel_AI21_JAMBA_INSTRUCT_V1

func BedrockFoundationModel_AI21_JAMBA_INSTRUCT_V1() BedrockFoundationModel

func BedrockFoundationModel_AMAZON_NOVA2_MULTIMODAL_V1_256 added in v0.1.315

func BedrockFoundationModel_AMAZON_NOVA2_MULTIMODAL_V1_256() BedrockFoundationModel

func BedrockFoundationModel_AMAZON_NOVA2_MULTIMODAL_V1_384 added in v0.1.315

func BedrockFoundationModel_AMAZON_NOVA2_MULTIMODAL_V1_384() BedrockFoundationModel

func BedrockFoundationModel_AMAZON_NOVA2_MULTIMODAL_V1_1024 added in v0.1.315

func BedrockFoundationModel_AMAZON_NOVA2_MULTIMODAL_V1_1024() BedrockFoundationModel

func BedrockFoundationModel_AMAZON_NOVA2_MULTIMODAL_V1_3072 added in v0.1.315

func BedrockFoundationModel_AMAZON_NOVA2_MULTIMODAL_V1_3072() BedrockFoundationModel

func BedrockFoundationModel_AMAZON_NOVA_LITE_V1

func BedrockFoundationModel_AMAZON_NOVA_LITE_V1() BedrockFoundationModel

func BedrockFoundationModel_AMAZON_NOVA_MICRO_V1

func BedrockFoundationModel_AMAZON_NOVA_MICRO_V1() BedrockFoundationModel

func BedrockFoundationModel_AMAZON_NOVA_PREMIER_V1

func BedrockFoundationModel_AMAZON_NOVA_PREMIER_V1() BedrockFoundationModel

func BedrockFoundationModel_AMAZON_NOVA_PRO_V1

func BedrockFoundationModel_AMAZON_NOVA_PRO_V1() BedrockFoundationModel

func BedrockFoundationModel_AMAZON_TITAN_PREMIER_V1_0

func BedrockFoundationModel_AMAZON_TITAN_PREMIER_V1_0() BedrockFoundationModel

func BedrockFoundationModel_AMAZON_TITAN_TEXT_EXPRESS_V1

func BedrockFoundationModel_AMAZON_TITAN_TEXT_EXPRESS_V1() BedrockFoundationModel

func BedrockFoundationModel_ANTHROPIC_CLAUDE_3_5_HAIKU_V1_0

func BedrockFoundationModel_ANTHROPIC_CLAUDE_3_5_HAIKU_V1_0() BedrockFoundationModel

func BedrockFoundationModel_ANTHROPIC_CLAUDE_3_5_SONNET_V1_0

func BedrockFoundationModel_ANTHROPIC_CLAUDE_3_5_SONNET_V1_0() BedrockFoundationModel

func BedrockFoundationModel_ANTHROPIC_CLAUDE_3_5_SONNET_V2_0

func BedrockFoundationModel_ANTHROPIC_CLAUDE_3_5_SONNET_V2_0() BedrockFoundationModel

func BedrockFoundationModel_ANTHROPIC_CLAUDE_3_7_SONNET_V1_0

func BedrockFoundationModel_ANTHROPIC_CLAUDE_3_7_SONNET_V1_0() BedrockFoundationModel

func BedrockFoundationModel_ANTHROPIC_CLAUDE_4_OPUS_V1_0

func BedrockFoundationModel_ANTHROPIC_CLAUDE_4_OPUS_V1_0() BedrockFoundationModel

func BedrockFoundationModel_ANTHROPIC_CLAUDE_4_SONNET_V1_0

func BedrockFoundationModel_ANTHROPIC_CLAUDE_4_SONNET_V1_0() BedrockFoundationModel

func BedrockFoundationModel_ANTHROPIC_CLAUDE_HAIKU_V1_0

func BedrockFoundationModel_ANTHROPIC_CLAUDE_HAIKU_V1_0() BedrockFoundationModel

func BedrockFoundationModel_ANTHROPIC_CLAUDE_INSTANT_V1_2

func BedrockFoundationModel_ANTHROPIC_CLAUDE_INSTANT_V1_2() BedrockFoundationModel

func BedrockFoundationModel_ANTHROPIC_CLAUDE_OPUS_V1_0

func BedrockFoundationModel_ANTHROPIC_CLAUDE_OPUS_V1_0() BedrockFoundationModel

func BedrockFoundationModel_ANTHROPIC_CLAUDE_SONNET_V1_0

func BedrockFoundationModel_ANTHROPIC_CLAUDE_SONNET_V1_0() BedrockFoundationModel

func BedrockFoundationModel_ANTHROPIC_CLAUDE_V2

func BedrockFoundationModel_ANTHROPIC_CLAUDE_V2() BedrockFoundationModel

func BedrockFoundationModel_ANTHROPIC_CLAUDE_V2_1

func BedrockFoundationModel_ANTHROPIC_CLAUDE_V2_1() BedrockFoundationModel

func BedrockFoundationModel_COHERE_EMBED_ENGLISH_V3

func BedrockFoundationModel_COHERE_EMBED_ENGLISH_V3() BedrockFoundationModel

func BedrockFoundationModel_COHERE_EMBED_MULTILINGUAL_V3

func BedrockFoundationModel_COHERE_EMBED_MULTILINGUAL_V3() BedrockFoundationModel

func BedrockFoundationModel_DEEPSEEK_R1_V1

func BedrockFoundationModel_DEEPSEEK_R1_V1() BedrockFoundationModel

func BedrockFoundationModel_FromCdkFoundationModel

func BedrockFoundationModel_FromCdkFoundationModel(modelId awsbedrock.FoundationModel, props *BedrockFoundationModelProps) BedrockFoundationModel

Experimental.

func BedrockFoundationModel_FromCdkFoundationModelId

func BedrockFoundationModel_FromCdkFoundationModelId(modelId awsbedrock.FoundationModelIdentifier, props *BedrockFoundationModelProps) BedrockFoundationModel

Experimental.

func BedrockFoundationModel_META_LLAMA_3_1_8B_INSTRUCT_V1

func BedrockFoundationModel_META_LLAMA_3_1_8B_INSTRUCT_V1() BedrockFoundationModel

func BedrockFoundationModel_META_LLAMA_3_1_70B_INSTRUCT_V1

func BedrockFoundationModel_META_LLAMA_3_1_70B_INSTRUCT_V1() BedrockFoundationModel

func BedrockFoundationModel_META_LLAMA_3_2_1B_INSTRUCT_V1

func BedrockFoundationModel_META_LLAMA_3_2_1B_INSTRUCT_V1() BedrockFoundationModel

func BedrockFoundationModel_META_LLAMA_3_2_3B_INSTRUCT_V1

func BedrockFoundationModel_META_LLAMA_3_2_3B_INSTRUCT_V1() BedrockFoundationModel

func BedrockFoundationModel_META_LLAMA_3_2_11B_INSTRUCT_V1

func BedrockFoundationModel_META_LLAMA_3_2_11B_INSTRUCT_V1() BedrockFoundationModel

func BedrockFoundationModel_META_LLAMA_3_3_70B_INSTRUCT_V1

func BedrockFoundationModel_META_LLAMA_3_3_70B_INSTRUCT_V1() BedrockFoundationModel

func BedrockFoundationModel_META_LLAMA_4_MAVERICK_17B_INSTRUCT_V1

func BedrockFoundationModel_META_LLAMA_4_MAVERICK_17B_INSTRUCT_V1() BedrockFoundationModel

func BedrockFoundationModel_META_LLAMA_4_SCOUT_17B_INSTRUCT_V1

func BedrockFoundationModel_META_LLAMA_4_SCOUT_17B_INSTRUCT_V1() BedrockFoundationModel

func BedrockFoundationModel_MISTRAL_7B_INSTRUCT_V0

func BedrockFoundationModel_MISTRAL_7B_INSTRUCT_V0() BedrockFoundationModel

func BedrockFoundationModel_MISTRAL_LARGE_2402_V1

func BedrockFoundationModel_MISTRAL_LARGE_2402_V1() BedrockFoundationModel

func BedrockFoundationModel_MISTRAL_LARGE_2407_V1

func BedrockFoundationModel_MISTRAL_LARGE_2407_V1() BedrockFoundationModel

func BedrockFoundationModel_MISTRAL_MIXTRAL_8X7B_INSTRUCT_V0

func BedrockFoundationModel_MISTRAL_MIXTRAL_8X7B_INSTRUCT_V0() BedrockFoundationModel

func BedrockFoundationModel_MISTRAL_PIXTRAL_LARGE_2502_V1

func BedrockFoundationModel_MISTRAL_PIXTRAL_LARGE_2502_V1() BedrockFoundationModel

func BedrockFoundationModel_MISTRAL_SMALL_2402_V1

func BedrockFoundationModel_MISTRAL_SMALL_2402_V1() BedrockFoundationModel

func BedrockFoundationModel_TITAN_EMBED_TEXT_V1

func BedrockFoundationModel_TITAN_EMBED_TEXT_V1() BedrockFoundationModel

func BedrockFoundationModel_TITAN_EMBED_TEXT_V2_256

func BedrockFoundationModel_TITAN_EMBED_TEXT_V2_256() BedrockFoundationModel

func BedrockFoundationModel_TITAN_EMBED_TEXT_V2_512

func BedrockFoundationModel_TITAN_EMBED_TEXT_V2_512() BedrockFoundationModel

func BedrockFoundationModel_TITAN_EMBED_TEXT_V2_1024

func BedrockFoundationModel_TITAN_EMBED_TEXT_V2_1024() BedrockFoundationModel

func NewBedrockFoundationModel

func NewBedrockFoundationModel(value *string, props *BedrockFoundationModelProps) BedrockFoundationModel

Experimental.

type BedrockFoundationModelProps

type BedrockFoundationModelProps struct {
	// https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle.html A version is marked Legacy when there is a more recent version which provides superior performance. Amazon Bedrock sets an EOL date for Legacy versions.
	// Default: - false.
	//
	// Experimental.
	Legacy *bool `field:"optional" json:"legacy" yaml:"legacy"`
	// Currently, some of the offered models are optimized with prompts/parsers fine-tuned for integrating with the agents architecture.
	// Default: - false.
	//
	// Experimental.
	OptimizedForAgents *bool `field:"optional" json:"optimizedForAgents" yaml:"optimizedForAgents"`
	// Embeddings models have different supported vector types.
	// Experimental.
	SupportedVectorType *[]VectorType `field:"optional" json:"supportedVectorType" yaml:"supportedVectorType"`
	// Bedrock Agents can use this model.
	// Default: - false.
	//
	// Experimental.
	SupportsAgents *bool `field:"optional" json:"supportsAgents" yaml:"supportsAgents"`
	// Can be used with a Cross-Region Inference Profile.
	// Default: - false.
	//
	// Experimental.
	SupportsCrossRegion *bool `field:"optional" json:"supportsCrossRegion" yaml:"supportsCrossRegion"`
	// Bedrock Knowledge Base can use this model.
	// Default: - false.
	//
	// Experimental.
	SupportsKnowledgeBase *bool `field:"optional" json:"supportsKnowledgeBase" yaml:"supportsKnowledgeBase"`
	// Embedding models have different vector dimensions.
	//
	// Only applicable for embedding models.
	// Experimental.
	VectorDimensions *float64 `field:"optional" json:"vectorDimensions" yaml:"vectorDimensions"`
}

Experimental.

type ChatMessage

type ChatMessage interface {
	// Experimental.
	Role() ChatMessageRole
	// Experimental.
	Text() *string
}

Experimental.

func ChatMessage_Assistant

func ChatMessage_Assistant(text *string) ChatMessage

Experimental.

func ChatMessage_User

func ChatMessage_User(text *string) ChatMessage

Experimental.

func NewChatMessage

func NewChatMessage(role ChatMessageRole, text *string) ChatMessage

Experimental.

type ChatMessageRole

type ChatMessageRole string

Experimental.

const (
	// This role represents the human user in the conversation.
	//
	// Inputs from the
	// user guide  the conversation and prompt responses from the assistant.
	// Experimental.
	ChatMessageRole_USER ChatMessageRole = "USER"
	// This is the role of the model itself, responding to user inputs based on the context set by the system.
	// Experimental.
	ChatMessageRole_ASSISTANT ChatMessageRole = "ASSISTANT"
)

type ChatPromptVariantProps

type ChatPromptVariantProps struct {
	// The model which is used to run the prompt.
	//
	// The model could be a foundation
	// model, a custom model, or a provisioned model.
	// Experimental.
	Model IInvokable `field:"required" json:"model" yaml:"model"`
	// The name of the prompt variant.
	// Experimental.
	VariantName *string `field:"required" json:"variantName" yaml:"variantName"`
	// The variables in the prompt template that can be filled in at runtime.
	// Experimental.
	PromptVariables *[]*string `field:"optional" json:"promptVariables" yaml:"promptVariables"`
	// Inference configuration for the Chat Prompt.
	//
	// Must include at least one User Message.
	// The messages should alternate between User and Assistant.
	// Experimental.
	Messages *[]ChatMessage `field:"required" json:"messages" yaml:"messages"`
	// Inference configuration for the Text Prompt.
	// Experimental.
	InferenceConfiguration *awsbedrock.CfnPrompt_PromptModelInferenceConfigurationProperty `field:"optional" json:"inferenceConfiguration" yaml:"inferenceConfiguration"`
	// Context or instructions for the model to consider before generating a response.
	// Experimental.
	System *string `field:"optional" json:"system" yaml:"system"`
	// The configuration with available tools to the model and how it must use them.
	// Experimental.
	ToolConfiguration *ToolConfiguration `field:"optional" json:"toolConfiguration" yaml:"toolConfiguration"`
}

Experimental.

type ChunkingStrategy

type ChunkingStrategy interface {
	// The CloudFormation property representation of this configuration.
	// Experimental.
	Configuration() *awsbedrock.CfnDataSource_ChunkingConfigurationProperty
	// Experimental.
	SetConfiguration(val *awsbedrock.CfnDataSource_ChunkingConfigurationProperty)
}

Experimental.

func ChunkingStrategy_DEFAULT

func ChunkingStrategy_DEFAULT() ChunkingStrategy

func ChunkingStrategy_FIXED_SIZE

func ChunkingStrategy_FIXED_SIZE() ChunkingStrategy

func ChunkingStrategy_FixedSize

Method for customizing a fixed sized chunking strategy. Experimental.

func ChunkingStrategy_HIERARCHICAL_COHERE

func ChunkingStrategy_HIERARCHICAL_COHERE() ChunkingStrategy

func ChunkingStrategy_HIERARCHICAL_TITAN

func ChunkingStrategy_HIERARCHICAL_TITAN() ChunkingStrategy

func ChunkingStrategy_Hierarchical

func ChunkingStrategy_Hierarchical(props *HierarchicalChunkingProps) ChunkingStrategy

Method for customizing a hierarchical chunking strategy.

For custom chunking, the maximum token chunk size depends on the model. - Amazon Titan Text Embeddings: 8192 - Cohere Embed models: 512. Experimental.

func ChunkingStrategy_NONE

func ChunkingStrategy_NONE() ChunkingStrategy

func ChunkingStrategy_SEMANTIC

func ChunkingStrategy_SEMANTIC() ChunkingStrategy

func ChunkingStrategy_Semantic

Method for customizing a semantic chunking strategy.

For custom chunking, the maximum token chunk size depends on the model. - Amazon Titan Text Embeddings: 8192 - Cohere Embed models: 512. Experimental.

type CommonKnowledgeBaseAttributes

type CommonKnowledgeBaseAttributes struct {
	// The Service Execution Role associated with the knowledge base.
	//
	// Example:
	//   "arn:aws:iam::123456789012:role/AmazonBedrockExecutionRoleForKnowledgeBaseawscdkbdgeBaseKB12345678"
	//
	// Experimental.
	ExecutionRoleArn *string `field:"required" json:"executionRoleArn" yaml:"executionRoleArn"`
	// The ID of the knowledge base.
	//
	// Example:
	//   "KB12345678"
	//
	// Experimental.
	KnowledgeBaseId *string `field:"required" json:"knowledgeBaseId" yaml:"knowledgeBaseId"`
	// The description of the knowledge base.
	// Default: - No description provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Instructions for agents based on the design and type of information of the Knowledge Base.
	//
	// This will impact how Agents interact with the Knowledge Base.
	// Default: - No description provided.
	//
	// Experimental.
	Instruction *string `field:"optional" json:"instruction" yaml:"instruction"`
	// Specifies whether to use the knowledge base or not when sending an InvokeAgent request.
	// Default: - ENABLED.
	//
	// Experimental.
	KnowledgeBaseState *string `field:"optional" json:"knowledgeBaseState" yaml:"knowledgeBaseState"`
}

Common properties for importing a knowledge base (of any type) created outside of this stack. Experimental.

type CommonKnowledgeBaseProps

type CommonKnowledgeBaseProps struct {
	// The description of the knowledge base.
	// Default: - No description provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Existing IAM role with policy statements granting appropriate permissions to invoke the specific embeddings models.
	//
	// Any entity (e.g., an AWS service or application) that assumes
	// this role will be able to invoke or use the
	// specified embeddings model within the Bedrock service.
	// Experimental.
	ExistingRole awsiam.IRole `field:"optional" json:"existingRole" yaml:"existingRole"`
	// A narrative description of the knowledge base.
	//
	// A Bedrock Agent can use this instruction to determine if it should
	// query this Knowledge Base.
	// Default: - No description provided.
	//
	// Experimental.
	Instruction *string `field:"optional" json:"instruction" yaml:"instruction"`
	// The name of the knowledge base.
	// Experimental.
	Name *string `field:"optional" json:"name" yaml:"name"`
}

Common properties for creating any type of new Knowledge Base. Experimental.

type CommonPromptVariantProps

type CommonPromptVariantProps struct {
	// The model which is used to run the prompt.
	//
	// The model could be a foundation
	// model, a custom model, or a provisioned model.
	// Experimental.
	Model IInvokable `field:"required" json:"model" yaml:"model"`
	// The name of the prompt variant.
	// Experimental.
	VariantName *string `field:"required" json:"variantName" yaml:"variantName"`
	// The variables in the prompt template that can be filled in at runtime.
	// Experimental.
	PromptVariables *[]*string `field:"optional" json:"promptVariables" yaml:"promptVariables"`
}

Experimental.

type ConfluenceCrawlingFilters

type ConfluenceCrawlingFilters struct {
	// The type of Confluence object to apply the filters to.
	// Experimental.
	ObjectType ConfluenceObjectType `field:"required" json:"objectType" yaml:"objectType"`
	// Regular expression patterns to exclude content.
	//
	// Content matching these patterns will not be crawled, even if it matches an include pattern.
	// Experimental.
	ExcludePatterns *[]*string `field:"optional" json:"excludePatterns" yaml:"excludePatterns"`
	// Regular expression patterns to include content.
	//
	// If specified, only content matching these patterns will be crawled.
	// Experimental.
	IncludePatterns *[]*string `field:"optional" json:"includePatterns" yaml:"includePatterns"`
}

Defines filters for crawling Confluence content.

These filters allow you to include or exclude specific content based on object types and patterns.

- For Spaces: Use the unique space key - For Pages: Use the main page title - For Blogs: Use the main blog title - For Comments: Use "Re: Page/Blog Title" - For Attachments: Use the filename with extension. Experimental.

type ConfluenceDataSource

type ConfluenceDataSource interface {
	DataSourceNew
	// The AWS Secrets Manager secret that stores your authentication credentials.
	// Experimental.
	AuthSecret() awssecretsmanager.ISecret
	// The Confluence host URL or instance URL.
	// Experimental.
	ConfluenceUrl() *string
	// The unique identifier of the data source.
	// Experimental.
	DataSourceId() *string
	// The name of the data source.
	// Experimental.
	DataSourceName() *string
	// The type of data source.
	// Experimental.
	DataSourceType() DataSourceType
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// The KMS key to use to encrypt the data source.
	// Experimental.
	KmsKey() awskms.IKey
	// The knowledge base associated with the data source.
	// Experimental.
	KnowledgeBase() IKnowledgeBase
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Formats the data source configuration properties for CloudFormation.
	// Experimental.
	FormatAsCfnProps(props *DataSourceAssociationProps, dataSourceConfiguration *awsbedrock.CfnDataSource_DataSourceConfigurationProperty) *awsbedrock.CfnDataSourceProps
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Adds appropriate permissions to the KB execution role needed by the data source.
	// Experimental.
	HandleCommonPermissions(props *DataSourceAssociationProps)
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Sets up a Confluence Data Source to be added to a knowledge base. See: https://docs.aws.amazon.com/bedrock/latest/userguide/confluence-data-source-connector.html

Experimental.

func NewConfluenceDataSource

func NewConfluenceDataSource(scope constructs.Construct, id *string, props *ConfluenceDataSourceProps) ConfluenceDataSource

Experimental.

type ConfluenceDataSourceAssociationProps

type ConfluenceDataSourceAssociationProps struct {
	// The chunking stategy to use for splitting your documents or content.
	//
	// The chunks are then converted to embeddings and written to the vector
	// index allowing for similarity search and retrieval of the content.
	// Default: ChunkingStrategy.DEFAULT
	//
	// Experimental.
	ChunkingStrategy ChunkingStrategy `field:"optional" json:"chunkingStrategy" yaml:"chunkingStrategy"`
	// The context enrichment configuration to use.
	// Default: - No context enrichment is used.
	//
	// Experimental.
	ContextEnrichment ContextEnrichment `field:"optional" json:"contextEnrichment" yaml:"contextEnrichment"`
	// The custom transformation strategy to use.
	// Default: - No custom transformation is used.
	//
	// Experimental.
	CustomTransformation CustomTransformation `field:"optional" json:"customTransformation" yaml:"customTransformation"`
	// The data deletion policy to apply to the data source.
	// Default: - Sets the data deletion policy to the default of the data source type.
	//
	// Experimental.
	DataDeletionPolicy DataDeletionPolicy `field:"optional" json:"dataDeletionPolicy" yaml:"dataDeletionPolicy"`
	// The name of the data source.
	// Default: - A new name will be generated.
	//
	// Experimental.
	DataSourceName *string `field:"optional" json:"dataSourceName" yaml:"dataSourceName"`
	// A description of the data source.
	// Default: - No description is provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The KMS key to use to encrypt the data source.
	// Default: - Service owned and managed key.
	//
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
	// The parsing strategy to use.
	// Default: - No Parsing Stategy is used.
	//
	// Experimental.
	ParsingStrategy ParsingStrategy `field:"optional" json:"parsingStrategy" yaml:"parsingStrategy"`
	// The AWS Secrets Manager secret that stores your authentication credentials for your Confluence instance URL.
	//
	// Secret must start with "AmazonBedrock-".
	// Experimental.
	AuthSecret awssecretsmanager.ISecret `field:"required" json:"authSecret" yaml:"authSecret"`
	// The Confluence host URL or instance URL.
	// Experimental.
	ConfluenceUrl *string `field:"required" json:"confluenceUrl" yaml:"confluenceUrl"`
	// The supported authentication method to connect to the data source.
	// Default: ConfluenceDataSourceAuthType.OAUTH2_CLIENT_CREDENTIALS
	//
	// Experimental.
	AuthType ConfluenceDataSourceAuthType `field:"optional" json:"authType" yaml:"authType"`
	// The filters (regular expression patterns) for the crawling.
	//
	// If there's a conflict, the exclude pattern takes precedence.
	// Default: None - all your content is crawled.
	//
	// Experimental.
	Filters *[]*ConfluenceCrawlingFilters `field:"optional" json:"filters" yaml:"filters"`
}

Interface to add a new data source to an existing KB. Experimental.

type ConfluenceDataSourceAuthType

type ConfluenceDataSourceAuthType string

The different authentication types available to connect to your Confluence instance. See: https://docs.aws.amazon.com/bedrock/latest/userguide/confluence-data-source-connector.html#configuration-confluence-connector

Experimental.

const (
	// Your secret authentication credentials in AWS Secrets Manager should include: - `confluenceAppKey` - `confluenceAppSecret` - `confluenceAccessToken` - `confluenceRefreshToken`.
	// Experimental.
	ConfluenceDataSourceAuthType_OAUTH2_CLIENT_CREDENTIALS ConfluenceDataSourceAuthType = "OAUTH2_CLIENT_CREDENTIALS"
	// Your secret authentication credentials in AWS Secrets Manager should include:  - `username` (email of admin account)  - `password` (API token).
	// Experimental.
	ConfluenceDataSourceAuthType_BASIC ConfluenceDataSourceAuthType = "BASIC"
)

type ConfluenceDataSourceProps

type ConfluenceDataSourceProps struct {
	// The chunking stategy to use for splitting your documents or content.
	//
	// The chunks are then converted to embeddings and written to the vector
	// index allowing for similarity search and retrieval of the content.
	// Default: ChunkingStrategy.DEFAULT
	//
	// Experimental.
	ChunkingStrategy ChunkingStrategy `field:"optional" json:"chunkingStrategy" yaml:"chunkingStrategy"`
	// The context enrichment configuration to use.
	// Default: - No context enrichment is used.
	//
	// Experimental.
	ContextEnrichment ContextEnrichment `field:"optional" json:"contextEnrichment" yaml:"contextEnrichment"`
	// The custom transformation strategy to use.
	// Default: - No custom transformation is used.
	//
	// Experimental.
	CustomTransformation CustomTransformation `field:"optional" json:"customTransformation" yaml:"customTransformation"`
	// The data deletion policy to apply to the data source.
	// Default: - Sets the data deletion policy to the default of the data source type.
	//
	// Experimental.
	DataDeletionPolicy DataDeletionPolicy `field:"optional" json:"dataDeletionPolicy" yaml:"dataDeletionPolicy"`
	// The name of the data source.
	// Default: - A new name will be generated.
	//
	// Experimental.
	DataSourceName *string `field:"optional" json:"dataSourceName" yaml:"dataSourceName"`
	// A description of the data source.
	// Default: - No description is provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The KMS key to use to encrypt the data source.
	// Default: - Service owned and managed key.
	//
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
	// The parsing strategy to use.
	// Default: - No Parsing Stategy is used.
	//
	// Experimental.
	ParsingStrategy ParsingStrategy `field:"optional" json:"parsingStrategy" yaml:"parsingStrategy"`
	// The AWS Secrets Manager secret that stores your authentication credentials for your Confluence instance URL.
	//
	// Secret must start with "AmazonBedrock-".
	// Experimental.
	AuthSecret awssecretsmanager.ISecret `field:"required" json:"authSecret" yaml:"authSecret"`
	// The Confluence host URL or instance URL.
	// Experimental.
	ConfluenceUrl *string `field:"required" json:"confluenceUrl" yaml:"confluenceUrl"`
	// The supported authentication method to connect to the data source.
	// Default: ConfluenceDataSourceAuthType.OAUTH2_CLIENT_CREDENTIALS
	//
	// Experimental.
	AuthType ConfluenceDataSourceAuthType `field:"optional" json:"authType" yaml:"authType"`
	// The filters (regular expression patterns) for the crawling.
	//
	// If there's a conflict, the exclude pattern takes precedence.
	// Default: None - all your content is crawled.
	//
	// Experimental.
	Filters *[]*ConfluenceCrawlingFilters `field:"optional" json:"filters" yaml:"filters"`
	// The knowledge base to associate with the data source.
	// Experimental.
	KnowledgeBase IKnowledgeBase `field:"required" json:"knowledgeBase" yaml:"knowledgeBase"`
}

Interface to create a new standalone data source object. Experimental.

type ConfluenceObjectType

type ConfluenceObjectType string

Represents the different types of content objects in Confluence that can be crawled by the data source. Experimental.

const (
	// Experimental.
	ConfluenceObjectType_SPACE ConfluenceObjectType = "SPACE"
	// Experimental.
	ConfluenceObjectType_PAGE ConfluenceObjectType = "PAGE"
	// Experimental.
	ConfluenceObjectType_BLOG ConfluenceObjectType = "BLOG"
	// Experimental.
	ConfluenceObjectType_COMMENT ConfluenceObjectType = "COMMENT"
	// Experimental.
	ConfluenceObjectType_ATTACHMENT ConfluenceObjectType = "ATTACHMENT"
)

type ContentFilter

type ContentFilter struct {
	// The strength of the content filter to apply to prompts / user input.
	// Experimental.
	InputStrength ContentFilterStrength `field:"required" json:"inputStrength" yaml:"inputStrength"`
	// The strength of the content filter to apply to model responses.
	// Experimental.
	OutputStrength ContentFilterStrength `field:"required" json:"outputStrength" yaml:"outputStrength"`
	// The type of harmful category that the content filter is applied to.
	// Experimental.
	Type ContentFilterType `field:"required" json:"type" yaml:"type"`
	// The action to take when content is detected in the input.
	// Experimental.
	InputAction GuardrailAction `field:"optional" json:"inputAction" yaml:"inputAction"`
	// Whether the content filter is enabled for input.
	// Experimental.
	InputEnabled *bool `field:"optional" json:"inputEnabled" yaml:"inputEnabled"`
	// The input modalities to apply the content filter to.
	// Default: undefined - Applies to text modality.
	//
	// Experimental.
	InputModalities *[]ModalityType `field:"optional" json:"inputModalities" yaml:"inputModalities"`
	// The action to take when content is detected in the output.
	// Experimental.
	OutputAction GuardrailAction `field:"optional" json:"outputAction" yaml:"outputAction"`
	// Whether the content filter is enabled for output.
	// Experimental.
	OutputEnabled *bool `field:"optional" json:"outputEnabled" yaml:"outputEnabled"`
	// The output modalities to apply the content filter to.
	// Default: undefined - Applies to text modality.
	//
	// Experimental.
	OutputModalities *[]ModalityType `field:"optional" json:"outputModalities" yaml:"outputModalities"`
}

Interface to declare a content filter. Experimental.

type ContentFilterStrength

type ContentFilterStrength string

The strength of the content filter.

As you increase the filter strength, the likelihood of filtering harmful content increases and the probability of seeing harmful content in your application reduces. Experimental.

const (
	// Experimental.
	ContentFilterStrength_NONE ContentFilterStrength = "NONE"
	// Experimental.
	ContentFilterStrength_LOW ContentFilterStrength = "LOW"
	// Experimental.
	ContentFilterStrength_MEDIUM ContentFilterStrength = "MEDIUM"
	// Experimental.
	ContentFilterStrength_HIGH ContentFilterStrength = "HIGH"
)

type ContentFilterType

type ContentFilterType string

The type of harmful category usable in a content filter. Experimental.

const (
	// Describes input prompts and model responses that indicates sexual interest, activity, or arousal using direct or indirect references to body parts, physical traits, or sex.
	// Experimental.
	ContentFilterType_SEXUAL ContentFilterType = "SEXUAL"
	// Describes input prompts and model responses that includes glorification of or threats to inflict physical pain, hurt, or injury toward a person, group or thing.
	// Experimental.
	ContentFilterType_VIOLENCE ContentFilterType = "VIOLENCE"
	// Describes input prompts and model responses that discriminate, criticize, insult, denounce, or dehumanize a person or group on the basis of an identity (such as race, ethnicity, gender, religion, sexual orientation, ability, and national origin).
	// Experimental.
	ContentFilterType_HATE ContentFilterType = "HATE"
	// Describes input prompts and model responses that includes demeaning, humiliating, mocking, insulting, or belittling language.
	//
	// This type of language is also labeled
	// as bullying.
	// Experimental.
	ContentFilterType_INSULTS ContentFilterType = "INSULTS"
	// Describes input prompts and model responses that seeks or provides information about engaging in misconduct activity, or harming, defrauding, or taking advantage of a person, group or institution.
	// Experimental.
	ContentFilterType_MISCONDUCT ContentFilterType = "MISCONDUCT"
	// Enable to detect and block user inputs attempting to override system instructions.
	//
	// To avoid misclassifying system prompts as a prompt attack and ensure that the filters
	// are selectively applied to user inputs, use input tagging.
	// Experimental.
	ContentFilterType_PROMPT_ATTACK ContentFilterType = "PROMPT_ATTACK"
)

type ContextEnrichment

type ContextEnrichment interface {
	// The CloudFormation property representation of this configuration.
	// Experimental.
	Configuration() *awsbedrock.CfnDataSource_ContextEnrichmentConfigurationProperty
	// Experimental.
	SetConfiguration(val *awsbedrock.CfnDataSource_ContextEnrichmentConfigurationProperty)
	// Experimental.
	GeneratePolicyStatements() *[]awsiam.PolicyStatement
}

Abstract class representing a context enrichment strategy.

The enrichment stategy used to provide additional context. For example, Neptune GraphRAG uses Amazon Bedrock foundation models to perform chunk entity extraction. Experimental.

func ContextEnrichment_FoundationModel

func ContextEnrichment_FoundationModel(props *FoundationModelContextEnrichmentProps) ContextEnrichment

Creates a Foundation Model-based enrichment strategy used to provide additional context to the RAG application. Experimental.

type ContextEnrichmentType

type ContextEnrichmentType string

Enum representing the type of context enrichment. Experimental.

const (
	// Uses a Bedrock Foundation Model for context enrichment.
	// Experimental.
	ContextEnrichmentType_BEDROCK_FOUNDATION_MODEL ContextEnrichmentType = "BEDROCK_FOUNDATION_MODEL"
)

type ContextualGroundingFilter

type ContextualGroundingFilter struct {
	// The threshold for the contextual grounding filter.
	//
	// - `0` (blocks nothing)
	// - `0.99` (blocks almost everything)
	// Experimental.
	Threshold *float64 `field:"required" json:"threshold" yaml:"threshold"`
	// The type of contextual grounding filter.
	// Experimental.
	Type ContextualGroundingFilterType `field:"required" json:"type" yaml:"type"`
	// The action to take when contextual grounding is detected.
	// Experimental.
	Action GuardrailAction `field:"optional" json:"action" yaml:"action"`
	// Whether the contextual grounding filter is enabled.
	// Experimental.
	Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"`
}

Interface to define a Contextual Grounding Filter. Experimental.

type ContextualGroundingFilterType

type ContextualGroundingFilterType string

The type of contextual grounding filter. Experimental.

const (
	// Grounding score represents the confidence that the model response is factually correct and grounded in the source.
	//
	// If the model response has a lower score than
	// the defined threshold, the response will be blocked and the configured blocked
	// message will be returned to the user. A higher threshold level blocks more responses.
	// Experimental.
	ContextualGroundingFilterType_GROUNDING ContextualGroundingFilterType = "GROUNDING"
	// Relevance score represents the confidence that the model response is relevant to the user's query.
	//
	// If the model response has a lower score than the defined
	// threshold, the response will be blocked and the configured blocked message will
	// be returned to the user. A higher threshold level blocks more responses.
	// Experimental.
	ContextualGroundingFilterType_RELEVANCE ContextualGroundingFilterType = "RELEVANCE"
)

type CrawlingFilters

type CrawlingFilters struct {
	// Exclude paths.
	// Experimental.
	ExcludePatterns *[]*string `field:"optional" json:"excludePatterns" yaml:"excludePatterns"`
	// Include patterns.
	// Experimental.
	IncludePatterns *[]*string `field:"optional" json:"includePatterns" yaml:"includePatterns"`
}

The filters (regular expression patterns) to include or exclude in the crawling in accordance with your scope. Experimental.

type CrawlingScope

type CrawlingScope string

The scope of the crawling. Experimental.

const (
	// Crawls only web pages that belong to the same host or primary domain.
	// Experimental.
	CrawlingScope_HOST_ONLY CrawlingScope = "HOST_ONLY"
	// Includes subdomains in addition to the host or primary domain, i.e. web pages that contain "aws.amazon.com" can also include sub domain "docs.aws.amazon.com".
	// Experimental.
	CrawlingScope_SUBDOMAINS CrawlingScope = "SUBDOMAINS"
	// Limit crawling to web pages that belong to the same host and with the same initial URL path.
	// Experimental.
	CrawlingScope_DEFAULT CrawlingScope = "DEFAULT"
)

type CrossRegionInferenceProfile

type CrossRegionInferenceProfile interface {
	IInferenceProfile
	IInvokable
	// Inference profile ARN.
	// Experimental.
	InferenceProfileArn() *string
	// Inference profile ID.
	// Experimental.
	InferenceProfileId() *string
	// The underlying model supporting cross-region inference.
	// Experimental.
	InferenceProfileModel() BedrockFoundationModel
	// This equals to the inferenceProfileArn property, useful just to implement IInvokable interface.
	// Experimental.
	InvokableArn() *string
	// Inference profile type.
	// Experimental.
	Type() InferenceProfileType
	// Gives the appropriate policies to invoke and use the Foundation Model.
	// Experimental.
	GrantInvoke(grantee awsiam.IGrantable) awsiam.Grant
	// Grants appropriate permissions to use the cross-region inference profile.
	//
	// Does not grant permissions to use the model in the profile.
	// Experimental.
	GrantProfileUsage(grantee awsiam.IGrantable) awsiam.Grant
}

Cross-region inference enables you to seamlessly manage unplanned traffic bursts by utilizing compute across different AWS Regions.

With cross-region inference, you can distribute traffic across multiple AWS Regions, enabling higher throughput and enhanced resilience during periods of peak demands. See: https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html

Experimental.

func CrossRegionInferenceProfile_FromConfig

func CrossRegionInferenceProfile_FromConfig(config *CrossRegionInferenceProfileProps) CrossRegionInferenceProfile

Experimental.

type CrossRegionInferenceProfileProps

type CrossRegionInferenceProfileProps struct {
	// The geographic region where the traffic is going to be distributed.
	//
	// Routing
	// factors in user traffic, demand and utilization of resources.
	// Experimental.
	GeoRegion CrossRegionInferenceProfileRegion `field:"required" json:"geoRegion" yaml:"geoRegion"`
	// A model supporting cross-region inference.
	// See: https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference-support.html
	//
	// Experimental.
	Model BedrockFoundationModel `field:"required" json:"model" yaml:"model"`
}

**************************************************************************** PROPS FOR NEW CONSTRUCT ***************************************************************************. Experimental.

type CrossRegionInferenceProfileRegion

type CrossRegionInferenceProfileRegion string

Experimental.

const (
	// Cross-region Inference Identifier for the European area.
	//
	// According to the model chosen, this might include:
	// - Frankfurt (`eu-central-1`)
	// - Ireland (`eu-west-1`)
	// - Paris (`eu-west-3`).
	// Experimental.
	CrossRegionInferenceProfileRegion_EU CrossRegionInferenceProfileRegion = "EU"
	// Cross-region Inference Identifier for the United States area.
	//
	// According to the model chosen, this might include:
	// - N. Virginia (`us-east-1`)
	// - Oregon (`us-west-2`)
	// - Ohio (`us-east-2`).
	// Experimental.
	CrossRegionInferenceProfileRegion_US CrossRegionInferenceProfileRegion = "US"
	// Cross-region Inference Identifier for the Asia-Pacific area.
	//
	// According to the model chosen, this might include:
	// - Tokyo (`ap-northeast-1`)
	// - Seoul (`ap-northeast-2`)
	// - Mumbai (`ap-south-1`)
	// - Singapore (`ap-southeast-1`)
	// - Sydney (`ap-southeast-2`).
	// Experimental.
	CrossRegionInferenceProfileRegion_APAC CrossRegionInferenceProfileRegion = "APAC"
)

type CustomDataSource

type CustomDataSource interface {
	DataSourceNew
	// The unique identifier of the data source.
	//
	// Example:
	//   "JHUEVXUZMU"
	//
	// Experimental.
	DataSourceId() *string
	// The name of the data source.
	// Experimental.
	DataSourceName() *string
	// The type of data source.
	// Experimental.
	DataSourceType() DataSourceType
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// The KMS key to use to encrypt the data source.
	// Experimental.
	KmsKey() awskms.IKey
	// The knowledge base associated with the data source.
	// Experimental.
	KnowledgeBase() IKnowledgeBase
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Formats the data source configuration properties for CloudFormation.
	// Experimental.
	FormatAsCfnProps(props *DataSourceAssociationProps, dataSourceConfiguration *awsbedrock.CfnDataSource_DataSourceConfigurationProperty) *awsbedrock.CfnDataSourceProps
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Adds appropriate permissions to the KB execution role needed by the data source.
	// Experimental.
	HandleCommonPermissions(props *DataSourceAssociationProps)
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Sets up a custom Data Source to be added to a knowledge base. Experimental.

func NewCustomDataSource

func NewCustomDataSource(scope constructs.Construct, id *string, props *CustomDataSourceProps) CustomDataSource

Experimental.

type CustomDataSourceAssociationProps

type CustomDataSourceAssociationProps struct {
	// The chunking stategy to use for splitting your documents or content.
	//
	// The chunks are then converted to embeddings and written to the vector
	// index allowing for similarity search and retrieval of the content.
	// Default: ChunkingStrategy.DEFAULT
	//
	// Experimental.
	ChunkingStrategy ChunkingStrategy `field:"optional" json:"chunkingStrategy" yaml:"chunkingStrategy"`
	// The context enrichment configuration to use.
	// Default: - No context enrichment is used.
	//
	// Experimental.
	ContextEnrichment ContextEnrichment `field:"optional" json:"contextEnrichment" yaml:"contextEnrichment"`
	// The custom transformation strategy to use.
	// Default: - No custom transformation is used.
	//
	// Experimental.
	CustomTransformation CustomTransformation `field:"optional" json:"customTransformation" yaml:"customTransformation"`
	// The data deletion policy to apply to the data source.
	// Default: - Sets the data deletion policy to the default of the data source type.
	//
	// Experimental.
	DataDeletionPolicy DataDeletionPolicy `field:"optional" json:"dataDeletionPolicy" yaml:"dataDeletionPolicy"`
	// The name of the data source.
	// Default: - A new name will be generated.
	//
	// Experimental.
	DataSourceName *string `field:"optional" json:"dataSourceName" yaml:"dataSourceName"`
	// A description of the data source.
	// Default: - No description is provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The KMS key to use to encrypt the data source.
	// Default: - Service owned and managed key.
	//
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
	// The parsing strategy to use.
	// Default: - No Parsing Stategy is used.
	//
	// Experimental.
	ParsingStrategy ParsingStrategy `field:"optional" json:"parsingStrategy" yaml:"parsingStrategy"`
}

Interface to add a new CustomDataSource to an existing KB. Experimental.

type CustomDataSourceProps

type CustomDataSourceProps struct {
	// The chunking stategy to use for splitting your documents or content.
	//
	// The chunks are then converted to embeddings and written to the vector
	// index allowing for similarity search and retrieval of the content.
	// Default: ChunkingStrategy.DEFAULT
	//
	// Experimental.
	ChunkingStrategy ChunkingStrategy `field:"optional" json:"chunkingStrategy" yaml:"chunkingStrategy"`
	// The context enrichment configuration to use.
	// Default: - No context enrichment is used.
	//
	// Experimental.
	ContextEnrichment ContextEnrichment `field:"optional" json:"contextEnrichment" yaml:"contextEnrichment"`
	// The custom transformation strategy to use.
	// Default: - No custom transformation is used.
	//
	// Experimental.
	CustomTransformation CustomTransformation `field:"optional" json:"customTransformation" yaml:"customTransformation"`
	// The data deletion policy to apply to the data source.
	// Default: - Sets the data deletion policy to the default of the data source type.
	//
	// Experimental.
	DataDeletionPolicy DataDeletionPolicy `field:"optional" json:"dataDeletionPolicy" yaml:"dataDeletionPolicy"`
	// The name of the data source.
	// Default: - A new name will be generated.
	//
	// Experimental.
	DataSourceName *string `field:"optional" json:"dataSourceName" yaml:"dataSourceName"`
	// A description of the data source.
	// Default: - No description is provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The KMS key to use to encrypt the data source.
	// Default: - Service owned and managed key.
	//
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
	// The parsing strategy to use.
	// Default: - No Parsing Stategy is used.
	//
	// Experimental.
	ParsingStrategy ParsingStrategy `field:"optional" json:"parsingStrategy" yaml:"parsingStrategy"`
	// The knowledge base to associate with the data source.
	// Experimental.
	KnowledgeBase IKnowledgeBase `field:"required" json:"knowledgeBase" yaml:"knowledgeBase"`
}

Interface to create a new Custom Data Source object. Experimental.

type CustomOrchestration

type CustomOrchestration struct {
	// The Lambda function to use for custom orchestration.
	// Experimental.
	Executor OrchestrationExecutor `field:"required" json:"executor" yaml:"executor"`
}

Configuration for custom orchestration of the agent. Experimental.

type CustomParserProps

type CustomParserProps struct {
	// Experimental.
	Parser awslambda.IFunction `field:"optional" json:"parser" yaml:"parser"`
	// Experimental.
	Steps *[]*PromptStepConfigurationCustomParser `field:"optional" json:"steps" yaml:"steps"`
}

Experimental.

type CustomTopicProps

type CustomTopicProps struct {
	// Provide a clear definition to detect and block user inputs and FM responses that fall into this topic.
	//
	// Avoid starting with "don't".
	//
	// Example:
	//   `Investment advice refers to inquiries, guidance, or recommendations
	//   regarding the management or allocation of funds or assets with the goal of
	//   generating returns or achieving specific financial objectives.`
	//
	// Experimental.
	Definition *string `field:"required" json:"definition" yaml:"definition"`
	// Representative phrases that refer to the topic.
	//
	// These phrases can represent
	// a user input or a model response. Add up to 5 phrases, up to 100 characters
	// each.
	//
	// Example:
	//   "Where should I invest my money?"
	//
	// Experimental.
	Examples *[]*string `field:"required" json:"examples" yaml:"examples"`
	// The name of the topic to deny.
	// Experimental.
	Name *string `field:"required" json:"name" yaml:"name"`
	// The action to take when a topic is detected in the input.
	// Experimental.
	InputAction GuardrailAction `field:"optional" json:"inputAction" yaml:"inputAction"`
	// Whether the topic filter is enabled for input.
	// Experimental.
	InputEnabled *bool `field:"optional" json:"inputEnabled" yaml:"inputEnabled"`
	// The action to take when a topic is detected in the output.
	// Experimental.
	OutputAction GuardrailAction `field:"optional" json:"outputAction" yaml:"outputAction"`
	// Whether the topic filter is enabled for output.
	// Experimental.
	OutputEnabled *bool `field:"optional" json:"outputEnabled" yaml:"outputEnabled"`
}

Interface for creating a custom Topic. Experimental.

type CustomTransformation

type CustomTransformation interface {
	// The CloudFormation property representation of this custom transformation configuration.
	// Experimental.
	Configuration() *awsbedrock.CfnDataSource_CustomTransformationConfigurationProperty
	// Experimental.
	SetConfiguration(val *awsbedrock.CfnDataSource_CustomTransformationConfigurationProperty)
	// Experimental.
	GeneratePolicyStatements(scope constructs.Construct) *[]awsiam.PolicyStatement
}

Represents a custom transformation configuration for a data source ingestion. See: https://docs.aws.amazon.com/bedrock/latest/userguide/kb-chunking-parsing.html#kb-custom-transformation

Experimental.

func CustomTransformation_Lambda

func CustomTransformation_Lambda(props *LambdaCustomTransformationProps) CustomTransformation

This feature allows you to use a Lambda function to inject your own logic into the knowledge base ingestion process. See: https://github.com/aws-samples/amazon-bedrock-samples/blob/main/knowledge-bases/features-examples/02-optimizing-accuracy-retrieved-results/advanced_chunking_options.ipynb

Experimental.

type DataDeletionPolicy

type DataDeletionPolicy string

Specifies the policy for handling data when a data source resource is deleted.

This policy affects the vector embeddings created from the data source. Experimental.

const (
	// Deletes all vector embeddings derived from the data source upon deletion of a data source resource.
	// Experimental.
	DataDeletionPolicy_DELETE DataDeletionPolicy = "DELETE"
	// Retains all vector embeddings derived from the data source even after deletion of a data source resource.
	// Experimental.
	DataDeletionPolicy_RETAIN DataDeletionPolicy = "RETAIN"
)

type DataSource

type DataSource interface {
	DataSourceBase
	// The unique identifier of the data source.
	// Experimental.
	DataSourceId() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Experimental.

type DataSourceAssociationProps

type DataSourceAssociationProps struct {
	// The chunking stategy to use for splitting your documents or content.
	//
	// The chunks are then converted to embeddings and written to the vector
	// index allowing for similarity search and retrieval of the content.
	// Default: ChunkingStrategy.DEFAULT
	//
	// Experimental.
	ChunkingStrategy ChunkingStrategy `field:"optional" json:"chunkingStrategy" yaml:"chunkingStrategy"`
	// The context enrichment configuration to use.
	// Default: - No context enrichment is used.
	//
	// Experimental.
	ContextEnrichment ContextEnrichment `field:"optional" json:"contextEnrichment" yaml:"contextEnrichment"`
	// The custom transformation strategy to use.
	// Default: - No custom transformation is used.
	//
	// Experimental.
	CustomTransformation CustomTransformation `field:"optional" json:"customTransformation" yaml:"customTransformation"`
	// The data deletion policy to apply to the data source.
	// Default: - Sets the data deletion policy to the default of the data source type.
	//
	// Experimental.
	DataDeletionPolicy DataDeletionPolicy `field:"optional" json:"dataDeletionPolicy" yaml:"dataDeletionPolicy"`
	// The name of the data source.
	// Default: - A new name will be generated.
	//
	// Experimental.
	DataSourceName *string `field:"optional" json:"dataSourceName" yaml:"dataSourceName"`
	// A description of the data source.
	// Default: - No description is provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The KMS key to use to encrypt the data source.
	// Default: - Service owned and managed key.
	//
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
	// The parsing strategy to use.
	// Default: - No Parsing Stategy is used.
	//
	// Experimental.
	ParsingStrategy ParsingStrategy `field:"optional" json:"parsingStrategy" yaml:"parsingStrategy"`
}

Properties common for creating any of the different data source types. Experimental.

type DataSourceBase

type DataSourceBase interface {
	awscdk.Resource
	IDataSource
	// The unique identifier of the data source.
	//
	// Example:
	//   "JHUEVXUZMU"
	//
	// Experimental.
	DataSourceId() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Specifies the base class for all data source resources (imported and new). Experimental.

type DataSourceNew

type DataSourceNew interface {
	DataSourceBase
	// The unique identifier of the data source.
	//
	// Example:
	//   "JHUEVXUZMU"
	//
	// Experimental.
	DataSourceId() *string
	// The name of the data source.
	// Experimental.
	DataSourceName() *string
	// The type of data source.
	// Experimental.
	DataSourceType() DataSourceType
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// The KMS key to use to encrypt the data source.
	// Experimental.
	KmsKey() awskms.IKey
	// The knowledge base associated with the data source.
	// Experimental.
	KnowledgeBase() IKnowledgeBase
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Formats the data source configuration properties for CloudFormation.
	// Experimental.
	FormatAsCfnProps(props *DataSourceAssociationProps, dataSourceConfiguration *awsbedrock.CfnDataSource_DataSourceConfigurationProperty) *awsbedrock.CfnDataSourceProps
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Adds appropriate permissions to the KB execution role needed by the data source.
	// Experimental.
	HandleCommonPermissions(props *DataSourceAssociationProps)
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Specifies the base class for all NEW data source resources of ANY type. Experimental.

type DataSourceType

type DataSourceType string

Represents the types of data sources that can be associated to an Knowledge Base. Experimental.

const (
	// Amazon S3 Bucket data source.
	// Experimental.
	DataSourceType_S3 DataSourceType = "S3"
	// Confluence Cloud Instance data source.
	// Experimental.
	DataSourceType_CONFLUENCE DataSourceType = "CONFLUENCE"
	// Salesforce instance data source.
	// Experimental.
	DataSourceType_SALESFORCE DataSourceType = "SALESFORCE"
	// Microsoft SharePoint instance data source.
	// Experimental.
	DataSourceType_SHAREPOINT DataSourceType = "SHAREPOINT"
	// Web Crawler data source.
	//
	// Extracts content from authorized public web pages using a crawler.
	// Experimental.
	DataSourceType_WEB_CRAWLER DataSourceType = "WEB_CRAWLER"
	// Custom data source.
	//
	// A custom data source allows the flexibility to automatically ingest documents
	// into your vector database directly.
	// Experimental.
	DataSourceType_CUSTOM DataSourceType = "CUSTOM"
	// Redshift Metadata data source.
	// Experimental.
	DataSourceType_REDSHIFT_METADATA DataSourceType = "REDSHIFT_METADATA"
)

type DefaultPromptRouterIdentifier

type DefaultPromptRouterIdentifier interface {
	// Experimental.
	PromptRouterId() *string
	// Experimental.
	RoutingModels() *[]BedrockFoundationModel
}

Represents identifiers for default prompt routers in Bedrock. Experimental.

func DefaultPromptRouterIdentifier_ANTHROPIC_CLAUDE_V1

func DefaultPromptRouterIdentifier_ANTHROPIC_CLAUDE_V1() DefaultPromptRouterIdentifier

func DefaultPromptRouterIdentifier_META_LLAMA_3_1

func DefaultPromptRouterIdentifier_META_LLAMA_3_1() DefaultPromptRouterIdentifier

type EnrichmentStrategyConfigurationType

type EnrichmentStrategyConfigurationType string

Enum representing the method to be used for enrichment strategy. Experimental.

const (
	// Experimental.
	EnrichmentStrategyConfigurationType_CHUNK_ENTITY_EXTRACTION EnrichmentStrategyConfigurationType = "CHUNK_ENTITY_EXTRACTION"
)

type FoundationModelContextEnrichmentProps

type FoundationModelContextEnrichmentProps struct {
	// The Bedrock Foundation Model configuration for context enrichment.
	// Experimental.
	EnrichmentModel IInvokable `field:"required" json:"enrichmentModel" yaml:"enrichmentModel"`
}

Properties for configuring a Foundation Model enrichment strategy. Experimental.

type FoundationModelParsingStrategyProps

type FoundationModelParsingStrategyProps struct {
	// The Foundation Model to use for parsing non-textual information.
	//
	// Currently supported models are Claude 3 Sonnet and Claude 3 Haiku.
	// Experimental.
	ParsingModel IInvokable `field:"required" json:"parsingModel" yaml:"parsingModel"`
	// Specifies whether to enable parsing of multimodal data, including both text and/or images.
	// Default: undefined - Text only.
	//
	// Experimental.
	ParsingModality ParsingModality `field:"optional" json:"parsingModality" yaml:"parsingModality"`
	// Custom prompt to instruct the parser on how to interpret the document.
	// Default: - Uses the default instruction prompt as provided in the AWS Console.
	//
	// Experimental.
	ParsingPrompt *string `field:"optional" json:"parsingPrompt" yaml:"parsingPrompt"`
}

Properties for configuring a Foundation Model parsing strategy. Experimental.

type GraphKnowledgeBase

type GraphKnowledgeBase interface {
	GraphKnowledgeBaseBase
	// The description of the knowledge base.
	// Experimental.
	Description() *string
	// The embeddings model for the knowledge base.
	// Experimental.
	EmbeddingModel() BedrockFoundationModel
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// The vector field mapping configuration.
	// Experimental.
	FieldMapping() *VectorFieldMapping
	// Experimental.
	Graph() neptune.INeptuneGraph
	// A narrative instruction of the knowledge base.
	//
	// A Bedrock Agent can use this instruction to determine if it should
	// query this Knowledge Base.
	// Experimental.
	Instruction() *string
	// The ARN of the knowledge base.
	// Experimental.
	KnowledgeBaseArn() *string
	// The ID of the knowledge base.
	// Experimental.
	KnowledgeBaseId() *string
	// The name of the knowledge base.
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	Notebook() neptune.NeptuneGraphNotebook
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The role associated with the knowledge base.
	// Experimental.
	Role() awsiam.IRole
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// The type of knowledge base.
	// Experimental.
	Type() KnowledgeBaseType
	// The storage type for the Vector Embeddings.
	// Experimental.
	VectorStoreType() VectorStoreType
	// Add a Confluence data source to the knowledge base.
	// Experimental.
	AddConfluenceDataSource(props *ConfluenceDataSourceAssociationProps) ConfluenceDataSource
	// Add a Custom data source to the knowledge base.
	// Experimental.
	AddCustomDataSource(props *CustomDataSourceAssociationProps) CustomDataSource
	// Adds an S3 data source to the knowledge base.
	// Experimental.
	AddS3DataSource(props *S3DataSourceAssociationProps) S3DataSource
	// Add a Salesforce data source to the knowledge base.
	// Experimental.
	AddSalesforceDataSource(props *SalesforceDataSourceAssociationProps) SalesforceDataSource
	// Add a SharePoint data source to the knowledge base.
	// Experimental.
	AddSharePointDataSource(props *SharePointDataSourceAssociationProps) SharePointDataSource
	// Add a web crawler data source to the knowledge base.
	// Experimental.
	AddWebCrawlerDataSource(props *WebCrawlerDataSourceAssociationProps) WebCrawlerDataSource
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Grant the given principal identity permissions to perform actions on this knowledge base.
	// Experimental.
	Grant(grantee awsiam.IGrantable, actions ...*string) awsiam.Grant
	// Grant the given identity permissions to query the knowledge base.
	//
	// This contains:
	// - Retrieve
	// - RetrieveAndGenerate.
	// Experimental.
	GrantQuery(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to retrieve content from the knowledge base.
	// Experimental.
	GrantRetrieve(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to retrieve content from the knowledge base.
	// Experimental.
	GrantRetrieveAndGenerate(grantee awsiam.IGrantable) awsiam.Grant
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Creates a new Amazon Bedrock Knowledge Base using a Neptune Analytics vector store, this is also known as GraphRAG.

GraphRAG is a capability that combines graph modeling with generative AI to enhance retrieval-augmented generation (RAG). It automatically identifies and leverages relationships between entities and structural elements within documents, enabling more comprehensive and contextually relevant responses from foundation models.

Key benefits: - More relevant responses by leveraging relationships between entities and structural elements across documents - Enhanced search capabilities that connect content through multiple logical steps - Better cross-document reasoning for more precise and contextually accurate answers - Reduced hallucinations through improved information connectivity

Limitations: - AWS PrivateLink VPC endpoint connectivity is not supported - Graph build configuration options are not customizable - Autoscaling is not supported for Neptune Analytics graphs - Only supports Amazon S3 as data source - Uses Claude 3 Haiku model for automatic graph building with contextual enrichment - Each data source limited to 1000 files (can be increased to max 10000 files). See: https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-build-graphs.html

Experimental.

func NewGraphKnowledgeBase

func NewGraphKnowledgeBase(scope constructs.Construct, id *string, props *GraphKnowledgeBaseProps) GraphKnowledgeBase

Experimental.

type GraphKnowledgeBaseAttributes

type GraphKnowledgeBaseAttributes struct {
	// The Service Execution Role associated with the knowledge base.
	//
	// Example:
	//   "arn:aws:iam::123456789012:role/AmazonBedrockExecutionRoleForKnowledgeBaseawscdkbdgeBaseKB12345678"
	//
	// Experimental.
	ExecutionRoleArn *string `field:"required" json:"executionRoleArn" yaml:"executionRoleArn"`
	// The ID of the knowledge base.
	//
	// Example:
	//   "KB12345678"
	//
	// Experimental.
	KnowledgeBaseId *string `field:"required" json:"knowledgeBaseId" yaml:"knowledgeBaseId"`
	// The description of the knowledge base.
	// Default: - No description provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Instructions for agents based on the design and type of information of the Knowledge Base.
	//
	// This will impact how Agents interact with the Knowledge Base.
	// Default: - No description provided.
	//
	// Experimental.
	Instruction *string `field:"optional" json:"instruction" yaml:"instruction"`
	// Specifies whether to use the knowledge base or not when sending an InvokeAgent request.
	// Default: - ENABLED.
	//
	// Experimental.
	KnowledgeBaseState *string `field:"optional" json:"knowledgeBaseState" yaml:"knowledgeBaseState"`
	// The vector field mapping configuration.
	// Default: - { metadataField: "AMAZON_BEDROCK_METADATA", textField: "AMAZON_BEDROCK_TEXT" }.
	//
	// Experimental.
	FieldMapping *VectorFieldMapping `field:"required" json:"fieldMapping" yaml:"fieldMapping"`
	// The ID of the Neptune Analytics vector store.
	// Experimental.
	GraphId *string `field:"required" json:"graphId" yaml:"graphId"`
}

Properties for importing a knowledge base outside of this stack. Experimental.

type GraphKnowledgeBaseBase

type GraphKnowledgeBaseBase interface {
	VectorKnowledgeBaseBase
	// The description of the knowledge base.
	// Experimental.
	Description() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// Experimental.
	Graph() neptune.INeptuneGraph
	// A narrative instruction of the knowledge base.
	//
	// A Bedrock Agent can use this instruction to determine if it should
	// query this Knowledge Base.
	// Experimental.
	Instruction() *string
	// The ARN of the knowledge base.
	// Experimental.
	KnowledgeBaseArn() *string
	// The ID of the knowledge base.
	// Experimental.
	KnowledgeBaseId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The role associated with the knowledge base.
	// Experimental.
	Role() awsiam.IRole
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// The type of knowledge base.
	// Experimental.
	Type() KnowledgeBaseType
	// The storage type for the Vector Embeddings.
	// Experimental.
	VectorStoreType() VectorStoreType
	// Add a Confluence data source to the knowledge base.
	// Experimental.
	AddConfluenceDataSource(props *ConfluenceDataSourceAssociationProps) ConfluenceDataSource
	// Add a Custom data source to the knowledge base.
	// Experimental.
	AddCustomDataSource(props *CustomDataSourceAssociationProps) CustomDataSource
	// Adds an S3 data source to the knowledge base.
	// Experimental.
	AddS3DataSource(props *S3DataSourceAssociationProps) S3DataSource
	// Add a Salesforce data source to the knowledge base.
	// Experimental.
	AddSalesforceDataSource(props *SalesforceDataSourceAssociationProps) SalesforceDataSource
	// Add a SharePoint data source to the knowledge base.
	// Experimental.
	AddSharePointDataSource(props *SharePointDataSourceAssociationProps) SharePointDataSource
	// Add a web crawler data source to the knowledge base.
	// Experimental.
	AddWebCrawlerDataSource(props *WebCrawlerDataSourceAssociationProps) WebCrawlerDataSource
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Grant the given principal identity permissions to perform actions on this knowledge base.
	// Experimental.
	Grant(grantee awsiam.IGrantable, actions ...*string) awsiam.Grant
	// Grant the given identity permissions to query the knowledge base.
	//
	// This contains:
	// - Retrieve
	// - RetrieveAndGenerate.
	// Experimental.
	GrantQuery(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to retrieve content from the knowledge base.
	// Experimental.
	GrantRetrieve(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to retrieve content from the knowledge base.
	// Experimental.
	GrantRetrieveAndGenerate(grantee awsiam.IGrantable) awsiam.Grant
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

**************************************************************************** ABSTRACT CLASS ***************************************************************************. Experimental.

type GraphKnowledgeBaseProps

type GraphKnowledgeBaseProps struct {
	// The description of the knowledge base.
	// Default: - No description provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Existing IAM role with policy statements granting appropriate permissions to invoke the specific embeddings models.
	//
	// Any entity (e.g., an AWS service or application) that assumes
	// this role will be able to invoke or use the
	// specified embeddings model within the Bedrock service.
	// Experimental.
	ExistingRole awsiam.IRole `field:"optional" json:"existingRole" yaml:"existingRole"`
	// A narrative description of the knowledge base.
	//
	// A Bedrock Agent can use this instruction to determine if it should
	// query this Knowledge Base.
	// Default: - No description provided.
	//
	// Experimental.
	Instruction *string `field:"optional" json:"instruction" yaml:"instruction"`
	// The name of the knowledge base.
	// Experimental.
	Name *string `field:"optional" json:"name" yaml:"name"`
	// The embeddings model for the knowledge base.
	// Experimental.
	EmbeddingModel BedrockFoundationModel `field:"required" json:"embeddingModel" yaml:"embeddingModel"`
	// The vector field mapping configuration.
	// Default: - { metadataField: "AMAZON_BEDROCK_METADATA", textField: "AMAZON_BEDROCK_TEXT" }.
	//
	// Experimental.
	FieldMapping *VectorFieldMapping `field:"optional" json:"fieldMapping" yaml:"fieldMapping"`
	// The Neptune Analytics vector store.
	// Default: - A new Neptune Analytics vector store is created.
	//
	// Experimental.
	Graph neptune.INeptuneGraph `field:"optional" json:"graph" yaml:"graph"`
}

Properties for creating a Kendra Index Knowledge Base. Experimental.

type Guardrail

type Guardrail interface {
	GuardrailBase
	// The content filters applied by the guardrail.
	// Experimental.
	ContentFilters() *[]*ContentFilter
	// The contextual grounding filters applied by the guardrail.
	// Experimental.
	ContextualGroundingFilters() *[]*ContextualGroundingFilter
	// The denied topic filters applied by the guardrail.
	// Experimental.
	DeniedTopics() *[]Topic
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// The ARN of the guardrail.
	// Experimental.
	GuardrailArn() *string
	// The ID of the guardrail.
	// Experimental.
	GuardrailId() *string
	// The version of the guardrail.
	//
	// By default, this value will always be `DRAFT` unless an explicit version is created.
	// For an explicit version created, this will usually be a number (e.g. for Version 1 just enter "1")
	//
	// Example:
	//   "1"
	//
	// Default: - "DRAFT".
	//
	// Experimental.
	GuardrailVersion() *string
	// Experimental.
	SetGuardrailVersion(val *string)
	// The computed hash of the guardrail properties.
	// Experimental.
	Hash() *string
	// The KMS key used to encrypt data.
	// Default: undefined - "Data is encrypted by default with a key that AWS owns and manages for you".
	//
	// Experimental.
	KmsKey() awskms.IKey
	// When this guardrail was last updated.
	// Experimental.
	LastUpdated() *string
	// The managed word list filters applied by the guardrail.
	// Experimental.
	ManagedWordListFilters() *[]*ManagedWordFilter
	// The name of the guardrail.
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The PII filters applied by the guardrail.
	// Experimental.
	PiiFilters() *[]*PIIFilter
	// The regex filters applied by the guardrail.
	// Experimental.
	RegexFilters() *[]*RegexFilter
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// The word filters applied by the guardrail.
	// Experimental.
	WordFilters() *[]*WordFilter
	// Adds a content filter to the guardrail.
	// Experimental.
	AddContentFilter(filter *ContentFilter)
	// Adds a contextual grounding filter to the guardrail.
	// Experimental.
	AddContextualGroundingFilter(filter *ContextualGroundingFilter)
	// Adds a denied topic filter to the guardrail.
	// Experimental.
	AddDeniedTopicFilter(filter Topic)
	// Adds a managed word list filter to the guardrail.
	// Experimental.
	AddManagedWordListFilter(filter *ManagedWordFilter)
	// Adds a PII filter to the guardrail.
	// Experimental.
	AddPIIFilter(filter *PIIFilter)
	// Adds a regex filter to the guardrail.
	// Experimental.
	AddRegexFilter(filter *RegexFilter)
	// Adds a word filter to the guardrail.
	// Experimental.
	AddWordFilter(filter *WordFilter)
	// Adds a word filter to the guardrail.
	// Experimental.
	AddWordFilterFromFile(filePath *string, inputAction GuardrailAction, outputAction GuardrailAction, inputEnabled *bool, outputEnabled *bool)
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Create a version for the guardrail.
	//
	// Returns: The guardrail version.
	// Experimental.
	CreateVersion(description *string) *string
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Grant the given principal identity permissions to perform actions on this agent alias.
	// Experimental.
	Grant(grantee awsiam.IGrantable, actions ...*string) awsiam.Grant
	// Grant the given identity permissions to apply the guardrail.
	// Experimental.
	GrantApply(grantee awsiam.IGrantable) awsiam.Grant
	// Return the given named metric for this guardrail.
	//
	// By default, the metric will be calculated as a sum over a period of 5 minutes.
	// You can customize this by using the `statistic` and `period` properties.
	// Experimental.
	Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocation client errors metric for this guardrail.
	// Experimental.
	MetricInvocationClientErrors(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocation latency metric for this guardrail.
	// Experimental.
	MetricInvocationLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocations metric for this guardrail.
	// Experimental.
	MetricInvocations(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocation server errors metric for this guardrail.
	// Experimental.
	MetricInvocationServerErrors(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocations intervened metric for this guardrail.
	// Experimental.
	MetricInvocationsIntervened(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocation throttles metric for this guardrail.
	// Experimental.
	MetricInvocationThrottles(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the text unit count metric for this guardrail.
	// Experimental.
	MetricTextUnitCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Class to create a Guardrail with CDK. Experimental.

func NewGuardrail

func NewGuardrail(scope constructs.Construct, id *string, props *GuardrailProps) Guardrail

Experimental.

type GuardrailAction

type GuardrailAction string

Guardrail action when a sensitive entity is detected. Experimental.

const (
	// If sensitive information is detected in the prompt or response, the guardrail blocks all the content and returns a message that you configure.
	// Experimental.
	GuardrailAction_BLOCK GuardrailAction = "BLOCK"
	// If sensitive information is detected in the model response, the guardrail masks it with an identifier, the sensitive information is masked and replaced with identifier tags (for example: [NAME-1], [NAME-2], [EMAIL-1], etc.).
	// Experimental.
	GuardrailAction_ANONYMIZE GuardrailAction = "ANONYMIZE"
	// Do not take any action.
	// Experimental.
	GuardrailAction_NONE GuardrailAction = "NONE"
)

type GuardrailAttributes

type GuardrailAttributes struct {
	// The ARN of the guardrail.
	//
	// At least one of guardrailArn or guardrailId must be
	// defined in order to initialize a guardrail ref.
	// Experimental.
	GuardrailArn *string `field:"required" json:"guardrailArn" yaml:"guardrailArn"`
	// The version of the guardrail.
	// Default: "DRAFT".
	//
	// Experimental.
	GuardrailVersion *string `field:"optional" json:"guardrailVersion" yaml:"guardrailVersion"`
	// The KMS key of the guardrail if custom encryption is configured.
	// Default: undefined - Means data is encrypted by default with a AWS-managed key.
	//
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
}

**************************************************************************** ATTRS FOR IMPORTED CONSTRUCT ***************************************************************************. Experimental.

type GuardrailBase

type GuardrailBase interface {
	awscdk.Resource
	IGuardrail
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// The ARN of the guardrail.
	// Experimental.
	GuardrailArn() *string
	// The ID of the guardrail.
	// Experimental.
	GuardrailId() *string
	// The ID of the guardrail.
	// Experimental.
	GuardrailVersion() *string
	// Experimental.
	SetGuardrailVersion(val *string)
	// The KMS key of the guardrail if custom encryption is configured.
	// Experimental.
	KmsKey() awskms.IKey
	// When this guardrail was last updated.
	// Experimental.
	LastUpdated() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Grant the given principal identity permissions to perform actions on this agent alias.
	// Experimental.
	Grant(grantee awsiam.IGrantable, actions ...*string) awsiam.Grant
	// Grant the given identity permissions to apply the guardrail.
	// Experimental.
	GrantApply(grantee awsiam.IGrantable) awsiam.Grant
	// Return the given named metric for this guardrail.
	//
	// By default, the metric will be calculated as a sum over a period of 5 minutes.
	// You can customize this by using the `statistic` and `period` properties.
	// Experimental.
	Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocation client errors metric for this guardrail.
	// Experimental.
	MetricInvocationClientErrors(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocation latency metric for this guardrail.
	// Experimental.
	MetricInvocationLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocations metric for this guardrail.
	// Experimental.
	MetricInvocations(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocation server errors metric for this guardrail.
	// Experimental.
	MetricInvocationServerErrors(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocations intervened metric for this guardrail.
	// Experimental.
	MetricInvocationsIntervened(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocation throttles metric for this guardrail.
	// Experimental.
	MetricInvocationThrottles(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the text unit count metric for this guardrail.
	// Experimental.
	MetricTextUnitCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Abstract base class for a Guardrail.

Contains methods and attributes valid for Guardrails either created with CDK or imported. Experimental.

type GuardrailProps

type GuardrailProps struct {
	// The name of the guardrail.
	// Experimental.
	Name *string `field:"required" json:"name" yaml:"name"`
	// The message to return when the guardrail blocks a prompt.
	// Default: "Sorry, your query violates our usage policy."
	//
	// Experimental.
	BlockedInputMessaging *string `field:"optional" json:"blockedInputMessaging" yaml:"blockedInputMessaging"`
	// The message to return when the guardrail blocks a model response.
	// Default: "Sorry, I am unable to answer your question because of our usage policy."
	//
	// Experimental.
	BlockedOutputsMessaging *string `field:"optional" json:"blockedOutputsMessaging" yaml:"blockedOutputsMessaging"`
	// The content filters to apply to the guardrail.
	//
	// Note, if one of.
	// Experimental.
	ContentFilters *[]*ContentFilter `field:"optional" json:"contentFilters" yaml:"contentFilters"`
	// The contextual grounding filters to apply to the guardrail.
	// Experimental.
	ContextualGroundingFilters *[]*ContextualGroundingFilter `field:"optional" json:"contextualGroundingFilters" yaml:"contextualGroundingFilters"`
	// Up to 30 denied topics to block user inputs or model responses associated with the topic.
	// Experimental.
	DeniedTopics *[]Topic `field:"optional" json:"deniedTopics" yaml:"deniedTopics"`
	// The description of the guardrail.
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// A custom KMS key to use for encrypting data.
	// Default: "Your data is encrypted by default with a key that AWS owns and manages for you."
	//
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
	// The managed word filters to apply to the guardrail.
	// Experimental.
	ManagedWordListFilters *[]*ManagedWordFilter `field:"optional" json:"managedWordListFilters" yaml:"managedWordListFilters"`
	// The PII filters to apply to the guardrail.
	// Experimental.
	PiiFilters *[]*PIIFilter `field:"optional" json:"piiFilters" yaml:"piiFilters"`
	// The regular expression (regex) filters to apply to the guardrail.
	// Experimental.
	RegexFilters *[]*RegexFilter `field:"optional" json:"regexFilters" yaml:"regexFilters"`
	// The word filters to apply to the guardrail.
	// Experimental.
	WordFilters *[]*WordFilter `field:"optional" json:"wordFilters" yaml:"wordFilters"`
}

Properties for creating a Guardrail. Experimental.

type HierarchicalChunkingProps

type HierarchicalChunkingProps struct {
	// Maximum number of tokens that a child chunk can contain.
	//
	// Keep in mind the maximum chunk size depends on the embedding model chosen.
	// Experimental.
	MaxChildTokenSize *float64 `field:"required" json:"maxChildTokenSize" yaml:"maxChildTokenSize"`
	// Maximum number of tokens that a parent chunk can contain.
	//
	// Keep in mind the maximum chunk size depends on the embedding model chosen.
	// Experimental.
	MaxParentTokenSize *float64 `field:"required" json:"maxParentTokenSize" yaml:"maxParentTokenSize"`
	// The overlap tokens between adjacent chunks.
	// Experimental.
	OverlapTokens *float64 `field:"required" json:"overlapTokens" yaml:"overlapTokens"`
}

Experimental.

type IAgent

type IAgent interface {
	awscdk.IResource
	// The ARN of the agent.
	// Experimental.
	AgentArn() *string
	// The ID of the Agent.
	// Experimental.
	AgentId() *string
	// Optional KMS encryption key associated with this agent.
	// Experimental.
	KmsKey() awskms.IKey
	// When this agent was last updated.
	// Experimental.
	LastUpdated() *string
	// The IAM role associated to the agent.
	// Experimental.
	Role() awsiam.IRole
}

Represents an Agent, either created with CDK or imported. Experimental.

func Agent_FromAgentAttrs

func Agent_FromAgentAttrs(scope constructs.Construct, id *string, attrs *AgentAttributes) IAgent

Static Method for importing an existing Bedrock Agent. Experimental.

type IAgentAlias

type IAgentAlias interface {
	awscdk.IResource
	// Grant the given principal identity permissions to perform actions on this agent alias.
	// Experimental.
	Grant(grantee awsiam.IGrantable, actions ...*string) awsiam.Grant
	// Grant the given identity permissions to get the agent alias.
	// Experimental.
	GrantGet(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to invoke the agent alias.
	// Experimental.
	GrantInvoke(grantee awsiam.IGrantable) awsiam.Grant
	// Define an EventBridge rule that triggers when something happens to this agent alias.
	//
	// Requires that there exists at least one CloudTrail Trail in your account
	// that captures the event. This method will not create the Trail.
	// Experimental.
	OnCloudTrailEvent(id *string, options *awsevents.OnEventOptions) awsevents.Rule
	// The underlying agent for this alias.
	// Experimental.
	Agent() IAgent
	// The ARN of the agent alias.
	//
	// Example:
	//   "arn:aws:bedrock:us-east-1:123456789012:agent-alias/DNCJJYQKSU/TCLCITFZTN"
	//
	// Experimental.
	AliasArn() *string
	// The unique identifier of the agent alias.
	//
	// Example:
	//   "TCLCITFZTN"
	//
	// Experimental.
	AliasId() *string
}

Represents an Agent Alias, either created with CDK or imported. Experimental.

func AgentAlias_FromAttributes

func AgentAlias_FromAttributes(scope constructs.Construct, id *string, attrs *AgentAliasAttributes) IAgentAlias

Brings an Agent Alias from an existing one created outside of CDK. Experimental.

type IDataSource

type IDataSource interface {
	awscdk.IResource
	// The unique identifier of the data source.
	//
	// Example:
	//   "JHUEVXUZMU"
	//
	// Experimental.
	DataSourceId() *string
}

Specifies interface for resources created with CDK or imported into CDK. Experimental.

func DataSource_FromDataSourceId

func DataSource_FromDataSourceId(scope constructs.Construct, id *string, dataSourceId *string) IDataSource

Experimental.

type IGraphKnowledgeBase

type IGraphKnowledgeBase interface {
	IKnowledgeBase
	// The Neptune Analytics vector store.
	// Experimental.
	Graph() neptune.INeptuneGraph
}

**************************************************************************** COMMON INTERFACES ***************************************************************************. Experimental.

func GraphKnowledgeBase_FromKnowledgeBaseAttributes

func GraphKnowledgeBase_FromKnowledgeBaseAttributes(scope constructs.Construct, id *string, attrs *GraphKnowledgeBaseAttributes) IGraphKnowledgeBase

Experimental.

type IGuardrail

type IGuardrail interface {
	awscdk.IResource
	// Grant the given principal identity permissions to perform actions on this guardrail.
	// Experimental.
	Grant(grantee awsiam.IGrantable, actions ...*string) awsiam.Grant
	// Grant the given identity permissions to apply the guardrail.
	// Experimental.
	GrantApply(grantee awsiam.IGrantable) awsiam.Grant
	// Return the given named metric for this guardrail.
	// Experimental.
	Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocation client errors metric for this guardrail.
	// Experimental.
	MetricInvocationClientErrors(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocation latency metric for this guardrail.
	// Experimental.
	MetricInvocationLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocations metric for this guardrail.
	// Experimental.
	MetricInvocations(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocation server errors metric for this guardrail.
	// Experimental.
	MetricInvocationServerErrors(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocations intervened metric for this guardrail.
	// Experimental.
	MetricInvocationsIntervened(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the invocation throttles metric for this guardrail.
	// Experimental.
	MetricInvocationThrottles(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Return the text unit count metric for this guardrail.
	// Experimental.
	MetricTextUnitCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// The ARN of the guardrail.
	// Experimental.
	GuardrailArn() *string
	// The ID of the guardrail.
	// Experimental.
	GuardrailId() *string
	// The version of the guardrail.
	//
	// If no explicit version is created,
	// this will default to "DRAFT".
	// Experimental.
	GuardrailVersion() *string
	// Experimental.
	SetGuardrailVersion(g *string)
	// Optional KMS encryption key associated with this guardrail.
	// Experimental.
	KmsKey() awskms.IKey
	// When this guardrail was last updated.
	// Experimental.
	LastUpdated() *string
}

Represents a Guardrail, either created with CDK or imported. Experimental.

func Guardrail_FromCfnGuardrail

func Guardrail_FromCfnGuardrail(cfnGuardrail awsbedrock.CfnGuardrail) IGuardrail

Import a low-level L1 Cfn Guardrail. Experimental.

func Guardrail_FromGuardrailAttributes

func Guardrail_FromGuardrailAttributes(scope constructs.Construct, id *string, attrs *GuardrailAttributes) IGuardrail

Import a guardrail given its attributes. Experimental.

type IInferenceProfile

type IInferenceProfile interface {
	// Grants appropriate permissions to use the inference profile.
	// Experimental.
	GrantProfileUsage(grantee awsiam.IGrantable) awsiam.Grant
	// The ARN of the application inference profile.
	// Experimental.
	InferenceProfileArn() *string
	// The unique identifier of the inference profile.
	// Experimental.
	InferenceProfileId() *string
	// The type of inference profile.
	// Experimental.
	Type() InferenceProfileType
}

Represents a ApplicationInferenceProfile, either created with CDK or imported. Experimental.

func ApplicationInferenceProfile_FromApplicationInferenceProfileAttributes

func ApplicationInferenceProfile_FromApplicationInferenceProfileAttributes(scope constructs.Construct, id *string, attrs *ApplicationInferenceProfileAttributes) IInferenceProfile

Import a ApplicationInferenceProfile given its attributes. Experimental.

func ApplicationInferenceProfile_FromCfnApplicationInferenceProfile

func ApplicationInferenceProfile_FromCfnApplicationInferenceProfile(CfnApplicationInferenceProfile awsbedrock.CfnApplicationInferenceProfile) IInferenceProfile

Import a low-level L1 Cfn ApplicationInferenceProfile. Experimental.

type IInvokable

type IInvokable interface {
	// Gives the appropriate policies to invoke and use the invokable abstraction.
	// Experimental.
	GrantInvoke(grantee awsiam.IGrantable) awsiam.Grant
	// The ARN of the Bedrock invokable abstraction.
	// Experimental.
	InvokableArn() *string
}

Represents an Amazon Bedrock abstraction on which you can run the `Invoke` API.

This can be a Foundational Model, a Custom Model, or an Inference Profile. Experimental.

type IKendraKnowledgeBase

type IKendraKnowledgeBase interface {
	IKnowledgeBase
	// The GenAI Kendra Index.
	// Experimental.
	KendraIndex() kendra.IKendraGenAiIndex
}

**************************************************************************** COMMON INTERFACES ***************************************************************************. Experimental.

func KendraKnowledgeBase_FromKnowledgeBaseAttributes

func KendraKnowledgeBase_FromKnowledgeBaseAttributes(scope constructs.Construct, id *string, attrs *KendraKnowledgeBaseAttributes) IKendraKnowledgeBase

Experimental.

type IKnowledgeBase

type IKnowledgeBase interface {
	awscdk.IResource
	// Grant the given principal identity permissions to perform actions on this knowledge base.
	// Experimental.
	Grant(grantee awsiam.IGrantable, actions ...*string) awsiam.Grant
	// Grant the given identity permissions to query the knowledge base.
	// Experimental.
	GrantQuery(grantee awsiam.IGrantable) awsiam.Grant
	// The description of the knowledge base.
	// Experimental.
	Description() *string
	// A narrative instruction of the knowledge base.
	//
	// A Bedrock Agent can use this instruction to determine if it should
	// query this Knowledge Base.
	// Experimental.
	Instruction() *string
	// The ARN of the knowledge base.
	//
	// Example:
	//   "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/KB12345678"
	//
	// Experimental.
	KnowledgeBaseArn() *string
	// The ID of the knowledge base.
	//
	// Example:
	//   "KB12345678"
	//
	// Experimental.
	KnowledgeBaseId() *string
	// The role associated with the knowledge base.
	// Experimental.
	Role() awsiam.IRole
	// The type of knowledge base.
	// Experimental.
	Type() KnowledgeBaseType
}

Represents a Knowledge Base, either created with CDK or imported, of any type. Experimental.

type IPrompt

type IPrompt interface {
	// Optional KMS encryption key associated with this prompt.
	// Experimental.
	KmsKey() awskms.IKey
	// The ARN of the prompt.
	//
	// Example:
	//   "arn:aws:bedrock:us-east-1:123456789012:prompt/PROMPT12345"
	//
	// Experimental.
	PromptArn() *string
	// The ID of the prompt.
	//
	// Example:
	//   "PROMPT12345"
	//
	// Experimental.
	PromptId() *string
	// The version of the prompt.
	// Default: - "DRAFT".
	//
	// Experimental.
	PromptVersion() *string
	// Experimental.
	SetPromptVersion(p *string)
}

Represents a Prompt, either created with CDK or imported. Experimental.

func Prompt_FromPromptAttributes

func Prompt_FromPromptAttributes(scope constructs.Construct, id *string, attrs *PromptAttributes) IPrompt

Experimental.

type IPromptRouter

type IPromptRouter interface {
	// The ARN of the prompt router.
	// Experimental.
	PromptRouterArn() *string
	// The Id of the prompt router.
	// Experimental.
	PromptRouterId() *string
	// The foundation models / profiles this router will route to.
	// Experimental.
	RoutingEndpoints() *[]IInvokable
}

Experimental.

type IVectorKnowledgeBase

type IVectorKnowledgeBase interface {
	IKnowledgeBase
	// Add a Confluence data source to the knowledge base.
	// Experimental.
	AddConfluenceDataSource(props *ConfluenceDataSourceAssociationProps) ConfluenceDataSource
	// Add a Custom data source to the knowledge base.
	// Experimental.
	AddCustomDataSource(props *CustomDataSourceAssociationProps) CustomDataSource
	// Add an S3 data source to the knowledge base.
	// Experimental.
	AddS3DataSource(props *S3DataSourceAssociationProps) S3DataSource
	// Add a Salesforce data source to the knowledge base.
	// Experimental.
	AddSalesforceDataSource(props *SalesforceDataSourceAssociationProps) SalesforceDataSource
	// Add a SharePoint data source to the knowledge base.
	// Experimental.
	AddSharePointDataSource(props *SharePointDataSourceAssociationProps) SharePointDataSource
	// Add a web crawler data source to the knowledge base.
	// Experimental.
	AddWebCrawlerDataSource(props *WebCrawlerDataSourceAssociationProps) WebCrawlerDataSource
	// Grant the given identity permissions to retrieve content from the knowledge base.
	// Experimental.
	GrantRetrieve(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to retrieve content from the knowledge base.
	// Experimental.
	GrantRetrieveAndGenerate(grantee awsiam.IGrantable) awsiam.Grant
	// The storage type for the Vector Embeddings.
	// Experimental.
	VectorStoreType() VectorStoreType
}

Represents a Knowledge Base, either created with CDK or imported. Experimental.

func VectorKnowledgeBase_FromKnowledgeBaseAttributes

func VectorKnowledgeBase_FromKnowledgeBaseAttributes(scope constructs.Construct, id *string, attrs *VectorKnowledgeBaseAttributes) IVectorKnowledgeBase

Experimental.

type InferenceConfiguration

type InferenceConfiguration struct {
	// The maximum number of tokens to generate in the response.
	//
	// Integer
	//
	// min 0
	// max 4096.
	// Experimental.
	MaximumLength *float64 `field:"required" json:"maximumLength" yaml:"maximumLength"`
	// A list of stop sequences.
	//
	// A stop sequence is a sequence of characters that
	// causes the model to stop generating the response.
	//
	// length 0-4.
	// Experimental.
	StopSequences *[]*string `field:"required" json:"stopSequences" yaml:"stopSequences"`
	// The likelihood of the model selecting higher-probability options while generating a response.
	//
	// A lower value makes the model more likely to choose
	// higher-probability options, while a higher value makes the model more
	// likely to choose lower-probability options.
	//
	// Floating point
	//
	// min 0
	// max 1.
	// Experimental.
	Temperature *float64 `field:"required" json:"temperature" yaml:"temperature"`
	// While generating a response, the model determines the probability of the following token at each point of generation.
	//
	// The value that you set for
	// topK is the number of most-likely candidates from which the model chooses
	// the next token in the sequence. For example, if you set topK to 50, the
	// model selects the next token from among the top 50 most likely choices.
	//
	// Integer
	//
	// min 0
	// max 500.
	// Experimental.
	TopK *float64 `field:"required" json:"topK" yaml:"topK"`
	// While generating a response, the model determines the probability of the following token at each point of generation.
	//
	// The value that you set for
	// Top P determines the number of most-likely candidates from which the model
	// chooses the next token in the sequence. For example, if you set topP to
	// 80, the model only selects the next token from the top 80% of the
	// probability distribution of next tokens.
	//
	// Floating point
	//
	// min 0
	// max 1.
	// Experimental.
	TopP *float64 `field:"required" json:"topP" yaml:"topP"`
}

LLM inference configuration. Experimental.

type InferenceProfileBase

type InferenceProfileBase interface {
	awscdk.Resource
	IInferenceProfile
	awscdk.IResource
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// The ARN of the application inference profile.
	// Experimental.
	InferenceProfileArn() *string
	// The unique identifier of the inference profile.
	// Experimental.
	InferenceProfileId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// The ID or Amazon Resource Name (ARN) of the inference profile.
	// Experimental.
	Type() InferenceProfileType
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Grants appropriate permissions to use the cross-region inference profile.
	//
	// Does not grant permissions to use the model in the profile.
	// Experimental.
	GrantProfileUsage(grantee awsiam.IGrantable) awsiam.Grant
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Abstract base class for a ApplicationInferenceProfile.

Contains methods and attributes valid for ApplicationInferenceProfiles either created with CDK or imported. Experimental.

type InferenceProfileType

type InferenceProfileType string

These are the values used by the API when using aws bedrock get-inference-profile --inference-profile-identifier XXXXXXX. Experimental.

const (
	// An inference profile that is created by AWS.
	//
	// These are profiles such as cross-region
	// which help you distributed traffic across a geographic region.
	// Experimental.
	InferenceProfileType_SYSTEM_DEFINED InferenceProfileType = "SYSTEM_DEFINED"
	// An inference profile that is user-created.
	//
	// These are profiles that help
	// you track costs or metrics.
	// Experimental.
	InferenceProfileType_APPLICATION InferenceProfileType = "APPLICATION"
)

type InlineApiSchema

type InlineApiSchema interface {
	ApiSchema
	// Experimental.
	InlineSchema() *string
	// Experimental.
	S3File() *awss3.Location
}

Experimental.

func ApiSchema_FromInline

func ApiSchema_FromInline(schema *string) InlineApiSchema

Creates an API Schema from an inline string. Experimental.

func ApiSchema_FromLocalAsset

func ApiSchema_FromLocalAsset(path *string) InlineApiSchema

Creates an API Schema from a local file. Experimental.

func InlineApiSchema_FromInline

func InlineApiSchema_FromInline(schema *string) InlineApiSchema

Creates an API Schema from an inline string. Experimental.

func InlineApiSchema_FromLocalAsset

func InlineApiSchema_FromLocalAsset(path *string) InlineApiSchema

Creates an API Schema from a local file. Experimental.

func NewInlineApiSchema

func NewInlineApiSchema(schema *string) InlineApiSchema

Experimental.

func S3ApiSchema_FromInline

func S3ApiSchema_FromInline(schema *string) InlineApiSchema

Creates an API Schema from an inline string. Experimental.

func S3ApiSchema_FromLocalAsset

func S3ApiSchema_FromLocalAsset(path *string) InlineApiSchema

Creates an API Schema from a local file. Experimental.

type KendraKnowledgeBase

type KendraKnowledgeBase interface {
	KendraKnowledgeBaseBase
	// The description of the knowledge base.
	// Experimental.
	Description() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// A narrative instruction of the knowledge base.
	//
	// A Bedrock Agent can use this instruction to determine if it should
	// query this Knowledge Base.
	// Experimental.
	Instruction() *string
	// The GenAI Kendra Index.
	// Experimental.
	KendraIndex() kendra.IKendraGenAiIndex
	// The ARN of the knowledge base.
	// Experimental.
	KnowledgeBaseArn() *string
	// The ID of the knowledge base.
	// Experimental.
	KnowledgeBaseId() *string
	// The name of the knowledge base.
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The role associated with the knowledge base.
	// Experimental.
	Role() awsiam.IRole
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// The type of Knowledge Base.
	// Experimental.
	Type() KnowledgeBaseType
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Grant the given principal identity permissions to perform actions on this knowledge base.
	// Experimental.
	Grant(grantee awsiam.IGrantable, actions ...*string) awsiam.Grant
	// Grant the given identity permissions to query the knowledge base.
	//
	// This contains:
	// - Retrieve
	// - RetrieveAndGenerate.
	// Experimental.
	GrantQuery(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to retrieve content from the knowledge base.
	// Experimental.
	GrantRetrieve(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to retrieve content from the knowledge base.
	// Experimental.
	GrantRetrieveAndGenerate(grantee awsiam.IGrantable) awsiam.Grant
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

**************************************************************************** CONSTRUCT ***************************************************************************. Experimental.

func NewKendraKnowledgeBase

func NewKendraKnowledgeBase(scope constructs.Construct, id *string, props *KendraKnowledgeBaseProps) KendraKnowledgeBase

Experimental.

type KendraKnowledgeBaseAttributes

type KendraKnowledgeBaseAttributes struct {
	// The Service Execution Role associated with the knowledge base.
	//
	// Example:
	//   "arn:aws:iam::123456789012:role/AmazonBedrockExecutionRoleForKnowledgeBaseawscdkbdgeBaseKB12345678"
	//
	// Experimental.
	ExecutionRoleArn *string `field:"required" json:"executionRoleArn" yaml:"executionRoleArn"`
	// The ID of the knowledge base.
	//
	// Example:
	//   "KB12345678"
	//
	// Experimental.
	KnowledgeBaseId *string `field:"required" json:"knowledgeBaseId" yaml:"knowledgeBaseId"`
	// The description of the knowledge base.
	// Default: - No description provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Instructions for agents based on the design and type of information of the Knowledge Base.
	//
	// This will impact how Agents interact with the Knowledge Base.
	// Default: - No description provided.
	//
	// Experimental.
	Instruction *string `field:"optional" json:"instruction" yaml:"instruction"`
	// Specifies whether to use the knowledge base or not when sending an InvokeAgent request.
	// Default: - ENABLED.
	//
	// Experimental.
	KnowledgeBaseState *string `field:"optional" json:"knowledgeBaseState" yaml:"knowledgeBaseState"`
	// The GenAI Kendra Index ARN.
	// Experimental.
	KendraIndex kendra.IKendraGenAiIndex `field:"required" json:"kendraIndex" yaml:"kendraIndex"`
}

Properties for importing a knowledge base outside of this stack. Experimental.

type KendraKnowledgeBaseBase

type KendraKnowledgeBaseBase interface {
	KnowledgeBaseBase
	// The description of the knowledge base.
	// Experimental.
	Description() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// A narrative instruction of the knowledge base.
	//
	// A Bedrock Agent can use this instruction to determine if it should
	// query this Knowledge Base.
	// Experimental.
	Instruction() *string
	// Experimental.
	KendraIndex() kendra.IKendraGenAiIndex
	// The ARN of the knowledge base.
	// Experimental.
	KnowledgeBaseArn() *string
	// The ID of the knowledge base.
	// Experimental.
	KnowledgeBaseId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The role associated with the knowledge base.
	// Experimental.
	Role() awsiam.IRole
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// The type of knowledge base.
	// Experimental.
	Type() KnowledgeBaseType
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Grant the given principal identity permissions to perform actions on this knowledge base.
	// Experimental.
	Grant(grantee awsiam.IGrantable, actions ...*string) awsiam.Grant
	// Grant the given identity permissions to query the knowledge base.
	//
	// This contains:
	// - Retrieve
	// - RetrieveAndGenerate.
	// Experimental.
	GrantQuery(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to retrieve content from the knowledge base.
	// Experimental.
	GrantRetrieve(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to retrieve content from the knowledge base.
	// Experimental.
	GrantRetrieveAndGenerate(grantee awsiam.IGrantable) awsiam.Grant
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

**************************************************************************** ABSTRACT CLASS ***************************************************************************. Experimental.

type KendraKnowledgeBaseProps

type KendraKnowledgeBaseProps struct {
	// The description of the knowledge base.
	// Default: - No description provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Existing IAM role with policy statements granting appropriate permissions to invoke the specific embeddings models.
	//
	// Any entity (e.g., an AWS service or application) that assumes
	// this role will be able to invoke or use the
	// specified embeddings model within the Bedrock service.
	// Experimental.
	ExistingRole awsiam.IRole `field:"optional" json:"existingRole" yaml:"existingRole"`
	// A narrative description of the knowledge base.
	//
	// A Bedrock Agent can use this instruction to determine if it should
	// query this Knowledge Base.
	// Default: - No description provided.
	//
	// Experimental.
	Instruction *string `field:"optional" json:"instruction" yaml:"instruction"`
	// The name of the knowledge base.
	// Experimental.
	Name *string `field:"optional" json:"name" yaml:"name"`
	// The Kendra Index to use for the knowledge base.
	// Experimental.
	KendraIndex kendra.IKendraGenAiIndex `field:"required" json:"kendraIndex" yaml:"kendraIndex"`
}

Properties for creating a Kendra Index Knowledge Base. Experimental.

type KnowledgeBaseBase

type KnowledgeBaseBase interface {
	awscdk.Resource
	IKnowledgeBase
	// The description of the knowledge base.
	// Experimental.
	Description() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// A narrative instruction of the knowledge base.
	//
	// A Bedrock Agent can use this instruction to determine if it should
	// query this Knowledge Base.
	// Experimental.
	Instruction() *string
	// The ARN of the knowledge base.
	// Experimental.
	KnowledgeBaseArn() *string
	// The ID of the knowledge base.
	// Experimental.
	KnowledgeBaseId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The role associated with the knowledge base.
	// Experimental.
	Role() awsiam.IRole
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// The type of knowledge base.
	// Experimental.
	Type() KnowledgeBaseType
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Grant the given principal identity permissions to perform actions on this knowledge base.
	// Experimental.
	Grant(grantee awsiam.IGrantable, actions ...*string) awsiam.Grant
	// Grant the given identity permissions to query the knowledge base.
	//
	// This contains:
	// - Retrieve
	// - RetrieveAndGenerate.
	// Experimental.
	GrantQuery(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to retrieve content from the knowledge base.
	// Experimental.
	GrantRetrieve(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to retrieve content from the knowledge base.
	// Experimental.
	GrantRetrieveAndGenerate(grantee awsiam.IGrantable) awsiam.Grant
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Abstract base class for Knowledge Base (regarless the type).

Contains methods valid for KBs either created with CDK or imported and applicable to Knowledge Bases of any type. Experimental.

type KnowledgeBaseType

type KnowledgeBaseType string

Types of possible knowledge bases supported by Amazon Bedrock Knowledge Bases. Experimental.

const (
	// Vector database with emebeddings vectors.
	// See: https://docs.aws.amazon.com/bedrock/latest/userguide/kb-how-it-works.html
	//
	// Experimental.
	KnowledgeBaseType_VECTOR KnowledgeBaseType = "VECTOR"
	// Kendra GenAI Index.
	// See: https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-build-kendra-genai-index.html
	//
	// Experimental.
	KnowledgeBaseType_KENDRA KnowledgeBaseType = "KENDRA"
	// Structured data store (e.g. REDSHIFT).
	// See: https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-build-structured.html
	//
	// Experimental.
	KnowledgeBaseType_SQL KnowledgeBaseType = "SQL"
)

type LambdaCustomTransformationProps

type LambdaCustomTransformationProps struct {
	// The Lambda function to use for custom document processing.
	// Experimental.
	LambdaFunction awslambda.IFunction `field:"required" json:"lambdaFunction" yaml:"lambdaFunction"`
	// An S3 bucket URL/path to store input documents for Lambda processing and to store the output of the processed documents.
	//
	// Example:
	//   "s3://my-bucket/chunk-processor/"
	//
	// Experimental.
	S3BucketUri *string `field:"required" json:"s3BucketUri" yaml:"s3BucketUri"`
}

Properties for configuring a Lambda-based custom transformation. Experimental.

type ManagedWordFilter

type ManagedWordFilter struct {
	// The type of managed word filter.
	// Experimental.
	Type ManagedWordFilterType `field:"required" json:"type" yaml:"type"`
	// The action to take when a managed word is detected in the input.
	// Experimental.
	InputAction GuardrailAction `field:"optional" json:"inputAction" yaml:"inputAction"`
	// Whether the managed word filter is enabled for input.
	// Experimental.
	InputEnabled *bool `field:"optional" json:"inputEnabled" yaml:"inputEnabled"`
	// The action to take when a managed word is detected in the output.
	// Experimental.
	OutputAction GuardrailAction `field:"optional" json:"outputAction" yaml:"outputAction"`
	// Whether the managed word filter is enabled for output.
	// Experimental.
	OutputEnabled *bool `field:"optional" json:"outputEnabled" yaml:"outputEnabled"`
}

Experimental.

type ManagedWordFilterType

type ManagedWordFilterType string

Experimental.

const (
	// Experimental.
	ManagedWordFilterType_PROFANITY ManagedWordFilterType = "PROFANITY"
)

type Memory

type Memory interface {
}

Memory class for managing Bedrock Agent memory configurations.

Enables conversational context retention across multiple sessions through session identifiers. Memory context is stored with unique memory IDs per user, allowing access to conversation history and summaries. Supports viewing stored sessions and clearing memory. See: https://docs.aws.amazon.com/bedrock/latest/userguide/agents-memory.html

Experimental.

func NewMemory

func NewMemory() Memory

Experimental.

type ModalityType

type ModalityType string

The type of modality that can be used in content filters. Experimental.

const (
	// Text modality for content filters.
	// Experimental.
	ModalityType_TEXT ModalityType = "TEXT"
	// Image modality for content filters.
	// Experimental.
	ModalityType_IMAGE ModalityType = "IMAGE"
)

type OrchestrationExecutor

type OrchestrationExecutor interface {
	// Experimental.
	LambdaFunction() awslambda.IFunction
}

Contains details about the Lambda function containing the orchestration logic carried out upon invoking the custom orchestration. Experimental.

func OrchestrationExecutor_FromlambdaFunction

func OrchestrationExecutor_FromlambdaFunction(lambdaFunction awslambda.IFunction) OrchestrationExecutor

Defines an orchestration executor with a Lambda function containing the business logic. Experimental.

type OrchestrationType

type OrchestrationType string

Enum for orchestration types available for agents. Experimental.

const (
	// Default orchestration by the agent.
	// Experimental.
	OrchestrationType_DEFAULT OrchestrationType = "DEFAULT"
	// Custom orchestration using Lambda.
	// Experimental.
	OrchestrationType_CUSTOM_ORCHESTRATION OrchestrationType = "CUSTOM_ORCHESTRATION"
)

type PIIFilter

type PIIFilter struct {
	// The action to take when PII is detected.
	// Experimental.
	Action GuardrailAction `field:"required" json:"action" yaml:"action"`
	// The type of PII to filter.
	// Experimental.
	Type interface{} `field:"required" json:"type" yaml:"type"`
	// The action to take when PII is detected in the input.
	// Experimental.
	InputAction GuardrailAction `field:"optional" json:"inputAction" yaml:"inputAction"`
	// Whether the PII filter is enabled for input.
	// Experimental.
	InputEnabled *bool `field:"optional" json:"inputEnabled" yaml:"inputEnabled"`
	// The action to take when PII is detected in the output.
	// Experimental.
	OutputAction GuardrailAction `field:"optional" json:"outputAction" yaml:"outputAction"`
	// Whether the PII filter is enabled for output.
	// Experimental.
	OutputEnabled *bool `field:"optional" json:"outputEnabled" yaml:"outputEnabled"`
}

Interface to define a PII Filter. Experimental.

type ParentActionGroupSignature

type ParentActionGroupSignature interface {
	// Experimental.
	Value() *string
	// Experimental.
	ToString() *string
}

AWS Defined signatures for enabling certain capabilities in your agent. Experimental.

func NewParentActionGroupSignature

func NewParentActionGroupSignature(value *string) ParentActionGroupSignature

Constructor should be used as a temporary solution when a new signature is supported but its implementation in CDK hasn't been added yet. Experimental.

func ParentActionGroupSignature_CODE_INTERPRETER

func ParentActionGroupSignature_CODE_INTERPRETER() ParentActionGroupSignature

func ParentActionGroupSignature_USER_INPUT

func ParentActionGroupSignature_USER_INPUT() ParentActionGroupSignature

type ParsingModality

type ParsingModality string

Experimental.

const (
	// Specifies whether to enable parsing of multimodal data, including both text and/or images.
	// Experimental.
	ParsingModality_MULTIMODAL ParsingModality = "MULTIMODAL"
)

type ParsingStrategy

type ParsingStrategy interface {
	// The CloudFormation property representation of this configuration.
	// Experimental.
	Configuration() *awsbedrock.CfnDataSource_ParsingConfigurationProperty
	// Experimental.
	SetConfiguration(val *awsbedrock.CfnDataSource_ParsingConfigurationProperty)
	// Experimental.
	GeneratePolicyStatements() *[]awsiam.PolicyStatement
}

Represents an advanced parsing strategy configuration for Knowledge Base ingestion. See: https://docs.aws.amazon.com/bedrock/latest/userguide/kb-chunking-parsing.html#kb-advanced-parsing

Experimental.

func ParsingStrategy_BedrockDataAutomation

func ParsingStrategy_BedrockDataAutomation() ParsingStrategy

Creates a Bedrock Data Automation-based parsing strategy for processing multimodal data.

It leverages generative AI to automate the transformation of multi-modal data into structured formats. If the parsing fails, the Amazon Bedrock default parser is used instead. Experimental.

func ParsingStrategy_FoundationModel

func ParsingStrategy_FoundationModel(props *FoundationModelParsingStrategyProps) ParsingStrategy

Creates a Foundation Model-based parsing strategy for extracting non-textual information from documents such as tables and charts.

- Additional costs apply when using advanced parsing due to foundation model usage. - There are limits on file types (PDF) and total data that can be parsed using advanced parsing. See: https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-ds.html#kb-ds-supported-doc-formats-limits

Experimental.

type ParsingStrategyType

type ParsingStrategyType string

Enum representing the types of parsing strategies available for Amazon Bedrock Knowledge Bases. See: https://docs.aws.amazon.com/bedrock/latest/userguide/kb-advanced-parsing.html

Experimental.

const (
	// Uses a Bedrock Foundation Model for advanced parsing of non-textual information from documents.
	// Experimental.
	ParsingStrategyType_FOUNDATION_MODEL ParsingStrategyType = "FOUNDATION_MODEL"
	// Processes multimodal data using Bedrock Data Automation (BDA).
	//
	// It leverages
	// generative AI to automate the transformation of multi-modal data into structured formats.
	// If you choose a foundation model or Amazon Bedrock Data Automation for parsing and it fails
	// to parse a file, the Amazon Bedrock default parser is used instead.
	// Experimental.
	ParsingStrategyType_DATA_AUTOMATION ParsingStrategyType = "DATA_AUTOMATION"
)

type Prompt

type Prompt interface {
	constructs.Construct
	IPrompt
	// The KMS key that the prompt is encrypted with.
	// Experimental.
	KmsKey() awskms.IKey
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// The ARN of the prompt.
	//
	// Example:
	//   "arn:aws:bedrock:us-east-1:123456789012:prompt/PROMPT12345"
	//
	// Experimental.
	PromptArn() *string
	// The ID of the prompt.
	//
	// Example:
	//   "PROMPT12345"
	//
	// Experimental.
	PromptId() *string
	// The name of the prompt.
	// Experimental.
	PromptName() *string
	// The version of the prompt.
	// Experimental.
	PromptVersion() *string
	// Experimental.
	SetPromptVersion(val *string)
	// The variants of the prompt.
	// Experimental.
	Variants() *[]PromptVariant
	// Adds a prompt variant.
	// Experimental.
	AddVariant(variant PromptVariant)
	// Creates a prompt version, a static snapshot of your prompt that can be deployed to production.
	// Experimental.
	CreateVersion(description *string) *string
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Prompts are a specific set of inputs that guide FMs on Amazon Bedrock to generate an appropriate response or output for a given task or instruction.

You can optimize the prompt for specific use cases and models. See: https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-management.html

Experimental.

func NewPrompt

func NewPrompt(scope constructs.Construct, id *string, props *PromptProps) Prompt

Experimental.

type PromptAttributes

type PromptAttributes struct {
	// The ARN of the prompt.
	//
	// Example:
	//   "arn:aws:bedrock:us-east-1:123456789012:prompt/PROMPT12345"
	//
	// Experimental.
	PromptArn *string `field:"required" json:"promptArn" yaml:"promptArn"`
	// Optional KMS encryption key associated with this prompt.
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
	// The version of the prompt.
	// Default: - "DRAFT".
	//
	// Experimental.
	PromptVersion *string `field:"optional" json:"promptVersion" yaml:"promptVersion"`
}

**************************************************************************** ATTRS FOR IMPORTED CONSTRUCT ***************************************************************************. Experimental.

type PromptBase

type PromptBase interface {
	awscdk.Resource
	IPrompt
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// Optional KMS encryption key associated with this prompt.
	// Experimental.
	KmsKey() awskms.IKey
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The ARN of the prompt.
	// Experimental.
	PromptArn() *string
	// The ID of the prompt.
	// Experimental.
	PromptId() *string
	// The version of the prompt.
	// Experimental.
	PromptVersion() *string
	// Experimental.
	SetPromptVersion(val *string)
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Grant the given identity permissions to get the prompt.
	// Experimental.
	GrantGet(grantee awsiam.IGrantable) awsiam.Grant
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Abstract base class for a Prompt.

Contains methods and attributes valid for Promtps either created with CDK or imported. Experimental.

type PromptOverrideConfiguration

type PromptOverrideConfiguration interface {
	// The custom Lambda parser function to use.
	//
	// The Lambda parser processes and interprets the raw foundation model output.
	// It receives an input event with:
	// - messageVersion: Version of message format (1.0)
	// - agent: Info about the agent (name, id, alias, version)
	// - invokeModelRawResponse: Raw model output to parse
	// - promptType: Type of prompt being parsed
	// - overrideType: Type of override (OUTPUT_PARSER)
	//
	// The Lambda must return a response that the agent uses for next actions.
	// See: https://docs.aws.amazon.com/bedrock/latest/userguide/lambda-parser.html
	//
	// Experimental.
	Parser() awslambda.IFunction
	// The prompt configurations to override the prompt templates in the agent sequence.
	// Default: - No prompt configuration will be overridden.
	//
	// Experimental.
	Steps() *[]*PromptStepConfigurationCustomParser
}

Experimental.

func PromptOverrideConfiguration_FromSteps

func PromptOverrideConfiguration_FromSteps(steps *[]*PromptStepConfiguration) PromptOverrideConfiguration

Experimental.

func PromptOverrideConfiguration_WithCustomParser

func PromptOverrideConfiguration_WithCustomParser(props *CustomParserProps) PromptOverrideConfiguration

Creates a PromptOverrideConfiguration with a custom Lambda parser function. Experimental.

type PromptProps

type PromptProps struct {
	// The name of the prompt.
	// Experimental.
	PromptName *string `field:"required" json:"promptName" yaml:"promptName"`
	// The Prompt Variant that will be used by default.
	// Default: - No default variant provided.
	//
	// Experimental.
	DefaultVariant PromptVariant `field:"optional" json:"defaultVariant" yaml:"defaultVariant"`
	// A description of what the prompt does.
	// Default: - No description provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The KMS key that the prompt is encrypted with.
	// Default: - AWS owned and managed key.
	//
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
	// The variants of your prompt.
	//
	// Variants can use different messages, models,
	// or configurations so that you can compare their outputs to decide the best
	// variant for your use case. Maximum of 3 variants.
	// Experimental.
	Variants *[]PromptVariant `field:"optional" json:"variants" yaml:"variants"`
}

**************************************************************************** PROPS FOR NEW CONSTRUCT ***************************************************************************. Experimental.

type PromptRouter

type PromptRouter interface {
	IInvokable
	IPromptRouter
	// The ARN of the Bedrock invokable abstraction.
	// Experimental.
	InvokableArn() *string
	// The ARN of the prompt router.
	// Experimental.
	PromptRouterArn() *string
	// The Id of the prompt router.
	// Experimental.
	PromptRouterId() *string
	// The foundation models / profiles this router will route to.
	// Experimental.
	RoutingEndpoints() *[]IInvokable
	// Gives the appropriate policies to invoke and use the invokable abstraction.
	// Experimental.
	GrantInvoke(grantee awsiam.IGrantable) awsiam.Grant
}

Experimental.

func NewPromptRouter

func NewPromptRouter(props *PromptRouterProps, region *string) PromptRouter

Experimental.

func PromptRouter_FromDefaultId

func PromptRouter_FromDefaultId(defaultRouter DefaultPromptRouterIdentifier, region *string) PromptRouter

Experimental.

type PromptRouterProps

type PromptRouterProps struct {
	// Prompt Router Id.
	// Experimental.
	PromptRouterId *string `field:"required" json:"promptRouterId" yaml:"promptRouterId"`
	// The foundation models this router will route to.
	// Experimental.
	RoutingModels *[]BedrockFoundationModel `field:"required" json:"routingModels" yaml:"routingModels"`
}

Experimental.

type PromptStepConfiguration

type PromptStepConfiguration struct {
	// The step in the agent sequence where to set a specific prompt configuration.
	// Experimental.
	StepType AgentStepType `field:"required" json:"stepType" yaml:"stepType"`
	// The custom prompt template to be used.
	// See: https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-placeholders.html
	//
	// Default: - The default prompt template will be used.
	//
	// Experimental.
	CustomPromptTemplate *string `field:"optional" json:"customPromptTemplate" yaml:"customPromptTemplate"`
	// The foundation model to use for this specific prompt step.
	//
	// This allows using different models for different steps in the agent sequence.
	// Default: - The agent's default foundation model will be used.
	//
	// Experimental.
	FoundationModel IInvokable `field:"optional" json:"foundationModel" yaml:"foundationModel"`
	// The inference configuration parameters to use.
	// Experimental.
	InferenceConfig *InferenceConfiguration `field:"optional" json:"inferenceConfig" yaml:"inferenceConfig"`
	// Whether to enable or skip this step in the agent sequence.
	// Default: - The default state for each step type is as follows.
	//
	// PRE_PROCESSING – ENABLED
	// ORCHESTRATION – ENABLED
	// KNOWLEDGE_BASE_RESPONSE_GENERATION – ENABLED
	// POST_PROCESSING – DISABLED.
	//
	// Experimental.
	StepEnabled *bool `field:"optional" json:"stepEnabled" yaml:"stepEnabled"`
}

Contains configurations to override a prompt template in one part of an agent sequence. Experimental.

type PromptStepConfigurationCustomParser

type PromptStepConfigurationCustomParser struct {
	// The step in the agent sequence where to set a specific prompt configuration.
	// Experimental.
	StepType AgentStepType `field:"required" json:"stepType" yaml:"stepType"`
	// The custom prompt template to be used.
	// See: https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-placeholders.html
	//
	// Default: - The default prompt template will be used.
	//
	// Experimental.
	CustomPromptTemplate *string `field:"optional" json:"customPromptTemplate" yaml:"customPromptTemplate"`
	// The foundation model to use for this specific prompt step.
	//
	// This allows using different models for different steps in the agent sequence.
	// Default: - The agent's default foundation model will be used.
	//
	// Experimental.
	FoundationModel IInvokable `field:"optional" json:"foundationModel" yaml:"foundationModel"`
	// The inference configuration parameters to use.
	// Experimental.
	InferenceConfig *InferenceConfiguration `field:"optional" json:"inferenceConfig" yaml:"inferenceConfig"`
	// Whether to enable or skip this step in the agent sequence.
	// Default: - The default state for each step type is as follows.
	//
	// PRE_PROCESSING – ENABLED
	// ORCHESTRATION – ENABLED
	// KNOWLEDGE_BASE_RESPONSE_GENERATION – ENABLED
	// POST_PROCESSING – DISABLED.
	//
	// Experimental.
	StepEnabled *bool `field:"optional" json:"stepEnabled" yaml:"stepEnabled"`
	// Whether to use the custom Lambda parser defined for the sequence.
	// Default: - false.
	//
	// Experimental.
	UseCustomParser *bool `field:"optional" json:"useCustomParser" yaml:"useCustomParser"`
}

Experimental.

type PromptTemplateType

type PromptTemplateType string

Experimental.

const (
	// Experimental.
	PromptTemplateType_TEXT PromptTemplateType = "TEXT"
	// Experimental.
	PromptTemplateType_CHAT PromptTemplateType = "CHAT"
)

type PromptVariant

type PromptVariant interface {
	// The template configuration.
	// Experimental.
	GenAiResource() *awsbedrock.CfnPrompt_PromptGenAiResourceProperty
	// Experimental.
	SetGenAiResource(val *awsbedrock.CfnPrompt_PromptGenAiResourceProperty)
	// The inference configuration.
	// Experimental.
	InferenceConfiguration() *awsbedrock.CfnPrompt_PromptInferenceConfigurationProperty
	// Experimental.
	SetInferenceConfiguration(val *awsbedrock.CfnPrompt_PromptInferenceConfigurationProperty)
	// The unique identifier of the model with which to run inference on the prompt.
	// Experimental.
	ModelId() *string
	// Experimental.
	SetModelId(val *string)
	// The name of the prompt variant.
	// Experimental.
	Name() *string
	// Experimental.
	SetName(val *string)
	// The template configuration.
	// Experimental.
	TemplateConfiguration() *awsbedrock.CfnPrompt_PromptTemplateConfigurationProperty
	// Experimental.
	SetTemplateConfiguration(val *awsbedrock.CfnPrompt_PromptTemplateConfigurationProperty)
	// The type of prompt template.
	// Experimental.
	TemplateType() PromptTemplateType
	// Experimental.
	SetTemplateType(val PromptTemplateType)
}

Variants are specific sets of inputs that guide FMs on Amazon Bedrock to generate an appropriate response or output for a given task or instruction.

You can optimize the prompt for specific use cases and models. Experimental.

func PromptVariant_Agent

func PromptVariant_Agent(props *AgentPromptVariantProps) PromptVariant

Static method to create an agent prompt template. Experimental.

func PromptVariant_Chat

func PromptVariant_Chat(props *ChatPromptVariantProps) PromptVariant

Static method to create a chat template.

Use this template type when the model supports the Converse API or the AnthropicClaude Messages API. This allows you to include a System prompt and previous User messages and Assistant messages for context. Experimental.

func PromptVariant_Text

func PromptVariant_Text(props *TextPromptVariantProps) PromptVariant

Static method to create a text template. Experimental.

type PromptVersion

type PromptVersion interface {
	constructs.Construct
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// The prompt used by this version.
	// Experimental.
	Prompt() Prompt
	// The version of the prompt that was created.
	// Experimental.
	Version() *string
	// The Amazon Resource Name (ARN) of the prompt version.
	//
	// Example:
	//   "arn:aws:bedrock:us-east-1:123456789012:prompt/PROMPT12345:1"
	//
	// Experimental.
	VersionArn() *string
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Creates a version of the prompt.

Use this to create a static snapshot of your prompt that can be deployed to production. Versions allow you to easily switch between different configurations for your prompt and update your application with the most appropriate version for your use-case. See: https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-management-deploy.html

Experimental.

func NewPromptVersion

func NewPromptVersion(scope constructs.Construct, id *string, props *PromptVersionProps) PromptVersion

Experimental.

type PromptVersionProps

type PromptVersionProps struct {
	// The prompt to use for this version.
	// Experimental.
	Prompt Prompt `field:"required" json:"prompt" yaml:"prompt"`
	// The description of the prompt version.
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
}

Experimental.

type RegexFilter

type RegexFilter struct {
	// The action to take when a regex match is detected.
	// Experimental.
	Action GuardrailAction `field:"required" json:"action" yaml:"action"`
	// The name of the regex filter.
	// Experimental.
	Name *string `field:"required" json:"name" yaml:"name"`
	// The regular expression pattern to match.
	// Experimental.
	Pattern *string `field:"required" json:"pattern" yaml:"pattern"`
	// The description of the regex filter.
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The action to take when a regex match is detected in the input.
	// Experimental.
	InputAction GuardrailAction `field:"optional" json:"inputAction" yaml:"inputAction"`
	// Whether the regex filter is enabled for input.
	// Experimental.
	InputEnabled *bool `field:"optional" json:"inputEnabled" yaml:"inputEnabled"`
	// The action to take when a regex match is detected in the output.
	// Experimental.
	OutputAction GuardrailAction `field:"optional" json:"outputAction" yaml:"outputAction"`
	// Whether the regex filter is enabled for output.
	// Experimental.
	OutputEnabled *bool `field:"optional" json:"outputEnabled" yaml:"outputEnabled"`
}

A Regular expression (regex) filter for sensitive information. Experimental.

type RelayConversationHistoryType

type RelayConversationHistoryType string

Enum for collaborator's relay conversation history types. Experimental.

const (
	// Sending to the collaborator.
	// Experimental.
	RelayConversationHistoryType_TO_COLLABORATOR RelayConversationHistoryType = "TO_COLLABORATOR"
	// Disabling relay of conversation history to the collaborator.
	// Experimental.
	RelayConversationHistoryType_DISABLED RelayConversationHistoryType = "DISABLED"
)

type S3ApiSchema

type S3ApiSchema interface {
	ApiSchema
	// Experimental.
	InlineSchema() *string
	// Experimental.
	S3File() *awss3.Location
}

Class to define an API Schema from an S3 object. Experimental.

func ApiSchema_FromS3File

func ApiSchema_FromS3File(bucket awss3.IBucket, objectKey *string) S3ApiSchema

Creates an API Schema from an S3 File. Experimental.

func InlineApiSchema_FromS3File

func InlineApiSchema_FromS3File(bucket awss3.IBucket, objectKey *string) S3ApiSchema

Creates an API Schema from an S3 File. Experimental.

func NewS3ApiSchema

func NewS3ApiSchema(location *awss3.Location) S3ApiSchema

Experimental.

func S3ApiSchema_FromS3File

func S3ApiSchema_FromS3File(bucket awss3.IBucket, objectKey *string) S3ApiSchema

Creates an API Schema from an S3 File. Experimental.

type S3DataSource

type S3DataSource interface {
	DataSourceNew
	// The bucket associated with the data source.
	// Experimental.
	Bucket() awss3.IBucket
	// The unique identifier of the data source.
	//
	// Example:
	//   "JHUEVXUZMU"
	//
	// Experimental.
	DataSourceId() *string
	// The name of the data source.
	// Experimental.
	DataSourceName() *string
	// The type of data source.
	// Experimental.
	DataSourceType() DataSourceType
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// The KMS key to use to encrypt the data source.
	// Experimental.
	KmsKey() awskms.IKey
	// The knowledge base associated with the data source.
	// Experimental.
	KnowledgeBase() IKnowledgeBase
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Formats the data source configuration properties for CloudFormation.
	// Experimental.
	FormatAsCfnProps(props *DataSourceAssociationProps, dataSourceConfiguration *awsbedrock.CfnDataSource_DataSourceConfigurationProperty) *awsbedrock.CfnDataSourceProps
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Adds appropriate permissions to the KB execution role needed by the data source.
	// Experimental.
	HandleCommonPermissions(props *DataSourceAssociationProps)
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Sets up an S3 Data Source to be added to a knowledge base. Experimental.

func NewS3DataSource

func NewS3DataSource(scope constructs.Construct, id *string, props *S3DataSourceProps) S3DataSource

Experimental.

type S3DataSourceAssociationProps

type S3DataSourceAssociationProps struct {
	// The chunking stategy to use for splitting your documents or content.
	//
	// The chunks are then converted to embeddings and written to the vector
	// index allowing for similarity search and retrieval of the content.
	// Default: ChunkingStrategy.DEFAULT
	//
	// Experimental.
	ChunkingStrategy ChunkingStrategy `field:"optional" json:"chunkingStrategy" yaml:"chunkingStrategy"`
	// The context enrichment configuration to use.
	// Default: - No context enrichment is used.
	//
	// Experimental.
	ContextEnrichment ContextEnrichment `field:"optional" json:"contextEnrichment" yaml:"contextEnrichment"`
	// The custom transformation strategy to use.
	// Default: - No custom transformation is used.
	//
	// Experimental.
	CustomTransformation CustomTransformation `field:"optional" json:"customTransformation" yaml:"customTransformation"`
	// The data deletion policy to apply to the data source.
	// Default: - Sets the data deletion policy to the default of the data source type.
	//
	// Experimental.
	DataDeletionPolicy DataDeletionPolicy `field:"optional" json:"dataDeletionPolicy" yaml:"dataDeletionPolicy"`
	// The name of the data source.
	// Default: - A new name will be generated.
	//
	// Experimental.
	DataSourceName *string `field:"optional" json:"dataSourceName" yaml:"dataSourceName"`
	// A description of the data source.
	// Default: - No description is provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The KMS key to use to encrypt the data source.
	// Default: - Service owned and managed key.
	//
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
	// The parsing strategy to use.
	// Default: - No Parsing Stategy is used.
	//
	// Experimental.
	ParsingStrategy ParsingStrategy `field:"optional" json:"parsingStrategy" yaml:"parsingStrategy"`
	// The bucket that contains the data source.
	// Experimental.
	Bucket awss3.IBucket `field:"required" json:"bucket" yaml:"bucket"`
	// The prefixes of the objects in the bucket that should be included in the data source.
	// Default: - All objects in the bucket.
	//
	// Experimental.
	InclusionPrefixes *[]*string `field:"optional" json:"inclusionPrefixes" yaml:"inclusionPrefixes"`
}

Interface to add a new S3DataSource to an existing KB. Experimental.

type S3DataSourceProps

type S3DataSourceProps struct {
	// The chunking stategy to use for splitting your documents or content.
	//
	// The chunks are then converted to embeddings and written to the vector
	// index allowing for similarity search and retrieval of the content.
	// Default: ChunkingStrategy.DEFAULT
	//
	// Experimental.
	ChunkingStrategy ChunkingStrategy `field:"optional" json:"chunkingStrategy" yaml:"chunkingStrategy"`
	// The context enrichment configuration to use.
	// Default: - No context enrichment is used.
	//
	// Experimental.
	ContextEnrichment ContextEnrichment `field:"optional" json:"contextEnrichment" yaml:"contextEnrichment"`
	// The custom transformation strategy to use.
	// Default: - No custom transformation is used.
	//
	// Experimental.
	CustomTransformation CustomTransformation `field:"optional" json:"customTransformation" yaml:"customTransformation"`
	// The data deletion policy to apply to the data source.
	// Default: - Sets the data deletion policy to the default of the data source type.
	//
	// Experimental.
	DataDeletionPolicy DataDeletionPolicy `field:"optional" json:"dataDeletionPolicy" yaml:"dataDeletionPolicy"`
	// The name of the data source.
	// Default: - A new name will be generated.
	//
	// Experimental.
	DataSourceName *string `field:"optional" json:"dataSourceName" yaml:"dataSourceName"`
	// A description of the data source.
	// Default: - No description is provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The KMS key to use to encrypt the data source.
	// Default: - Service owned and managed key.
	//
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
	// The parsing strategy to use.
	// Default: - No Parsing Stategy is used.
	//
	// Experimental.
	ParsingStrategy ParsingStrategy `field:"optional" json:"parsingStrategy" yaml:"parsingStrategy"`
	// The bucket that contains the data source.
	// Experimental.
	Bucket awss3.IBucket `field:"required" json:"bucket" yaml:"bucket"`
	// The prefixes of the objects in the bucket that should be included in the data source.
	// Default: - All objects in the bucket.
	//
	// Experimental.
	InclusionPrefixes *[]*string `field:"optional" json:"inclusionPrefixes" yaml:"inclusionPrefixes"`
	// The knowledge base to associate with the data source.
	// Experimental.
	KnowledgeBase IKnowledgeBase `field:"required" json:"knowledgeBase" yaml:"knowledgeBase"`
}

Interface to create a new S3 Data Source object. Experimental.

type SalesforceCrawlingFilters

type SalesforceCrawlingFilters struct {
	// The Salesforce object type to which this filter applies.
	// Experimental.
	ObjectType SalesforceObjectType `field:"required" json:"objectType" yaml:"objectType"`
	// Regular expression patterns to exclude specific content.
	// Experimental.
	ExcludePatterns *[]*string `field:"optional" json:"excludePatterns" yaml:"excludePatterns"`
	// Regular expression patterns to include specific content.
	// Experimental.
	IncludePatterns *[]*string `field:"optional" json:"includePatterns" yaml:"includePatterns"`
}

Defines the crawling filters for Salesforce data ingestion. Experimental.

type SalesforceDataSource

type SalesforceDataSource interface {
	DataSourceNew
	// The AWS Secrets Manager secret that stores your authentication credentials.
	// Experimental.
	AuthSecret() awssecretsmanager.ISecret
	// The unique identifier of the data source.
	//
	// Example:
	//   "JHUEVXUZMU"
	//
	// Experimental.
	DataSourceId() *string
	// The name of the data source.
	// Experimental.
	DataSourceName() *string
	// The type of data source.
	// Experimental.
	DataSourceType() DataSourceType
	// The Salesforce host URL or instance URL.
	// Experimental.
	Endpoint() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// The KMS key to use to encrypt the data source.
	// Experimental.
	KmsKey() awskms.IKey
	// The knowledge base associated with the data source.
	// Experimental.
	KnowledgeBase() IKnowledgeBase
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Formats the data source configuration properties for CloudFormation.
	// Experimental.
	FormatAsCfnProps(props *DataSourceAssociationProps, dataSourceConfiguration *awsbedrock.CfnDataSource_DataSourceConfigurationProperty) *awsbedrock.CfnDataSourceProps
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Adds appropriate permissions to the KB execution role needed by the data source.
	// Experimental.
	HandleCommonPermissions(props *DataSourceAssociationProps)
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Sets up an data source to be added to a knowledge base. Experimental.

func NewSalesforceDataSource

func NewSalesforceDataSource(scope constructs.Construct, id *string, props *SalesforceDataSourceProps) SalesforceDataSource

Experimental.

type SalesforceDataSourceAssociationProps

type SalesforceDataSourceAssociationProps struct {
	// The chunking stategy to use for splitting your documents or content.
	//
	// The chunks are then converted to embeddings and written to the vector
	// index allowing for similarity search and retrieval of the content.
	// Default: ChunkingStrategy.DEFAULT
	//
	// Experimental.
	ChunkingStrategy ChunkingStrategy `field:"optional" json:"chunkingStrategy" yaml:"chunkingStrategy"`
	// The context enrichment configuration to use.
	// Default: - No context enrichment is used.
	//
	// Experimental.
	ContextEnrichment ContextEnrichment `field:"optional" json:"contextEnrichment" yaml:"contextEnrichment"`
	// The custom transformation strategy to use.
	// Default: - No custom transformation is used.
	//
	// Experimental.
	CustomTransformation CustomTransformation `field:"optional" json:"customTransformation" yaml:"customTransformation"`
	// The data deletion policy to apply to the data source.
	// Default: - Sets the data deletion policy to the default of the data source type.
	//
	// Experimental.
	DataDeletionPolicy DataDeletionPolicy `field:"optional" json:"dataDeletionPolicy" yaml:"dataDeletionPolicy"`
	// The name of the data source.
	// Default: - A new name will be generated.
	//
	// Experimental.
	DataSourceName *string `field:"optional" json:"dataSourceName" yaml:"dataSourceName"`
	// A description of the data source.
	// Default: - No description is provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The KMS key to use to encrypt the data source.
	// Default: - Service owned and managed key.
	//
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
	// The parsing strategy to use.
	// Default: - No Parsing Stategy is used.
	//
	// Experimental.
	ParsingStrategy ParsingStrategy `field:"optional" json:"parsingStrategy" yaml:"parsingStrategy"`
	// The AWS Secrets Manager secret that stores your authentication credentials for your Salesforce instance URL.
	//
	// Secret must start with "AmazonBedrock-".
	// Experimental.
	AuthSecret awssecretsmanager.ISecret `field:"required" json:"authSecret" yaml:"authSecret"`
	// The Salesforce host URL or instance URL.
	//
	// Example:
	//   "https://company.salesforce.com/"
	//
	// Experimental.
	Endpoint *string `field:"required" json:"endpoint" yaml:"endpoint"`
	// The filters (regular expression patterns) for the crawling.
	//
	// If there's a conflict, the exclude pattern takes precedence.
	// Default: None - all your content is crawled.
	//
	// Experimental.
	Filters *[]*SalesforceCrawlingFilters `field:"optional" json:"filters" yaml:"filters"`
}

Interface to add a new data source to an existing KB. Experimental.

type SalesforceDataSourceAuthType

type SalesforceDataSourceAuthType string

Represents the authentication types available for connecting to a Salesforce data source. Experimental.

const (
	// Your secret authentication credentials in AWS Secrets Manager should include: - `consumerKey` (app client ID) - `consumerSecret` (client secret) - `authenticationUrl`.
	// Experimental.
	SalesforceDataSourceAuthType_OAUTH2_CLIENT_CREDENTIALS SalesforceDataSourceAuthType = "OAUTH2_CLIENT_CREDENTIALS"
)

type SalesforceDataSourceProps

type SalesforceDataSourceProps struct {
	// The chunking stategy to use for splitting your documents or content.
	//
	// The chunks are then converted to embeddings and written to the vector
	// index allowing for similarity search and retrieval of the content.
	// Default: ChunkingStrategy.DEFAULT
	//
	// Experimental.
	ChunkingStrategy ChunkingStrategy `field:"optional" json:"chunkingStrategy" yaml:"chunkingStrategy"`
	// The context enrichment configuration to use.
	// Default: - No context enrichment is used.
	//
	// Experimental.
	ContextEnrichment ContextEnrichment `field:"optional" json:"contextEnrichment" yaml:"contextEnrichment"`
	// The custom transformation strategy to use.
	// Default: - No custom transformation is used.
	//
	// Experimental.
	CustomTransformation CustomTransformation `field:"optional" json:"customTransformation" yaml:"customTransformation"`
	// The data deletion policy to apply to the data source.
	// Default: - Sets the data deletion policy to the default of the data source type.
	//
	// Experimental.
	DataDeletionPolicy DataDeletionPolicy `field:"optional" json:"dataDeletionPolicy" yaml:"dataDeletionPolicy"`
	// The name of the data source.
	// Default: - A new name will be generated.
	//
	// Experimental.
	DataSourceName *string `field:"optional" json:"dataSourceName" yaml:"dataSourceName"`
	// A description of the data source.
	// Default: - No description is provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The KMS key to use to encrypt the data source.
	// Default: - Service owned and managed key.
	//
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
	// The parsing strategy to use.
	// Default: - No Parsing Stategy is used.
	//
	// Experimental.
	ParsingStrategy ParsingStrategy `field:"optional" json:"parsingStrategy" yaml:"parsingStrategy"`
	// The AWS Secrets Manager secret that stores your authentication credentials for your Salesforce instance URL.
	//
	// Secret must start with "AmazonBedrock-".
	// Experimental.
	AuthSecret awssecretsmanager.ISecret `field:"required" json:"authSecret" yaml:"authSecret"`
	// The Salesforce host URL or instance URL.
	//
	// Example:
	//   "https://company.salesforce.com/"
	//
	// Experimental.
	Endpoint *string `field:"required" json:"endpoint" yaml:"endpoint"`
	// The filters (regular expression patterns) for the crawling.
	//
	// If there's a conflict, the exclude pattern takes precedence.
	// Default: None - all your content is crawled.
	//
	// Experimental.
	Filters *[]*SalesforceCrawlingFilters `field:"optional" json:"filters" yaml:"filters"`
	// The knowledge base to associate with the data source.
	// Experimental.
	KnowledgeBase IKnowledgeBase `field:"required" json:"knowledgeBase" yaml:"knowledgeBase"`
}

Interface to create a new standalone data source object. Experimental.

type SalesforceObjectType

type SalesforceObjectType string

Represents the Salesforce object types that can be accessed by the data source connector. Experimental.

const (
	// Experimental.
	SalesforceObjectType_ACCOUNT SalesforceObjectType = "ACCOUNT"
	// Experimental.
	SalesforceObjectType_ATTACHMENT SalesforceObjectType = "ATTACHMENT"
	// Experimental.
	SalesforceObjectType_CAMPAIGN SalesforceObjectType = "CAMPAIGN"
	// Experimental.
	SalesforceObjectType_CONTENT_VERSION SalesforceObjectType = "CONTENT_VERSION"
	// Experimental.
	SalesforceObjectType_PARTNER SalesforceObjectType = "PARTNER"
	// Experimental.
	SalesforceObjectType_PRICEBOOK_2 SalesforceObjectType = "PRICEBOOK_2"
	// Experimental.
	SalesforceObjectType_CASE SalesforceObjectType = "CASE"
	// Experimental.
	SalesforceObjectType_CONTACT SalesforceObjectType = "CONTACT"
	// Experimental.
	SalesforceObjectType_CONTRACT SalesforceObjectType = "CONTRACT"
	// Experimental.
	SalesforceObjectType_DOCUMENT SalesforceObjectType = "DOCUMENT"
	// Experimental.
	SalesforceObjectType_IDEA SalesforceObjectType = "IDEA"
	// Experimental.
	SalesforceObjectType_LEAD SalesforceObjectType = "LEAD"
	// Experimental.
	SalesforceObjectType_OPPORTUNITY SalesforceObjectType = "OPPORTUNITY"
	// Experimental.
	SalesforceObjectType_PRODUCT_2 SalesforceObjectType = "PRODUCT_2"
	// Experimental.
	SalesforceObjectType_SOLUTION SalesforceObjectType = "SOLUTION"
	// Experimental.
	SalesforceObjectType_TASK SalesforceObjectType = "TASK"
	// Experimental.
	SalesforceObjectType_FEED_ITEM SalesforceObjectType = "FEED_ITEM"
	// Experimental.
	SalesforceObjectType_FEED_COMMENT SalesforceObjectType = "FEED_COMMENT"
	// Experimental.
	SalesforceObjectType_KNOWLEDGE_KAV SalesforceObjectType = "KNOWLEDGE_KAV"
	// Experimental.
	SalesforceObjectType_USER SalesforceObjectType = "USER"
	// Experimental.
	SalesforceObjectType_COLLABORATION_GROUP SalesforceObjectType = "COLLABORATION_GROUP"
)

type SessionSummaryMemoryProps

type SessionSummaryMemoryProps struct {
	// Maximum number of recent session summaries to include (min 1).
	// Default: 20.
	//
	// Experimental.
	MaxRecentSessions *float64 `field:"optional" json:"maxRecentSessions" yaml:"maxRecentSessions"`
	// Duration in days for which session summaries are retained (1-365).
	// Default: 30.
	//
	// Experimental.
	MemoryDurationDays *float64 `field:"optional" json:"memoryDurationDays" yaml:"memoryDurationDays"`
}

Properties for SessionSummaryConfiguration. Experimental.

type SharePointCrawlingFilters

type SharePointCrawlingFilters struct {
	// The SharePoint object type this filter applies to.
	// Experimental.
	ObjectType SharePointObjectType `field:"required" json:"objectType" yaml:"objectType"`
	// Optional array of regular expression patterns to exclude specific content.
	//
	// Content matching these patterns will be skipped during crawling.
	//
	// Example:
	//   []*string{
	//   	".*private.*",
	//   	".*confidential.*",
	//   }
	//
	// Experimental.
	ExcludePatterns *[]*string `field:"optional" json:"excludePatterns" yaml:"excludePatterns"`
	// Optional array of regular expression patterns to include specific content.
	//
	// Only content matching these patterns will be crawled.
	//
	// Example:
	//   []*string{
	//   	".*public.*",
	//   	".*shared.*",
	//   }
	//
	// Experimental.
	IncludePatterns *[]*string `field:"optional" json:"includePatterns" yaml:"includePatterns"`
}

Defines the crawling filters for SharePoint data ingestion.

These filters allow you to specify which content should be included or excluded during the crawling process. If you specify an inclusion and exclusion filter and both match a document, the exclusion filter takes precedence and the document isn’t crawled. Experimental.

type SharePointDataSource

type SharePointDataSource interface {
	DataSourceNew
	// The AWS Secrets Manager secret that stores your authentication credentials.
	// Experimental.
	AuthSecret() awssecretsmanager.ISecret
	// The unique identifier of the data source.
	//
	// Example:
	//   "JHUEVXUZMU"
	//
	// Experimental.
	DataSourceId() *string
	// The name of the data source.
	// Experimental.
	DataSourceName() *string
	// The type of data source.
	// Experimental.
	DataSourceType() DataSourceType
	// The domain name of your SharePoint instance.
	// Experimental.
	Domain() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// The KMS key to use to encrypt the data source.
	// Experimental.
	KmsKey() awskms.IKey
	// The knowledge base associated with the data source.
	// Experimental.
	KnowledgeBase() IKnowledgeBase
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The SharePoint site URL/URLs.
	// Experimental.
	SiteUrls() *[]*string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Formats the data source configuration properties for CloudFormation.
	// Experimental.
	FormatAsCfnProps(props *DataSourceAssociationProps, dataSourceConfiguration *awsbedrock.CfnDataSource_DataSourceConfigurationProperty) *awsbedrock.CfnDataSourceProps
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Adds appropriate permissions to the KB execution role needed by the data source.
	// Experimental.
	HandleCommonPermissions(props *DataSourceAssociationProps)
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Sets up an data source to be added to a knowledge base. Experimental.

func NewSharePointDataSource

func NewSharePointDataSource(scope constructs.Construct, id *string, props *SharePointDataSourceProps) SharePointDataSource

Experimental.

type SharePointDataSourceAssociationProps

type SharePointDataSourceAssociationProps struct {
	// The chunking stategy to use for splitting your documents or content.
	//
	// The chunks are then converted to embeddings and written to the vector
	// index allowing for similarity search and retrieval of the content.
	// Default: ChunkingStrategy.DEFAULT
	//
	// Experimental.
	ChunkingStrategy ChunkingStrategy `field:"optional" json:"chunkingStrategy" yaml:"chunkingStrategy"`
	// The context enrichment configuration to use.
	// Default: - No context enrichment is used.
	//
	// Experimental.
	ContextEnrichment ContextEnrichment `field:"optional" json:"contextEnrichment" yaml:"contextEnrichment"`
	// The custom transformation strategy to use.
	// Default: - No custom transformation is used.
	//
	// Experimental.
	CustomTransformation CustomTransformation `field:"optional" json:"customTransformation" yaml:"customTransformation"`
	// The data deletion policy to apply to the data source.
	// Default: - Sets the data deletion policy to the default of the data source type.
	//
	// Experimental.
	DataDeletionPolicy DataDeletionPolicy `field:"optional" json:"dataDeletionPolicy" yaml:"dataDeletionPolicy"`
	// The name of the data source.
	// Default: - A new name will be generated.
	//
	// Experimental.
	DataSourceName *string `field:"optional" json:"dataSourceName" yaml:"dataSourceName"`
	// A description of the data source.
	// Default: - No description is provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The KMS key to use to encrypt the data source.
	// Default: - Service owned and managed key.
	//
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
	// The parsing strategy to use.
	// Default: - No Parsing Stategy is used.
	//
	// Experimental.
	ParsingStrategy ParsingStrategy `field:"optional" json:"parsingStrategy" yaml:"parsingStrategy"`
	// The AWS Secrets Manager secret that stores your authentication credentials for your Sharepoint instance URL.
	//
	// Secret must start with "AmazonBedrock-".
	// Experimental.
	AuthSecret awssecretsmanager.ISecret `field:"required" json:"authSecret" yaml:"authSecret"`
	// The domain of your SharePoint instance or site URL/URLs.
	//
	// Example:
	//   "yourdomain"
	//
	// Experimental.
	Domain *string `field:"required" json:"domain" yaml:"domain"`
	// The SharePoint site URL/URLs.
	//
	// Must start with “https”. All URLs must start with same protocol.
	//
	// Example:
	//   []*string{
	//   	"https://yourdomain.sharepoint.com/sites/mysite",
	//   }
	//
	// Experimental.
	SiteUrls *[]*string `field:"required" json:"siteUrls" yaml:"siteUrls"`
	// The identifier of your Microsoft 365 tenant.
	//
	// Example:
	//   "d1c035a6-1dcf-457d-97e3"
	//
	// Experimental.
	TenantId *string `field:"required" json:"tenantId" yaml:"tenantId"`
	// The filters (regular expression patterns) for the crawling.
	//
	// If there's a conflict, the exclude pattern takes precedence.
	// Default: None - all your content is crawled.
	//
	// Experimental.
	Filters *[]*SharePointCrawlingFilters `field:"optional" json:"filters" yaml:"filters"`
}

Interface to add a new data source to an existing KB. Experimental.

type SharePointDataSourceAuthType

type SharePointDataSourceAuthType string

Represents the authentication types available for connecting to a SharePoint data source. Experimental.

const (
	// OAuth 2.0 Client Credentials flow for authentication with SharePoint. Your secret authentication credentials in AWS Secrets Manager should include: - `username`: The admin username for SharePoint authentication - `password`: The admin password associated with the username - `clientId`: The client ID (also known as application ID) - `clientSecret`: The client secret.
	// Experimental.
	SharePointDataSourceAuthType_OAUTH2_CLIENT_CREDENTIALS SharePointDataSourceAuthType = "OAUTH2_CLIENT_CREDENTIALS"
)

type SharePointDataSourceProps

type SharePointDataSourceProps struct {
	// The chunking stategy to use for splitting your documents or content.
	//
	// The chunks are then converted to embeddings and written to the vector
	// index allowing for similarity search and retrieval of the content.
	// Default: ChunkingStrategy.DEFAULT
	//
	// Experimental.
	ChunkingStrategy ChunkingStrategy `field:"optional" json:"chunkingStrategy" yaml:"chunkingStrategy"`
	// The context enrichment configuration to use.
	// Default: - No context enrichment is used.
	//
	// Experimental.
	ContextEnrichment ContextEnrichment `field:"optional" json:"contextEnrichment" yaml:"contextEnrichment"`
	// The custom transformation strategy to use.
	// Default: - No custom transformation is used.
	//
	// Experimental.
	CustomTransformation CustomTransformation `field:"optional" json:"customTransformation" yaml:"customTransformation"`
	// The data deletion policy to apply to the data source.
	// Default: - Sets the data deletion policy to the default of the data source type.
	//
	// Experimental.
	DataDeletionPolicy DataDeletionPolicy `field:"optional" json:"dataDeletionPolicy" yaml:"dataDeletionPolicy"`
	// The name of the data source.
	// Default: - A new name will be generated.
	//
	// Experimental.
	DataSourceName *string `field:"optional" json:"dataSourceName" yaml:"dataSourceName"`
	// A description of the data source.
	// Default: - No description is provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The KMS key to use to encrypt the data source.
	// Default: - Service owned and managed key.
	//
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
	// The parsing strategy to use.
	// Default: - No Parsing Stategy is used.
	//
	// Experimental.
	ParsingStrategy ParsingStrategy `field:"optional" json:"parsingStrategy" yaml:"parsingStrategy"`
	// The AWS Secrets Manager secret that stores your authentication credentials for your Sharepoint instance URL.
	//
	// Secret must start with "AmazonBedrock-".
	// Experimental.
	AuthSecret awssecretsmanager.ISecret `field:"required" json:"authSecret" yaml:"authSecret"`
	// The domain of your SharePoint instance or site URL/URLs.
	//
	// Example:
	//   "yourdomain"
	//
	// Experimental.
	Domain *string `field:"required" json:"domain" yaml:"domain"`
	// The SharePoint site URL/URLs.
	//
	// Must start with “https”. All URLs must start with same protocol.
	//
	// Example:
	//   ["https://yourdomain.sharepoint.com/sites/mysite"]
	//
	// Experimental.
	SiteUrls *[]*string `field:"required" json:"siteUrls" yaml:"siteUrls"`
	// The identifier of your Microsoft 365 tenant.
	//
	// Example:
	//   "d1c035a6-1dcf-457d-97e3"
	//
	// Experimental.
	TenantId *string `field:"required" json:"tenantId" yaml:"tenantId"`
	// The filters (regular expression patterns) for the crawling.
	//
	// If there's a conflict, the exclude pattern takes precedence.
	// Default: None - all your content is crawled.
	//
	// Experimental.
	Filters *[]*SharePointCrawlingFilters `field:"optional" json:"filters" yaml:"filters"`
	// The knowledge base to associate with the data source.
	// Experimental.
	KnowledgeBase IKnowledgeBase `field:"required" json:"knowledgeBase" yaml:"knowledgeBase"`
}

Interface to create a new standalone data source object. Experimental.

type SharePointObjectType

type SharePointObjectType string

Represents the SharePoint object types that can be accessed by the data source connector. Experimental.

const (
	// Represents a SharePoint page, which typically contains web parts and content.
	// Experimental.
	SharePointObjectType_PAGE SharePointObjectType = "PAGE"
	// Represents a calendar event in SharePoint.
	// Experimental.
	SharePointObjectType_EVENT SharePointObjectType = "EVENT"
	// Represents a file stored in SharePoint document libraries.
	// Experimental.
	SharePointObjectType_FILE SharePointObjectType = "FILE"
)

type SupplementalDataStorageLocation

type SupplementalDataStorageLocation interface {
	// The configuration for the storage location.
	// Experimental.
	LocationConfig() *SupplementalDataStorageS3Config
	// The type of the storage location.
	// Experimental.
	Type() SupplementalDataStorageLocationType
}

Represents a supplemental data storage location for images extracted from multimodal documents in your data source. Experimental.

func NewSupplementalDataStorageLocation

func NewSupplementalDataStorageLocation(type_ SupplementalDataStorageLocationType, locationConfig *SupplementalDataStorageS3Config) SupplementalDataStorageLocation

Creates a new SupplementalDataStorageLocation. Experimental.

func SupplementalDataStorageLocation_S3

func SupplementalDataStorageLocation_S3(config *SupplementalDataStorageS3Config) SupplementalDataStorageLocation

Creates a new S3 supplemental data storage location.

Returns: A new SupplementalDataStorageLocation instance. Experimental.

type SupplementalDataStorageLocationType

type SupplementalDataStorageLocationType string

Experimental.

const (
	// Contains information about the Amazon S3 location for the extracted images.
	// Experimental.
	SupplementalDataStorageLocationType_S3 SupplementalDataStorageLocationType = "S3"
)

type SupplementalDataStorageS3Config

type SupplementalDataStorageS3Config struct {
	// The S3 URI for the storage location.
	// Experimental.
	Uri *string `field:"required" json:"uri" yaml:"uri"`
}

Experimental.

type TextPromptVariantProps

type TextPromptVariantProps struct {
	// The model which is used to run the prompt.
	//
	// The model could be a foundation
	// model, a custom model, or a provisioned model.
	// Experimental.
	Model IInvokable `field:"required" json:"model" yaml:"model"`
	// The name of the prompt variant.
	// Experimental.
	VariantName *string `field:"required" json:"variantName" yaml:"variantName"`
	// The variables in the prompt template that can be filled in at runtime.
	// Experimental.
	PromptVariables *[]*string `field:"optional" json:"promptVariables" yaml:"promptVariables"`
	// The text prompt.
	//
	// Variables are used by enclosing its name with double curly braces
	// as in `{{variable_name}}`.
	// Experimental.
	PromptText *string `field:"required" json:"promptText" yaml:"promptText"`
	// Inference configuration for the Text Prompt.
	// Experimental.
	InferenceConfiguration *awsbedrock.CfnPrompt_PromptModelInferenceConfigurationProperty `field:"optional" json:"inferenceConfiguration" yaml:"inferenceConfiguration"`
}

Experimental.

type ToolChoice

type ToolChoice interface {
	// Experimental.
	Any() interface{}
	// Experimental.
	Auto() interface{}
	// Experimental.
	Tool() *string
}

Experimental.

func NewToolChoice

func NewToolChoice(any interface{}, auto interface{}, tool *string) ToolChoice

Experimental.

func ToolChoice_ANY

func ToolChoice_ANY() ToolChoice

func ToolChoice_AUTO

func ToolChoice_AUTO() ToolChoice

func ToolChoice_SpecificTool

func ToolChoice_SpecificTool(toolName *string) ToolChoice

The Model must request the specified tool.

Only supported by some models like Anthropic Claude 3 models. Experimental.

type ToolConfiguration

type ToolConfiguration struct {
	// Experimental.
	ToolChoice ToolChoice `field:"required" json:"toolChoice" yaml:"toolChoice"`
	// Experimental.
	Tools *[]*awsbedrock.CfnPrompt_ToolProperty `field:"required" json:"tools" yaml:"tools"`
}

Experimental.

type Topic

type Topic interface {
	// Definition of the topic.
	// Experimental.
	Definition() *string
	// Representative phrases that refer to the topic.
	// Experimental.
	Examples() *[]*string
	// The name of the topic to deny.
	// Experimental.
	Name() *string
}

Defines a topic to deny. Experimental.

func NewTopic

func NewTopic(props *CustomTopicProps) Topic

Experimental.

func Topic_Custom

func Topic_Custom(props *CustomTopicProps) Topic

Experimental.

func Topic_FINANCIAL_ADVICE

func Topic_FINANCIAL_ADVICE() Topic

func Topic_INAPPROPRIATE_CONTENT

func Topic_INAPPROPRIATE_CONTENT() Topic
func Topic_LEGAL_ADVICE() Topic

func Topic_MEDICAL_ADVICE

func Topic_MEDICAL_ADVICE() Topic

func Topic_POLITICAL_ADVICE

func Topic_POLITICAL_ADVICE() Topic

type TransformationStep

type TransformationStep string

Defines the step in the ingestion process where the custom transformation is applied. Experimental.

const (
	// Processes documents after they have been converted into chunks.
	//
	// This allows for custom chunk-level metadata addition or custom post-chunking logic.
	// Experimental.
	TransformationStep_POST_CHUNKING TransformationStep = "POST_CHUNKING"
)

type VectorFieldMapping

type VectorFieldMapping struct {
	// The name of the field in which Amazon Bedrock stores metadata about the vector store.
	// Default: "AMAZON_BEDROCK_METADATA".
	//
	// Experimental.
	MetadataField *string `field:"required" json:"metadataField" yaml:"metadataField"`
	// The name of the field in which Amazon Bedrock stores the raw text from your data.
	//
	// The text is split according to the chunking strategy you choose.
	// Default: "AMAZON_BEDROCK_TEXT".
	//
	// Experimental.
	TextField *string `field:"required" json:"textField" yaml:"textField"`
}

Experimental.

type VectorKnowledgeBase

type VectorKnowledgeBase interface {
	VectorKnowledgeBaseBase
	// A description of the knowledge base.
	// Experimental.
	Description() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// Instructions for agents based on the design and type of information of the Knowledge Base.
	//
	// This will impact how Agents interact with the Knowledge Base.
	// Experimental.
	Instruction() *string
	// The ARN of the knowledge base.
	// Experimental.
	KnowledgeBaseArn() *string
	// The ID of the knowledge base.
	// Experimental.
	KnowledgeBaseId() *string
	// Instance of knowledge base.
	// Experimental.
	KnowledgeBaseInstance() awsbedrock.CfnKnowledgeBase
	// The name of the knowledge base.
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The role the Knowledge Base uses to access the vector store and data source.
	// Experimental.
	Role() awsiam.IRole
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// The type of knowledge base.
	// Experimental.
	Type() KnowledgeBaseType
	// The vector store for the knowledge base.
	// Experimental.
	VectorStore() interface{}
	// The type of the knowledge base.
	// Experimental.
	VectorStoreType() VectorStoreType
	// Add a Confluence data source to the knowledge base.
	// Experimental.
	AddConfluenceDataSource(props *ConfluenceDataSourceAssociationProps) ConfluenceDataSource
	// Add a Custom data source to the knowledge base.
	// Experimental.
	AddCustomDataSource(props *CustomDataSourceAssociationProps) CustomDataSource
	// Adds an S3 data source to the knowledge base.
	// Experimental.
	AddS3DataSource(props *S3DataSourceAssociationProps) S3DataSource
	// Add a Salesforce data source to the knowledge base.
	// Experimental.
	AddSalesforceDataSource(props *SalesforceDataSourceAssociationProps) SalesforceDataSource
	// Add a SharePoint data source to the knowledge base.
	// Experimental.
	AddSharePointDataSource(props *SharePointDataSourceAssociationProps) SharePointDataSource
	// Add a web crawler data source to the knowledge base.
	// Experimental.
	AddWebCrawlerDataSource(props *WebCrawlerDataSourceAssociationProps) WebCrawlerDataSource
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Associate knowledge base with an agent.
	// Experimental.
	AssociateToAgent(agent Agent)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Grant the given principal identity permissions to perform actions on this knowledge base.
	// Experimental.
	Grant(grantee awsiam.IGrantable, actions ...*string) awsiam.Grant
	// Grant the given identity permissions to query the knowledge base.
	//
	// This contains:
	// - Retrieve
	// - RetrieveAndGenerate.
	// Experimental.
	GrantQuery(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to retrieve content from the knowledge base.
	// Experimental.
	GrantRetrieve(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to retrieve content from the knowledge base.
	// Experimental.
	GrantRetrieveAndGenerate(grantee awsiam.IGrantable) awsiam.Grant
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Deploys a Bedrock Knowledge Base and configures a backend by OpenSearch Serverless, Pinecone, Redis Enterprise Cloud or Amazon Aurora PostgreSQL. Experimental.

func NewVectorKnowledgeBase

func NewVectorKnowledgeBase(scope constructs.Construct, id *string, props *VectorKnowledgeBaseProps) VectorKnowledgeBase

Experimental.

type VectorKnowledgeBaseAttributes

type VectorKnowledgeBaseAttributes struct {
	// The Service Execution Role associated with the knowledge base.
	//
	// Example:
	//   "arn:aws:iam::123456789012:role/AmazonBedrockExecutionRoleForKnowledgeBaseawscdkbdgeBaseKB12345678"
	//
	// Experimental.
	ExecutionRoleArn *string `field:"required" json:"executionRoleArn" yaml:"executionRoleArn"`
	// The ID of the knowledge base.
	//
	// Example:
	//   "KB12345678"
	//
	// Experimental.
	KnowledgeBaseId *string `field:"required" json:"knowledgeBaseId" yaml:"knowledgeBaseId"`
	// The description of the knowledge base.
	// Default: - No description provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Instructions for agents based on the design and type of information of the Knowledge Base.
	//
	// This will impact how Agents interact with the Knowledge Base.
	// Default: - No description provided.
	//
	// Experimental.
	Instruction *string `field:"optional" json:"instruction" yaml:"instruction"`
	// Specifies whether to use the knowledge base or not when sending an InvokeAgent request.
	// Default: - ENABLED.
	//
	// Experimental.
	KnowledgeBaseState *string `field:"optional" json:"knowledgeBaseState" yaml:"knowledgeBaseState"`
	// The vector store type for the knowledge base.
	// Experimental.
	VectorStoreType VectorStoreType `field:"required" json:"vectorStoreType" yaml:"vectorStoreType"`
}

Properties for importing a knowledge base outside of this stack. Experimental.

type VectorKnowledgeBaseBase

type VectorKnowledgeBaseBase interface {
	KnowledgeBaseBase
	IVectorKnowledgeBase
	// The description of the knowledge base.
	// Experimental.
	Description() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// A narrative instruction of the knowledge base.
	//
	// A Bedrock Agent can use this instruction to determine if it should
	// query this Knowledge Base.
	// Experimental.
	Instruction() *string
	// The ARN of the knowledge base.
	// Experimental.
	KnowledgeBaseArn() *string
	// The ID of the knowledge base.
	// Experimental.
	KnowledgeBaseId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The role associated with the knowledge base.
	// Experimental.
	Role() awsiam.IRole
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// The type of knowledge base.
	// Experimental.
	Type() KnowledgeBaseType
	// The storage type for the Vector Embeddings.
	// Experimental.
	VectorStoreType() VectorStoreType
	// Add a Confluence data source to the knowledge base.
	// Experimental.
	AddConfluenceDataSource(props *ConfluenceDataSourceAssociationProps) ConfluenceDataSource
	// Add a Custom data source to the knowledge base.
	// Experimental.
	AddCustomDataSource(props *CustomDataSourceAssociationProps) CustomDataSource
	// Adds an S3 data source to the knowledge base.
	// Experimental.
	AddS3DataSource(props *S3DataSourceAssociationProps) S3DataSource
	// Add a Salesforce data source to the knowledge base.
	// Experimental.
	AddSalesforceDataSource(props *SalesforceDataSourceAssociationProps) SalesforceDataSource
	// Add a SharePoint data source to the knowledge base.
	// Experimental.
	AddSharePointDataSource(props *SharePointDataSourceAssociationProps) SharePointDataSource
	// Add a web crawler data source to the knowledge base.
	// Experimental.
	AddWebCrawlerDataSource(props *WebCrawlerDataSourceAssociationProps) WebCrawlerDataSource
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Grant the given principal identity permissions to perform actions on this knowledge base.
	// Experimental.
	Grant(grantee awsiam.IGrantable, actions ...*string) awsiam.Grant
	// Grant the given identity permissions to query the knowledge base.
	//
	// This contains:
	// - Retrieve
	// - RetrieveAndGenerate.
	// Experimental.
	GrantQuery(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to retrieve content from the knowledge base.
	// Experimental.
	GrantRetrieve(grantee awsiam.IGrantable) awsiam.Grant
	// Grant the given identity permissions to retrieve content from the knowledge base.
	// Experimental.
	GrantRetrieveAndGenerate(grantee awsiam.IGrantable) awsiam.Grant
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Abstract base class for Vector Knowledge Base.

Contains methods valid for KBs either created with CDK or imported. Experimental.

type VectorKnowledgeBaseProps

type VectorKnowledgeBaseProps struct {
	// The description of the knowledge base.
	// Default: - No description provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Existing IAM role with policy statements granting appropriate permissions to invoke the specific embeddings models.
	//
	// Any entity (e.g., an AWS service or application) that assumes
	// this role will be able to invoke or use the
	// specified embeddings model within the Bedrock service.
	// Experimental.
	ExistingRole awsiam.IRole `field:"optional" json:"existingRole" yaml:"existingRole"`
	// A narrative description of the knowledge base.
	//
	// A Bedrock Agent can use this instruction to determine if it should
	// query this Knowledge Base.
	// Default: - No description provided.
	//
	// Experimental.
	Instruction *string `field:"optional" json:"instruction" yaml:"instruction"`
	// The name of the knowledge base.
	// Experimental.
	Name *string `field:"optional" json:"name" yaml:"name"`
	// The embeddings model for the knowledge base.
	// Experimental.
	EmbeddingsModel BedrockFoundationModel `field:"required" json:"embeddingsModel" yaml:"embeddingsModel"`
	// The name of the vector index.
	//
	// If vectorStore is not of type `VectorCollection`,
	// do not include this property as it will throw error.
	// Default: - 'bedrock-knowledge-base-default-index'.
	//
	// Experimental.
	IndexName *string `field:"optional" json:"indexName" yaml:"indexName"`
	// The supplemental data storage locations for the knowledge base.
	// Experimental.
	SupplementalDataStorageLocations *[]SupplementalDataStorageLocation `field:"optional" json:"supplementalDataStorageLocations" yaml:"supplementalDataStorageLocations"`
	// The name of the field in the vector index.
	//
	// If vectorStore is not of type `VectorCollection`,
	// do not include this property as it will throw error.
	// Default: - 'bedrock-knowledge-base-default-vector'.
	//
	// Experimental.
	VectorField *string `field:"optional" json:"vectorField" yaml:"vectorField"`
	// The vector index for the OpenSearch Serverless backed knowledge base.
	//
	// If vectorStore is not of type `VectorCollection`, do not include
	// this property as it will throw error.
	// Default: - A new vector index is created on the Vector Collection
	// if vector store is of `VectorCollection` type.
	//
	// Experimental.
	VectorIndex opensearchvectorindex.VectorIndex `field:"optional" json:"vectorIndex" yaml:"vectorIndex"`
	// The vector store for the knowledge base.
	//
	// Must be either of
	// type `VectorCollection`, `PineconeVectorStore`, `AmazonAuroraVectorStore`,
	// `MongoDBAtlasVectorStore`, `OpenSearchManagedClusterVectorStore`, or
	// `VectorIndex` from s3vectors (for S3 Vectors).
	// Default: - A new OpenSearch Serverless vector collection is created.
	//
	// Experimental.
	VectorStore interface{} `field:"optional" json:"vectorStore" yaml:"vectorStore"`
	// The vector type to store vector embeddings.
	// Default: - VectorType.FLOATING_POINT
	//
	// Experimental.
	VectorType VectorType `field:"optional" json:"vectorType" yaml:"vectorType"`
}

Properties for a knowledge base. Experimental.

type VectorStoreType

type VectorStoreType string

Knowledge base can be backed by different vector databases. This enum represents the different vector databases that can be used.

`OPENSEARCH_SERVERLESS` is the default vector database. `PINECONE` is the vector database for Pinecone. `AMAZON_AURORA` is the vector database for Amazon Aurora PostgreSQL. Experimental.

const (
	// `OPENSEARCH_SERVERLESS` is the vector store for OpenSearch Serverless.
	// Experimental.
	VectorStoreType_OPENSEARCH_SERVERLESS VectorStoreType = "OPENSEARCH_SERVERLESS"
	// `OPENSEARCH_MANAGED_CLUSTER` is the vector store for OpenSearch Managed Cluster.
	// Experimental.
	VectorStoreType_OPENSEARCH_MANAGED_CLUSTER VectorStoreType = "OPENSEARCH_MANAGED_CLUSTER"
	// `PINECONE` is the vector store for Pinecone.
	// Experimental.
	VectorStoreType_PINECONE VectorStoreType = "PINECONE"
	// `RDS` is the vector store for Amazon Aurora.
	// Experimental.
	VectorStoreType_AMAZON_AURORA VectorStoreType = "AMAZON_AURORA"
	// `MONGO_DB_ATLAS` is the vector store for MongoDB Atlas.
	// Experimental.
	VectorStoreType_MONGO_DB_ATLAS VectorStoreType = "MONGO_DB_ATLAS"
	// `NEPTUNE_ANALYTICS` is the vector store for Amazon Neptune Analytics.
	// Experimental.
	VectorStoreType_NEPTUNE_ANALYTICS VectorStoreType = "NEPTUNE_ANALYTICS"
	// `S3_VECTORS` is the vector store for Amazon S3 Vectors.
	// Experimental.
	VectorStoreType_S3_VECTORS VectorStoreType = "S3_VECTORS"
)

type VectorType

type VectorType string

The data type for the vectors when using a model to convert text into vector embeddings.

The model must support the specified data type for vector embeddings. Floating-point (float32) is the default data type, and is supported by most models for vector embeddings. See Supported embeddings models for information on the available models and their vector data types. Experimental.

const (
	// `FLOATING_POINT` convert the data to floating-point (float32) vector embeddings (more precise, but more costly).
	// Experimental.
	VectorType_FLOATING_POINT VectorType = "FLOATING_POINT"
	// `BINARY` convert the data to binary vector embeddings (less precise, but less costly).
	// Experimental.
	VectorType_BINARY VectorType = "BINARY"
)

type WebCrawlerDataSource

type WebCrawlerDataSource interface {
	DataSourceNew
	// The max rate at which pages are crawled.
	// Experimental.
	CrawlingRate() *float64
	// The unique identifier of the data source.
	//
	// Example:
	//   "JHUEVXUZMU"
	//
	// Experimental.
	DataSourceId() *string
	// The name of the data source.
	// Experimental.
	DataSourceName() *string
	// The type of data source.
	// Experimental.
	DataSourceType() DataSourceType
	// The environment this resource belongs to.
	//
	// For resources that are created and managed in a Stack (those created by
	// creating new class instances like `new Role()`, `new Bucket()`, etc.), this
	// is always the same as the environment of the stack they belong to.
	//
	// For referenced resources (those obtained from referencing methods like
	// `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
	// different than the stack they were imported into.
	// Experimental.
	Env() *interfaces.ResourceEnvironment
	// The KMS key to use to encrypt the data source.
	// Experimental.
	KmsKey() awskms.IKey
	// The knowledge base associated with the data source.
	// Experimental.
	KnowledgeBase() IKnowledgeBase
	// The maximum number of pages to crawl.
	// Experimental.
	MaxPages() *float64
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The max rate at which pages are crawled.
	// Experimental.
	SiteUrls() *[]*string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Formats the data source configuration properties for CloudFormation.
	// Experimental.
	FormatAsCfnProps(props *DataSourceAssociationProps, dataSourceConfiguration *awsbedrock.CfnDataSource_DataSourceConfigurationProperty) *awsbedrock.CfnDataSourceProps
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Adds appropriate permissions to the KB execution role needed by the data source.
	// Experimental.
	HandleCommonPermissions(props *DataSourceAssociationProps)
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Sets up a web crawler data source to be added to a knowledge base. Experimental.

func NewWebCrawlerDataSource

func NewWebCrawlerDataSource(scope constructs.Construct, id *string, props *WebCrawlerDataSourceProps) WebCrawlerDataSource

Experimental.

type WebCrawlerDataSourceAssociationProps

type WebCrawlerDataSourceAssociationProps struct {
	// The chunking stategy to use for splitting your documents or content.
	//
	// The chunks are then converted to embeddings and written to the vector
	// index allowing for similarity search and retrieval of the content.
	// Default: ChunkingStrategy.DEFAULT
	//
	// Experimental.
	ChunkingStrategy ChunkingStrategy `field:"optional" json:"chunkingStrategy" yaml:"chunkingStrategy"`
	// The context enrichment configuration to use.
	// Default: - No context enrichment is used.
	//
	// Experimental.
	ContextEnrichment ContextEnrichment `field:"optional" json:"contextEnrichment" yaml:"contextEnrichment"`
	// The custom transformation strategy to use.
	// Default: - No custom transformation is used.
	//
	// Experimental.
	CustomTransformation CustomTransformation `field:"optional" json:"customTransformation" yaml:"customTransformation"`
	// The data deletion policy to apply to the data source.
	// Default: - Sets the data deletion policy to the default of the data source type.
	//
	// Experimental.
	DataDeletionPolicy DataDeletionPolicy `field:"optional" json:"dataDeletionPolicy" yaml:"dataDeletionPolicy"`
	// The name of the data source.
	// Default: - A new name will be generated.
	//
	// Experimental.
	DataSourceName *string `field:"optional" json:"dataSourceName" yaml:"dataSourceName"`
	// A description of the data source.
	// Default: - No description is provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The KMS key to use to encrypt the data source.
	// Default: - Service owned and managed key.
	//
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
	// The parsing strategy to use.
	// Default: - No Parsing Stategy is used.
	//
	// Experimental.
	ParsingStrategy ParsingStrategy `field:"optional" json:"parsingStrategy" yaml:"parsingStrategy"`
	// The source urls in the format `https://www.sitename.com`. Maximum of 100 URLs.
	// Experimental.
	SourceUrls *[]*string `field:"required" json:"sourceUrls" yaml:"sourceUrls"`
	// The max rate at which pages are crawled, up to 300 per minute per host.
	//
	// Higher values will decrease sync time but increase the load on the host.
	// Default: 300.
	//
	// Experimental.
	CrawlingRate *float64 `field:"optional" json:"crawlingRate" yaml:"crawlingRate"`
	// The scope of the crawling.
	// Default: - CrawlingScope.DEFAULT
	//
	// Experimental.
	CrawlingScope CrawlingScope `field:"optional" json:"crawlingScope" yaml:"crawlingScope"`
	// The filters (regular expression patterns) for the crawling.
	//
	// If there's a conflict, the exclude pattern takes precedence.
	// Default: None.
	//
	// Experimental.
	Filters *CrawlingFilters `field:"optional" json:"filters" yaml:"filters"`
	// The maximum number of pages to crawl.
	//
	// The max number of web pages crawled from your source URLs,
	// up to 25,000 pages. If the web pages exceed this limit, the data source sync will fail and
	// no web pages will be ingested.
	// Default: - No limit.
	//
	// Experimental.
	MaxPages *float64 `field:"optional" json:"maxPages" yaml:"maxPages"`
	// The user agent string to use when crawling.
	// Default: - Default user agent string.
	//
	// Experimental.
	UserAgent *string `field:"optional" json:"userAgent" yaml:"userAgent"`
	// The user agent header to use when crawling.
	//
	// A string used for identifying
	// the crawler or bot when it accesses a web server. The user agent header value
	// consists of the bedrockbot, UUID, and a user agent suffix for your crawler (if one is provided).
	// By default, it is set to bedrockbot_UUID. You can optionally append a custom suffix to bedrockbot_UUID
	// to allowlist a specific user agent permitted to access your source URLs.
	// Default: - Default user agent header (bedrockbot_UUID).
	//
	// Experimental.
	UserAgentHeader *string `field:"optional" json:"userAgentHeader" yaml:"userAgentHeader"`
}

Interface to add a new data source to an existing KB. Experimental.

type WebCrawlerDataSourceProps

type WebCrawlerDataSourceProps struct {
	// The chunking stategy to use for splitting your documents or content.
	//
	// The chunks are then converted to embeddings and written to the vector
	// index allowing for similarity search and retrieval of the content.
	// Default: ChunkingStrategy.DEFAULT
	//
	// Experimental.
	ChunkingStrategy ChunkingStrategy `field:"optional" json:"chunkingStrategy" yaml:"chunkingStrategy"`
	// The context enrichment configuration to use.
	// Default: - No context enrichment is used.
	//
	// Experimental.
	ContextEnrichment ContextEnrichment `field:"optional" json:"contextEnrichment" yaml:"contextEnrichment"`
	// The custom transformation strategy to use.
	// Default: - No custom transformation is used.
	//
	// Experimental.
	CustomTransformation CustomTransformation `field:"optional" json:"customTransformation" yaml:"customTransformation"`
	// The data deletion policy to apply to the data source.
	// Default: - Sets the data deletion policy to the default of the data source type.
	//
	// Experimental.
	DataDeletionPolicy DataDeletionPolicy `field:"optional" json:"dataDeletionPolicy" yaml:"dataDeletionPolicy"`
	// The name of the data source.
	// Default: - A new name will be generated.
	//
	// Experimental.
	DataSourceName *string `field:"optional" json:"dataSourceName" yaml:"dataSourceName"`
	// A description of the data source.
	// Default: - No description is provided.
	//
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The KMS key to use to encrypt the data source.
	// Default: - Service owned and managed key.
	//
	// Experimental.
	KmsKey awskms.IKey `field:"optional" json:"kmsKey" yaml:"kmsKey"`
	// The parsing strategy to use.
	// Default: - No Parsing Stategy is used.
	//
	// Experimental.
	ParsingStrategy ParsingStrategy `field:"optional" json:"parsingStrategy" yaml:"parsingStrategy"`
	// The source urls in the format `https://www.sitename.com`. Maximum of 100 URLs.
	// Experimental.
	SourceUrls *[]*string `field:"required" json:"sourceUrls" yaml:"sourceUrls"`
	// The max rate at which pages are crawled, up to 300 per minute per host.
	//
	// Higher values will decrease sync time but increase the load on the host.
	// Default: 300.
	//
	// Experimental.
	CrawlingRate *float64 `field:"optional" json:"crawlingRate" yaml:"crawlingRate"`
	// The scope of the crawling.
	// Default: - CrawlingScope.DEFAULT
	//
	// Experimental.
	CrawlingScope CrawlingScope `field:"optional" json:"crawlingScope" yaml:"crawlingScope"`
	// The filters (regular expression patterns) for the crawling.
	//
	// If there's a conflict, the exclude pattern takes precedence.
	// Default: None.
	//
	// Experimental.
	Filters *CrawlingFilters `field:"optional" json:"filters" yaml:"filters"`
	// The maximum number of pages to crawl.
	//
	// The max number of web pages crawled from your source URLs,
	// up to 25,000 pages. If the web pages exceed this limit, the data source sync will fail and
	// no web pages will be ingested.
	// Default: - No limit.
	//
	// Experimental.
	MaxPages *float64 `field:"optional" json:"maxPages" yaml:"maxPages"`
	// The user agent string to use when crawling.
	// Default: - Default user agent string.
	//
	// Experimental.
	UserAgent *string `field:"optional" json:"userAgent" yaml:"userAgent"`
	// The user agent header to use when crawling.
	//
	// A string used for identifying
	// the crawler or bot when it accesses a web server. The user agent header value
	// consists of the bedrockbot, UUID, and a user agent suffix for your crawler (if one is provided).
	// By default, it is set to bedrockbot_UUID. You can optionally append a custom suffix to bedrockbot_UUID
	// to allowlist a specific user agent permitted to access your source URLs.
	// Default: - Default user agent header (bedrockbot_UUID).
	//
	// Experimental.
	UserAgentHeader *string `field:"optional" json:"userAgentHeader" yaml:"userAgentHeader"`
	// The knowledge base to associate with the data source.
	// Experimental.
	KnowledgeBase IKnowledgeBase `field:"required" json:"knowledgeBase" yaml:"knowledgeBase"`
}

Interface to create a new standalone data source object. Experimental.

type WordFilter

type WordFilter struct {
	// The text to filter.
	// Experimental.
	Text *string `field:"required" json:"text" yaml:"text"`
	// The action to take when a word is detected in the input.
	// Experimental.
	InputAction GuardrailAction `field:"optional" json:"inputAction" yaml:"inputAction"`
	// Whether the word filter is enabled for input.
	// Experimental.
	InputEnabled *bool `field:"optional" json:"inputEnabled" yaml:"inputEnabled"`
	// The action to take when a word is detected in the output.
	// Experimental.
	OutputAction GuardrailAction `field:"optional" json:"outputAction" yaml:"outputAction"`
	// Whether the word filter is enabled for output.
	// Experimental.
	OutputEnabled *bool `field:"optional" json:"outputEnabled" yaml:"outputEnabled"`
}

Interface to define a Word Filter. Experimental.

Source Files

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL