r'''
# `aws_bedrockagent_prompt`

Refer to the Terraform Registry for docs: [`aws_bedrockagent_prompt`](https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt).
'''
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)

import abc
import builtins
import datetime
import enum
import typing

import jsii
import publication
import typing_extensions

import typeguard
from importlib.metadata import version as _metadata_package_version
TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])

def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
    if TYPEGUARD_MAJOR_VERSION <= 2:
        return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
    else:
        if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
           pass
        else:
            if TYPEGUARD_MAJOR_VERSION == 3:
                typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
                typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
            else:
                typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore

from .._jsii import *

import cdktn as _cdktn_78ede62e
import constructs as _constructs_77d1e7e8


class BedrockagentPrompt(
    _cdktn_78ede62e.TerraformResource,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPrompt",
):
    '''Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt aws_bedrockagent_prompt}.'''

    def __init__(
        self,
        scope: "_constructs_77d1e7e8.Construct",
        id: builtins.str,
        *,
        name: builtins.str,
        customer_encryption_key_arn: typing.Optional[builtins.str] = None,
        default_variant: typing.Optional[builtins.str] = None,
        description: typing.Optional[builtins.str] = None,
        region: typing.Optional[builtins.str] = None,
        tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
        variant: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariant", typing.Dict[builtins.str, typing.Any]]]]] = None,
        connection: typing.Optional[typing.Union[typing.Union["_cdktn_78ede62e.SSHProvisionerConnection", typing.Dict[builtins.str, typing.Any]], typing.Union["_cdktn_78ede62e.WinrmProvisionerConnection", typing.Dict[builtins.str, typing.Any]]]] = None,
        count: typing.Optional[typing.Union[jsii.Number, "_cdktn_78ede62e.TerraformCount"]] = None,
        depends_on: typing.Optional[typing.Sequence["_cdktn_78ede62e.ITerraformDependable"]] = None,
        for_each: typing.Optional["_cdktn_78ede62e.ITerraformIterator"] = None,
        lifecycle: typing.Optional[typing.Union["_cdktn_78ede62e.TerraformResourceLifecycle", typing.Dict[builtins.str, typing.Any]]] = None,
        provider: typing.Optional["_cdktn_78ede62e.TerraformProvider"] = None,
        provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union["_cdktn_78ede62e.FileProvisioner", typing.Dict[builtins.str, typing.Any]], typing.Union["_cdktn_78ede62e.LocalExecProvisioner", typing.Dict[builtins.str, typing.Any]], typing.Union["_cdktn_78ede62e.RemoteExecProvisioner", typing.Dict[builtins.str, typing.Any]]]]] = None,
    ) -> None:
        '''Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt aws_bedrockagent_prompt} Resource.

        :param scope: The scope in which to define this construct.
        :param id: The scoped construct ID. Must be unique amongst siblings in the same scope
        :param name: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#name BedrockagentPrompt#name}.
        :param customer_encryption_key_arn: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#customer_encryption_key_arn BedrockagentPrompt#customer_encryption_key_arn}.
        :param default_variant: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#default_variant BedrockagentPrompt#default_variant}.
        :param description: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#description BedrockagentPrompt#description}.
        :param region: Region where this resource will be `managed <https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints>`_. Defaults to the Region set in the `provider configuration <https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference>`_. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#region BedrockagentPrompt#region}
        :param tags: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#tags BedrockagentPrompt#tags}.
        :param variant: variant block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#variant BedrockagentPrompt#variant}
        :param connection: 
        :param count: 
        :param depends_on: 
        :param for_each: 
        :param lifecycle: 
        :param provider: 
        :param provisioners: 
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__4f34f74812192dabea0c15603abe54c840309fc8974c41c1db292c69807ea7af)
            check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
            check_type(argname="argument id", value=id, expected_type=type_hints["id"])
        config = BedrockagentPromptConfig(
            name=name,
            customer_encryption_key_arn=customer_encryption_key_arn,
            default_variant=default_variant,
            description=description,
            region=region,
            tags=tags,
            variant=variant,
            connection=connection,
            count=count,
            depends_on=depends_on,
            for_each=for_each,
            lifecycle=lifecycle,
            provider=provider,
            provisioners=provisioners,
        )

        jsii.create(self.__class__, self, [scope, id, config])

    @jsii.member(jsii_name="generateConfigForImport")
    @builtins.classmethod
    def generate_config_for_import(
        cls,
        scope: "_constructs_77d1e7e8.Construct",
        import_to_id: builtins.str,
        import_from_id: builtins.str,
        provider: typing.Optional["_cdktn_78ede62e.TerraformProvider"] = None,
    ) -> "_cdktn_78ede62e.ImportableResource":
        '''Generates CDKTN code for importing a BedrockagentPrompt resource upon running "cdktn plan ".

        :param scope: The scope in which to define this construct.
        :param import_to_id: The construct id used in the generated config for the BedrockagentPrompt to import.
        :param import_from_id: The id of the existing BedrockagentPrompt that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#import import section} in the documentation of this resource for the id to use
        :param provider: ? Optional instance of the provider where the BedrockagentPrompt to import is found.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__4d7e8e6c716c715dd5ff4cf43cc3ef2c7f207d01239b308f2198e23222157b4c)
            check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
            check_type(argname="argument import_to_id", value=import_to_id, expected_type=type_hints["import_to_id"])
            check_type(argname="argument import_from_id", value=import_from_id, expected_type=type_hints["import_from_id"])
            check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
        return typing.cast("_cdktn_78ede62e.ImportableResource", jsii.sinvoke(cls, "generateConfigForImport", [scope, import_to_id, import_from_id, provider]))

    @jsii.member(jsii_name="putVariant")
    def put_variant(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariant", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__1c5ef2e55c32e80d81dfb7576546516639397322ca92b3b54c6dd6b820dab5b3)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putVariant", [value]))

    @jsii.member(jsii_name="resetCustomerEncryptionKeyArn")
    def reset_customer_encryption_key_arn(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetCustomerEncryptionKeyArn", []))

    @jsii.member(jsii_name="resetDefaultVariant")
    def reset_default_variant(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetDefaultVariant", []))

    @jsii.member(jsii_name="resetDescription")
    def reset_description(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetDescription", []))

    @jsii.member(jsii_name="resetRegion")
    def reset_region(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetRegion", []))

    @jsii.member(jsii_name="resetTags")
    def reset_tags(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetTags", []))

    @jsii.member(jsii_name="resetVariant")
    def reset_variant(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetVariant", []))

    @jsii.member(jsii_name="synthesizeAttributes")
    def _synthesize_attributes(self) -> typing.Mapping[builtins.str, typing.Any]:
        return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "synthesizeAttributes", []))

    @jsii.member(jsii_name="synthesizeHclAttributes")
    def _synthesize_hcl_attributes(self) -> typing.Mapping[builtins.str, typing.Any]:
        return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "synthesizeHclAttributes", []))

    @jsii.python.classproperty
    @jsii.member(jsii_name="tfResourceType")
    def TF_RESOURCE_TYPE(cls) -> builtins.str:
        return typing.cast(builtins.str, jsii.sget(cls, "tfResourceType"))

    @builtins.property
    @jsii.member(jsii_name="arn")
    def arn(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "arn"))

    @builtins.property
    @jsii.member(jsii_name="createdAt")
    def created_at(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "createdAt"))

    @builtins.property
    @jsii.member(jsii_name="id")
    def id(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "id"))

    @builtins.property
    @jsii.member(jsii_name="tagsAll")
    def tags_all(self) -> "_cdktn_78ede62e.StringMap":
        return typing.cast("_cdktn_78ede62e.StringMap", jsii.get(self, "tagsAll"))

    @builtins.property
    @jsii.member(jsii_name="updatedAt")
    def updated_at(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "updatedAt"))

    @builtins.property
    @jsii.member(jsii_name="variant")
    def variant(self) -> "BedrockagentPromptVariantList":
        return typing.cast("BedrockagentPromptVariantList", jsii.get(self, "variant"))

    @builtins.property
    @jsii.member(jsii_name="version")
    def version(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "version"))

    @builtins.property
    @jsii.member(jsii_name="customerEncryptionKeyArnInput")
    def customer_encryption_key_arn_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "customerEncryptionKeyArnInput"))

    @builtins.property
    @jsii.member(jsii_name="defaultVariantInput")
    def default_variant_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "defaultVariantInput"))

    @builtins.property
    @jsii.member(jsii_name="descriptionInput")
    def description_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "descriptionInput"))

    @builtins.property
    @jsii.member(jsii_name="nameInput")
    def name_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "nameInput"))

    @builtins.property
    @jsii.member(jsii_name="regionInput")
    def region_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "regionInput"))

    @builtins.property
    @jsii.member(jsii_name="tagsInput")
    def tags_input(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
        return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], jsii.get(self, "tagsInput"))

    @builtins.property
    @jsii.member(jsii_name="variantInput")
    def variant_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariant"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariant"]]], jsii.get(self, "variantInput"))

    @builtins.property
    @jsii.member(jsii_name="customerEncryptionKeyArn")
    def customer_encryption_key_arn(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "customerEncryptionKeyArn"))

    @customer_encryption_key_arn.setter
    def customer_encryption_key_arn(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__c3a142b13f4abd0e36b43653672ecad6812a19ab40cba90f6c8d80951f916a06)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "customerEncryptionKeyArn", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="defaultVariant")
    def default_variant(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "defaultVariant"))

    @default_variant.setter
    def default_variant(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__af669ebf373612d4995c3dd245695c26d897c65895dfeb62760db5e4bc21b59f)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "defaultVariant", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="description")
    def description(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "description"))

    @description.setter
    def description(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__7f412b289f8733e70a49cea9eb5768b50f9351569de282ba110aa44cc9f51b9e)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "description", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="name")
    def name(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "name"))

    @name.setter
    def name(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__bf0fdd5cc3e1ff336283b9022c080c8e0918c4cfffae9f368806dddea928a646)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="region")
    def region(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "region"))

    @region.setter
    def region(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__c55c8ac656843a635b15aaaa8e81b739e69c91d654b25209420f7f34d44a5cc2)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "region", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="tags")
    def tags(self) -> typing.Mapping[builtins.str, builtins.str]:
        return typing.cast(typing.Mapping[builtins.str, builtins.str], jsii.get(self, "tags"))

    @tags.setter
    def tags(self, value: typing.Mapping[builtins.str, builtins.str]) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__87b8409201663fe9a3627dd040e2805a4a9ab2a468368604eac2a40bf8b6c3a9)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptConfig",
    jsii_struct_bases=[_cdktn_78ede62e.TerraformMetaArguments],
    name_mapping={
        "connection": "connection",
        "count": "count",
        "depends_on": "dependsOn",
        "for_each": "forEach",
        "lifecycle": "lifecycle",
        "provider": "provider",
        "provisioners": "provisioners",
        "name": "name",
        "customer_encryption_key_arn": "customerEncryptionKeyArn",
        "default_variant": "defaultVariant",
        "description": "description",
        "region": "region",
        "tags": "tags",
        "variant": "variant",
    },
)
class BedrockagentPromptConfig(_cdktn_78ede62e.TerraformMetaArguments):
    def __init__(
        self,
        *,
        connection: typing.Optional[typing.Union[typing.Union["_cdktn_78ede62e.SSHProvisionerConnection", typing.Dict[builtins.str, typing.Any]], typing.Union["_cdktn_78ede62e.WinrmProvisionerConnection", typing.Dict[builtins.str, typing.Any]]]] = None,
        count: typing.Optional[typing.Union[jsii.Number, "_cdktn_78ede62e.TerraformCount"]] = None,
        depends_on: typing.Optional[typing.Sequence["_cdktn_78ede62e.ITerraformDependable"]] = None,
        for_each: typing.Optional["_cdktn_78ede62e.ITerraformIterator"] = None,
        lifecycle: typing.Optional[typing.Union["_cdktn_78ede62e.TerraformResourceLifecycle", typing.Dict[builtins.str, typing.Any]]] = None,
        provider: typing.Optional["_cdktn_78ede62e.TerraformProvider"] = None,
        provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union["_cdktn_78ede62e.FileProvisioner", typing.Dict[builtins.str, typing.Any]], typing.Union["_cdktn_78ede62e.LocalExecProvisioner", typing.Dict[builtins.str, typing.Any]], typing.Union["_cdktn_78ede62e.RemoteExecProvisioner", typing.Dict[builtins.str, typing.Any]]]]] = None,
        name: builtins.str,
        customer_encryption_key_arn: typing.Optional[builtins.str] = None,
        default_variant: typing.Optional[builtins.str] = None,
        description: typing.Optional[builtins.str] = None,
        region: typing.Optional[builtins.str] = None,
        tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
        variant: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariant", typing.Dict[builtins.str, typing.Any]]]]] = None,
    ) -> None:
        '''
        :param connection: 
        :param count: 
        :param depends_on: 
        :param for_each: 
        :param lifecycle: 
        :param provider: 
        :param provisioners: 
        :param name: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#name BedrockagentPrompt#name}.
        :param customer_encryption_key_arn: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#customer_encryption_key_arn BedrockagentPrompt#customer_encryption_key_arn}.
        :param default_variant: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#default_variant BedrockagentPrompt#default_variant}.
        :param description: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#description BedrockagentPrompt#description}.
        :param region: Region where this resource will be `managed <https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints>`_. Defaults to the Region set in the `provider configuration <https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference>`_. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#region BedrockagentPrompt#region}
        :param tags: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#tags BedrockagentPrompt#tags}.
        :param variant: variant block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#variant BedrockagentPrompt#variant}
        '''
        if isinstance(lifecycle, dict):
            lifecycle = _cdktn_78ede62e.TerraformResourceLifecycle(**lifecycle)
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__0d001ac18111a4b7098e4894e4bdec1f7af40dbe9cbf6b47fbfb88b42953bbbe)
            check_type(argname="argument connection", value=connection, expected_type=type_hints["connection"])
            check_type(argname="argument count", value=count, expected_type=type_hints["count"])
            check_type(argname="argument depends_on", value=depends_on, expected_type=type_hints["depends_on"])
            check_type(argname="argument for_each", value=for_each, expected_type=type_hints["for_each"])
            check_type(argname="argument lifecycle", value=lifecycle, expected_type=type_hints["lifecycle"])
            check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
            check_type(argname="argument provisioners", value=provisioners, expected_type=type_hints["provisioners"])
            check_type(argname="argument name", value=name, expected_type=type_hints["name"])
            check_type(argname="argument customer_encryption_key_arn", value=customer_encryption_key_arn, expected_type=type_hints["customer_encryption_key_arn"])
            check_type(argname="argument default_variant", value=default_variant, expected_type=type_hints["default_variant"])
            check_type(argname="argument description", value=description, expected_type=type_hints["description"])
            check_type(argname="argument region", value=region, expected_type=type_hints["region"])
            check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
            check_type(argname="argument variant", value=variant, expected_type=type_hints["variant"])
        self._values: typing.Dict[builtins.str, typing.Any] = {
            "name": name,
        }
        if connection is not None:
            self._values["connection"] = connection
        if count is not None:
            self._values["count"] = count
        if depends_on is not None:
            self._values["depends_on"] = depends_on
        if for_each is not None:
            self._values["for_each"] = for_each
        if lifecycle is not None:
            self._values["lifecycle"] = lifecycle
        if provider is not None:
            self._values["provider"] = provider
        if provisioners is not None:
            self._values["provisioners"] = provisioners
        if customer_encryption_key_arn is not None:
            self._values["customer_encryption_key_arn"] = customer_encryption_key_arn
        if default_variant is not None:
            self._values["default_variant"] = default_variant
        if description is not None:
            self._values["description"] = description
        if region is not None:
            self._values["region"] = region
        if tags is not None:
            self._values["tags"] = tags
        if variant is not None:
            self._values["variant"] = variant

    @builtins.property
    def connection(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.SSHProvisionerConnection", "_cdktn_78ede62e.WinrmProvisionerConnection"]]:
        '''
        :stability: experimental
        '''
        result = self._values.get("connection")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.SSHProvisionerConnection", "_cdktn_78ede62e.WinrmProvisionerConnection"]], result)

    @builtins.property
    def count(
        self,
    ) -> typing.Optional[typing.Union[jsii.Number, "_cdktn_78ede62e.TerraformCount"]]:
        '''
        :stability: experimental
        '''
        result = self._values.get("count")
        return typing.cast(typing.Optional[typing.Union[jsii.Number, "_cdktn_78ede62e.TerraformCount"]], result)

    @builtins.property
    def depends_on(
        self,
    ) -> typing.Optional[typing.List["_cdktn_78ede62e.ITerraformDependable"]]:
        '''
        :stability: experimental
        '''
        result = self._values.get("depends_on")
        return typing.cast(typing.Optional[typing.List["_cdktn_78ede62e.ITerraformDependable"]], result)

    @builtins.property
    def for_each(self) -> typing.Optional["_cdktn_78ede62e.ITerraformIterator"]:
        '''
        :stability: experimental
        '''
        result = self._values.get("for_each")
        return typing.cast(typing.Optional["_cdktn_78ede62e.ITerraformIterator"], result)

    @builtins.property
    def lifecycle(
        self,
    ) -> typing.Optional["_cdktn_78ede62e.TerraformResourceLifecycle"]:
        '''
        :stability: experimental
        '''
        result = self._values.get("lifecycle")
        return typing.cast(typing.Optional["_cdktn_78ede62e.TerraformResourceLifecycle"], result)

    @builtins.property
    def provider(self) -> typing.Optional["_cdktn_78ede62e.TerraformProvider"]:
        '''
        :stability: experimental
        '''
        result = self._values.get("provider")
        return typing.cast(typing.Optional["_cdktn_78ede62e.TerraformProvider"], result)

    @builtins.property
    def provisioners(
        self,
    ) -> typing.Optional[typing.List[typing.Union["_cdktn_78ede62e.FileProvisioner", "_cdktn_78ede62e.LocalExecProvisioner", "_cdktn_78ede62e.RemoteExecProvisioner"]]]:
        '''
        :stability: experimental
        '''
        result = self._values.get("provisioners")
        return typing.cast(typing.Optional[typing.List[typing.Union["_cdktn_78ede62e.FileProvisioner", "_cdktn_78ede62e.LocalExecProvisioner", "_cdktn_78ede62e.RemoteExecProvisioner"]]], result)

    @builtins.property
    def name(self) -> builtins.str:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#name BedrockagentPrompt#name}.'''
        result = self._values.get("name")
        assert result is not None, "Required property 'name' is missing"
        return typing.cast(builtins.str, result)

    @builtins.property
    def customer_encryption_key_arn(self) -> typing.Optional[builtins.str]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#customer_encryption_key_arn BedrockagentPrompt#customer_encryption_key_arn}.'''
        result = self._values.get("customer_encryption_key_arn")
        return typing.cast(typing.Optional[builtins.str], result)

    @builtins.property
    def default_variant(self) -> typing.Optional[builtins.str]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#default_variant BedrockagentPrompt#default_variant}.'''
        result = self._values.get("default_variant")
        return typing.cast(typing.Optional[builtins.str], result)

    @builtins.property
    def description(self) -> typing.Optional[builtins.str]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#description BedrockagentPrompt#description}.'''
        result = self._values.get("description")
        return typing.cast(typing.Optional[builtins.str], result)

    @builtins.property
    def region(self) -> typing.Optional[builtins.str]:
        '''Region where this resource will be `managed <https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints>`_. Defaults to the Region set in the `provider configuration <https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference>`_.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#region BedrockagentPrompt#region}
        '''
        result = self._values.get("region")
        return typing.cast(typing.Optional[builtins.str], result)

    @builtins.property
    def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#tags BedrockagentPrompt#tags}.'''
        result = self._values.get("tags")
        return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)

    @builtins.property
    def variant(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariant"]]]:
        '''variant block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#variant BedrockagentPrompt#variant}
        '''
        result = self._values.get("variant")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariant"]]], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptConfig(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariant",
    jsii_struct_bases=[],
    name_mapping={
        "name": "name",
        "template_type": "templateType",
        "additional_model_request_fields": "additionalModelRequestFields",
        "gen_ai_resource": "genAiResource",
        "inference_configuration": "inferenceConfiguration",
        "metadata": "metadata",
        "model_id": "modelId",
        "template_configuration": "templateConfiguration",
    },
)
class BedrockagentPromptVariant:
    def __init__(
        self,
        *,
        name: builtins.str,
        template_type: builtins.str,
        additional_model_request_fields: typing.Optional[builtins.str] = None,
        gen_ai_resource: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantGenAiResource", typing.Dict[builtins.str, typing.Any]]]]] = None,
        inference_configuration: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantInferenceConfiguration", typing.Dict[builtins.str, typing.Any]]]]] = None,
        metadata: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantMetadata", typing.Dict[builtins.str, typing.Any]]]]] = None,
        model_id: typing.Optional[builtins.str] = None,
        template_configuration: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfiguration", typing.Dict[builtins.str, typing.Any]]]]] = None,
    ) -> None:
        '''
        :param name: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#name BedrockagentPrompt#name}.
        :param template_type: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#template_type BedrockagentPrompt#template_type}.
        :param additional_model_request_fields: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#additional_model_request_fields BedrockagentPrompt#additional_model_request_fields}.
        :param gen_ai_resource: gen_ai_resource block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#gen_ai_resource BedrockagentPrompt#gen_ai_resource}
        :param inference_configuration: inference_configuration block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#inference_configuration BedrockagentPrompt#inference_configuration}
        :param metadata: metadata block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#metadata BedrockagentPrompt#metadata}
        :param model_id: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#model_id BedrockagentPrompt#model_id}.
        :param template_configuration: template_configuration block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#template_configuration BedrockagentPrompt#template_configuration}
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__ab59a95de08b2d804b7128294669ab5f3bbf3a3f21b09b3abd59a4ea19611811)
            check_type(argname="argument name", value=name, expected_type=type_hints["name"])
            check_type(argname="argument template_type", value=template_type, expected_type=type_hints["template_type"])
            check_type(argname="argument additional_model_request_fields", value=additional_model_request_fields, expected_type=type_hints["additional_model_request_fields"])
            check_type(argname="argument gen_ai_resource", value=gen_ai_resource, expected_type=type_hints["gen_ai_resource"])
            check_type(argname="argument inference_configuration", value=inference_configuration, expected_type=type_hints["inference_configuration"])
            check_type(argname="argument metadata", value=metadata, expected_type=type_hints["metadata"])
            check_type(argname="argument model_id", value=model_id, expected_type=type_hints["model_id"])
            check_type(argname="argument template_configuration", value=template_configuration, expected_type=type_hints["template_configuration"])
        self._values: typing.Dict[builtins.str, typing.Any] = {
            "name": name,
            "template_type": template_type,
        }
        if additional_model_request_fields is not None:
            self._values["additional_model_request_fields"] = additional_model_request_fields
        if gen_ai_resource is not None:
            self._values["gen_ai_resource"] = gen_ai_resource
        if inference_configuration is not None:
            self._values["inference_configuration"] = inference_configuration
        if metadata is not None:
            self._values["metadata"] = metadata
        if model_id is not None:
            self._values["model_id"] = model_id
        if template_configuration is not None:
            self._values["template_configuration"] = template_configuration

    @builtins.property
    def name(self) -> builtins.str:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#name BedrockagentPrompt#name}.'''
        result = self._values.get("name")
        assert result is not None, "Required property 'name' is missing"
        return typing.cast(builtins.str, result)

    @builtins.property
    def template_type(self) -> builtins.str:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#template_type BedrockagentPrompt#template_type}.'''
        result = self._values.get("template_type")
        assert result is not None, "Required property 'template_type' is missing"
        return typing.cast(builtins.str, result)

    @builtins.property
    def additional_model_request_fields(self) -> typing.Optional[builtins.str]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#additional_model_request_fields BedrockagentPrompt#additional_model_request_fields}.'''
        result = self._values.get("additional_model_request_fields")
        return typing.cast(typing.Optional[builtins.str], result)

    @builtins.property
    def gen_ai_resource(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantGenAiResource"]]]:
        '''gen_ai_resource block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#gen_ai_resource BedrockagentPrompt#gen_ai_resource}
        '''
        result = self._values.get("gen_ai_resource")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantGenAiResource"]]], result)

    @builtins.property
    def inference_configuration(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantInferenceConfiguration"]]]:
        '''inference_configuration block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#inference_configuration BedrockagentPrompt#inference_configuration}
        '''
        result = self._values.get("inference_configuration")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantInferenceConfiguration"]]], result)

    @builtins.property
    def metadata(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantMetadata"]]]:
        '''metadata block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#metadata BedrockagentPrompt#metadata}
        '''
        result = self._values.get("metadata")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantMetadata"]]], result)

    @builtins.property
    def model_id(self) -> typing.Optional[builtins.str]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#model_id BedrockagentPrompt#model_id}.'''
        result = self._values.get("model_id")
        return typing.cast(typing.Optional[builtins.str], result)

    @builtins.property
    def template_configuration(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfiguration"]]]:
        '''template_configuration block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#template_configuration BedrockagentPrompt#template_configuration}
        '''
        result = self._values.get("template_configuration")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfiguration"]]], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariant(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantGenAiResource",
    jsii_struct_bases=[],
    name_mapping={"agent": "agent"},
)
class BedrockagentPromptVariantGenAiResource:
    def __init__(
        self,
        *,
        agent: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantGenAiResourceAgent", typing.Dict[builtins.str, typing.Any]]]]] = None,
    ) -> None:
        '''
        :param agent: agent block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#agent BedrockagentPrompt#agent}
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__1422a91f57a22314c5a06da145aeca3990d27050ec9210053540240db5c73a0c)
            check_type(argname="argument agent", value=agent, expected_type=type_hints["agent"])
        self._values: typing.Dict[builtins.str, typing.Any] = {}
        if agent is not None:
            self._values["agent"] = agent

    @builtins.property
    def agent(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantGenAiResourceAgent"]]]:
        '''agent block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#agent BedrockagentPrompt#agent}
        '''
        result = self._values.get("agent")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantGenAiResourceAgent"]]], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantGenAiResource(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantGenAiResourceAgent",
    jsii_struct_bases=[],
    name_mapping={"agent_identifier": "agentIdentifier"},
)
class BedrockagentPromptVariantGenAiResourceAgent:
    def __init__(self, *, agent_identifier: builtins.str) -> None:
        '''
        :param agent_identifier: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#agent_identifier BedrockagentPrompt#agent_identifier}.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__44d4fe73d572aa44143f0235b21cba2c4666309c09970692d47edd3deb26a59c)
            check_type(argname="argument agent_identifier", value=agent_identifier, expected_type=type_hints["agent_identifier"])
        self._values: typing.Dict[builtins.str, typing.Any] = {
            "agent_identifier": agent_identifier,
        }

    @builtins.property
    def agent_identifier(self) -> builtins.str:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#agent_identifier BedrockagentPrompt#agent_identifier}.'''
        result = self._values.get("agent_identifier")
        assert result is not None, "Required property 'agent_identifier' is missing"
        return typing.cast(builtins.str, result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantGenAiResourceAgent(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


class BedrockagentPromptVariantGenAiResourceAgentList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantGenAiResourceAgentList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__6d54e696808955b660524fc1104f4f349c81378eaa3800fef412839a1d088df7)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantGenAiResourceAgentOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__aa88d2cb2c58035bcb51540e778bda82ad35c276c47f10b8b2870af6d6c5217c)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantGenAiResourceAgentOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantGenAiResourceAgent"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantGenAiResourceAgent"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantGenAiResourceAgent"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__576e9b6a3e9012c75931ca188deb1a4373923f39ae779d7a47ab073e9d5420b6)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantGenAiResourceAgentOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantGenAiResourceAgentOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__579611950a020407147305da1f1837d59e338631f5313dd1cfcce6106a80c588)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @builtins.property
    @jsii.member(jsii_name="agentIdentifierInput")
    def agent_identifier_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "agentIdentifierInput"))

    @builtins.property
    @jsii.member(jsii_name="agentIdentifier")
    def agent_identifier(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "agentIdentifier"))

    @agent_identifier.setter
    def agent_identifier(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__d9c4edc76c41caccf1700b5885d9efc2be828f9d05c4c467ddd323b336f7c055)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "agentIdentifier", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantGenAiResourceAgent"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantGenAiResourceAgent"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantGenAiResourceAgent"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__7aabdf4f98973ab613e54d99f8b63fbc0b4a1acc0690da85a8f0e8bd8384f74d)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantGenAiResourceList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantGenAiResourceList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__47b31f68c459997d6401f5c65812eb921872dd0f2cd32f81e4d8c8f2d51f9a24)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantGenAiResourceOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__5b7dd8e8f3650c372c9b0b3a7ef17271cd96ce57187904dee4fe298412469c27)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantGenAiResourceOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantGenAiResource"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantGenAiResource"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantGenAiResource"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__35ed703ef0512185f0afef52e3a512d77d5582d04960417b739f29cb19c07752)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantGenAiResourceOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantGenAiResourceOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__af25f0ea50d3ba9f01c434e42f72c74e12186ca9cf6b6d701ea21cb8049e19a4)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="putAgent")
    def put_agent(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantGenAiResourceAgent", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__b22a39521a191a9e1822b99963bcfa344d6c5b3c8996c78bd4243991764cdc32)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putAgent", [value]))

    @jsii.member(jsii_name="resetAgent")
    def reset_agent(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetAgent", []))

    @builtins.property
    @jsii.member(jsii_name="agent")
    def agent(self) -> "BedrockagentPromptVariantGenAiResourceAgentList":
        return typing.cast("BedrockagentPromptVariantGenAiResourceAgentList", jsii.get(self, "agent"))

    @builtins.property
    @jsii.member(jsii_name="agentInput")
    def agent_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantGenAiResourceAgent"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantGenAiResourceAgent"]]], jsii.get(self, "agentInput"))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantGenAiResource"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantGenAiResource"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantGenAiResource"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__de8227b6269f98c403006f02daa8c99453ab9dd18dacffaa1798e219ff611bda)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantInferenceConfiguration",
    jsii_struct_bases=[],
    name_mapping={"text": "text"},
)
class BedrockagentPromptVariantInferenceConfiguration:
    def __init__(
        self,
        *,
        text: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantInferenceConfigurationText", typing.Dict[builtins.str, typing.Any]]]]] = None,
    ) -> None:
        '''
        :param text: text block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#text BedrockagentPrompt#text}
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__0c2220c881fdcfea0cc142544ff254f9b3f667da04b5564d37096cbb733ccd0d)
            check_type(argname="argument text", value=text, expected_type=type_hints["text"])
        self._values: typing.Dict[builtins.str, typing.Any] = {}
        if text is not None:
            self._values["text"] = text

    @builtins.property
    def text(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantInferenceConfigurationText"]]]:
        '''text block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#text BedrockagentPrompt#text}
        '''
        result = self._values.get("text")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantInferenceConfigurationText"]]], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantInferenceConfiguration(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


class BedrockagentPromptVariantInferenceConfigurationList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantInferenceConfigurationList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__fd76e22e4efef5a97746d3f55669b8b0e33f502bcab712ec318588036684940e)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantInferenceConfigurationOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__ebdc291399d9bd1a50c146498f8a8394a4f58f7aba61e1382229241223863246)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantInferenceConfigurationOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantInferenceConfiguration"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantInferenceConfiguration"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantInferenceConfiguration"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__b829cfca34433d05c980245156e91cc840c7be4e758a1debf0f4a09c3c1c1cc0)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantInferenceConfigurationOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantInferenceConfigurationOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__0cca96dadf87ee4aca923523419e49d3466d8280484f0645cb7ba35ab5d5b61d)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="putText")
    def put_text(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantInferenceConfigurationText", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__6f0cd4dcc8114c7af93f283b3c37eff3a3845957591bafc1c52ed9523c230d97)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putText", [value]))

    @jsii.member(jsii_name="resetText")
    def reset_text(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetText", []))

    @builtins.property
    @jsii.member(jsii_name="text")
    def text(self) -> "BedrockagentPromptVariantInferenceConfigurationTextList":
        return typing.cast("BedrockagentPromptVariantInferenceConfigurationTextList", jsii.get(self, "text"))

    @builtins.property
    @jsii.member(jsii_name="textInput")
    def text_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantInferenceConfigurationText"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantInferenceConfigurationText"]]], jsii.get(self, "textInput"))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantInferenceConfiguration"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantInferenceConfiguration"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantInferenceConfiguration"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__be71495c78c3d4d887edfd6349205143be1bd65cb2fccec09656f1635541e2c7)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantInferenceConfigurationText",
    jsii_struct_bases=[],
    name_mapping={
        "max_tokens": "maxTokens",
        "stop_sequences": "stopSequences",
        "temperature": "temperature",
        "top_p": "topP",
    },
)
class BedrockagentPromptVariantInferenceConfigurationText:
    def __init__(
        self,
        *,
        max_tokens: typing.Optional[jsii.Number] = None,
        stop_sequences: typing.Optional[typing.Sequence[builtins.str]] = None,
        temperature: typing.Optional[jsii.Number] = None,
        top_p: typing.Optional[jsii.Number] = None,
    ) -> None:
        '''
        :param max_tokens: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#max_tokens BedrockagentPrompt#max_tokens}.
        :param stop_sequences: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#stop_sequences BedrockagentPrompt#stop_sequences}.
        :param temperature: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#temperature BedrockagentPrompt#temperature}.
        :param top_p: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#top_p BedrockagentPrompt#top_p}.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__54e1a910b7ac4bcd546757719a418523c098b5c2269dfd1e59f1a91870c625e0)
            check_type(argname="argument max_tokens", value=max_tokens, expected_type=type_hints["max_tokens"])
            check_type(argname="argument stop_sequences", value=stop_sequences, expected_type=type_hints["stop_sequences"])
            check_type(argname="argument temperature", value=temperature, expected_type=type_hints["temperature"])
            check_type(argname="argument top_p", value=top_p, expected_type=type_hints["top_p"])
        self._values: typing.Dict[builtins.str, typing.Any] = {}
        if max_tokens is not None:
            self._values["max_tokens"] = max_tokens
        if stop_sequences is not None:
            self._values["stop_sequences"] = stop_sequences
        if temperature is not None:
            self._values["temperature"] = temperature
        if top_p is not None:
            self._values["top_p"] = top_p

    @builtins.property
    def max_tokens(self) -> typing.Optional[jsii.Number]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#max_tokens BedrockagentPrompt#max_tokens}.'''
        result = self._values.get("max_tokens")
        return typing.cast(typing.Optional[jsii.Number], result)

    @builtins.property
    def stop_sequences(self) -> typing.Optional[typing.List[builtins.str]]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#stop_sequences BedrockagentPrompt#stop_sequences}.'''
        result = self._values.get("stop_sequences")
        return typing.cast(typing.Optional[typing.List[builtins.str]], result)

    @builtins.property
    def temperature(self) -> typing.Optional[jsii.Number]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#temperature BedrockagentPrompt#temperature}.'''
        result = self._values.get("temperature")
        return typing.cast(typing.Optional[jsii.Number], result)

    @builtins.property
    def top_p(self) -> typing.Optional[jsii.Number]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#top_p BedrockagentPrompt#top_p}.'''
        result = self._values.get("top_p")
        return typing.cast(typing.Optional[jsii.Number], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantInferenceConfigurationText(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


class BedrockagentPromptVariantInferenceConfigurationTextList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantInferenceConfigurationTextList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__2c62882b2434c1c391909b37927a435c1a8f1da94bc80745b651fd0391611613)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantInferenceConfigurationTextOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__15c167e7b22e2b5189dbed12e8caee6fecbfd51096f3dfb493bc0d832f337d31)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantInferenceConfigurationTextOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantInferenceConfigurationText"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantInferenceConfigurationText"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantInferenceConfigurationText"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__58ee6324aa9c3730bc6b600bc69d579a69cf20692a42e2d82b2db5c7b56b9999)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantInferenceConfigurationTextOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantInferenceConfigurationTextOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__f58a208752db784561a4af010162615c7443581e35abb809529b6543aa26a25d)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="resetMaxTokens")
    def reset_max_tokens(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetMaxTokens", []))

    @jsii.member(jsii_name="resetStopSequences")
    def reset_stop_sequences(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetStopSequences", []))

    @jsii.member(jsii_name="resetTemperature")
    def reset_temperature(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetTemperature", []))

    @jsii.member(jsii_name="resetTopP")
    def reset_top_p(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetTopP", []))

    @builtins.property
    @jsii.member(jsii_name="maxTokensInput")
    def max_tokens_input(self) -> typing.Optional[jsii.Number]:
        return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "maxTokensInput"))

    @builtins.property
    @jsii.member(jsii_name="stopSequencesInput")
    def stop_sequences_input(self) -> typing.Optional[typing.List[builtins.str]]:
        return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "stopSequencesInput"))

    @builtins.property
    @jsii.member(jsii_name="temperatureInput")
    def temperature_input(self) -> typing.Optional[jsii.Number]:
        return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "temperatureInput"))

    @builtins.property
    @jsii.member(jsii_name="topPInput")
    def top_p_input(self) -> typing.Optional[jsii.Number]:
        return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "topPInput"))

    @builtins.property
    @jsii.member(jsii_name="maxTokens")
    def max_tokens(self) -> jsii.Number:
        return typing.cast(jsii.Number, jsii.get(self, "maxTokens"))

    @max_tokens.setter
    def max_tokens(self, value: jsii.Number) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__b0859889ab23a3fd6d4e3275e9c33d3f0c0c2434b67753d221336a86d242e146)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "maxTokens", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="stopSequences")
    def stop_sequences(self) -> typing.List[builtins.str]:
        return typing.cast(typing.List[builtins.str], jsii.get(self, "stopSequences"))

    @stop_sequences.setter
    def stop_sequences(self, value: typing.List[builtins.str]) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__0abc0d1ab9f458dc091d3460a1aac5c2050cc572b59526d5296019782d62e6e8)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "stopSequences", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="temperature")
    def temperature(self) -> jsii.Number:
        return typing.cast(jsii.Number, jsii.get(self, "temperature"))

    @temperature.setter
    def temperature(self, value: jsii.Number) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__796ba9591c4fb5fddfd5d902b6155347ab748782633803408d251c6204a3ecf7)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "temperature", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="topP")
    def top_p(self) -> jsii.Number:
        return typing.cast(jsii.Number, jsii.get(self, "topP"))

    @top_p.setter
    def top_p(self, value: jsii.Number) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__835334e2f73eb1a617e4ff44893f254cbf413e36c0a752d85117fbb4ec2614d4)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "topP", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantInferenceConfigurationText"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantInferenceConfigurationText"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantInferenceConfigurationText"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__a142f8bb8bfdc97a13716e5bd2478a19ea30ab6de482ed5efc1469ae454ac1f8)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__7a48bc95062d794186d94014abbc13a8c2d07e328a37f706710434aef4b3f064)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(self, index: jsii.Number) -> "BedrockagentPromptVariantOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__b9d0e9cc8f0475aa725a30171bd1db4885c83cddbee27b3fcfd45a79eeeec003)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariant"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariant"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariant"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__46206aff4a5c69963cfe39ac3f7f120726e6d5f7494df6efa3bb4c66cdc74364)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantMetadata",
    jsii_struct_bases=[],
    name_mapping={"key": "key", "value": "value"},
)
class BedrockagentPromptVariantMetadata:
    def __init__(self, *, key: builtins.str, value: builtins.str) -> None:
        '''
        :param key: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#key BedrockagentPrompt#key}.
        :param value: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#value BedrockagentPrompt#value}.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__2528441c2c892bfef3829b74a0a9918d2f522406ddedef06d6b1ffcacea58867)
            check_type(argname="argument key", value=key, expected_type=type_hints["key"])
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        self._values: typing.Dict[builtins.str, typing.Any] = {
            "key": key,
            "value": value,
        }

    @builtins.property
    def key(self) -> builtins.str:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#key BedrockagentPrompt#key}.'''
        result = self._values.get("key")
        assert result is not None, "Required property 'key' is missing"
        return typing.cast(builtins.str, result)

    @builtins.property
    def value(self) -> builtins.str:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#value BedrockagentPrompt#value}.'''
        result = self._values.get("value")
        assert result is not None, "Required property 'value' is missing"
        return typing.cast(builtins.str, result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantMetadata(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


class BedrockagentPromptVariantMetadataList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantMetadataList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__39079a9e90adaa15ef18091c1131c3476e90b82353763d3bb01374f283c8d1c6)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantMetadataOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__6357ef724f4efe23ed53bc59712dc97237c2a9727221b52fd3e748fd8cfe0723)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantMetadataOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantMetadata"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantMetadata"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantMetadata"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__685b461b200c05005ce6ea354e9b3d33665a3980246ae49155854d186b61c75c)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantMetadataOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantMetadataOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__eea0b4ffae48c3c3b5c4b010b7bc7ccfbfdb69aa780b0112445e8689be4adaa0)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @builtins.property
    @jsii.member(jsii_name="keyInput")
    def key_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "keyInput"))

    @builtins.property
    @jsii.member(jsii_name="valueInput")
    def value_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "valueInput"))

    @builtins.property
    @jsii.member(jsii_name="key")
    def key(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "key"))

    @key.setter
    def key(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__daceeb0c1d9198248964fa6cbc2137b7476d817a04b7026532d80421f20b3f50)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "key", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="value")
    def value(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "value"))

    @value.setter
    def value(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__59a11990198b356d986408517cb0800a3cc896ddee1d630572b8eda3164ea423)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "value", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantMetadata"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantMetadata"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantMetadata"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__1f7c8ebe4888cc9854e8b69706201e58b460bd0ac070ffa9864bbc57f53da5af)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__521788ca386100d951052059d6e6b3f38676328d8abf9c91b7b08ac53941defe)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="putGenAiResource")
    def put_gen_ai_resource(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantGenAiResource", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__29e5142401499dafb80a7a6a61e023202151bc0ebf07da33ddc78eb94b187e29)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putGenAiResource", [value]))

    @jsii.member(jsii_name="putInferenceConfiguration")
    def put_inference_configuration(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantInferenceConfiguration", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__e4634e6a08222d1216921ac7b9b4c9d4eb43ae8f6b3dd5eae34bcab828ce323f)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putInferenceConfiguration", [value]))

    @jsii.member(jsii_name="putMetadata")
    def put_metadata(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantMetadata", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__5da14dab510a67a5beec94794a00188ad061f59bbb1a2c9916e87be453543f88)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putMetadata", [value]))

    @jsii.member(jsii_name="putTemplateConfiguration")
    def put_template_configuration(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfiguration", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__b376a28a99a1a8bf9391a69fc1830a719a1858cb8604baf6dd46b0f4c197cf82)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putTemplateConfiguration", [value]))

    @jsii.member(jsii_name="resetAdditionalModelRequestFields")
    def reset_additional_model_request_fields(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetAdditionalModelRequestFields", []))

    @jsii.member(jsii_name="resetGenAiResource")
    def reset_gen_ai_resource(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetGenAiResource", []))

    @jsii.member(jsii_name="resetInferenceConfiguration")
    def reset_inference_configuration(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetInferenceConfiguration", []))

    @jsii.member(jsii_name="resetMetadata")
    def reset_metadata(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetMetadata", []))

    @jsii.member(jsii_name="resetModelId")
    def reset_model_id(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetModelId", []))

    @jsii.member(jsii_name="resetTemplateConfiguration")
    def reset_template_configuration(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetTemplateConfiguration", []))

    @builtins.property
    @jsii.member(jsii_name="genAiResource")
    def gen_ai_resource(self) -> "BedrockagentPromptVariantGenAiResourceList":
        return typing.cast("BedrockagentPromptVariantGenAiResourceList", jsii.get(self, "genAiResource"))

    @builtins.property
    @jsii.member(jsii_name="inferenceConfiguration")
    def inference_configuration(
        self,
    ) -> "BedrockagentPromptVariantInferenceConfigurationList":
        return typing.cast("BedrockagentPromptVariantInferenceConfigurationList", jsii.get(self, "inferenceConfiguration"))

    @builtins.property
    @jsii.member(jsii_name="metadata")
    def metadata(self) -> "BedrockagentPromptVariantMetadataList":
        return typing.cast("BedrockagentPromptVariantMetadataList", jsii.get(self, "metadata"))

    @builtins.property
    @jsii.member(jsii_name="templateConfiguration")
    def template_configuration(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationList", jsii.get(self, "templateConfiguration"))

    @builtins.property
    @jsii.member(jsii_name="additionalModelRequestFieldsInput")
    def additional_model_request_fields_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "additionalModelRequestFieldsInput"))

    @builtins.property
    @jsii.member(jsii_name="genAiResourceInput")
    def gen_ai_resource_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantGenAiResource"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantGenAiResource"]]], jsii.get(self, "genAiResourceInput"))

    @builtins.property
    @jsii.member(jsii_name="inferenceConfigurationInput")
    def inference_configuration_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantInferenceConfiguration"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantInferenceConfiguration"]]], jsii.get(self, "inferenceConfigurationInput"))

    @builtins.property
    @jsii.member(jsii_name="metadataInput")
    def metadata_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantMetadata"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantMetadata"]]], jsii.get(self, "metadataInput"))

    @builtins.property
    @jsii.member(jsii_name="modelIdInput")
    def model_id_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "modelIdInput"))

    @builtins.property
    @jsii.member(jsii_name="nameInput")
    def name_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "nameInput"))

    @builtins.property
    @jsii.member(jsii_name="templateConfigurationInput")
    def template_configuration_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfiguration"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfiguration"]]], jsii.get(self, "templateConfigurationInput"))

    @builtins.property
    @jsii.member(jsii_name="templateTypeInput")
    def template_type_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "templateTypeInput"))

    @builtins.property
    @jsii.member(jsii_name="additionalModelRequestFields")
    def additional_model_request_fields(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "additionalModelRequestFields"))

    @additional_model_request_fields.setter
    def additional_model_request_fields(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__f95d9202e95ecef42094851cb1aeda4cbf877b52678074ddfec383df261a8b6a)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "additionalModelRequestFields", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="modelId")
    def model_id(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "modelId"))

    @model_id.setter
    def model_id(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__b84c2c35b42c59f5fa8c3193712190bf28baee79e5f4e351ad4e0c9bcee411d7)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "modelId", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="name")
    def name(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "name"))

    @name.setter
    def name(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__47bc322295e3042d9b448b154b79c62686860d9492940b5c50965de8c330198e)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="templateType")
    def template_type(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "templateType"))

    @template_type.setter
    def template_type(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__bf07e2ec6704fdfd8314728ebf226d183e94493f580f2175085b1151508165bb)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "templateType", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariant"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariant"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariant"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__25ebae5977d8a79d0861ef1887bf8e0dbb904bbd614b9b83ff31ecf385cdc441)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfiguration",
    jsii_struct_bases=[],
    name_mapping={"chat": "chat", "text": "text"},
)
class BedrockagentPromptVariantTemplateConfiguration:
    def __init__(
        self,
        *,
        chat: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChat", typing.Dict[builtins.str, typing.Any]]]]] = None,
        text: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationText", typing.Dict[builtins.str, typing.Any]]]]] = None,
    ) -> None:
        '''
        :param chat: chat block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#chat BedrockagentPrompt#chat}
        :param text: text block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#text BedrockagentPrompt#text}
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__d9854dad196c51771be7426940bf413dc7192a9ce1e2818f4d34d783d1642a73)
            check_type(argname="argument chat", value=chat, expected_type=type_hints["chat"])
            check_type(argname="argument text", value=text, expected_type=type_hints["text"])
        self._values: typing.Dict[builtins.str, typing.Any] = {}
        if chat is not None:
            self._values["chat"] = chat
        if text is not None:
            self._values["text"] = text

    @builtins.property
    def chat(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChat"]]]:
        '''chat block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#chat BedrockagentPrompt#chat}
        '''
        result = self._values.get("chat")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChat"]]], result)

    @builtins.property
    def text(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationText"]]]:
        '''text block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#text BedrockagentPrompt#text}
        '''
        result = self._values.get("text")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationText"]]], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfiguration(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChat",
    jsii_struct_bases=[],
    name_mapping={
        "input_variable": "inputVariable",
        "message": "message",
        "system_attribute": "systemAttribute",
        "tool_configuration": "toolConfiguration",
    },
)
class BedrockagentPromptVariantTemplateConfigurationChat:
    def __init__(
        self,
        *,
        input_variable: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatInputVariable", typing.Dict[builtins.str, typing.Any]]]]] = None,
        message: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatMessage", typing.Dict[builtins.str, typing.Any]]]]] = None,
        system_attribute: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatSystem", typing.Dict[builtins.str, typing.Any]]]]] = None,
        tool_configuration: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration", typing.Dict[builtins.str, typing.Any]]]]] = None,
    ) -> None:
        '''
        :param input_variable: input_variable block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#input_variable BedrockagentPrompt#input_variable}
        :param message: message block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#message BedrockagentPrompt#message}
        :param system_attribute: system block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#system BedrockagentPrompt#system}
        :param tool_configuration: tool_configuration block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#tool_configuration BedrockagentPrompt#tool_configuration}
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__2a9359ab5d25601b8f52abc0a3789006c6d0943085670dacd16ecbc504d83d10)
            check_type(argname="argument input_variable", value=input_variable, expected_type=type_hints["input_variable"])
            check_type(argname="argument message", value=message, expected_type=type_hints["message"])
            check_type(argname="argument system_attribute", value=system_attribute, expected_type=type_hints["system_attribute"])
            check_type(argname="argument tool_configuration", value=tool_configuration, expected_type=type_hints["tool_configuration"])
        self._values: typing.Dict[builtins.str, typing.Any] = {}
        if input_variable is not None:
            self._values["input_variable"] = input_variable
        if message is not None:
            self._values["message"] = message
        if system_attribute is not None:
            self._values["system_attribute"] = system_attribute
        if tool_configuration is not None:
            self._values["tool_configuration"] = tool_configuration

    @builtins.property
    def input_variable(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatInputVariable"]]]:
        '''input_variable block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#input_variable BedrockagentPrompt#input_variable}
        '''
        result = self._values.get("input_variable")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatInputVariable"]]], result)

    @builtins.property
    def message(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessage"]]]:
        '''message block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#message BedrockagentPrompt#message}
        '''
        result = self._values.get("message")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessage"]]], result)

    @builtins.property
    def system_attribute(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatSystem"]]]:
        '''system block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#system BedrockagentPrompt#system}
        '''
        result = self._values.get("system_attribute")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatSystem"]]], result)

    @builtins.property
    def tool_configuration(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration"]]]:
        '''tool_configuration block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#tool_configuration BedrockagentPrompt#tool_configuration}
        '''
        result = self._values.get("tool_configuration")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration"]]], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationChat(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatInputVariable",
    jsii_struct_bases=[],
    name_mapping={"name": "name"},
)
class BedrockagentPromptVariantTemplateConfigurationChatInputVariable:
    def __init__(self, *, name: builtins.str) -> None:
        '''
        :param name: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#name BedrockagentPrompt#name}.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__2035be3579b85df434bb4aac65ac4f40d93c95220b6a79ec2371f4cc289a5abf)
            check_type(argname="argument name", value=name, expected_type=type_hints["name"])
        self._values: typing.Dict[builtins.str, typing.Any] = {
            "name": name,
        }

    @builtins.property
    def name(self) -> builtins.str:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#name BedrockagentPrompt#name}.'''
        result = self._values.get("name")
        assert result is not None, "Required property 'name' is missing"
        return typing.cast(builtins.str, result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationChatInputVariable(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


class BedrockagentPromptVariantTemplateConfigurationChatInputVariableList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatInputVariableList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__571d426243de5b1b16fc278862d5beedeb60c5d6693299d51c854bd03cf08ce0)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatInputVariableOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__c50949e3cc5c4cc66b9cb17ba13d2db626c845c936bf9567a01c4395db40fb0b)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatInputVariableOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatInputVariable"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatInputVariable"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatInputVariable"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__4934033dffd4df01fefb501c75290746a54228ff548b8cc65271c5b7eae758ec)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatInputVariableOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatInputVariableOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__45845bff8de51ac2efb1950beb76cb508ec733176923270652c2e6aa57cfa592)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @builtins.property
    @jsii.member(jsii_name="nameInput")
    def name_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "nameInput"))

    @builtins.property
    @jsii.member(jsii_name="name")
    def name(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "name"))

    @name.setter
    def name(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__659ced119750cb43cf564063c0ba906ed4e3df198abd3c027a49c4526cdb9db0)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatInputVariable"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatInputVariable"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatInputVariable"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__8864412865700f139f959abe7964ae0a728ef1a062e7a9641416fa699deaf7c2)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__0cbb7236ef95b4582e007dd6b11b631cc3c3c57c28c3ef5f358946b86da30747)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__0a54a773265ae30ec3904ef26f1bfe4eb4f301919f33591b458ea4f8f7dd7a9a)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChat"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChat"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChat"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__2e98bca960ee379d8f7f0e286bdb9df6b65f5ce280246551e2d562329232c484)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatMessage",
    jsii_struct_bases=[],
    name_mapping={"role": "role", "content": "content"},
)
class BedrockagentPromptVariantTemplateConfigurationChatMessage:
    def __init__(
        self,
        *,
        role: builtins.str,
        content: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatMessageContent", typing.Dict[builtins.str, typing.Any]]]]] = None,
    ) -> None:
        '''
        :param role: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#role BedrockagentPrompt#role}.
        :param content: content block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#content BedrockagentPrompt#content}
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__def5b751755c9fa4d4d09e47747094eb8c3b825a7ca81e6a3c6f1dcd3e1ca8da)
            check_type(argname="argument role", value=role, expected_type=type_hints["role"])
            check_type(argname="argument content", value=content, expected_type=type_hints["content"])
        self._values: typing.Dict[builtins.str, typing.Any] = {
            "role": role,
        }
        if content is not None:
            self._values["content"] = content

    @builtins.property
    def role(self) -> builtins.str:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#role BedrockagentPrompt#role}.'''
        result = self._values.get("role")
        assert result is not None, "Required property 'role' is missing"
        return typing.cast(builtins.str, result)

    @builtins.property
    def content(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessageContent"]]]:
        '''content block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#content BedrockagentPrompt#content}
        '''
        result = self._values.get("content")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessageContent"]]], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationChatMessage(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatMessageContent",
    jsii_struct_bases=[],
    name_mapping={"cache_point": "cachePoint", "text": "text"},
)
class BedrockagentPromptVariantTemplateConfigurationChatMessageContent:
    def __init__(
        self,
        *,
        cache_point: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint", typing.Dict[builtins.str, typing.Any]]]]] = None,
        text: typing.Optional[builtins.str] = None,
    ) -> None:
        '''
        :param cache_point: cache_point block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#cache_point BedrockagentPrompt#cache_point}
        :param text: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#text BedrockagentPrompt#text}.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__db95a43e83067f27569b4608d6cdc8abe45d21b0febfbacbad23ec98eb229810)
            check_type(argname="argument cache_point", value=cache_point, expected_type=type_hints["cache_point"])
            check_type(argname="argument text", value=text, expected_type=type_hints["text"])
        self._values: typing.Dict[builtins.str, typing.Any] = {}
        if cache_point is not None:
            self._values["cache_point"] = cache_point
        if text is not None:
            self._values["text"] = text

    @builtins.property
    def cache_point(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint"]]]:
        '''cache_point block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#cache_point BedrockagentPrompt#cache_point}
        '''
        result = self._values.get("cache_point")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint"]]], result)

    @builtins.property
    def text(self) -> typing.Optional[builtins.str]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#text BedrockagentPrompt#text}.'''
        result = self._values.get("text")
        return typing.cast(typing.Optional[builtins.str], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationChatMessageContent(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint",
    jsii_struct_bases=[],
    name_mapping={"type": "type"},
)
class BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint:
    def __init__(self, *, type: builtins.str) -> None:
        '''
        :param type: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#type BedrockagentPrompt#type}.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__193fecf4b7141bc936913a198ba0d3b2908eafd2ad4861a51ceb3e7a0f468d7d)
            check_type(argname="argument type", value=type, expected_type=type_hints["type"])
        self._values: typing.Dict[builtins.str, typing.Any] = {
            "type": type,
        }

    @builtins.property
    def type(self) -> builtins.str:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#type BedrockagentPrompt#type}.'''
        result = self._values.get("type")
        assert result is not None, "Required property 'type' is missing"
        return typing.cast(builtins.str, result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


class BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePointList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePointList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__f30c440ad8ee8f16f5aa874a58092725b9e8cc06f0392e9628ab3d51263e662a)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePointOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__e8339de82c1f358636fe7020073b15e2a06cc39377ae21a9e653a1ad234f02bb)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePointOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__bdc3cfb175a3e8f4b7cee727b4a48ddddf3e2c367f2ef01edbe9ca08235aeb84)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePointOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePointOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__48894bd4a211d8620fa0fac33dc37d6ba29f2d7fe306b29dea5d4004e73d0dea)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @builtins.property
    @jsii.member(jsii_name="typeInput")
    def type_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "typeInput"))

    @builtins.property
    @jsii.member(jsii_name="type")
    def type(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "type"))

    @type.setter
    def type(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__940d5df9d8331cce0155b8e0a485bcd126175a5bed471e7f95af30509571a198)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "type", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__ee288a022faf488119ed089abeb28553586055d514a9c84055acaacbbfe3ed20)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatMessageContentList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatMessageContentList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__ab0e230d33432a558f6627e83081cedc15a25deecef05914dc2f4b1e57ae5bb0)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatMessageContentOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__8ab8fc90c669d6c3b30ae5b350d9fdb08a656b9b7dbe68adaabf8fe987f990f3)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatMessageContentOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessageContent"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessageContent"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessageContent"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__e72eb04cfc11ef08e6cec64dae9e241089edf5d3ca760c19fe27191c138422a3)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatMessageContentOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatMessageContentOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__73df03fd27a38f4b91db0205213375d311554f37b234fb8998efaddd4e802453)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="putCachePoint")
    def put_cache_point(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__5e2cda707fefd85098a6c611f70b122e1eda2f05912566494d66300667baceab)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putCachePoint", [value]))

    @jsii.member(jsii_name="resetCachePoint")
    def reset_cache_point(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetCachePoint", []))

    @jsii.member(jsii_name="resetText")
    def reset_text(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetText", []))

    @builtins.property
    @jsii.member(jsii_name="cachePoint")
    def cache_point(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePointList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePointList", jsii.get(self, "cachePoint"))

    @builtins.property
    @jsii.member(jsii_name="cachePointInput")
    def cache_point_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint"]]], jsii.get(self, "cachePointInput"))

    @builtins.property
    @jsii.member(jsii_name="textInput")
    def text_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "textInput"))

    @builtins.property
    @jsii.member(jsii_name="text")
    def text(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "text"))

    @text.setter
    def text(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__3348595433bcbba73c890d5e9ba89c87b707f7a29205589d46445ff039b5a79d)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "text", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatMessageContent"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatMessageContent"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatMessageContent"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__2828ecca621376238420399bdf80716f56ee6f1d9460ca55d12d662929f94b69)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatMessageList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatMessageList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__feb7341ba8b16eeaa7b9c6ae1e9c21fcdef61af0c0ec2cde5037a33806b51218)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatMessageOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__99e21ebf595bf4f190a2fa3582900bef59b987a5fbe0c0f901f404e8bb52c279)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatMessageOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessage"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessage"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessage"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__e1de627045f5013fdd97308e23d7bbc29a6f70e85e7a792158511cef8fc28abf)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatMessageOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatMessageOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__a720fde8d7a1df32d913226e3f7b21b2d7f18d361cb08ccef8a80f139ba3cd8c)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="putContent")
    def put_content(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatMessageContent", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__5dad605998295b042faba52c91dd03c2752d57b4a2453c6b72e9f7ae8c4fed5f)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putContent", [value]))

    @jsii.member(jsii_name="resetContent")
    def reset_content(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetContent", []))

    @builtins.property
    @jsii.member(jsii_name="content")
    def content(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatMessageContentList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatMessageContentList", jsii.get(self, "content"))

    @builtins.property
    @jsii.member(jsii_name="contentInput")
    def content_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessageContent"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessageContent"]]], jsii.get(self, "contentInput"))

    @builtins.property
    @jsii.member(jsii_name="roleInput")
    def role_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "roleInput"))

    @builtins.property
    @jsii.member(jsii_name="role")
    def role(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "role"))

    @role.setter
    def role(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__a3ed6e277394a39753603de1c46be7666813b02d6d1b2cc0249d39f28fd39e8f)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "role", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatMessage"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatMessage"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatMessage"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__b10d24ae3588439726aa513a1bc03ebaacb2d444e21b02935a89200b931096fa)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__11df9f773246afe1880f24a63a7e0debf598686ac3e67b3a902aa2fbf706c02e)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="putInputVariable")
    def put_input_variable(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatInputVariable", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__836b6a189eb63cad94ffb5cd4201ba6b4a669ef770f8a004d5b819b780bf14d4)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putInputVariable", [value]))

    @jsii.member(jsii_name="putMessage")
    def put_message(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatMessage", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__bfd5eac902189e94997e51cf6e578e15aa532d267f7eab485a06dc202743a31f)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putMessage", [value]))

    @jsii.member(jsii_name="putSystemAttribute")
    def put_system_attribute(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatSystem", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__95d7d32fbb838ee5b8b6183a57626032273e396d05a5bbdce573df5a858ec23b)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putSystemAttribute", [value]))

    @jsii.member(jsii_name="putToolConfiguration")
    def put_tool_configuration(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__7c9d2a837d67e9c5f2e33eb72bcc6181424e930a7d56b472df73fb47d9e352e8)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putToolConfiguration", [value]))

    @jsii.member(jsii_name="resetInputVariable")
    def reset_input_variable(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetInputVariable", []))

    @jsii.member(jsii_name="resetMessage")
    def reset_message(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetMessage", []))

    @jsii.member(jsii_name="resetSystemAttribute")
    def reset_system_attribute(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetSystemAttribute", []))

    @jsii.member(jsii_name="resetToolConfiguration")
    def reset_tool_configuration(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetToolConfiguration", []))

    @builtins.property
    @jsii.member(jsii_name="inputVariable")
    def input_variable(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatInputVariableList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatInputVariableList", jsii.get(self, "inputVariable"))

    @builtins.property
    @jsii.member(jsii_name="message")
    def message(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatMessageList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatMessageList", jsii.get(self, "message"))

    @builtins.property
    @jsii.member(jsii_name="systemAttribute")
    def system_attribute(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatSystemList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatSystemList", jsii.get(self, "systemAttribute"))

    @builtins.property
    @jsii.member(jsii_name="toolConfiguration")
    def tool_configuration(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationList", jsii.get(self, "toolConfiguration"))

    @builtins.property
    @jsii.member(jsii_name="inputVariableInput")
    def input_variable_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatInputVariable"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatInputVariable"]]], jsii.get(self, "inputVariableInput"))

    @builtins.property
    @jsii.member(jsii_name="messageInput")
    def message_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessage"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatMessage"]]], jsii.get(self, "messageInput"))

    @builtins.property
    @jsii.member(jsii_name="systemAttributeInput")
    def system_attribute_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatSystem"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatSystem"]]], jsii.get(self, "systemAttributeInput"))

    @builtins.property
    @jsii.member(jsii_name="toolConfigurationInput")
    def tool_configuration_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration"]]], jsii.get(self, "toolConfigurationInput"))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChat"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChat"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChat"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__1f8d20c4066850b464ca347780be6fea178a55d76fa665b132305070962856a4)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatSystem",
    jsii_struct_bases=[],
    name_mapping={"cache_point": "cachePoint", "text": "text"},
)
class BedrockagentPromptVariantTemplateConfigurationChatSystem:
    def __init__(
        self,
        *,
        cache_point: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint", typing.Dict[builtins.str, typing.Any]]]]] = None,
        text: typing.Optional[builtins.str] = None,
    ) -> None:
        '''
        :param cache_point: cache_point block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#cache_point BedrockagentPrompt#cache_point}
        :param text: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#text BedrockagentPrompt#text}.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__332a683c5f8565cdf5817aa590be12bfbd8aea2168fd15a402e69407bf59dd9b)
            check_type(argname="argument cache_point", value=cache_point, expected_type=type_hints["cache_point"])
            check_type(argname="argument text", value=text, expected_type=type_hints["text"])
        self._values: typing.Dict[builtins.str, typing.Any] = {}
        if cache_point is not None:
            self._values["cache_point"] = cache_point
        if text is not None:
            self._values["text"] = text

    @builtins.property
    def cache_point(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint"]]]:
        '''cache_point block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#cache_point BedrockagentPrompt#cache_point}
        '''
        result = self._values.get("cache_point")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint"]]], result)

    @builtins.property
    def text(self) -> typing.Optional[builtins.str]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#text BedrockagentPrompt#text}.'''
        result = self._values.get("text")
        return typing.cast(typing.Optional[builtins.str], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationChatSystem(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint",
    jsii_struct_bases=[],
    name_mapping={"type": "type"},
)
class BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint:
    def __init__(self, *, type: builtins.str) -> None:
        '''
        :param type: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#type BedrockagentPrompt#type}.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__b11c7963f9dafe1926c258aaa2504eb721d52e58c0e6f504c3d7c48d47488180)
            check_type(argname="argument type", value=type, expected_type=type_hints["type"])
        self._values: typing.Dict[builtins.str, typing.Any] = {
            "type": type,
        }

    @builtins.property
    def type(self) -> builtins.str:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#type BedrockagentPrompt#type}.'''
        result = self._values.get("type")
        assert result is not None, "Required property 'type' is missing"
        return typing.cast(builtins.str, result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


class BedrockagentPromptVariantTemplateConfigurationChatSystemCachePointList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatSystemCachePointList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__ac87715bffbef417157cc26e10939358d3c70ed6ec47dc453d39b00083957d7a)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatSystemCachePointOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__13f82d3fd1bbf709c45f69812e20ef5be5531edda4ed2ca1ff78b7752081bd7f)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatSystemCachePointOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__7c07e887069d604b43991b4ceb59a315b232d3c5b76150926f3067678fcf7adc)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatSystemCachePointOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatSystemCachePointOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__64ade1948edbb626040c440a57b533be31ad022b257b600b0af40f29cdc11b26)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @builtins.property
    @jsii.member(jsii_name="typeInput")
    def type_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "typeInput"))

    @builtins.property
    @jsii.member(jsii_name="type")
    def type(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "type"))

    @type.setter
    def type(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__74b2d0dd9c5462a9ac87cb607bb20da844118ee7b5175f430ca544a62becfc03)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "type", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__858a7bb422e50698cf72e0219f64091bae167286be219db47d5b79b0f675e42c)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatSystemList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatSystemList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__a19c3ca42601311f64cab04555a8c2fd5136205ee8ca87bdb9658614e63c56fd)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatSystemOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__a5bb382ab9e28a5360167f729a37bfe3d72df3f7d61c022ea43145b1a095e74d)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatSystemOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatSystem"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatSystem"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatSystem"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__8d6a8c19fef4ace06a17b38e0296bb27dd65a9a71a20cb83feff71ac4be5bf7a)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatSystemOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatSystemOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__884b98fd99743927c5aa3114de493251d9b219686d8f38959b5ce52fa869c89f)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="putCachePoint")
    def put_cache_point(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__ef3ce3599360eb1273b62347a80eadae74bb4817e7f0ea851672761908f4b558)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putCachePoint", [value]))

    @jsii.member(jsii_name="resetCachePoint")
    def reset_cache_point(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetCachePoint", []))

    @jsii.member(jsii_name="resetText")
    def reset_text(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetText", []))

    @builtins.property
    @jsii.member(jsii_name="cachePoint")
    def cache_point(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatSystemCachePointList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatSystemCachePointList", jsii.get(self, "cachePoint"))

    @builtins.property
    @jsii.member(jsii_name="cachePointInput")
    def cache_point_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint"]]], jsii.get(self, "cachePointInput"))

    @builtins.property
    @jsii.member(jsii_name="textInput")
    def text_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "textInput"))

    @builtins.property
    @jsii.member(jsii_name="text")
    def text(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "text"))

    @text.setter
    def text(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__bca76ecc3c6ba03ccc610cfb9ac37acfdb52e12757259ec276974f0565e07ddd)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "text", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatSystem"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatSystem"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatSystem"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__14ba6c2cf0ad0faa032c93f26490185d67c06a1f1d84b225a664025a083c83e5)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration",
    jsii_struct_bases=[],
    name_mapping={"tool": "tool", "tool_choice": "toolChoice"},
)
class BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration:
    def __init__(
        self,
        *,
        tool: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool", typing.Dict[builtins.str, typing.Any]]]]] = None,
        tool_choice: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice", typing.Dict[builtins.str, typing.Any]]]]] = None,
    ) -> None:
        '''
        :param tool: tool block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#tool BedrockagentPrompt#tool}
        :param tool_choice: tool_choice block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#tool_choice BedrockagentPrompt#tool_choice}
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__60342cba01b7f670a1621530bbe34abb889e988cc270d5126aa30074329b2b2f)
            check_type(argname="argument tool", value=tool, expected_type=type_hints["tool"])
            check_type(argname="argument tool_choice", value=tool_choice, expected_type=type_hints["tool_choice"])
        self._values: typing.Dict[builtins.str, typing.Any] = {}
        if tool is not None:
            self._values["tool"] = tool
        if tool_choice is not None:
            self._values["tool_choice"] = tool_choice

    @builtins.property
    def tool(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool"]]]:
        '''tool block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#tool BedrockagentPrompt#tool}
        '''
        result = self._values.get("tool")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool"]]], result)

    @builtins.property
    def tool_choice(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice"]]]:
        '''tool_choice block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#tool_choice BedrockagentPrompt#tool_choice}
        '''
        result = self._values.get("tool_choice")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice"]]], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__f84fd2287979f8a098824728a42730c915062729450e2292275c1c327d306e55)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__d49a87447babab93e14065b03fea05e02da6c4aeaa6bda119ad27a583d00d9d6)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__b6e50b13d00eb2659e557666480d04d37d380a61bc33f24f946ecfd853f4b880)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__0a63ee93c2209f2bd7dc8109e547f3adeab765fb274fd65d049ae7609b53039e)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="putTool")
    def put_tool(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__d462bbbcde2c63f4ea7c4f85c615d03a1a089bb3b5b3e4ddcea1abeb239959cf)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putTool", [value]))

    @jsii.member(jsii_name="putToolChoice")
    def put_tool_choice(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__a35041b5d1973c5785feb1a03a67820b0e883b31072fa2ff697555ebf522329e)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putToolChoice", [value]))

    @jsii.member(jsii_name="resetTool")
    def reset_tool(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetTool", []))

    @jsii.member(jsii_name="resetToolChoice")
    def reset_tool_choice(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetToolChoice", []))

    @builtins.property
    @jsii.member(jsii_name="tool")
    def tool(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolList", jsii.get(self, "tool"))

    @builtins.property
    @jsii.member(jsii_name="toolChoice")
    def tool_choice(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceList", jsii.get(self, "toolChoice"))

    @builtins.property
    @jsii.member(jsii_name="toolChoiceInput")
    def tool_choice_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice"]]], jsii.get(self, "toolChoiceInput"))

    @builtins.property
    @jsii.member(jsii_name="toolInput")
    def tool_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool"]]], jsii.get(self, "toolInput"))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__8218414a057b63bddf95bbc75d8848393297d8e739642223d3803aae316a70f8)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool",
    jsii_struct_bases=[],
    name_mapping={"cache_point": "cachePoint", "tool_spec": "toolSpec"},
)
class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool:
    def __init__(
        self,
        *,
        cache_point: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint", typing.Dict[builtins.str, typing.Any]]]]] = None,
        tool_spec: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec", typing.Dict[builtins.str, typing.Any]]]]] = None,
    ) -> None:
        '''
        :param cache_point: cache_point block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#cache_point BedrockagentPrompt#cache_point}
        :param tool_spec: tool_spec block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#tool_spec BedrockagentPrompt#tool_spec}
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__e7dac48491bfa232b59888c34c853bb3fbc986fde3757e86f55605ca91d779e2)
            check_type(argname="argument cache_point", value=cache_point, expected_type=type_hints["cache_point"])
            check_type(argname="argument tool_spec", value=tool_spec, expected_type=type_hints["tool_spec"])
        self._values: typing.Dict[builtins.str, typing.Any] = {}
        if cache_point is not None:
            self._values["cache_point"] = cache_point
        if tool_spec is not None:
            self._values["tool_spec"] = tool_spec

    @builtins.property
    def cache_point(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint"]]]:
        '''cache_point block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#cache_point BedrockagentPrompt#cache_point}
        '''
        result = self._values.get("cache_point")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint"]]], result)

    @builtins.property
    def tool_spec(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec"]]]:
        '''tool_spec block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#tool_spec BedrockagentPrompt#tool_spec}
        '''
        result = self._values.get("tool_spec")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec"]]], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint",
    jsii_struct_bases=[],
    name_mapping={"type": "type"},
)
class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint:
    def __init__(self, *, type: builtins.str) -> None:
        '''
        :param type: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#type BedrockagentPrompt#type}.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__350984462617732de49383f9d14b857510ade2fa66ce50e28f26c35a60677c10)
            check_type(argname="argument type", value=type, expected_type=type_hints["type"])
        self._values: typing.Dict[builtins.str, typing.Any] = {
            "type": type,
        }

    @builtins.property
    def type(self) -> builtins.str:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#type BedrockagentPrompt#type}.'''
        result = self._values.get("type")
        assert result is not None, "Required property 'type' is missing"
        return typing.cast(builtins.str, result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePointList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePointList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__2a81fd5fcb33823cfc55d73333395dc60583788aa2b455147b0aa5ba660964c5)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePointOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__70bc2f9759014e480f272f3961d3a782caeb9b0da1de644664a67e5dc3e2ad39)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePointOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__ce6acb9d57bd953b3ebe73d770c14e4ec92d6df4ff663ca3758aa7b51dcd7d97)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePointOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePointOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__94be23aa1ed02233a03c131b23c32ec263f8b5cd974b75490f5c6c09c570b534)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @builtins.property
    @jsii.member(jsii_name="typeInput")
    def type_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "typeInput"))

    @builtins.property
    @jsii.member(jsii_name="type")
    def type(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "type"))

    @type.setter
    def type(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__d519b53f997609394ed5c35536b51cbaca8744178f0a61ff4d305c9bd3f9eebc)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "type", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__2d5a89eb8690f3d4032a8eec2eb676fff883ee6f91d0e0987ee48c64c9218ca2)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice",
    jsii_struct_bases=[],
    name_mapping={"any": "any", "auto": "auto", "tool": "tool"},
)
class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice:
    def __init__(
        self,
        *,
        any: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny", typing.Dict[builtins.str, typing.Any]]]]] = None,
        auto: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto", typing.Dict[builtins.str, typing.Any]]]]] = None,
        tool: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool", typing.Dict[builtins.str, typing.Any]]]]] = None,
    ) -> None:
        '''
        :param any: any block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#any BedrockagentPrompt#any}
        :param auto: auto block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#auto BedrockagentPrompt#auto}
        :param tool: tool block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#tool BedrockagentPrompt#tool}
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__f83d31cb45c23e45c0858a63ce173cd7245faa97fc8cb133a53eecf8be653393)
            check_type(argname="argument any", value=any, expected_type=type_hints["any"])
            check_type(argname="argument auto", value=auto, expected_type=type_hints["auto"])
            check_type(argname="argument tool", value=tool, expected_type=type_hints["tool"])
        self._values: typing.Dict[builtins.str, typing.Any] = {}
        if any is not None:
            self._values["any"] = any
        if auto is not None:
            self._values["auto"] = auto
        if tool is not None:
            self._values["tool"] = tool

    @builtins.property
    def any(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny"]]]:
        '''any block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#any BedrockagentPrompt#any}
        '''
        result = self._values.get("any")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny"]]], result)

    @builtins.property
    def auto(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto"]]]:
        '''auto block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#auto BedrockagentPrompt#auto}
        '''
        result = self._values.get("auto")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto"]]], result)

    @builtins.property
    def tool(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool"]]]:
        '''tool block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#tool BedrockagentPrompt#tool}
        '''
        result = self._values.get("tool")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool"]]], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny",
    jsii_struct_bases=[],
    name_mapping={},
)
class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny:
    def __init__(self) -> None:
        self._values: typing.Dict[builtins.str, typing.Any] = {}

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAnyList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAnyList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__044d935b13f48c013ddc377b8e220c2d03015acc72a68999ce848f0ff7c2941d)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAnyOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__ef1706e3769727b2db627cc648198862ef8190ecb17f5a50a0f695eb2e06fe55)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAnyOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__5521d5acf873e0f7fdbf8c36bf971424ae0afbd97d66c98e44e7d7eb4e4bc2ad)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAnyOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAnyOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__10b452c388deb52198361759dbba12263497490d62a64341c5c4454bad277c63)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__c9731215ad8fdd2ae01eeb16c7012f3836d3010fefe39a5f782ee559cc04236b)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto",
    jsii_struct_bases=[],
    name_mapping={},
)
class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto:
    def __init__(self) -> None:
        self._values: typing.Dict[builtins.str, typing.Any] = {}

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAutoList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAutoList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__88422731bb831a9e140b4c70251f8df3b31d1a37192827640bc449f6e0bfa4df)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAutoOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__1487c026d655b4148079e78d1ba334df4b6250e2ba355fdb36315132ea07bd3f)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAutoOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__e60a06236a5781bcf84e6de104686bbfd948fe9c4fabc4bdf41b3279c4aec9ef)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAutoOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAutoOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__d3c2e52ee91083723c441efdfcc30cfa7a489ccfec92e5a48d126d57e3be2c20)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__eda565dc11707d8fa8ddeaa15ef812109169b8256e68f58e78998e92b00913b7)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__fbff69e30cda5b0e64db5ef04ed8ecdbe036251ca4aa4291bd0c74b4c257fcc5)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__7b1f2e13c3e91f97eb582dba83e5cafb373f59b64b69acdaaa9d54451282ab2a)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__478cde37d736572f741905ad68a11dd2f48a4fd79e07b79e7a0f632e7bbeaa42)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__36d4cce8804c4277e8c2607c627545168d389d912c8d5c17f50e07073795067f)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="putAny")
    def put_any(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__8805a0485397d1b0592571294703f637ea6cfc1286e040604c4f0f32e0a39089)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putAny", [value]))

    @jsii.member(jsii_name="putAuto")
    def put_auto(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__2447ad23f7c96335ce2e481d054a63ec0f5acdc86a2fb739c70dcf28a4675124)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putAuto", [value]))

    @jsii.member(jsii_name="putTool")
    def put_tool(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__9e7eba24df6ef07b743a20c039d981903fa9bbe7a3ed97d745f56960648e4189)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putTool", [value]))

    @jsii.member(jsii_name="resetAny")
    def reset_any(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetAny", []))

    @jsii.member(jsii_name="resetAuto")
    def reset_auto(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetAuto", []))

    @jsii.member(jsii_name="resetTool")
    def reset_tool(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetTool", []))

    @builtins.property
    @jsii.member(jsii_name="any")
    def any(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAnyList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAnyList", jsii.get(self, "any"))

    @builtins.property
    @jsii.member(jsii_name="auto")
    def auto(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAutoList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAutoList", jsii.get(self, "auto"))

    @builtins.property
    @jsii.member(jsii_name="tool")
    def tool(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceToolList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceToolList", jsii.get(self, "tool"))

    @builtins.property
    @jsii.member(jsii_name="anyInput")
    def any_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny"]]], jsii.get(self, "anyInput"))

    @builtins.property
    @jsii.member(jsii_name="autoInput")
    def auto_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto"]]], jsii.get(self, "autoInput"))

    @builtins.property
    @jsii.member(jsii_name="toolInput")
    def tool_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool"]]], jsii.get(self, "toolInput"))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__191ff5ccc2a8d24fe9313a687c03626a426ec46650118804a7d54ee8c1ef7466)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool",
    jsii_struct_bases=[],
    name_mapping={"name": "name"},
)
class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool:
    def __init__(self, *, name: builtins.str) -> None:
        '''
        :param name: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#name BedrockagentPrompt#name}.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__5cb2273300f69529889914aa8dc580d682e21b96a9639cd1b926bfa3edabb503)
            check_type(argname="argument name", value=name, expected_type=type_hints["name"])
        self._values: typing.Dict[builtins.str, typing.Any] = {
            "name": name,
        }

    @builtins.property
    def name(self) -> builtins.str:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#name BedrockagentPrompt#name}.'''
        result = self._values.get("name")
        assert result is not None, "Required property 'name' is missing"
        return typing.cast(builtins.str, result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceToolList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceToolList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__f88b76108f07734a21eb3a766eb7fc70cc2cbb46eccd0e6d1a5220bd7376f498)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceToolOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__793bc37351bc89f7750be22cfef83b25ddc9d0c862d2876933e71a6b945d33d6)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceToolOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__3fc057af045a571470344ee77ef0578e15ab8eb15586e648c908fca863dbaae2)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceToolOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceToolOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__31227634732d108e40c8f851177b2d76ab8e1c92ac572e242d9dfc76aaf8958f)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @builtins.property
    @jsii.member(jsii_name="nameInput")
    def name_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "nameInput"))

    @builtins.property
    @jsii.member(jsii_name="name")
    def name(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "name"))

    @name.setter
    def name(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__6127aec46390f73b2eab536b0211ce569e8dc69da280633e6ce3272312018464)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__0ac5fdf12287f60ce32fbbc991bdeeb639a1e9e8df383d31058e2aa4169cff52)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__c561c01dd05375d0fe88d8eb8eb962527851e944efc746d539f861fc991aaf78)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__9de04d9a7985960034abb8768b40dba960ec3c7bb90b41bf1ec18f2e5d1abcd0)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__160087197b362a9175e033c570512ee907038a287a6e43c9bd7f456879032e3f)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__4636dc9bb831f26bf290c9084eec90d4a3c06d98b1c925aeb002a60344cfd909)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="putCachePoint")
    def put_cache_point(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__2b63950b4877fb2d10cb54f75d0fbeffd6334656f2709849b6749fd13c31f744)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putCachePoint", [value]))

    @jsii.member(jsii_name="putToolSpec")
    def put_tool_spec(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__5d5343325c7c92fa69bc4bb814ae3a482bc7d5ebae6d159f32c6b42dd29ed4a6)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putToolSpec", [value]))

    @jsii.member(jsii_name="resetCachePoint")
    def reset_cache_point(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetCachePoint", []))

    @jsii.member(jsii_name="resetToolSpec")
    def reset_tool_spec(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetToolSpec", []))

    @builtins.property
    @jsii.member(jsii_name="cachePoint")
    def cache_point(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePointList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePointList", jsii.get(self, "cachePoint"))

    @builtins.property
    @jsii.member(jsii_name="toolSpec")
    def tool_spec(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecList", jsii.get(self, "toolSpec"))

    @builtins.property
    @jsii.member(jsii_name="cachePointInput")
    def cache_point_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint"]]], jsii.get(self, "cachePointInput"))

    @builtins.property
    @jsii.member(jsii_name="toolSpecInput")
    def tool_spec_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec"]]], jsii.get(self, "toolSpecInput"))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__0e0c881f13be1dc28124ae708ee6e73471e77435fa77ed04126fb3914e6e591b)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec",
    jsii_struct_bases=[],
    name_mapping={
        "name": "name",
        "description": "description",
        "input_schema": "inputSchema",
    },
)
class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec:
    def __init__(
        self,
        *,
        name: builtins.str,
        description: typing.Optional[builtins.str] = None,
        input_schema: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema", typing.Dict[builtins.str, typing.Any]]]]] = None,
    ) -> None:
        '''
        :param name: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#name BedrockagentPrompt#name}.
        :param description: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#description BedrockagentPrompt#description}.
        :param input_schema: input_schema block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#input_schema BedrockagentPrompt#input_schema}
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__6e1d46a01e00de74018bbf6576329cdd2b96f1a48c2629c54a9faad782d9b3d6)
            check_type(argname="argument name", value=name, expected_type=type_hints["name"])
            check_type(argname="argument description", value=description, expected_type=type_hints["description"])
            check_type(argname="argument input_schema", value=input_schema, expected_type=type_hints["input_schema"])
        self._values: typing.Dict[builtins.str, typing.Any] = {
            "name": name,
        }
        if description is not None:
            self._values["description"] = description
        if input_schema is not None:
            self._values["input_schema"] = input_schema

    @builtins.property
    def name(self) -> builtins.str:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#name BedrockagentPrompt#name}.'''
        result = self._values.get("name")
        assert result is not None, "Required property 'name' is missing"
        return typing.cast(builtins.str, result)

    @builtins.property
    def description(self) -> typing.Optional[builtins.str]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#description BedrockagentPrompt#description}.'''
        result = self._values.get("description")
        return typing.cast(typing.Optional[builtins.str], result)

    @builtins.property
    def input_schema(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema"]]]:
        '''input_schema block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#input_schema BedrockagentPrompt#input_schema}
        '''
        result = self._values.get("input_schema")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema"]]], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema",
    jsii_struct_bases=[],
    name_mapping={"json": "json"},
)
class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema:
    def __init__(self, *, json: typing.Optional[builtins.str] = None) -> None:
        '''
        :param json: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#json BedrockagentPrompt#json}.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__1faba50c81d4ca6daa34fdd0020b1c18b098cef25ba9dc1a19f2a972de92f1ed)
            check_type(argname="argument json", value=json, expected_type=type_hints["json"])
        self._values: typing.Dict[builtins.str, typing.Any] = {}
        if json is not None:
            self._values["json"] = json

    @builtins.property
    def json(self) -> typing.Optional[builtins.str]:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#json BedrockagentPrompt#json}.'''
        result = self._values.get("json")
        return typing.cast(typing.Optional[builtins.str], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchemaList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchemaList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__098eb79d2b4369f1051783b9198a06317d4c59635e637031052251e2abd26718)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchemaOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__e96eb229d252fa1eeaf55e9bee2fd7e96e4a25666ed08ce29194afa0f95618da)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchemaOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__9933cbd6c3b5c203f3c37bf151fac455960c6d9524be8ca000f23b6537020b4c)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchemaOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchemaOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__c27f1849143fd7c0ef1f8ccad19646f4d9f23caecc5e663406c84cfd4cb8f1bb)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="resetJson")
    def reset_json(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetJson", []))

    @builtins.property
    @jsii.member(jsii_name="jsonInput")
    def json_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "jsonInput"))

    @builtins.property
    @jsii.member(jsii_name="json")
    def json(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "json"))

    @json.setter
    def json(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__36c8308f7dedbbf0279d1c14d17fcaa8052ba4e004ca2839231c542d9698b6ac)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "json", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__b3eeb7a6db775c1324d9d908ce1affadb6486e9cf1f8890b29d1514139ae466a)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__9fd1715afae7b236f738dc173de20b8ed227db212b6f6c28623dfd2c16fdf758)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__b39f271948eb7dbbeb0739bf165d1aad7fcd0497649b7779dad823ea38d0cfba)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__fca88078073b17958ea1fa188982146d4cda3c8593acb1a608528c9c95f83cc4)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__c9fa7844a2de404018ca150242999c7a4640193c49e04e67a603f1e66235b4e7)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="putInputSchema")
    def put_input_schema(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__ce2bd5393a8268989a40e3c8f001efcb4883f31b6e7e4db1915e8666151b929c)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putInputSchema", [value]))

    @jsii.member(jsii_name="resetDescription")
    def reset_description(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetDescription", []))

    @jsii.member(jsii_name="resetInputSchema")
    def reset_input_schema(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetInputSchema", []))

    @builtins.property
    @jsii.member(jsii_name="inputSchema")
    def input_schema(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchemaList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchemaList", jsii.get(self, "inputSchema"))

    @builtins.property
    @jsii.member(jsii_name="descriptionInput")
    def description_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "descriptionInput"))

    @builtins.property
    @jsii.member(jsii_name="inputSchemaInput")
    def input_schema_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema"]]], jsii.get(self, "inputSchemaInput"))

    @builtins.property
    @jsii.member(jsii_name="nameInput")
    def name_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "nameInput"))

    @builtins.property
    @jsii.member(jsii_name="description")
    def description(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "description"))

    @description.setter
    def description(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__ffbb20aa004de3a5d436ff460e95ab8b7ad0a56c4b1545414bc33045ed0485c0)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "description", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="name")
    def name(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "name"))

    @name.setter
    def name(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__0417c38462e85c8b34a47dabdec8c23eb857309d12522a7e98ca4af465549a54)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__4d80adaba33fea2835fff55e59f576a3ac3a9c9cebd0a33653e4c37fb1b6f198)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__0d715b39f1760ea801746667d04891b9ead0c4d2f47fb517e773a40a93c59f15)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__e1a973e7db2e55c2f57f74051e4d2311e6009544b7dc65301be792e46dde994c)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfiguration"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfiguration"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfiguration"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__6131f9534d5eb2b66b9c75c116bc18ee3bbe9dbdf7645dc25c94b5a45cf68a88)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__910e919653791fac0e08f96bede76d2931f83a50299d4d02663b4168dcb28e73)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="putChat")
    def put_chat(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationChat", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__a8d39cb0ce3e2bd5e3eed9eb0c30e98f1f215e5be0e8c140d534f37aacea3fff)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putChat", [value]))

    @jsii.member(jsii_name="putText")
    def put_text(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationText", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__a045a26f4530826ad1489ead9b49d662ac8e2038758d2e98da1c4bb116ff210a)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putText", [value]))

    @jsii.member(jsii_name="resetChat")
    def reset_chat(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetChat", []))

    @jsii.member(jsii_name="resetText")
    def reset_text(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetText", []))

    @builtins.property
    @jsii.member(jsii_name="chat")
    def chat(self) -> "BedrockagentPromptVariantTemplateConfigurationChatList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationChatList", jsii.get(self, "chat"))

    @builtins.property
    @jsii.member(jsii_name="text")
    def text(self) -> "BedrockagentPromptVariantTemplateConfigurationTextList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationTextList", jsii.get(self, "text"))

    @builtins.property
    @jsii.member(jsii_name="chatInput")
    def chat_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChat"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationChat"]]], jsii.get(self, "chatInput"))

    @builtins.property
    @jsii.member(jsii_name="textInput")
    def text_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationText"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationText"]]], jsii.get(self, "textInput"))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfiguration"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfiguration"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfiguration"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__a244eeb388502ba9a51ff0032d4e899ebd4fc6740f0b78b799b8d337e0199618)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationText",
    jsii_struct_bases=[],
    name_mapping={
        "text": "text",
        "cache_point": "cachePoint",
        "input_variable": "inputVariable",
    },
)
class BedrockagentPromptVariantTemplateConfigurationText:
    def __init__(
        self,
        *,
        text: builtins.str,
        cache_point: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationTextCachePoint", typing.Dict[builtins.str, typing.Any]]]]] = None,
        input_variable: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationTextInputVariable", typing.Dict[builtins.str, typing.Any]]]]] = None,
    ) -> None:
        '''
        :param text: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#text BedrockagentPrompt#text}.
        :param cache_point: cache_point block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#cache_point BedrockagentPrompt#cache_point}
        :param input_variable: input_variable block. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#input_variable BedrockagentPrompt#input_variable}
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__2623602f750d3bf5e8e1c2aa810155b9734616275e1ae0b2b375055747f86905)
            check_type(argname="argument text", value=text, expected_type=type_hints["text"])
            check_type(argname="argument cache_point", value=cache_point, expected_type=type_hints["cache_point"])
            check_type(argname="argument input_variable", value=input_variable, expected_type=type_hints["input_variable"])
        self._values: typing.Dict[builtins.str, typing.Any] = {
            "text": text,
        }
        if cache_point is not None:
            self._values["cache_point"] = cache_point
        if input_variable is not None:
            self._values["input_variable"] = input_variable

    @builtins.property
    def text(self) -> builtins.str:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#text BedrockagentPrompt#text}.'''
        result = self._values.get("text")
        assert result is not None, "Required property 'text' is missing"
        return typing.cast(builtins.str, result)

    @builtins.property
    def cache_point(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationTextCachePoint"]]]:
        '''cache_point block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#cache_point BedrockagentPrompt#cache_point}
        '''
        result = self._values.get("cache_point")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationTextCachePoint"]]], result)

    @builtins.property
    def input_variable(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationTextInputVariable"]]]:
        '''input_variable block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#input_variable BedrockagentPrompt#input_variable}
        '''
        result = self._values.get("input_variable")
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationTextInputVariable"]]], result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationText(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationTextCachePoint",
    jsii_struct_bases=[],
    name_mapping={"type": "type"},
)
class BedrockagentPromptVariantTemplateConfigurationTextCachePoint:
    def __init__(self, *, type: builtins.str) -> None:
        '''
        :param type: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#type BedrockagentPrompt#type}.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__d7a8650f3301f340171a2eb3ab29617a71e1b31d3c728977e64d24037e8d8ecf)
            check_type(argname="argument type", value=type, expected_type=type_hints["type"])
        self._values: typing.Dict[builtins.str, typing.Any] = {
            "type": type,
        }

    @builtins.property
    def type(self) -> builtins.str:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#type BedrockagentPrompt#type}.'''
        result = self._values.get("type")
        assert result is not None, "Required property 'type' is missing"
        return typing.cast(builtins.str, result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationTextCachePoint(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


class BedrockagentPromptVariantTemplateConfigurationTextCachePointList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationTextCachePointList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__5cb9a39568d34f758119f3ae6b811fb46ef418c7d1350b0d98ce1d01b87622d6)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationTextCachePointOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__00448b2585b593b2712e5e2694d703d0ef29b22d8e7622048dfe1e3a3023e363)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationTextCachePointOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationTextCachePoint"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationTextCachePoint"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationTextCachePoint"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__1f4aa2a9f8ffddd3a9079afaf95079916998fda1394a28a151e1f0bae20c4769)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationTextCachePointOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationTextCachePointOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__672a102491d2d945fec3b54c58e5292378bb14269b9e43462eff90d3b17538c5)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @builtins.property
    @jsii.member(jsii_name="typeInput")
    def type_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "typeInput"))

    @builtins.property
    @jsii.member(jsii_name="type")
    def type(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "type"))

    @type.setter
    def type(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__612886b51bbfb51e5abc67dc3723ca4e408009b4c80a216f16802a70214dc07f)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "type", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationTextCachePoint"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationTextCachePoint"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationTextCachePoint"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__965daae1c1a1d6b7bc80767b4d0feff5050c4c50503096ccb573b5a515e71477)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


@jsii.data_type(
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationTextInputVariable",
    jsii_struct_bases=[],
    name_mapping={"name": "name"},
)
class BedrockagentPromptVariantTemplateConfigurationTextInputVariable:
    def __init__(self, *, name: builtins.str) -> None:
        '''
        :param name: Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#name BedrockagentPrompt#name}.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__8cf087ab608a39ae4ebe89273df183eb26e37c45f78de1ae3dbab5378990b98b)
            check_type(argname="argument name", value=name, expected_type=type_hints["name"])
        self._values: typing.Dict[builtins.str, typing.Any] = {
            "name": name,
        }

    @builtins.property
    def name(self) -> builtins.str:
        '''Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.40.0/docs/resources/bedrockagent_prompt#name BedrockagentPrompt#name}.'''
        result = self._values.get("name")
        assert result is not None, "Required property 'name' is missing"
        return typing.cast(builtins.str, result)

    def __eq__(self, rhs: typing.Any) -> builtins.bool:
        return isinstance(rhs, self.__class__) and rhs._values == self._values

    def __ne__(self, rhs: typing.Any) -> builtins.bool:
        return not (rhs == self)

    def __repr__(self) -> str:
        return "BedrockagentPromptVariantTemplateConfigurationTextInputVariable(%s)" % ", ".join(
            k + "=" + repr(v) for k, v in self._values.items()
        )


class BedrockagentPromptVariantTemplateConfigurationTextInputVariableList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationTextInputVariableList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__c25c8e70514231576cd84ef11d0612da7c5d8f18c25f40e474bb8b5d5d47be33)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationTextInputVariableOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__94a437c9ac4640709b103bb683648e1d7a48f2c530e862c73c326e480bf83aaa)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationTextInputVariableOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationTextInputVariable"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationTextInputVariable"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationTextInputVariable"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__05ee378c22d9754233711927757d363497051adfb9bd4cd4df5ca16e65799646)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationTextInputVariableOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationTextInputVariableOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__9a2c761ef6e1683ce8078c8f1c3a7b261c79b72d0dee238cd24f51db4dd04a89)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @builtins.property
    @jsii.member(jsii_name="nameInput")
    def name_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "nameInput"))

    @builtins.property
    @jsii.member(jsii_name="name")
    def name(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "name"))

    @name.setter
    def name(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__3acc05f850c1e3378e298e810feb2078a503a96e5ccf222946d21c9917978bf6)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationTextInputVariable"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationTextInputVariable"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationTextInputVariable"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__3970dcfaa58ee3f972874a83411b2b309122b5450a9176c61446b2ac1208f172)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationTextList(
    _cdktn_78ede62e.ComplexList,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationTextList",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        wraps_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param wraps_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__a45eaf2f68d8adfbd69bf7eef3b8d0b088eccc1e777673d5036e6cb05a88a45c)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument wraps_set", value=wraps_set, expected_type=type_hints["wraps_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, wraps_set])

    @jsii.member(jsii_name="get")
    def get(
        self,
        index: jsii.Number,
    ) -> "BedrockagentPromptVariantTemplateConfigurationTextOutputReference":
        '''
        :param index: the index of the item to return.
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__626b71debd3e5ac19073436973bb76fa7cb5c329d02b5bd6f766d94fb6947b35)
            check_type(argname="argument index", value=index, expected_type=type_hints["index"])
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationTextOutputReference", jsii.invoke(self, "get", [index]))

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationText"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationText"]]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationText"]]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__fe6af81310cd3f092b4342e28a12037e80615f9933d3e72ba9344c44d0773260)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


class BedrockagentPromptVariantTemplateConfigurationTextOutputReference(
    _cdktn_78ede62e.ComplexObject,
    metaclass=jsii.JSIIMeta,
    jsii_type="@cdktn/provider-aws.bedrockagentPrompt.BedrockagentPromptVariantTemplateConfigurationTextOutputReference",
):
    def __init__(
        self,
        terraform_resource: "_cdktn_78ede62e.IInterpolatingParent",
        terraform_attribute: builtins.str,
        complex_object_index: jsii.Number,
        complex_object_is_from_set: builtins.bool,
    ) -> None:
        '''
        :param terraform_resource: The parent resource.
        :param terraform_attribute: The attribute on the parent resource this class is referencing.
        :param complex_object_index: the index of this item in the list.
        :param complex_object_is_from_set: whether the list is wrapping a set (will add tolist() to be able to access an item via an index).
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__413677ca5bdea91387f4b1c3228b21d89ca95d310a4b8647e95c5a987d4cc177)
            check_type(argname="argument terraform_resource", value=terraform_resource, expected_type=type_hints["terraform_resource"])
            check_type(argname="argument terraform_attribute", value=terraform_attribute, expected_type=type_hints["terraform_attribute"])
            check_type(argname="argument complex_object_index", value=complex_object_index, expected_type=type_hints["complex_object_index"])
            check_type(argname="argument complex_object_is_from_set", value=complex_object_is_from_set, expected_type=type_hints["complex_object_is_from_set"])
        jsii.create(self.__class__, self, [terraform_resource, terraform_attribute, complex_object_index, complex_object_is_from_set])

    @jsii.member(jsii_name="putCachePoint")
    def put_cache_point(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationTextCachePoint", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__5f51f03f3e60a88f8a1239f9b904925c2acc6d9bdb64674bef0359d50b4fd732)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putCachePoint", [value]))

    @jsii.member(jsii_name="putInputVariable")
    def put_input_variable(
        self,
        value: typing.Union["_cdktn_78ede62e.IResolvable", typing.Sequence[typing.Union["BedrockagentPromptVariantTemplateConfigurationTextInputVariable", typing.Dict[builtins.str, typing.Any]]]],
    ) -> None:
        '''
        :param value: -
        '''
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__55fb53308fac31d2fa9231f7d32883d52021af72a25dec2116b310a65022ccdf)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        return typing.cast(None, jsii.invoke(self, "putInputVariable", [value]))

    @jsii.member(jsii_name="resetCachePoint")
    def reset_cache_point(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetCachePoint", []))

    @jsii.member(jsii_name="resetInputVariable")
    def reset_input_variable(self) -> None:
        return typing.cast(None, jsii.invoke(self, "resetInputVariable", []))

    @builtins.property
    @jsii.member(jsii_name="cachePoint")
    def cache_point(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationTextCachePointList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationTextCachePointList", jsii.get(self, "cachePoint"))

    @builtins.property
    @jsii.member(jsii_name="inputVariable")
    def input_variable(
        self,
    ) -> "BedrockagentPromptVariantTemplateConfigurationTextInputVariableList":
        return typing.cast("BedrockagentPromptVariantTemplateConfigurationTextInputVariableList", jsii.get(self, "inputVariable"))

    @builtins.property
    @jsii.member(jsii_name="cachePointInput")
    def cache_point_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationTextCachePoint"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationTextCachePoint"]]], jsii.get(self, "cachePointInput"))

    @builtins.property
    @jsii.member(jsii_name="inputVariableInput")
    def input_variable_input(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationTextInputVariable"]]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", typing.List["BedrockagentPromptVariantTemplateConfigurationTextInputVariable"]]], jsii.get(self, "inputVariableInput"))

    @builtins.property
    @jsii.member(jsii_name="textInput")
    def text_input(self) -> typing.Optional[builtins.str]:
        return typing.cast(typing.Optional[builtins.str], jsii.get(self, "textInput"))

    @builtins.property
    @jsii.member(jsii_name="text")
    def text(self) -> builtins.str:
        return typing.cast(builtins.str, jsii.get(self, "text"))

    @text.setter
    def text(self, value: builtins.str) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__173b9d6763acaf615961add145a2f0dc7a4289c2cccab75c43511e4b15f803b7)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "text", value) # pyright: ignore[reportArgumentType]

    @builtins.property
    @jsii.member(jsii_name="internalValue")
    def internal_value(
        self,
    ) -> typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationText"]]:
        return typing.cast(typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationText"]], jsii.get(self, "internalValue"))

    @internal_value.setter
    def internal_value(
        self,
        value: typing.Optional[typing.Union["_cdktn_78ede62e.IResolvable", "BedrockagentPromptVariantTemplateConfigurationText"]],
    ) -> None:
        if __debug__:
            type_hints = typing.get_type_hints(_typecheckingstub__9b24e804bb606b09d0a4dec34858f76eb7a1d650302ec33ab924e603f15361be)
            check_type(argname="argument value", value=value, expected_type=type_hints["value"])
        jsii.set(self, "internalValue", value) # pyright: ignore[reportArgumentType]


__all__ = [
    "BedrockagentPrompt",
    "BedrockagentPromptConfig",
    "BedrockagentPromptVariant",
    "BedrockagentPromptVariantGenAiResource",
    "BedrockagentPromptVariantGenAiResourceAgent",
    "BedrockagentPromptVariantGenAiResourceAgentList",
    "BedrockagentPromptVariantGenAiResourceAgentOutputReference",
    "BedrockagentPromptVariantGenAiResourceList",
    "BedrockagentPromptVariantGenAiResourceOutputReference",
    "BedrockagentPromptVariantInferenceConfiguration",
    "BedrockagentPromptVariantInferenceConfigurationList",
    "BedrockagentPromptVariantInferenceConfigurationOutputReference",
    "BedrockagentPromptVariantInferenceConfigurationText",
    "BedrockagentPromptVariantInferenceConfigurationTextList",
    "BedrockagentPromptVariantInferenceConfigurationTextOutputReference",
    "BedrockagentPromptVariantList",
    "BedrockagentPromptVariantMetadata",
    "BedrockagentPromptVariantMetadataList",
    "BedrockagentPromptVariantMetadataOutputReference",
    "BedrockagentPromptVariantOutputReference",
    "BedrockagentPromptVariantTemplateConfiguration",
    "BedrockagentPromptVariantTemplateConfigurationChat",
    "BedrockagentPromptVariantTemplateConfigurationChatInputVariable",
    "BedrockagentPromptVariantTemplateConfigurationChatInputVariableList",
    "BedrockagentPromptVariantTemplateConfigurationChatInputVariableOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationChatList",
    "BedrockagentPromptVariantTemplateConfigurationChatMessage",
    "BedrockagentPromptVariantTemplateConfigurationChatMessageContent",
    "BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint",
    "BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePointList",
    "BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePointOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationChatMessageContentList",
    "BedrockagentPromptVariantTemplateConfigurationChatMessageContentOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationChatMessageList",
    "BedrockagentPromptVariantTemplateConfigurationChatMessageOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationChatOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationChatSystem",
    "BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint",
    "BedrockagentPromptVariantTemplateConfigurationChatSystemCachePointList",
    "BedrockagentPromptVariantTemplateConfigurationChatSystemCachePointOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationChatSystemList",
    "BedrockagentPromptVariantTemplateConfigurationChatSystemOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationList",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePointList",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePointOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAnyList",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAnyOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAutoList",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAutoOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceList",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceToolList",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceToolOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolList",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchemaList",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchemaOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecList",
    "BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationList",
    "BedrockagentPromptVariantTemplateConfigurationOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationText",
    "BedrockagentPromptVariantTemplateConfigurationTextCachePoint",
    "BedrockagentPromptVariantTemplateConfigurationTextCachePointList",
    "BedrockagentPromptVariantTemplateConfigurationTextCachePointOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationTextInputVariable",
    "BedrockagentPromptVariantTemplateConfigurationTextInputVariableList",
    "BedrockagentPromptVariantTemplateConfigurationTextInputVariableOutputReference",
    "BedrockagentPromptVariantTemplateConfigurationTextList",
    "BedrockagentPromptVariantTemplateConfigurationTextOutputReference",
]

publication.publish()

def _typecheckingstub__4f34f74812192dabea0c15603abe54c840309fc8974c41c1db292c69807ea7af(
    scope: _constructs_77d1e7e8.Construct,
    id: builtins.str,
    *,
    name: builtins.str,
    customer_encryption_key_arn: typing.Optional[builtins.str] = None,
    default_variant: typing.Optional[builtins.str] = None,
    description: typing.Optional[builtins.str] = None,
    region: typing.Optional[builtins.str] = None,
    tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
    variant: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariant, typing.Dict[builtins.str, typing.Any]]]]] = None,
    connection: typing.Optional[typing.Union[typing.Union[_cdktn_78ede62e.SSHProvisionerConnection, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktn_78ede62e.WinrmProvisionerConnection, typing.Dict[builtins.str, typing.Any]]]] = None,
    count: typing.Optional[typing.Union[jsii.Number, _cdktn_78ede62e.TerraformCount]] = None,
    depends_on: typing.Optional[typing.Sequence[_cdktn_78ede62e.ITerraformDependable]] = None,
    for_each: typing.Optional[_cdktn_78ede62e.ITerraformIterator] = None,
    lifecycle: typing.Optional[typing.Union[_cdktn_78ede62e.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
    provider: typing.Optional[_cdktn_78ede62e.TerraformProvider] = None,
    provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union[_cdktn_78ede62e.FileProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktn_78ede62e.LocalExecProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktn_78ede62e.RemoteExecProvisioner, typing.Dict[builtins.str, typing.Any]]]]] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__4d7e8e6c716c715dd5ff4cf43cc3ef2c7f207d01239b308f2198e23222157b4c(
    scope: _constructs_77d1e7e8.Construct,
    import_to_id: builtins.str,
    import_from_id: builtins.str,
    provider: typing.Optional[_cdktn_78ede62e.TerraformProvider] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__1c5ef2e55c32e80d81dfb7576546516639397322ca92b3b54c6dd6b820dab5b3(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariant, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__c3a142b13f4abd0e36b43653672ecad6812a19ab40cba90f6c8d80951f916a06(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__af669ebf373612d4995c3dd245695c26d897c65895dfeb62760db5e4bc21b59f(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__7f412b289f8733e70a49cea9eb5768b50f9351569de282ba110aa44cc9f51b9e(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__bf0fdd5cc3e1ff336283b9022c080c8e0918c4cfffae9f368806dddea928a646(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__c55c8ac656843a635b15aaaa8e81b739e69c91d654b25209420f7f34d44a5cc2(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__87b8409201663fe9a3627dd040e2805a4a9ab2a468368604eac2a40bf8b6c3a9(
    value: typing.Mapping[builtins.str, builtins.str],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__0d001ac18111a4b7098e4894e4bdec1f7af40dbe9cbf6b47fbfb88b42953bbbe(
    *,
    connection: typing.Optional[typing.Union[typing.Union[_cdktn_78ede62e.SSHProvisionerConnection, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktn_78ede62e.WinrmProvisionerConnection, typing.Dict[builtins.str, typing.Any]]]] = None,
    count: typing.Optional[typing.Union[jsii.Number, _cdktn_78ede62e.TerraformCount]] = None,
    depends_on: typing.Optional[typing.Sequence[_cdktn_78ede62e.ITerraformDependable]] = None,
    for_each: typing.Optional[_cdktn_78ede62e.ITerraformIterator] = None,
    lifecycle: typing.Optional[typing.Union[_cdktn_78ede62e.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
    provider: typing.Optional[_cdktn_78ede62e.TerraformProvider] = None,
    provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union[_cdktn_78ede62e.FileProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktn_78ede62e.LocalExecProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktn_78ede62e.RemoteExecProvisioner, typing.Dict[builtins.str, typing.Any]]]]] = None,
    name: builtins.str,
    customer_encryption_key_arn: typing.Optional[builtins.str] = None,
    default_variant: typing.Optional[builtins.str] = None,
    description: typing.Optional[builtins.str] = None,
    region: typing.Optional[builtins.str] = None,
    tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
    variant: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariant, typing.Dict[builtins.str, typing.Any]]]]] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__ab59a95de08b2d804b7128294669ab5f3bbf3a3f21b09b3abd59a4ea19611811(
    *,
    name: builtins.str,
    template_type: builtins.str,
    additional_model_request_fields: typing.Optional[builtins.str] = None,
    gen_ai_resource: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantGenAiResource, typing.Dict[builtins.str, typing.Any]]]]] = None,
    inference_configuration: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantInferenceConfiguration, typing.Dict[builtins.str, typing.Any]]]]] = None,
    metadata: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantMetadata, typing.Dict[builtins.str, typing.Any]]]]] = None,
    model_id: typing.Optional[builtins.str] = None,
    template_configuration: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfiguration, typing.Dict[builtins.str, typing.Any]]]]] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__1422a91f57a22314c5a06da145aeca3990d27050ec9210053540240db5c73a0c(
    *,
    agent: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantGenAiResourceAgent, typing.Dict[builtins.str, typing.Any]]]]] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__44d4fe73d572aa44143f0235b21cba2c4666309c09970692d47edd3deb26a59c(
    *,
    agent_identifier: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__6d54e696808955b660524fc1104f4f349c81378eaa3800fef412839a1d088df7(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__aa88d2cb2c58035bcb51540e778bda82ad35c276c47f10b8b2870af6d6c5217c(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__576e9b6a3e9012c75931ca188deb1a4373923f39ae779d7a47ab073e9d5420b6(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantGenAiResourceAgent]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__579611950a020407147305da1f1837d59e338631f5313dd1cfcce6106a80c588(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__d9c4edc76c41caccf1700b5885d9efc2be828f9d05c4c467ddd323b336f7c055(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__7aabdf4f98973ab613e54d99f8b63fbc0b4a1acc0690da85a8f0e8bd8384f74d(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantGenAiResourceAgent]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__47b31f68c459997d6401f5c65812eb921872dd0f2cd32f81e4d8c8f2d51f9a24(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__5b7dd8e8f3650c372c9b0b3a7ef17271cd96ce57187904dee4fe298412469c27(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__35ed703ef0512185f0afef52e3a512d77d5582d04960417b739f29cb19c07752(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantGenAiResource]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__af25f0ea50d3ba9f01c434e42f72c74e12186ca9cf6b6d701ea21cb8049e19a4(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__b22a39521a191a9e1822b99963bcfa344d6c5b3c8996c78bd4243991764cdc32(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantGenAiResourceAgent, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__de8227b6269f98c403006f02daa8c99453ab9dd18dacffaa1798e219ff611bda(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantGenAiResource]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__0c2220c881fdcfea0cc142544ff254f9b3f667da04b5564d37096cbb733ccd0d(
    *,
    text: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantInferenceConfigurationText, typing.Dict[builtins.str, typing.Any]]]]] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__fd76e22e4efef5a97746d3f55669b8b0e33f502bcab712ec318588036684940e(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__ebdc291399d9bd1a50c146498f8a8394a4f58f7aba61e1382229241223863246(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__b829cfca34433d05c980245156e91cc840c7be4e758a1debf0f4a09c3c1c1cc0(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantInferenceConfiguration]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__0cca96dadf87ee4aca923523419e49d3466d8280484f0645cb7ba35ab5d5b61d(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__6f0cd4dcc8114c7af93f283b3c37eff3a3845957591bafc1c52ed9523c230d97(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantInferenceConfigurationText, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__be71495c78c3d4d887edfd6349205143be1bd65cb2fccec09656f1635541e2c7(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantInferenceConfiguration]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__54e1a910b7ac4bcd546757719a418523c098b5c2269dfd1e59f1a91870c625e0(
    *,
    max_tokens: typing.Optional[jsii.Number] = None,
    stop_sequences: typing.Optional[typing.Sequence[builtins.str]] = None,
    temperature: typing.Optional[jsii.Number] = None,
    top_p: typing.Optional[jsii.Number] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__2c62882b2434c1c391909b37927a435c1a8f1da94bc80745b651fd0391611613(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__15c167e7b22e2b5189dbed12e8caee6fecbfd51096f3dfb493bc0d832f337d31(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__58ee6324aa9c3730bc6b600bc69d579a69cf20692a42e2d82b2db5c7b56b9999(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantInferenceConfigurationText]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__f58a208752db784561a4af010162615c7443581e35abb809529b6543aa26a25d(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__b0859889ab23a3fd6d4e3275e9c33d3f0c0c2434b67753d221336a86d242e146(
    value: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__0abc0d1ab9f458dc091d3460a1aac5c2050cc572b59526d5296019782d62e6e8(
    value: typing.List[builtins.str],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__796ba9591c4fb5fddfd5d902b6155347ab748782633803408d251c6204a3ecf7(
    value: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__835334e2f73eb1a617e4ff44893f254cbf413e36c0a752d85117fbb4ec2614d4(
    value: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__a142f8bb8bfdc97a13716e5bd2478a19ea30ab6de482ed5efc1469ae454ac1f8(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantInferenceConfigurationText]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__7a48bc95062d794186d94014abbc13a8c2d07e328a37f706710434aef4b3f064(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__b9d0e9cc8f0475aa725a30171bd1db4885c83cddbee27b3fcfd45a79eeeec003(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__46206aff4a5c69963cfe39ac3f7f120726e6d5f7494df6efa3bb4c66cdc74364(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariant]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__2528441c2c892bfef3829b74a0a9918d2f522406ddedef06d6b1ffcacea58867(
    *,
    key: builtins.str,
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__39079a9e90adaa15ef18091c1131c3476e90b82353763d3bb01374f283c8d1c6(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__6357ef724f4efe23ed53bc59712dc97237c2a9727221b52fd3e748fd8cfe0723(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__685b461b200c05005ce6ea354e9b3d33665a3980246ae49155854d186b61c75c(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantMetadata]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__eea0b4ffae48c3c3b5c4b010b7bc7ccfbfdb69aa780b0112445e8689be4adaa0(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__daceeb0c1d9198248964fa6cbc2137b7476d817a04b7026532d80421f20b3f50(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__59a11990198b356d986408517cb0800a3cc896ddee1d630572b8eda3164ea423(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__1f7c8ebe4888cc9854e8b69706201e58b460bd0ac070ffa9864bbc57f53da5af(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantMetadata]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__521788ca386100d951052059d6e6b3f38676328d8abf9c91b7b08ac53941defe(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__29e5142401499dafb80a7a6a61e023202151bc0ebf07da33ddc78eb94b187e29(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantGenAiResource, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__e4634e6a08222d1216921ac7b9b4c9d4eb43ae8f6b3dd5eae34bcab828ce323f(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantInferenceConfiguration, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__5da14dab510a67a5beec94794a00188ad061f59bbb1a2c9916e87be453543f88(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantMetadata, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__b376a28a99a1a8bf9391a69fc1830a719a1858cb8604baf6dd46b0f4c197cf82(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfiguration, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__f95d9202e95ecef42094851cb1aeda4cbf877b52678074ddfec383df261a8b6a(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__b84c2c35b42c59f5fa8c3193712190bf28baee79e5f4e351ad4e0c9bcee411d7(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__47bc322295e3042d9b448b154b79c62686860d9492940b5c50965de8c330198e(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__bf07e2ec6704fdfd8314728ebf226d183e94493f580f2175085b1151508165bb(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__25ebae5977d8a79d0861ef1887bf8e0dbb904bbd614b9b83ff31ecf385cdc441(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariant]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__d9854dad196c51771be7426940bf413dc7192a9ce1e2818f4d34d783d1642a73(
    *,
    chat: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChat, typing.Dict[builtins.str, typing.Any]]]]] = None,
    text: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationText, typing.Dict[builtins.str, typing.Any]]]]] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__2a9359ab5d25601b8f52abc0a3789006c6d0943085670dacd16ecbc504d83d10(
    *,
    input_variable: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatInputVariable, typing.Dict[builtins.str, typing.Any]]]]] = None,
    message: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatMessage, typing.Dict[builtins.str, typing.Any]]]]] = None,
    system_attribute: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatSystem, typing.Dict[builtins.str, typing.Any]]]]] = None,
    tool_configuration: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration, typing.Dict[builtins.str, typing.Any]]]]] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__2035be3579b85df434bb4aac65ac4f40d93c95220b6a79ec2371f4cc289a5abf(
    *,
    name: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__571d426243de5b1b16fc278862d5beedeb60c5d6693299d51c854bd03cf08ce0(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__c50949e3cc5c4cc66b9cb17ba13d2db626c845c936bf9567a01c4395db40fb0b(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__4934033dffd4df01fefb501c75290746a54228ff548b8cc65271c5b7eae758ec(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationChatInputVariable]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__45845bff8de51ac2efb1950beb76cb508ec733176923270652c2e6aa57cfa592(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__659ced119750cb43cf564063c0ba906ed4e3df198abd3c027a49c4526cdb9db0(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__8864412865700f139f959abe7964ae0a728ef1a062e7a9641416fa699deaf7c2(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationChatInputVariable]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__0cbb7236ef95b4582e007dd6b11b631cc3c3c57c28c3ef5f358946b86da30747(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__0a54a773265ae30ec3904ef26f1bfe4eb4f301919f33591b458ea4f8f7dd7a9a(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__2e98bca960ee379d8f7f0e286bdb9df6b65f5ce280246551e2d562329232c484(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationChat]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__def5b751755c9fa4d4d09e47747094eb8c3b825a7ca81e6a3c6f1dcd3e1ca8da(
    *,
    role: builtins.str,
    content: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatMessageContent, typing.Dict[builtins.str, typing.Any]]]]] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__db95a43e83067f27569b4608d6cdc8abe45d21b0febfbacbad23ec98eb229810(
    *,
    cache_point: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint, typing.Dict[builtins.str, typing.Any]]]]] = None,
    text: typing.Optional[builtins.str] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__193fecf4b7141bc936913a198ba0d3b2908eafd2ad4861a51ceb3e7a0f468d7d(
    *,
    type: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__f30c440ad8ee8f16f5aa874a58092725b9e8cc06f0392e9628ab3d51263e662a(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__e8339de82c1f358636fe7020073b15e2a06cc39377ae21a9e653a1ad234f02bb(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__bdc3cfb175a3e8f4b7cee727b4a48ddddf3e2c367f2ef01edbe9ca08235aeb84(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__48894bd4a211d8620fa0fac33dc37d6ba29f2d7fe306b29dea5d4004e73d0dea(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__940d5df9d8331cce0155b8e0a485bcd126175a5bed471e7f95af30509571a198(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__ee288a022faf488119ed089abeb28553586055d514a9c84055acaacbbfe3ed20(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__ab0e230d33432a558f6627e83081cedc15a25deecef05914dc2f4b1e57ae5bb0(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__8ab8fc90c669d6c3b30ae5b350d9fdb08a656b9b7dbe68adaabf8fe987f990f3(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__e72eb04cfc11ef08e6cec64dae9e241089edf5d3ca760c19fe27191c138422a3(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationChatMessageContent]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__73df03fd27a38f4b91db0205213375d311554f37b234fb8998efaddd4e802453(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__5e2cda707fefd85098a6c611f70b122e1eda2f05912566494d66300667baceab(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatMessageContentCachePoint, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__3348595433bcbba73c890d5e9ba89c87b707f7a29205589d46445ff039b5a79d(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__2828ecca621376238420399bdf80716f56ee6f1d9460ca55d12d662929f94b69(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationChatMessageContent]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__feb7341ba8b16eeaa7b9c6ae1e9c21fcdef61af0c0ec2cde5037a33806b51218(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__99e21ebf595bf4f190a2fa3582900bef59b987a5fbe0c0f901f404e8bb52c279(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__e1de627045f5013fdd97308e23d7bbc29a6f70e85e7a792158511cef8fc28abf(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationChatMessage]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__a720fde8d7a1df32d913226e3f7b21b2d7f18d361cb08ccef8a80f139ba3cd8c(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__5dad605998295b042faba52c91dd03c2752d57b4a2453c6b72e9f7ae8c4fed5f(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatMessageContent, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__a3ed6e277394a39753603de1c46be7666813b02d6d1b2cc0249d39f28fd39e8f(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__b10d24ae3588439726aa513a1bc03ebaacb2d444e21b02935a89200b931096fa(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationChatMessage]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__11df9f773246afe1880f24a63a7e0debf598686ac3e67b3a902aa2fbf706c02e(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__836b6a189eb63cad94ffb5cd4201ba6b4a669ef770f8a004d5b819b780bf14d4(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatInputVariable, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__bfd5eac902189e94997e51cf6e578e15aa532d267f7eab485a06dc202743a31f(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatMessage, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__95d7d32fbb838ee5b8b6183a57626032273e396d05a5bbdce573df5a858ec23b(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatSystem, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__7c9d2a837d67e9c5f2e33eb72bcc6181424e930a7d56b472df73fb47d9e352e8(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__1f8d20c4066850b464ca347780be6fea178a55d76fa665b132305070962856a4(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationChat]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__332a683c5f8565cdf5817aa590be12bfbd8aea2168fd15a402e69407bf59dd9b(
    *,
    cache_point: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint, typing.Dict[builtins.str, typing.Any]]]]] = None,
    text: typing.Optional[builtins.str] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__b11c7963f9dafe1926c258aaa2504eb721d52e58c0e6f504c3d7c48d47488180(
    *,
    type: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__ac87715bffbef417157cc26e10939358d3c70ed6ec47dc453d39b00083957d7a(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__13f82d3fd1bbf709c45f69812e20ef5be5531edda4ed2ca1ff78b7752081bd7f(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__7c07e887069d604b43991b4ceb59a315b232d3c5b76150926f3067678fcf7adc(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__64ade1948edbb626040c440a57b533be31ad022b257b600b0af40f29cdc11b26(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__74b2d0dd9c5462a9ac87cb607bb20da844118ee7b5175f430ca544a62becfc03(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__858a7bb422e50698cf72e0219f64091bae167286be219db47d5b79b0f675e42c(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__a19c3ca42601311f64cab04555a8c2fd5136205ee8ca87bdb9658614e63c56fd(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__a5bb382ab9e28a5360167f729a37bfe3d72df3f7d61c022ea43145b1a095e74d(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__8d6a8c19fef4ace06a17b38e0296bb27dd65a9a71a20cb83feff71ac4be5bf7a(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationChatSystem]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__884b98fd99743927c5aa3114de493251d9b219686d8f38959b5ce52fa869c89f(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__ef3ce3599360eb1273b62347a80eadae74bb4817e7f0ea851672761908f4b558(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatSystemCachePoint, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__bca76ecc3c6ba03ccc610cfb9ac37acfdb52e12757259ec276974f0565e07ddd(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__14ba6c2cf0ad0faa032c93f26490185d67c06a1f1d84b225a664025a083c83e5(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationChatSystem]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__60342cba01b7f670a1621530bbe34abb889e988cc270d5126aa30074329b2b2f(
    *,
    tool: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool, typing.Dict[builtins.str, typing.Any]]]]] = None,
    tool_choice: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice, typing.Dict[builtins.str, typing.Any]]]]] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__f84fd2287979f8a098824728a42730c915062729450e2292275c1c327d306e55(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__d49a87447babab93e14065b03fea05e02da6c4aeaa6bda119ad27a583d00d9d6(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__b6e50b13d00eb2659e557666480d04d37d380a61bc33f24f946ecfd853f4b880(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__0a63ee93c2209f2bd7dc8109e547f3adeab765fb274fd65d049ae7609b53039e(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__d462bbbcde2c63f4ea7c4f85c615d03a1a089bb3b5b3e4ddcea1abeb239959cf(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__a35041b5d1973c5785feb1a03a67820b0e883b31072fa2ff697555ebf522329e(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__8218414a057b63bddf95bbc75d8848393297d8e739642223d3803aae316a70f8(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationChatToolConfiguration]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__e7dac48491bfa232b59888c34c853bb3fbc986fde3757e86f55605ca91d779e2(
    *,
    cache_point: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint, typing.Dict[builtins.str, typing.Any]]]]] = None,
    tool_spec: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec, typing.Dict[builtins.str, typing.Any]]]]] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__350984462617732de49383f9d14b857510ade2fa66ce50e28f26c35a60677c10(
    *,
    type: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__2a81fd5fcb33823cfc55d73333395dc60583788aa2b455147b0aa5ba660964c5(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__70bc2f9759014e480f272f3961d3a782caeb9b0da1de644664a67e5dc3e2ad39(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__ce6acb9d57bd953b3ebe73d770c14e4ec92d6df4ff663ca3758aa7b51dcd7d97(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__94be23aa1ed02233a03c131b23c32ec263f8b5cd974b75490f5c6c09c570b534(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__d519b53f997609394ed5c35536b51cbaca8744178f0a61ff4d305c9bd3f9eebc(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__2d5a89eb8690f3d4032a8eec2eb676fff883ee6f91d0e0987ee48c64c9218ca2(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__f83d31cb45c23e45c0858a63ce173cd7245faa97fc8cb133a53eecf8be653393(
    *,
    any: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny, typing.Dict[builtins.str, typing.Any]]]]] = None,
    auto: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto, typing.Dict[builtins.str, typing.Any]]]]] = None,
    tool: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool, typing.Dict[builtins.str, typing.Any]]]]] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__044d935b13f48c013ddc377b8e220c2d03015acc72a68999ce848f0ff7c2941d(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__ef1706e3769727b2db627cc648198862ef8190ecb17f5a50a0f695eb2e06fe55(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__5521d5acf873e0f7fdbf8c36bf971424ae0afbd97d66c98e44e7d7eb4e4bc2ad(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__10b452c388deb52198361759dbba12263497490d62a64341c5c4454bad277c63(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__c9731215ad8fdd2ae01eeb16c7012f3836d3010fefe39a5f782ee559cc04236b(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__88422731bb831a9e140b4c70251f8df3b31d1a37192827640bc449f6e0bfa4df(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__1487c026d655b4148079e78d1ba334df4b6250e2ba355fdb36315132ea07bd3f(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__e60a06236a5781bcf84e6de104686bbfd948fe9c4fabc4bdf41b3279c4aec9ef(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__d3c2e52ee91083723c441efdfcc30cfa7a489ccfec92e5a48d126d57e3be2c20(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__eda565dc11707d8fa8ddeaa15ef812109169b8256e68f58e78998e92b00913b7(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__fbff69e30cda5b0e64db5ef04ed8ecdbe036251ca4aa4291bd0c74b4c257fcc5(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__7b1f2e13c3e91f97eb582dba83e5cafb373f59b64b69acdaaa9d54451282ab2a(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__478cde37d736572f741905ad68a11dd2f48a4fd79e07b79e7a0f632e7bbeaa42(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__36d4cce8804c4277e8c2607c627545168d389d912c8d5c17f50e07073795067f(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__8805a0485397d1b0592571294703f637ea6cfc1286e040604c4f0f32e0a39089(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAny, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__2447ad23f7c96335ce2e481d054a63ec0f5acdc86a2fb739c70dcf28a4675124(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceAuto, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__9e7eba24df6ef07b743a20c039d981903fa9bbe7a3ed97d745f56960648e4189(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__191ff5ccc2a8d24fe9313a687c03626a426ec46650118804a7d54ee8c1ef7466(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoice]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__5cb2273300f69529889914aa8dc580d682e21b96a9639cd1b926bfa3edabb503(
    *,
    name: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__f88b76108f07734a21eb3a766eb7fc70cc2cbb46eccd0e6d1a5220bd7376f498(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__793bc37351bc89f7750be22cfef83b25ddc9d0c862d2876933e71a6b945d33d6(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__3fc057af045a571470344ee77ef0578e15ab8eb15586e648c908fca863dbaae2(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__31227634732d108e40c8f851177b2d76ab8e1c92ac572e242d9dfc76aaf8958f(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__6127aec46390f73b2eab536b0211ce569e8dc69da280633e6ce3272312018464(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__0ac5fdf12287f60ce32fbbc991bdeeb639a1e9e8df383d31058e2aa4169cff52(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolChoiceTool]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__c561c01dd05375d0fe88d8eb8eb962527851e944efc746d539f861fc991aaf78(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__9de04d9a7985960034abb8768b40dba960ec3c7bb90b41bf1ec18f2e5d1abcd0(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__160087197b362a9175e033c570512ee907038a287a6e43c9bd7f456879032e3f(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__4636dc9bb831f26bf290c9084eec90d4a3c06d98b1c925aeb002a60344cfd909(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__2b63950b4877fb2d10cb54f75d0fbeffd6334656f2709849b6749fd13c31f744(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolCachePoint, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__5d5343325c7c92fa69bc4bb814ae3a482bc7d5ebae6d159f32c6b42dd29ed4a6(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__0e0c881f13be1dc28124ae708ee6e73471e77435fa77ed04126fb3914e6e591b(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationTool]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__6e1d46a01e00de74018bbf6576329cdd2b96f1a48c2629c54a9faad782d9b3d6(
    *,
    name: builtins.str,
    description: typing.Optional[builtins.str] = None,
    input_schema: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema, typing.Dict[builtins.str, typing.Any]]]]] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__1faba50c81d4ca6daa34fdd0020b1c18b098cef25ba9dc1a19f2a972de92f1ed(
    *,
    json: typing.Optional[builtins.str] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__098eb79d2b4369f1051783b9198a06317d4c59635e637031052251e2abd26718(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__e96eb229d252fa1eeaf55e9bee2fd7e96e4a25666ed08ce29194afa0f95618da(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__9933cbd6c3b5c203f3c37bf151fac455960c6d9524be8ca000f23b6537020b4c(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__c27f1849143fd7c0ef1f8ccad19646f4d9f23caecc5e663406c84cfd4cb8f1bb(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__36c8308f7dedbbf0279d1c14d17fcaa8052ba4e004ca2839231c542d9698b6ac(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__b3eeb7a6db775c1324d9d908ce1affadb6486e9cf1f8890b29d1514139ae466a(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__9fd1715afae7b236f738dc173de20b8ed227db212b6f6c28623dfd2c16fdf758(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__b39f271948eb7dbbeb0739bf165d1aad7fcd0497649b7779dad823ea38d0cfba(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__fca88078073b17958ea1fa188982146d4cda3c8593acb1a608528c9c95f83cc4(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__c9fa7844a2de404018ca150242999c7a4640193c49e04e67a603f1e66235b4e7(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__ce2bd5393a8268989a40e3c8f001efcb4883f31b6e7e4db1915e8666151b929c(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpecInputSchema, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__ffbb20aa004de3a5d436ff460e95ab8b7ad0a56c4b1545414bc33045ed0485c0(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__0417c38462e85c8b34a47dabdec8c23eb857309d12522a7e98ca4af465549a54(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__4d80adaba33fea2835fff55e59f576a3ac3a9c9cebd0a33653e4c37fb1b6f198(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationChatToolConfigurationToolToolSpec]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__0d715b39f1760ea801746667d04891b9ead0c4d2f47fb517e773a40a93c59f15(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__e1a973e7db2e55c2f57f74051e4d2311e6009544b7dc65301be792e46dde994c(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__6131f9534d5eb2b66b9c75c116bc18ee3bbe9dbdf7645dc25c94b5a45cf68a88(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfiguration]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__910e919653791fac0e08f96bede76d2931f83a50299d4d02663b4168dcb28e73(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__a8d39cb0ce3e2bd5e3eed9eb0c30e98f1f215e5be0e8c140d534f37aacea3fff(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationChat, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__a045a26f4530826ad1489ead9b49d662ac8e2038758d2e98da1c4bb116ff210a(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationText, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__a244eeb388502ba9a51ff0032d4e899ebd4fc6740f0b78b799b8d337e0199618(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfiguration]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__2623602f750d3bf5e8e1c2aa810155b9734616275e1ae0b2b375055747f86905(
    *,
    text: builtins.str,
    cache_point: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationTextCachePoint, typing.Dict[builtins.str, typing.Any]]]]] = None,
    input_variable: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationTextInputVariable, typing.Dict[builtins.str, typing.Any]]]]] = None,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__d7a8650f3301f340171a2eb3ab29617a71e1b31d3c728977e64d24037e8d8ecf(
    *,
    type: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__5cb9a39568d34f758119f3ae6b811fb46ef418c7d1350b0d98ce1d01b87622d6(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__00448b2585b593b2712e5e2694d703d0ef29b22d8e7622048dfe1e3a3023e363(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__1f4aa2a9f8ffddd3a9079afaf95079916998fda1394a28a151e1f0bae20c4769(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationTextCachePoint]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__672a102491d2d945fec3b54c58e5292378bb14269b9e43462eff90d3b17538c5(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__612886b51bbfb51e5abc67dc3723ca4e408009b4c80a216f16802a70214dc07f(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__965daae1c1a1d6b7bc80767b4d0feff5050c4c50503096ccb573b5a515e71477(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationTextCachePoint]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__8cf087ab608a39ae4ebe89273df183eb26e37c45f78de1ae3dbab5378990b98b(
    *,
    name: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__c25c8e70514231576cd84ef11d0612da7c5d8f18c25f40e474bb8b5d5d47be33(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__94a437c9ac4640709b103bb683648e1d7a48f2c530e862c73c326e480bf83aaa(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__05ee378c22d9754233711927757d363497051adfb9bd4cd4df5ca16e65799646(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationTextInputVariable]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__9a2c761ef6e1683ce8078c8f1c3a7b261c79b72d0dee238cd24f51db4dd04a89(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__3acc05f850c1e3378e298e810feb2078a503a96e5ccf222946d21c9917978bf6(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__3970dcfaa58ee3f972874a83411b2b309122b5450a9176c61446b2ac1208f172(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationTextInputVariable]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__a45eaf2f68d8adfbd69bf7eef3b8d0b088eccc1e777673d5036e6cb05a88a45c(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    wraps_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__626b71debd3e5ac19073436973bb76fa7cb5c329d02b5bd6f766d94fb6947b35(
    index: jsii.Number,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__fe6af81310cd3f092b4342e28a12037e80615f9933d3e72ba9344c44d0773260(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, typing.List[BedrockagentPromptVariantTemplateConfigurationText]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__413677ca5bdea91387f4b1c3228b21d89ca95d310a4b8647e95c5a987d4cc177(
    terraform_resource: _cdktn_78ede62e.IInterpolatingParent,
    terraform_attribute: builtins.str,
    complex_object_index: jsii.Number,
    complex_object_is_from_set: builtins.bool,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__5f51f03f3e60a88f8a1239f9b904925c2acc6d9bdb64674bef0359d50b4fd732(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationTextCachePoint, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__55fb53308fac31d2fa9231f7d32883d52021af72a25dec2116b310a65022ccdf(
    value: typing.Union[_cdktn_78ede62e.IResolvable, typing.Sequence[typing.Union[BedrockagentPromptVariantTemplateConfigurationTextInputVariable, typing.Dict[builtins.str, typing.Any]]]],
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__173b9d6763acaf615961add145a2f0dc7a4289c2cccab75c43511e4b15f803b7(
    value: builtins.str,
) -> None:
    """Type checking stubs"""
    pass

def _typecheckingstub__9b24e804bb606b09d0a4dec34858f76eb7a1d650302ec33ab924e603f15361be(
    value: typing.Optional[typing.Union[_cdktn_78ede62e.IResolvable, BedrockagentPromptVariantTemplateConfigurationText]],
) -> None:
    """Type checking stubs"""
    pass
