appmod-catalog-blueprints 1.2.1__py3-none-any.whl → 1.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -539,92 +539,514 @@ class AdditionalDistributionProps:
539
539
 
540
540
 
541
541
  @jsii.data_type(
542
- jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.AgentProps",
542
+ jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.AgentDefinitionProps",
543
543
  jsii_struct_bases=[],
544
544
  name_mapping={
545
- "agent_system_prompt": "agentSystemPrompt",
545
+ "bedrock_model": "bedrockModel",
546
+ "system_prompt": "systemPrompt",
547
+ "additional_policy_statements_for_tools": "additionalPolicyStatementsForTools",
546
548
  "lambda_layers": "lambdaLayers",
547
- "tools_bucket": "toolsBucket",
548
- "tools_location": "toolsLocation",
549
+ "tools": "tools",
549
550
  },
550
551
  )
551
- class AgentProps:
552
+ class AgentDefinitionProps:
552
553
  def __init__(
553
554
  self,
554
555
  *,
555
- agent_system_prompt: typing.Optional[builtins.str] = None,
556
+ bedrock_model: typing.Union["BedrockModelProps", typing.Dict[builtins.str, typing.Any]],
557
+ system_prompt: _aws_cdk_aws_s3_assets_ceddda9d.Asset,
558
+ additional_policy_statements_for_tools: typing.Optional[typing.Sequence[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]] = None,
556
559
  lambda_layers: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.LayerVersion]] = None,
557
- tools_bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
558
- tools_location: typing.Optional[typing.Sequence[builtins.str]] = None,
560
+ tools: typing.Optional[typing.Sequence[_aws_cdk_aws_s3_assets_ceddda9d.Asset]] = None,
559
561
  ) -> None:
560
- '''
561
- :param agent_system_prompt: (experimental) System prompt for the agent.
562
- :param lambda_layers: (experimental) If there are python dependencies that are needed by the provided tools, provide the Lambda Layers with the dependencies.
563
- :param tools_bucket: (experimental) Bucket where the tools are located in Primarily use to grant read permission to the processing agent to access the tools. Default: No extra IAM permissions would be automatically assigned to the processing agent.
564
- :param tools_location: (experimental) S3 path where the tools are located. The agent would dynamically load the tools
562
+ '''(experimental) Parameters that influences the behavior of the agent.
563
+
564
+ :param bedrock_model: (experimental) Configuration for the Bedrock Model to be used.
565
+ :param system_prompt: (experimental) The system prompt of the agent.
566
+ :param additional_policy_statements_for_tools: (experimental) If tools need additional IAM permissions, these statements would be attached to the Agent's IAM role.
567
+ :param lambda_layers: (experimental) Any dependencies needed by the provided tools.
568
+ :param tools: (experimental) List of tools defined in python files. This tools would automatically be loaded by the agent. You can also use this to incorporate other specialized agents as tools.
565
569
 
566
570
  :stability: experimental
567
571
  '''
572
+ if isinstance(bedrock_model, dict):
573
+ bedrock_model = BedrockModelProps(**bedrock_model)
568
574
  if __debug__:
569
- type_hints = typing.get_type_hints(_typecheckingstub__e1a82500ee072f393cd9a2ada2f9a3434219c7a51186f26fbba3061bd896d11e)
570
- check_type(argname="argument agent_system_prompt", value=agent_system_prompt, expected_type=type_hints["agent_system_prompt"])
575
+ type_hints = typing.get_type_hints(_typecheckingstub__4a2d1deab0cc9bf96473ffb32138a2c564c47ae7382fe5d2d1f0e43da3324272)
576
+ check_type(argname="argument bedrock_model", value=bedrock_model, expected_type=type_hints["bedrock_model"])
577
+ check_type(argname="argument system_prompt", value=system_prompt, expected_type=type_hints["system_prompt"])
578
+ check_type(argname="argument additional_policy_statements_for_tools", value=additional_policy_statements_for_tools, expected_type=type_hints["additional_policy_statements_for_tools"])
571
579
  check_type(argname="argument lambda_layers", value=lambda_layers, expected_type=type_hints["lambda_layers"])
572
- check_type(argname="argument tools_bucket", value=tools_bucket, expected_type=type_hints["tools_bucket"])
573
- check_type(argname="argument tools_location", value=tools_location, expected_type=type_hints["tools_location"])
574
- self._values: typing.Dict[builtins.str, typing.Any] = {}
575
- if agent_system_prompt is not None:
576
- self._values["agent_system_prompt"] = agent_system_prompt
580
+ check_type(argname="argument tools", value=tools, expected_type=type_hints["tools"])
581
+ self._values: typing.Dict[builtins.str, typing.Any] = {
582
+ "bedrock_model": bedrock_model,
583
+ "system_prompt": system_prompt,
584
+ }
585
+ if additional_policy_statements_for_tools is not None:
586
+ self._values["additional_policy_statements_for_tools"] = additional_policy_statements_for_tools
577
587
  if lambda_layers is not None:
578
588
  self._values["lambda_layers"] = lambda_layers
579
- if tools_bucket is not None:
580
- self._values["tools_bucket"] = tools_bucket
581
- if tools_location is not None:
582
- self._values["tools_location"] = tools_location
589
+ if tools is not None:
590
+ self._values["tools"] = tools
583
591
 
584
592
  @builtins.property
585
- def agent_system_prompt(self) -> typing.Optional[builtins.str]:
586
- '''(experimental) System prompt for the agent.
593
+ def bedrock_model(self) -> "BedrockModelProps":
594
+ '''(experimental) Configuration for the Bedrock Model to be used.
587
595
 
588
596
  :stability: experimental
589
597
  '''
590
- result = self._values.get("agent_system_prompt")
591
- return typing.cast(typing.Optional[builtins.str], result)
598
+ result = self._values.get("bedrock_model")
599
+ assert result is not None, "Required property 'bedrock_model' is missing"
600
+ return typing.cast("BedrockModelProps", result)
601
+
602
+ @builtins.property
603
+ def system_prompt(self) -> _aws_cdk_aws_s3_assets_ceddda9d.Asset:
604
+ '''(experimental) The system prompt of the agent.
605
+
606
+ :stability: experimental
607
+ '''
608
+ result = self._values.get("system_prompt")
609
+ assert result is not None, "Required property 'system_prompt' is missing"
610
+ return typing.cast(_aws_cdk_aws_s3_assets_ceddda9d.Asset, result)
611
+
612
+ @builtins.property
613
+ def additional_policy_statements_for_tools(
614
+ self,
615
+ ) -> typing.Optional[typing.List[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]]:
616
+ '''(experimental) If tools need additional IAM permissions, these statements would be attached to the Agent's IAM role.
617
+
618
+ :stability: experimental
619
+ '''
620
+ result = self._values.get("additional_policy_statements_for_tools")
621
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]], result)
592
622
 
593
623
  @builtins.property
594
624
  def lambda_layers(
595
625
  self,
596
626
  ) -> typing.Optional[typing.List[_aws_cdk_aws_lambda_ceddda9d.LayerVersion]]:
597
- '''(experimental) If there are python dependencies that are needed by the provided tools, provide the Lambda Layers with the dependencies.
627
+ '''(experimental) Any dependencies needed by the provided tools.
628
+
629
+ :stability: experimental
630
+ '''
631
+ result = self._values.get("lambda_layers")
632
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_lambda_ceddda9d.LayerVersion]], result)
633
+
634
+ @builtins.property
635
+ def tools(
636
+ self,
637
+ ) -> typing.Optional[typing.List[_aws_cdk_aws_s3_assets_ceddda9d.Asset]]:
638
+ '''(experimental) List of tools defined in python files.
639
+
640
+ This tools would automatically
641
+ be loaded by the agent. You can also use this to incorporate other specialized
642
+ agents as tools.
643
+
644
+ :stability: experimental
645
+ '''
646
+ result = self._values.get("tools")
647
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_s3_assets_ceddda9d.Asset]], result)
648
+
649
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
650
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
651
+
652
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
653
+ return not (rhs == self)
654
+
655
+ def __repr__(self) -> str:
656
+ return "AgentDefinitionProps(%s)" % ", ".join(
657
+ k + "=" + repr(v) for k, v in self._values.items()
658
+ )
659
+
660
+
661
+ @jsii.data_type(
662
+ jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.AgentToolsLocationDefinition",
663
+ jsii_struct_bases=[],
664
+ name_mapping={
665
+ "bucket_name": "bucketName",
666
+ "is_file": "isFile",
667
+ "is_zip_archive": "isZipArchive",
668
+ "key": "key",
669
+ },
670
+ )
671
+ class AgentToolsLocationDefinition:
672
+ def __init__(
673
+ self,
674
+ *,
675
+ bucket_name: builtins.str,
676
+ is_file: builtins.bool,
677
+ is_zip_archive: builtins.bool,
678
+ key: builtins.str,
679
+ ) -> None:
680
+ '''
681
+ :param bucket_name:
682
+ :param is_file:
683
+ :param is_zip_archive:
684
+ :param key:
685
+
686
+ :stability: experimental
687
+ '''
688
+ if __debug__:
689
+ type_hints = typing.get_type_hints(_typecheckingstub__127edbe188000e5bd850f207a22867fb37ca32772d05138c8caeec887b302f84)
690
+ check_type(argname="argument bucket_name", value=bucket_name, expected_type=type_hints["bucket_name"])
691
+ check_type(argname="argument is_file", value=is_file, expected_type=type_hints["is_file"])
692
+ check_type(argname="argument is_zip_archive", value=is_zip_archive, expected_type=type_hints["is_zip_archive"])
693
+ check_type(argname="argument key", value=key, expected_type=type_hints["key"])
694
+ self._values: typing.Dict[builtins.str, typing.Any] = {
695
+ "bucket_name": bucket_name,
696
+ "is_file": is_file,
697
+ "is_zip_archive": is_zip_archive,
698
+ "key": key,
699
+ }
700
+
701
+ @builtins.property
702
+ def bucket_name(self) -> builtins.str:
703
+ '''
704
+ :stability: experimental
705
+ '''
706
+ result = self._values.get("bucket_name")
707
+ assert result is not None, "Required property 'bucket_name' is missing"
708
+ return typing.cast(builtins.str, result)
709
+
710
+ @builtins.property
711
+ def is_file(self) -> builtins.bool:
712
+ '''
713
+ :stability: experimental
714
+ '''
715
+ result = self._values.get("is_file")
716
+ assert result is not None, "Required property 'is_file' is missing"
717
+ return typing.cast(builtins.bool, result)
718
+
719
+ @builtins.property
720
+ def is_zip_archive(self) -> builtins.bool:
721
+ '''
722
+ :stability: experimental
723
+ '''
724
+ result = self._values.get("is_zip_archive")
725
+ assert result is not None, "Required property 'is_zip_archive' is missing"
726
+ return typing.cast(builtins.bool, result)
727
+
728
+ @builtins.property
729
+ def key(self) -> builtins.str:
730
+ '''
731
+ :stability: experimental
732
+ '''
733
+ result = self._values.get("key")
734
+ assert result is not None, "Required property 'key' is missing"
735
+ return typing.cast(builtins.str, result)
736
+
737
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
738
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
739
+
740
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
741
+ return not (rhs == self)
742
+
743
+ def __repr__(self) -> str:
744
+ return "AgentToolsLocationDefinition(%s)" % ", ".join(
745
+ k + "=" + repr(v) for k, v in self._values.items()
746
+ )
747
+
748
+
749
+ class BaseAgent(
750
+ _constructs_77d1e7e8.Construct,
751
+ metaclass=jsii.JSIIAbstractClass,
752
+ jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.BaseAgent",
753
+ ):
754
+ '''
755
+ :stability: experimental
756
+ '''
757
+
758
+ def __init__(
759
+ self,
760
+ scope: _constructs_77d1e7e8.Construct,
761
+ id: builtins.str,
762
+ *,
763
+ agent_definition: typing.Union[AgentDefinitionProps, typing.Dict[builtins.str, typing.Any]],
764
+ agent_name: builtins.str,
765
+ enable_observability: typing.Optional[builtins.bool] = None,
766
+ encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
767
+ network: typing.Optional["Network"] = None,
768
+ removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
769
+ log_group_data_protection: typing.Optional[typing.Union["LogGroupDataProtectionProps", typing.Dict[builtins.str, typing.Any]]] = None,
770
+ metric_namespace: typing.Optional[builtins.str] = None,
771
+ metric_service_name: typing.Optional[builtins.str] = None,
772
+ ) -> None:
773
+ '''
774
+ :param scope: -
775
+ :param id: -
776
+ :param agent_definition: (experimental) Agent related parameters.
777
+ :param agent_name: (experimental) Name of the agent.
778
+ :param enable_observability: (experimental) Enable observability. Default: false
779
+ :param encryption_key: (experimental) Encryption key to encrypt agent environment variables. Default: new KMS Key would be created
780
+ :param network: (experimental) If the Agent would be running inside a VPC. Default: Agent would not be in a VPC
781
+ :param removal_policy: (experimental) Removal policy for resources created by this construct. Default: RemovalPolicy.DESTROY
782
+ :param log_group_data_protection: (experimental) Data protection related configuration. Default: a new KMS key would be generated
783
+ :param metric_namespace: (experimental) Business metric namespace. Default: would be defined per use case
784
+ :param metric_service_name: (experimental) Business metric service name dimension. Default: would be defined per use case
785
+
786
+ :stability: experimental
787
+ '''
788
+ if __debug__:
789
+ type_hints = typing.get_type_hints(_typecheckingstub__71b734ed2750632299f59fd7513ccde0ee5f9974b68f8c52b53e2255cdee86ff)
790
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
791
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
792
+ props = BaseAgentProps(
793
+ agent_definition=agent_definition,
794
+ agent_name=agent_name,
795
+ enable_observability=enable_observability,
796
+ encryption_key=encryption_key,
797
+ network=network,
798
+ removal_policy=removal_policy,
799
+ log_group_data_protection=log_group_data_protection,
800
+ metric_namespace=metric_namespace,
801
+ metric_service_name=metric_service_name,
802
+ )
803
+
804
+ jsii.create(self.__class__, self, [scope, id, props])
805
+
806
+ @builtins.property
807
+ @jsii.member(jsii_name="agentFunction")
808
+ @abc.abstractmethod
809
+ def agent_function(
810
+ self,
811
+ ) -> _aws_cdk_aws_lambda_python_alpha_49328424.PythonFunction:
812
+ '''
813
+ :stability: experimental
814
+ '''
815
+ ...
816
+
817
+ @builtins.property
818
+ @jsii.member(jsii_name="agentRole")
819
+ def agent_role(self) -> _aws_cdk_aws_iam_ceddda9d.Role:
820
+ '''
821
+ :stability: experimental
822
+ '''
823
+ return typing.cast(_aws_cdk_aws_iam_ceddda9d.Role, jsii.get(self, "agentRole"))
824
+
825
+ @builtins.property
826
+ @jsii.member(jsii_name="agentToolsLocationDefinitions")
827
+ def _agent_tools_location_definitions(
828
+ self,
829
+ ) -> typing.List[AgentToolsLocationDefinition]:
830
+ '''
831
+ :stability: experimental
832
+ '''
833
+ return typing.cast(typing.List[AgentToolsLocationDefinition], jsii.get(self, "agentToolsLocationDefinitions"))
834
+
835
+ @builtins.property
836
+ @jsii.member(jsii_name="encryptionKey")
837
+ def encryption_key(self) -> _aws_cdk_aws_kms_ceddda9d.Key:
838
+ '''
839
+ :stability: experimental
840
+ '''
841
+ return typing.cast(_aws_cdk_aws_kms_ceddda9d.Key, jsii.get(self, "encryptionKey"))
842
+
843
+ @builtins.property
844
+ @jsii.member(jsii_name="logGroupDataProtection")
845
+ def _log_group_data_protection(self) -> "LogGroupDataProtectionProps":
846
+ '''(experimental) log group data protection configuration.
847
+
848
+ :stability: experimental
849
+ '''
850
+ return typing.cast("LogGroupDataProtectionProps", jsii.get(self, "logGroupDataProtection"))
851
+
852
+ @builtins.property
853
+ @jsii.member(jsii_name="bedrockModel")
854
+ def bedrock_model(self) -> typing.Optional["BedrockModelProps"]:
855
+ '''
856
+ :stability: experimental
857
+ '''
858
+ return typing.cast(typing.Optional["BedrockModelProps"], jsii.get(self, "bedrockModel"))
859
+
860
+
861
+ class _BaseAgentProxy(BaseAgent):
862
+ @builtins.property
863
+ @jsii.member(jsii_name="agentFunction")
864
+ def agent_function(
865
+ self,
866
+ ) -> _aws_cdk_aws_lambda_python_alpha_49328424.PythonFunction:
867
+ '''
868
+ :stability: experimental
869
+ '''
870
+ return typing.cast(_aws_cdk_aws_lambda_python_alpha_49328424.PythonFunction, jsii.get(self, "agentFunction"))
871
+
872
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the abstract class
873
+ typing.cast(typing.Any, BaseAgent).__jsii_proxy_class__ = lambda : _BaseAgentProxy
874
+
875
+
876
+ class BatchAgent(
877
+ BaseAgent,
878
+ metaclass=jsii.JSIIMeta,
879
+ jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.BatchAgent",
880
+ ):
881
+ '''
882
+ :stability: experimental
883
+ '''
884
+
885
+ def __init__(
886
+ self,
887
+ scope: _constructs_77d1e7e8.Construct,
888
+ id: builtins.str,
889
+ *,
890
+ prompt: builtins.str,
891
+ expect_json: typing.Optional[builtins.bool] = None,
892
+ agent_definition: typing.Union[AgentDefinitionProps, typing.Dict[builtins.str, typing.Any]],
893
+ agent_name: builtins.str,
894
+ enable_observability: typing.Optional[builtins.bool] = None,
895
+ encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
896
+ network: typing.Optional["Network"] = None,
897
+ removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
898
+ log_group_data_protection: typing.Optional[typing.Union["LogGroupDataProtectionProps", typing.Dict[builtins.str, typing.Any]]] = None,
899
+ metric_namespace: typing.Optional[builtins.str] = None,
900
+ metric_service_name: typing.Optional[builtins.str] = None,
901
+ ) -> None:
902
+ '''
903
+ :param scope: -
904
+ :param id: -
905
+ :param prompt:
906
+ :param expect_json:
907
+ :param agent_definition: (experimental) Agent related parameters.
908
+ :param agent_name: (experimental) Name of the agent.
909
+ :param enable_observability: (experimental) Enable observability. Default: false
910
+ :param encryption_key: (experimental) Encryption key to encrypt agent environment variables. Default: new KMS Key would be created
911
+ :param network: (experimental) If the Agent would be running inside a VPC. Default: Agent would not be in a VPC
912
+ :param removal_policy: (experimental) Removal policy for resources created by this construct. Default: RemovalPolicy.DESTROY
913
+ :param log_group_data_protection: (experimental) Data protection related configuration. Default: a new KMS key would be generated
914
+ :param metric_namespace: (experimental) Business metric namespace. Default: would be defined per use case
915
+ :param metric_service_name: (experimental) Business metric service name dimension. Default: would be defined per use case
916
+
917
+ :stability: experimental
918
+ '''
919
+ if __debug__:
920
+ type_hints = typing.get_type_hints(_typecheckingstub__c2677306b18b77c5114d824ae734b83ac837c5ea4a5b8805948f0388f1dd7995)
921
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
922
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
923
+ props = BatchAgentProps(
924
+ prompt=prompt,
925
+ expect_json=expect_json,
926
+ agent_definition=agent_definition,
927
+ agent_name=agent_name,
928
+ enable_observability=enable_observability,
929
+ encryption_key=encryption_key,
930
+ network=network,
931
+ removal_policy=removal_policy,
932
+ log_group_data_protection=log_group_data_protection,
933
+ metric_namespace=metric_namespace,
934
+ metric_service_name=metric_service_name,
935
+ )
936
+
937
+ jsii.create(self.__class__, self, [scope, id, props])
938
+
939
+ @builtins.property
940
+ @jsii.member(jsii_name="agentFunction")
941
+ def agent_function(
942
+ self,
943
+ ) -> _aws_cdk_aws_lambda_python_alpha_49328424.PythonFunction:
944
+ '''
945
+ :stability: experimental
946
+ '''
947
+ return typing.cast(_aws_cdk_aws_lambda_python_alpha_49328424.PythonFunction, jsii.get(self, "agentFunction"))
948
+
949
+
950
+ @jsii.enum(
951
+ jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.BedrockCrossRegionInferencePrefix"
952
+ )
953
+ class BedrockCrossRegionInferencePrefix(enum.Enum):
954
+ '''(experimental) Cross-region inference prefix options for Bedrock models.
955
+
956
+ Used to configure inference profiles for improved availability and performance.
957
+
958
+ :stability: experimental
959
+ '''
960
+
961
+ US = "US"
962
+ '''(experimental) US-based cross-region inference profile.
963
+
964
+ :stability: experimental
965
+ '''
966
+ EU = "EU"
967
+ '''(experimental) EU-based cross-region inference profile.
968
+
969
+ :stability: experimental
970
+ '''
971
+
972
+
973
+ @jsii.data_type(
974
+ jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.BedrockModelProps",
975
+ jsii_struct_bases=[],
976
+ name_mapping={
977
+ "cross_region_inference_prefix": "crossRegionInferencePrefix",
978
+ "fm_model_id": "fmModelId",
979
+ "use_cross_region_inference": "useCrossRegionInference",
980
+ },
981
+ )
982
+ class BedrockModelProps:
983
+ def __init__(
984
+ self,
985
+ *,
986
+ cross_region_inference_prefix: typing.Optional[BedrockCrossRegionInferencePrefix] = None,
987
+ fm_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
988
+ use_cross_region_inference: typing.Optional[builtins.bool] = None,
989
+ ) -> None:
990
+ '''
991
+ :param cross_region_inference_prefix: (experimental) Prefix for cross-region inference configuration. Only used when useCrossRegionInference is true. Default: BedrockCrossRegionInferencePrefix.US
992
+ :param fm_model_id: (experimental) Foundation model to use. Default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_SONNET_4_20250514_V1_0
993
+ :param use_cross_region_inference: (experimental) Enable cross-region inference for Bedrock models to improve availability and performance. When enabled, uses inference profiles instead of direct model invocation. Default: false
994
+
995
+ :stability: experimental
996
+ '''
997
+ if __debug__:
998
+ type_hints = typing.get_type_hints(_typecheckingstub__e45242c855c6631d66b287b02966cc10c7006e63b282779a6fdb35ce0a2a7a67)
999
+ check_type(argname="argument cross_region_inference_prefix", value=cross_region_inference_prefix, expected_type=type_hints["cross_region_inference_prefix"])
1000
+ check_type(argname="argument fm_model_id", value=fm_model_id, expected_type=type_hints["fm_model_id"])
1001
+ check_type(argname="argument use_cross_region_inference", value=use_cross_region_inference, expected_type=type_hints["use_cross_region_inference"])
1002
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1003
+ if cross_region_inference_prefix is not None:
1004
+ self._values["cross_region_inference_prefix"] = cross_region_inference_prefix
1005
+ if fm_model_id is not None:
1006
+ self._values["fm_model_id"] = fm_model_id
1007
+ if use_cross_region_inference is not None:
1008
+ self._values["use_cross_region_inference"] = use_cross_region_inference
1009
+
1010
+ @builtins.property
1011
+ def cross_region_inference_prefix(
1012
+ self,
1013
+ ) -> typing.Optional[BedrockCrossRegionInferencePrefix]:
1014
+ '''(experimental) Prefix for cross-region inference configuration.
1015
+
1016
+ Only used when useCrossRegionInference is true.
1017
+
1018
+ :default: BedrockCrossRegionInferencePrefix.US
598
1019
 
599
1020
  :stability: experimental
600
1021
  '''
601
- result = self._values.get("lambda_layers")
602
- return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_lambda_ceddda9d.LayerVersion]], result)
1022
+ result = self._values.get("cross_region_inference_prefix")
1023
+ return typing.cast(typing.Optional[BedrockCrossRegionInferencePrefix], result)
603
1024
 
604
1025
  @builtins.property
605
- def tools_bucket(self) -> typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket]:
606
- '''(experimental) Bucket where the tools are located in Primarily use to grant read permission to the processing agent to access the tools.
607
-
608
- :default:
1026
+ def fm_model_id(
1027
+ self,
1028
+ ) -> typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier]:
1029
+ '''(experimental) Foundation model to use.
609
1030
 
610
- No extra IAM permissions would be automatically
611
- assigned to the processing agent.
1031
+ :default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_SONNET_4_20250514_V1_0
612
1032
 
613
1033
  :stability: experimental
614
1034
  '''
615
- result = self._values.get("tools_bucket")
616
- return typing.cast(typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket], result)
1035
+ result = self._values.get("fm_model_id")
1036
+ return typing.cast(typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier], result)
617
1037
 
618
1038
  @builtins.property
619
- def tools_location(self) -> typing.Optional[typing.List[builtins.str]]:
620
- '''(experimental) S3 path where the tools are located.
1039
+ def use_cross_region_inference(self) -> typing.Optional[builtins.bool]:
1040
+ '''(experimental) Enable cross-region inference for Bedrock models to improve availability and performance.
1041
+
1042
+ When enabled, uses inference profiles instead of direct model invocation.
621
1043
 
622
- The agent would dynamically load the tools
1044
+ :default: false
623
1045
 
624
1046
  :stability: experimental
625
1047
  '''
626
- result = self._values.get("tools_location")
627
- return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1048
+ result = self._values.get("use_cross_region_inference")
1049
+ return typing.cast(typing.Optional[builtins.bool], result)
628
1050
 
629
1051
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
630
1052
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -633,32 +1055,77 @@ class AgentProps:
633
1055
  return not (rhs == self)
634
1056
 
635
1057
  def __repr__(self) -> str:
636
- return "AgentProps(%s)" % ", ".join(
1058
+ return "BedrockModelProps(%s)" % ", ".join(
637
1059
  k + "=" + repr(v) for k, v in self._values.items()
638
1060
  )
639
1061
 
640
1062
 
641
- @jsii.enum(
642
- jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.BedrockCrossRegionInferencePrefix"
643
- )
644
- class BedrockCrossRegionInferencePrefix(enum.Enum):
645
- '''(experimental) Cross-region inference prefix options for Bedrock models.
646
-
647
- Used to configure inference profiles for improved availability and performance.
648
-
1063
+ class BedrockModelUtils(
1064
+ metaclass=jsii.JSIIMeta,
1065
+ jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.BedrockModelUtils",
1066
+ ):
1067
+ '''
649
1068
  :stability: experimental
650
1069
  '''
651
1070
 
652
- US = "US"
653
- '''(experimental) US-based cross-region inference profile.
1071
+ def __init__(self) -> None:
1072
+ '''
1073
+ :stability: experimental
1074
+ '''
1075
+ jsii.create(self.__class__, self, [])
654
1076
 
655
- :stability: experimental
656
- '''
657
- EU = "EU"
658
- '''(experimental) EU-based cross-region inference profile.
1077
+ @jsii.member(jsii_name="deriveActualModelId")
1078
+ @builtins.classmethod
1079
+ def derive_actual_model_id(
1080
+ cls,
1081
+ *,
1082
+ cross_region_inference_prefix: typing.Optional[BedrockCrossRegionInferencePrefix] = None,
1083
+ fm_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
1084
+ use_cross_region_inference: typing.Optional[builtins.bool] = None,
1085
+ ) -> builtins.str:
1086
+ '''
1087
+ :param cross_region_inference_prefix: (experimental) Prefix for cross-region inference configuration. Only used when useCrossRegionInference is true. Default: BedrockCrossRegionInferencePrefix.US
1088
+ :param fm_model_id: (experimental) Foundation model to use. Default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_SONNET_4_20250514_V1_0
1089
+ :param use_cross_region_inference: (experimental) Enable cross-region inference for Bedrock models to improve availability and performance. When enabled, uses inference profiles instead of direct model invocation. Default: false
659
1090
 
660
- :stability: experimental
661
- '''
1091
+ :stability: experimental
1092
+ '''
1093
+ props = BedrockModelProps(
1094
+ cross_region_inference_prefix=cross_region_inference_prefix,
1095
+ fm_model_id=fm_model_id,
1096
+ use_cross_region_inference=use_cross_region_inference,
1097
+ )
1098
+
1099
+ return typing.cast(builtins.str, jsii.sinvoke(cls, "deriveActualModelId", [props]))
1100
+
1101
+ @jsii.member(jsii_name="generateModelIAMPermissions")
1102
+ @builtins.classmethod
1103
+ def generate_model_iam_permissions(
1104
+ cls,
1105
+ scope: _constructs_77d1e7e8.Construct,
1106
+ *,
1107
+ cross_region_inference_prefix: typing.Optional[BedrockCrossRegionInferencePrefix] = None,
1108
+ fm_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
1109
+ use_cross_region_inference: typing.Optional[builtins.bool] = None,
1110
+ ) -> _aws_cdk_aws_iam_ceddda9d.PolicyStatement:
1111
+ '''
1112
+ :param scope: -
1113
+ :param cross_region_inference_prefix: (experimental) Prefix for cross-region inference configuration. Only used when useCrossRegionInference is true. Default: BedrockCrossRegionInferencePrefix.US
1114
+ :param fm_model_id: (experimental) Foundation model to use. Default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_SONNET_4_20250514_V1_0
1115
+ :param use_cross_region_inference: (experimental) Enable cross-region inference for Bedrock models to improve availability and performance. When enabled, uses inference profiles instead of direct model invocation. Default: false
1116
+
1117
+ :stability: experimental
1118
+ '''
1119
+ if __debug__:
1120
+ type_hints = typing.get_type_hints(_typecheckingstub__c2d6dd904193a96951d351d9b9f88371b9b85f9f44a00b0cbdbfba9f24849527)
1121
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1122
+ props = BedrockModelProps(
1123
+ cross_region_inference_prefix=cross_region_inference_prefix,
1124
+ fm_model_id=fm_model_id,
1125
+ use_cross_region_inference=use_cross_region_inference,
1126
+ )
1127
+
1128
+ return typing.cast(_aws_cdk_aws_iam_ceddda9d.PolicyStatement, jsii.sinvoke(cls, "generateModelIAMPermissions", [scope, props]))
662
1129
 
663
1130
 
664
1131
  @jsii.implements(_aws_cdk_ceddda9d.IPropertyInjector)
@@ -1197,6 +1664,29 @@ class DatabaseEngine(enum.Enum):
1197
1664
  '''
1198
1665
 
1199
1666
 
1667
+ class DefaultAgentConfig(
1668
+ metaclass=jsii.JSIIMeta,
1669
+ jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.DefaultAgentConfig",
1670
+ ):
1671
+ '''
1672
+ :stability: experimental
1673
+ '''
1674
+
1675
+ def __init__(self) -> None:
1676
+ '''
1677
+ :stability: experimental
1678
+ '''
1679
+ jsii.create(self.__class__, self, [])
1680
+
1681
+ @jsii.python.classproperty
1682
+ @jsii.member(jsii_name="DEFAULT_OBSERVABILITY_METRIC_SVC_NAME")
1683
+ def DEFAULT_OBSERVABILITY_METRIC_SVC_NAME(cls) -> builtins.str:
1684
+ '''
1685
+ :stability: experimental
1686
+ '''
1687
+ return typing.cast(builtins.str, jsii.sget(cls, "DEFAULT_OBSERVABILITY_METRIC_SVC_NAME"))
1688
+
1689
+
1200
1690
  class DefaultDocumentProcessingConfig(
1201
1691
  metaclass=jsii.JSIIMeta,
1202
1692
  jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.DefaultDocumentProcessingConfig",
@@ -2986,6 +3476,43 @@ class LogGroupDataProtectionProps:
2986
3476
  )
2987
3477
 
2988
3478
 
3479
+ class LogGroupDataProtectionUtils(
3480
+ metaclass=jsii.JSIIMeta,
3481
+ jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.LogGroupDataProtectionUtils",
3482
+ ):
3483
+ '''
3484
+ :stability: experimental
3485
+ '''
3486
+
3487
+ def __init__(self) -> None:
3488
+ '''
3489
+ :stability: experimental
3490
+ '''
3491
+ jsii.create(self.__class__, self, [])
3492
+
3493
+ @jsii.member(jsii_name="handleDefault")
3494
+ @builtins.classmethod
3495
+ def handle_default(
3496
+ cls,
3497
+ scope: _constructs_77d1e7e8.Construct,
3498
+ props: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
3499
+ removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
3500
+ ) -> LogGroupDataProtectionProps:
3501
+ '''
3502
+ :param scope: -
3503
+ :param props: -
3504
+ :param removal_policy: -
3505
+
3506
+ :stability: experimental
3507
+ '''
3508
+ if __debug__:
3509
+ type_hints = typing.get_type_hints(_typecheckingstub__e3a45e54ca44da7f036d13ce54f925e2a16d4e1ae6f2df04d64a1f10ca0133f0)
3510
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3511
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
3512
+ check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
3513
+ return typing.cast(LogGroupDataProtectionProps, jsii.sinvoke(cls, "handleDefault", [scope, props, removal_policy]))
3514
+
3515
+
2989
3516
  class Network(
2990
3517
  _constructs_77d1e7e8.Construct,
2991
3518
  metaclass=jsii.JSIIMeta,
@@ -3703,64 +4230,249 @@ class StateMachineObservabilityPropertyInjector(
3703
4230
  :stability: experimental
3704
4231
  '''
3705
4232
 
3706
- def __init__(
3707
- self,
3708
- *,
3709
- data_protection_identifiers: typing.Optional[typing.Sequence[_aws_cdk_aws_logs_ceddda9d.DataIdentifier]] = None,
3710
- log_group_encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
3711
- ) -> None:
4233
+ def __init__(
4234
+ self,
4235
+ *,
4236
+ data_protection_identifiers: typing.Optional[typing.Sequence[_aws_cdk_aws_logs_ceddda9d.DataIdentifier]] = None,
4237
+ log_group_encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
4238
+ ) -> None:
4239
+ '''
4240
+ :param data_protection_identifiers: (experimental) List of DataIdentifiers that would be used as part of the Data Protection Policy that would be created for the log group. Default: Data Protection Policy won't be enabled
4241
+ :param log_group_encryption_key: (experimental) Encryption key that would be used to encrypt the relevant log group. Default: a new KMS key would automatically be created
4242
+
4243
+ :stability: experimental
4244
+ '''
4245
+ log_group_data_protection = LogGroupDataProtectionProps(
4246
+ data_protection_identifiers=data_protection_identifiers,
4247
+ log_group_encryption_key=log_group_encryption_key,
4248
+ )
4249
+
4250
+ jsii.create(self.__class__, self, [log_group_data_protection])
4251
+
4252
+ @jsii.member(jsii_name="inject")
4253
+ def inject(
4254
+ self,
4255
+ original_props: typing.Any,
4256
+ *,
4257
+ id: builtins.str,
4258
+ scope: _constructs_77d1e7e8.Construct,
4259
+ ) -> typing.Any:
4260
+ '''(experimental) The injector to be applied to the constructor properties of the Construct.
4261
+
4262
+ :param original_props: -
4263
+ :param id: id from the Construct constructor.
4264
+ :param scope: scope from the constructor.
4265
+
4266
+ :stability: experimental
4267
+ '''
4268
+ if __debug__:
4269
+ type_hints = typing.get_type_hints(_typecheckingstub__011b55520774139b52c951d9cc59273f686e377b5415ee42a57650da571d43e7)
4270
+ check_type(argname="argument original_props", value=original_props, expected_type=type_hints["original_props"])
4271
+ _context = _aws_cdk_ceddda9d.InjectionContext(id=id, scope=scope)
4272
+
4273
+ return typing.cast(typing.Any, jsii.invoke(self, "inject", [original_props, _context]))
4274
+
4275
+ @builtins.property
4276
+ @jsii.member(jsii_name="constructUniqueId")
4277
+ def construct_unique_id(self) -> builtins.str:
4278
+ '''(experimental) The unique Id of the Construct class.
4279
+
4280
+ :stability: experimental
4281
+ '''
4282
+ return typing.cast(builtins.str, jsii.get(self, "constructUniqueId"))
4283
+
4284
+ @builtins.property
4285
+ @jsii.member(jsii_name="logGroupDataProtection")
4286
+ def log_group_data_protection(self) -> LogGroupDataProtectionProps:
4287
+ '''
4288
+ :stability: experimental
4289
+ '''
4290
+ return typing.cast(LogGroupDataProtectionProps, jsii.get(self, "logGroupDataProtection"))
4291
+
4292
+
4293
+ @jsii.data_type(
4294
+ jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.BaseAgentProps",
4295
+ jsii_struct_bases=[ObservableProps],
4296
+ name_mapping={
4297
+ "log_group_data_protection": "logGroupDataProtection",
4298
+ "metric_namespace": "metricNamespace",
4299
+ "metric_service_name": "metricServiceName",
4300
+ "agent_definition": "agentDefinition",
4301
+ "agent_name": "agentName",
4302
+ "enable_observability": "enableObservability",
4303
+ "encryption_key": "encryptionKey",
4304
+ "network": "network",
4305
+ "removal_policy": "removalPolicy",
4306
+ },
4307
+ )
4308
+ class BaseAgentProps(ObservableProps):
4309
+ def __init__(
4310
+ self,
4311
+ *,
4312
+ log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
4313
+ metric_namespace: typing.Optional[builtins.str] = None,
4314
+ metric_service_name: typing.Optional[builtins.str] = None,
4315
+ agent_definition: typing.Union[AgentDefinitionProps, typing.Dict[builtins.str, typing.Any]],
4316
+ agent_name: builtins.str,
4317
+ enable_observability: typing.Optional[builtins.bool] = None,
4318
+ encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
4319
+ network: typing.Optional[Network] = None,
4320
+ removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
4321
+ ) -> None:
4322
+ '''
4323
+ :param log_group_data_protection: (experimental) Data protection related configuration. Default: a new KMS key would be generated
4324
+ :param metric_namespace: (experimental) Business metric namespace. Default: would be defined per use case
4325
+ :param metric_service_name: (experimental) Business metric service name dimension. Default: would be defined per use case
4326
+ :param agent_definition: (experimental) Agent related parameters.
4327
+ :param agent_name: (experimental) Name of the agent.
4328
+ :param enable_observability: (experimental) Enable observability. Default: false
4329
+ :param encryption_key: (experimental) Encryption key to encrypt agent environment variables. Default: new KMS Key would be created
4330
+ :param network: (experimental) If the Agent would be running inside a VPC. Default: Agent would not be in a VPC
4331
+ :param removal_policy: (experimental) Removal policy for resources created by this construct. Default: RemovalPolicy.DESTROY
4332
+
4333
+ :stability: experimental
4334
+ '''
4335
+ if isinstance(log_group_data_protection, dict):
4336
+ log_group_data_protection = LogGroupDataProtectionProps(**log_group_data_protection)
4337
+ if isinstance(agent_definition, dict):
4338
+ agent_definition = AgentDefinitionProps(**agent_definition)
4339
+ if __debug__:
4340
+ type_hints = typing.get_type_hints(_typecheckingstub__feb650555d9014f75886d26d16787c0c2e83a042e7e61844bf4d21c890ce479c)
4341
+ check_type(argname="argument log_group_data_protection", value=log_group_data_protection, expected_type=type_hints["log_group_data_protection"])
4342
+ check_type(argname="argument metric_namespace", value=metric_namespace, expected_type=type_hints["metric_namespace"])
4343
+ check_type(argname="argument metric_service_name", value=metric_service_name, expected_type=type_hints["metric_service_name"])
4344
+ check_type(argname="argument agent_definition", value=agent_definition, expected_type=type_hints["agent_definition"])
4345
+ check_type(argname="argument agent_name", value=agent_name, expected_type=type_hints["agent_name"])
4346
+ check_type(argname="argument enable_observability", value=enable_observability, expected_type=type_hints["enable_observability"])
4347
+ check_type(argname="argument encryption_key", value=encryption_key, expected_type=type_hints["encryption_key"])
4348
+ check_type(argname="argument network", value=network, expected_type=type_hints["network"])
4349
+ check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
4350
+ self._values: typing.Dict[builtins.str, typing.Any] = {
4351
+ "agent_definition": agent_definition,
4352
+ "agent_name": agent_name,
4353
+ }
4354
+ if log_group_data_protection is not None:
4355
+ self._values["log_group_data_protection"] = log_group_data_protection
4356
+ if metric_namespace is not None:
4357
+ self._values["metric_namespace"] = metric_namespace
4358
+ if metric_service_name is not None:
4359
+ self._values["metric_service_name"] = metric_service_name
4360
+ if enable_observability is not None:
4361
+ self._values["enable_observability"] = enable_observability
4362
+ if encryption_key is not None:
4363
+ self._values["encryption_key"] = encryption_key
4364
+ if network is not None:
4365
+ self._values["network"] = network
4366
+ if removal_policy is not None:
4367
+ self._values["removal_policy"] = removal_policy
4368
+
4369
+ @builtins.property
4370
+ def log_group_data_protection(self) -> typing.Optional[LogGroupDataProtectionProps]:
4371
+ '''(experimental) Data protection related configuration.
4372
+
4373
+ :default: a new KMS key would be generated
4374
+
4375
+ :stability: experimental
4376
+ '''
4377
+ result = self._values.get("log_group_data_protection")
4378
+ return typing.cast(typing.Optional[LogGroupDataProtectionProps], result)
4379
+
4380
+ @builtins.property
4381
+ def metric_namespace(self) -> typing.Optional[builtins.str]:
4382
+ '''(experimental) Business metric namespace.
4383
+
4384
+ :default: would be defined per use case
4385
+
4386
+ :stability: experimental
3712
4387
  '''
3713
- :param data_protection_identifiers: (experimental) List of DataIdentifiers that would be used as part of the Data Protection Policy that would be created for the log group. Default: Data Protection Policy won't be enabled
3714
- :param log_group_encryption_key: (experimental) Encryption key that would be used to encrypt the relevant log group. Default: a new KMS key would automatically be created
4388
+ result = self._values.get("metric_namespace")
4389
+ return typing.cast(typing.Optional[builtins.str], result)
4390
+
4391
+ @builtins.property
4392
+ def metric_service_name(self) -> typing.Optional[builtins.str]:
4393
+ '''(experimental) Business metric service name dimension.
4394
+
4395
+ :default: would be defined per use case
3715
4396
 
3716
4397
  :stability: experimental
3717
4398
  '''
3718
- log_group_data_protection = LogGroupDataProtectionProps(
3719
- data_protection_identifiers=data_protection_identifiers,
3720
- log_group_encryption_key=log_group_encryption_key,
3721
- )
4399
+ result = self._values.get("metric_service_name")
4400
+ return typing.cast(typing.Optional[builtins.str], result)
3722
4401
 
3723
- jsii.create(self.__class__, self, [log_group_data_protection])
4402
+ @builtins.property
4403
+ def agent_definition(self) -> AgentDefinitionProps:
4404
+ '''(experimental) Agent related parameters.
3724
4405
 
3725
- @jsii.member(jsii_name="inject")
3726
- def inject(
3727
- self,
3728
- original_props: typing.Any,
3729
- *,
3730
- id: builtins.str,
3731
- scope: _constructs_77d1e7e8.Construct,
3732
- ) -> typing.Any:
3733
- '''(experimental) The injector to be applied to the constructor properties of the Construct.
4406
+ :stability: experimental
4407
+ '''
4408
+ result = self._values.get("agent_definition")
4409
+ assert result is not None, "Required property 'agent_definition' is missing"
4410
+ return typing.cast(AgentDefinitionProps, result)
3734
4411
 
3735
- :param original_props: -
3736
- :param id: id from the Construct constructor.
3737
- :param scope: scope from the constructor.
4412
+ @builtins.property
4413
+ def agent_name(self) -> builtins.str:
4414
+ '''(experimental) Name of the agent.
3738
4415
 
3739
4416
  :stability: experimental
3740
4417
  '''
3741
- if __debug__:
3742
- type_hints = typing.get_type_hints(_typecheckingstub__011b55520774139b52c951d9cc59273f686e377b5415ee42a57650da571d43e7)
3743
- check_type(argname="argument original_props", value=original_props, expected_type=type_hints["original_props"])
3744
- _context = _aws_cdk_ceddda9d.InjectionContext(id=id, scope=scope)
4418
+ result = self._values.get("agent_name")
4419
+ assert result is not None, "Required property 'agent_name' is missing"
4420
+ return typing.cast(builtins.str, result)
3745
4421
 
3746
- return typing.cast(typing.Any, jsii.invoke(self, "inject", [original_props, _context]))
4422
+ @builtins.property
4423
+ def enable_observability(self) -> typing.Optional[builtins.bool]:
4424
+ '''(experimental) Enable observability.
4425
+
4426
+ :default: false
4427
+
4428
+ :stability: experimental
4429
+ '''
4430
+ result = self._values.get("enable_observability")
4431
+ return typing.cast(typing.Optional[builtins.bool], result)
3747
4432
 
3748
4433
  @builtins.property
3749
- @jsii.member(jsii_name="constructUniqueId")
3750
- def construct_unique_id(self) -> builtins.str:
3751
- '''(experimental) The unique Id of the Construct class.
4434
+ def encryption_key(self) -> typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key]:
4435
+ '''(experimental) Encryption key to encrypt agent environment variables.
4436
+
4437
+ :default: new KMS Key would be created
3752
4438
 
3753
4439
  :stability: experimental
3754
4440
  '''
3755
- return typing.cast(builtins.str, jsii.get(self, "constructUniqueId"))
4441
+ result = self._values.get("encryption_key")
4442
+ return typing.cast(typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key], result)
3756
4443
 
3757
4444
  @builtins.property
3758
- @jsii.member(jsii_name="logGroupDataProtection")
3759
- def log_group_data_protection(self) -> LogGroupDataProtectionProps:
4445
+ def network(self) -> typing.Optional[Network]:
4446
+ '''(experimental) If the Agent would be running inside a VPC.
4447
+
4448
+ :default: Agent would not be in a VPC
4449
+
4450
+ :stability: experimental
3760
4451
  '''
4452
+ result = self._values.get("network")
4453
+ return typing.cast(typing.Optional[Network], result)
4454
+
4455
+ @builtins.property
4456
+ def removal_policy(self) -> typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy]:
4457
+ '''(experimental) Removal policy for resources created by this construct.
4458
+
4459
+ :default: RemovalPolicy.DESTROY
4460
+
3761
4461
  :stability: experimental
3762
4462
  '''
3763
- return typing.cast(LogGroupDataProtectionProps, jsii.get(self, "logGroupDataProtection"))
4463
+ result = self._values.get("removal_policy")
4464
+ return typing.cast(typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy], result)
4465
+
4466
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4467
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4468
+
4469
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4470
+ return not (rhs == self)
4471
+
4472
+ def __repr__(self) -> str:
4473
+ return "BaseAgentProps(%s)" % ", ".join(
4474
+ k + "=" + repr(v) for k, v in self._values.items()
4475
+ )
3764
4476
 
3765
4477
 
3766
4478
  @jsii.implements(IObservable)
@@ -4230,25 +4942,232 @@ class BaseDocumentProcessingProps(ObservableProps):
4230
4942
 
4231
4943
  :stability: experimental
4232
4944
  '''
4233
- result = self._values.get("eventbridge_broker")
4234
- return typing.cast(typing.Optional[EventbridgeBroker], result)
4945
+ result = self._values.get("eventbridge_broker")
4946
+ return typing.cast(typing.Optional[EventbridgeBroker], result)
4947
+
4948
+ @builtins.property
4949
+ def ingress_adapter(self) -> typing.Optional[IAdapter]:
4950
+ '''(experimental) Adapter that defines how the document processing workflow is triggered.
4951
+
4952
+ :default: QueuedS3Adapter
4953
+
4954
+ :stability: experimental
4955
+ '''
4956
+ result = self._values.get("ingress_adapter")
4957
+ return typing.cast(typing.Optional[IAdapter], result)
4958
+
4959
+ @builtins.property
4960
+ def network(self) -> typing.Optional[Network]:
4961
+ '''(experimental) Resources that can run inside a VPC will follow the provided network configuration.
4962
+
4963
+ :default: resources will run outside of a VPC
4964
+
4965
+ :stability: experimental
4966
+ '''
4967
+ result = self._values.get("network")
4968
+ return typing.cast(typing.Optional[Network], result)
4969
+
4970
+ @builtins.property
4971
+ def removal_policy(self) -> typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy]:
4972
+ '''(experimental) Removal policy for created resources (bucket, table, queue).
4973
+
4974
+ :default: RemovalPolicy.DESTROY
4975
+
4976
+ :stability: experimental
4977
+ '''
4978
+ result = self._values.get("removal_policy")
4979
+ return typing.cast(typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy], result)
4980
+
4981
+ @builtins.property
4982
+ def workflow_timeout(self) -> typing.Optional[_aws_cdk_ceddda9d.Duration]:
4983
+ '''(experimental) Maximum execution time for the Step Functions workflow.
4984
+
4985
+ :default: Duration.minutes(30)
4986
+
4987
+ :stability: experimental
4988
+ '''
4989
+ result = self._values.get("workflow_timeout")
4990
+ return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Duration], result)
4991
+
4992
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4993
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4994
+
4995
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4996
+ return not (rhs == self)
4997
+
4998
+ def __repr__(self) -> str:
4999
+ return "BaseDocumentProcessingProps(%s)" % ", ".join(
5000
+ k + "=" + repr(v) for k, v in self._values.items()
5001
+ )
5002
+
5003
+
5004
+ @jsii.data_type(
5005
+ jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.BatchAgentProps",
5006
+ jsii_struct_bases=[BaseAgentProps],
5007
+ name_mapping={
5008
+ "log_group_data_protection": "logGroupDataProtection",
5009
+ "metric_namespace": "metricNamespace",
5010
+ "metric_service_name": "metricServiceName",
5011
+ "agent_definition": "agentDefinition",
5012
+ "agent_name": "agentName",
5013
+ "enable_observability": "enableObservability",
5014
+ "encryption_key": "encryptionKey",
5015
+ "network": "network",
5016
+ "removal_policy": "removalPolicy",
5017
+ "prompt": "prompt",
5018
+ "expect_json": "expectJson",
5019
+ },
5020
+ )
5021
+ class BatchAgentProps(BaseAgentProps):
5022
+ def __init__(
5023
+ self,
5024
+ *,
5025
+ log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
5026
+ metric_namespace: typing.Optional[builtins.str] = None,
5027
+ metric_service_name: typing.Optional[builtins.str] = None,
5028
+ agent_definition: typing.Union[AgentDefinitionProps, typing.Dict[builtins.str, typing.Any]],
5029
+ agent_name: builtins.str,
5030
+ enable_observability: typing.Optional[builtins.bool] = None,
5031
+ encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
5032
+ network: typing.Optional[Network] = None,
5033
+ removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
5034
+ prompt: builtins.str,
5035
+ expect_json: typing.Optional[builtins.bool] = None,
5036
+ ) -> None:
5037
+ '''
5038
+ :param log_group_data_protection: (experimental) Data protection related configuration. Default: a new KMS key would be generated
5039
+ :param metric_namespace: (experimental) Business metric namespace. Default: would be defined per use case
5040
+ :param metric_service_name: (experimental) Business metric service name dimension. Default: would be defined per use case
5041
+ :param agent_definition: (experimental) Agent related parameters.
5042
+ :param agent_name: (experimental) Name of the agent.
5043
+ :param enable_observability: (experimental) Enable observability. Default: false
5044
+ :param encryption_key: (experimental) Encryption key to encrypt agent environment variables. Default: new KMS Key would be created
5045
+ :param network: (experimental) If the Agent would be running inside a VPC. Default: Agent would not be in a VPC
5046
+ :param removal_policy: (experimental) Removal policy for resources created by this construct. Default: RemovalPolicy.DESTROY
5047
+ :param prompt:
5048
+ :param expect_json:
5049
+
5050
+ :stability: experimental
5051
+ '''
5052
+ if isinstance(log_group_data_protection, dict):
5053
+ log_group_data_protection = LogGroupDataProtectionProps(**log_group_data_protection)
5054
+ if isinstance(agent_definition, dict):
5055
+ agent_definition = AgentDefinitionProps(**agent_definition)
5056
+ if __debug__:
5057
+ type_hints = typing.get_type_hints(_typecheckingstub__30511d5990f52f2808903d144bad5a5c502c00b0b8c98b4fd52a3df61c18b19d)
5058
+ check_type(argname="argument log_group_data_protection", value=log_group_data_protection, expected_type=type_hints["log_group_data_protection"])
5059
+ check_type(argname="argument metric_namespace", value=metric_namespace, expected_type=type_hints["metric_namespace"])
5060
+ check_type(argname="argument metric_service_name", value=metric_service_name, expected_type=type_hints["metric_service_name"])
5061
+ check_type(argname="argument agent_definition", value=agent_definition, expected_type=type_hints["agent_definition"])
5062
+ check_type(argname="argument agent_name", value=agent_name, expected_type=type_hints["agent_name"])
5063
+ check_type(argname="argument enable_observability", value=enable_observability, expected_type=type_hints["enable_observability"])
5064
+ check_type(argname="argument encryption_key", value=encryption_key, expected_type=type_hints["encryption_key"])
5065
+ check_type(argname="argument network", value=network, expected_type=type_hints["network"])
5066
+ check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
5067
+ check_type(argname="argument prompt", value=prompt, expected_type=type_hints["prompt"])
5068
+ check_type(argname="argument expect_json", value=expect_json, expected_type=type_hints["expect_json"])
5069
+ self._values: typing.Dict[builtins.str, typing.Any] = {
5070
+ "agent_definition": agent_definition,
5071
+ "agent_name": agent_name,
5072
+ "prompt": prompt,
5073
+ }
5074
+ if log_group_data_protection is not None:
5075
+ self._values["log_group_data_protection"] = log_group_data_protection
5076
+ if metric_namespace is not None:
5077
+ self._values["metric_namespace"] = metric_namespace
5078
+ if metric_service_name is not None:
5079
+ self._values["metric_service_name"] = metric_service_name
5080
+ if enable_observability is not None:
5081
+ self._values["enable_observability"] = enable_observability
5082
+ if encryption_key is not None:
5083
+ self._values["encryption_key"] = encryption_key
5084
+ if network is not None:
5085
+ self._values["network"] = network
5086
+ if removal_policy is not None:
5087
+ self._values["removal_policy"] = removal_policy
5088
+ if expect_json is not None:
5089
+ self._values["expect_json"] = expect_json
5090
+
5091
+ @builtins.property
5092
+ def log_group_data_protection(self) -> typing.Optional[LogGroupDataProtectionProps]:
5093
+ '''(experimental) Data protection related configuration.
5094
+
5095
+ :default: a new KMS key would be generated
5096
+
5097
+ :stability: experimental
5098
+ '''
5099
+ result = self._values.get("log_group_data_protection")
5100
+ return typing.cast(typing.Optional[LogGroupDataProtectionProps], result)
5101
+
5102
+ @builtins.property
5103
+ def metric_namespace(self) -> typing.Optional[builtins.str]:
5104
+ '''(experimental) Business metric namespace.
5105
+
5106
+ :default: would be defined per use case
5107
+
5108
+ :stability: experimental
5109
+ '''
5110
+ result = self._values.get("metric_namespace")
5111
+ return typing.cast(typing.Optional[builtins.str], result)
5112
+
5113
+ @builtins.property
5114
+ def metric_service_name(self) -> typing.Optional[builtins.str]:
5115
+ '''(experimental) Business metric service name dimension.
5116
+
5117
+ :default: would be defined per use case
5118
+
5119
+ :stability: experimental
5120
+ '''
5121
+ result = self._values.get("metric_service_name")
5122
+ return typing.cast(typing.Optional[builtins.str], result)
5123
+
5124
+ @builtins.property
5125
+ def agent_definition(self) -> AgentDefinitionProps:
5126
+ '''(experimental) Agent related parameters.
5127
+
5128
+ :stability: experimental
5129
+ '''
5130
+ result = self._values.get("agent_definition")
5131
+ assert result is not None, "Required property 'agent_definition' is missing"
5132
+ return typing.cast(AgentDefinitionProps, result)
5133
+
5134
+ @builtins.property
5135
+ def agent_name(self) -> builtins.str:
5136
+ '''(experimental) Name of the agent.
5137
+
5138
+ :stability: experimental
5139
+ '''
5140
+ result = self._values.get("agent_name")
5141
+ assert result is not None, "Required property 'agent_name' is missing"
5142
+ return typing.cast(builtins.str, result)
5143
+
5144
+ @builtins.property
5145
+ def enable_observability(self) -> typing.Optional[builtins.bool]:
5146
+ '''(experimental) Enable observability.
5147
+
5148
+ :default: false
5149
+
5150
+ :stability: experimental
5151
+ '''
5152
+ result = self._values.get("enable_observability")
5153
+ return typing.cast(typing.Optional[builtins.bool], result)
4235
5154
 
4236
5155
  @builtins.property
4237
- def ingress_adapter(self) -> typing.Optional[IAdapter]:
4238
- '''(experimental) Adapter that defines how the document processing workflow is triggered.
5156
+ def encryption_key(self) -> typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key]:
5157
+ '''(experimental) Encryption key to encrypt agent environment variables.
4239
5158
 
4240
- :default: QueuedS3Adapter
5159
+ :default: new KMS Key would be created
4241
5160
 
4242
5161
  :stability: experimental
4243
5162
  '''
4244
- result = self._values.get("ingress_adapter")
4245
- return typing.cast(typing.Optional[IAdapter], result)
5163
+ result = self._values.get("encryption_key")
5164
+ return typing.cast(typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key], result)
4246
5165
 
4247
5166
  @builtins.property
4248
5167
  def network(self) -> typing.Optional[Network]:
4249
- '''(experimental) Resources that can run inside a VPC will follow the provided network configuration.
5168
+ '''(experimental) If the Agent would be running inside a VPC.
4250
5169
 
4251
- :default: resources will run outside of a VPC
5170
+ :default: Agent would not be in a VPC
4252
5171
 
4253
5172
  :stability: experimental
4254
5173
  '''
@@ -4257,7 +5176,7 @@ class BaseDocumentProcessingProps(ObservableProps):
4257
5176
 
4258
5177
  @builtins.property
4259
5178
  def removal_policy(self) -> typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy]:
4260
- '''(experimental) Removal policy for created resources (bucket, table, queue).
5179
+ '''(experimental) Removal policy for resources created by this construct.
4261
5180
 
4262
5181
  :default: RemovalPolicy.DESTROY
4263
5182
 
@@ -4267,15 +5186,21 @@ class BaseDocumentProcessingProps(ObservableProps):
4267
5186
  return typing.cast(typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy], result)
4268
5187
 
4269
5188
  @builtins.property
4270
- def workflow_timeout(self) -> typing.Optional[_aws_cdk_ceddda9d.Duration]:
4271
- '''(experimental) Maximum execution time for the Step Functions workflow.
4272
-
4273
- :default: Duration.minutes(30)
5189
+ def prompt(self) -> builtins.str:
5190
+ '''
5191
+ :stability: experimental
5192
+ '''
5193
+ result = self._values.get("prompt")
5194
+ assert result is not None, "Required property 'prompt' is missing"
5195
+ return typing.cast(builtins.str, result)
4274
5196
 
5197
+ @builtins.property
5198
+ def expect_json(self) -> typing.Optional[builtins.bool]:
5199
+ '''
4275
5200
  :stability: experimental
4276
5201
  '''
4277
- result = self._values.get("workflow_timeout")
4278
- return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Duration], result)
5202
+ result = self._values.get("expect_json")
5203
+ return typing.cast(typing.Optional[builtins.bool], result)
4279
5204
 
4280
5205
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
4281
5206
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -4284,7 +5209,7 @@ class BaseDocumentProcessingProps(ObservableProps):
4284
5209
  return not (rhs == self)
4285
5210
 
4286
5211
  def __repr__(self) -> str:
4287
- return "BaseDocumentProcessingProps(%s)" % ", ".join(
5212
+ return "BatchAgentProps(%s)" % ", ".join(
4288
5213
  k + "=" + repr(v) for k, v in self._values.items()
4289
5214
  )
4290
5215
 
@@ -4346,15 +5271,13 @@ class BedrockDocumentProcessing(
4346
5271
  scope: _constructs_77d1e7e8.Construct,
4347
5272
  id: builtins.str,
4348
5273
  *,
4349
- classification_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
5274
+ classification_bedrock_model: typing.Optional[typing.Union[BedrockModelProps, typing.Dict[builtins.str, typing.Any]]] = None,
4350
5275
  classification_prompt: typing.Optional[builtins.str] = None,
4351
- cross_region_inference_prefix: typing.Optional[BedrockCrossRegionInferencePrefix] = None,
4352
5276
  enrichment_lambda_function: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
4353
5277
  post_processing_lambda_function: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
4354
- processing_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
5278
+ processing_bedrock_model: typing.Optional[typing.Union[BedrockModelProps, typing.Dict[builtins.str, typing.Any]]] = None,
4355
5279
  processing_prompt: typing.Optional[builtins.str] = None,
4356
5280
  step_timeouts: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
4357
- use_cross_region_inference: typing.Optional[builtins.bool] = None,
4358
5281
  document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
4359
5282
  enable_observability: typing.Optional[builtins.bool] = None,
4360
5283
  encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
@@ -4375,15 +5298,13 @@ class BedrockDocumentProcessing(
4375
5298
 
4376
5299
  :param scope: - The scope in which to define this construct.
4377
5300
  :param id: - The scoped construct ID. Must be unique within the scope.
4378
- :param classification_model_id: (experimental) Bedrock foundation model for document classification step. Default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_7_SONNET_20250219_V1_0
5301
+ :param classification_bedrock_model: (experimental) Bedrock foundation model for document classification step.
4379
5302
  :param classification_prompt: (experimental) Custom prompt template for document classification. Must include placeholder for document content. Default: DEFAULT_CLASSIFICATION_PROMPT
4380
- :param cross_region_inference_prefix: (experimental) Prefix for cross-region inference configuration. Only used when useCrossRegionInference is true. Default: BedrockCrossRegionInferencePrefix.US
4381
5303
  :param enrichment_lambda_function: (experimental) Optional Lambda function for document enrichment step. If provided, will be invoked after extraction with workflow state.
4382
5304
  :param post_processing_lambda_function: (experimental) Optional Lambda function for post-processing step. If provided, will be invoked after enrichment with workflow state.
4383
- :param processing_model_id: (experimental) Bedrock foundation model for document extraction step. Default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_7_SONNET_20250219_V1_0
5305
+ :param processing_bedrock_model: (experimental) Bedrock foundation model for document extraction step.
4384
5306
  :param processing_prompt: (experimental) Custom prompt template for document extraction. Must include placeholder for document content and classification result. Default: DEFAULT_EXTRACTION_PROMPT
4385
5307
  :param step_timeouts: (experimental) Timeout for individual Step Functions tasks (classification, extraction, etc.). Default: Duration.minutes(5)
4386
- :param use_cross_region_inference: (experimental) Enable cross-region inference for Bedrock models to improve availability and performance. When enabled, uses inference profiles instead of direct model invocation. Default: false
4387
5308
  :param document_processing_table: (experimental) DynamoDB table for storing document processing metadata and workflow state. If not provided, a new table will be created with DocumentId as partition key.
4388
5309
  :param enable_observability: (experimental) Enable logging and tracing for all supporting resource. Default: false
4389
5310
  :param encryption_key: (experimental) KMS key to be used. Default: A new key would be created
@@ -4403,15 +5324,13 @@ class BedrockDocumentProcessing(
4403
5324
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
4404
5325
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
4405
5326
  props = BedrockDocumentProcessingProps(
4406
- classification_model_id=classification_model_id,
5327
+ classification_bedrock_model=classification_bedrock_model,
4407
5328
  classification_prompt=classification_prompt,
4408
- cross_region_inference_prefix=cross_region_inference_prefix,
4409
5329
  enrichment_lambda_function=enrichment_lambda_function,
4410
5330
  post_processing_lambda_function=post_processing_lambda_function,
4411
- processing_model_id=processing_model_id,
5331
+ processing_bedrock_model=processing_bedrock_model,
4412
5332
  processing_prompt=processing_prompt,
4413
5333
  step_timeouts=step_timeouts,
4414
- use_cross_region_inference=use_cross_region_inference,
4415
5334
  document_processing_table=document_processing_table,
4416
5335
  enable_observability=enable_observability,
4417
5336
  encryption_key=encryption_key,
@@ -4462,20 +5381,30 @@ class BedrockDocumentProcessing(
4462
5381
  @jsii.member(jsii_name="generateLambdaRoleForBedrock")
4463
5382
  def _generate_lambda_role_for_bedrock(
4464
5383
  self,
4465
- fm_model: _aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier,
4466
5384
  id: builtins.str,
5385
+ *,
5386
+ cross_region_inference_prefix: typing.Optional[BedrockCrossRegionInferencePrefix] = None,
5387
+ fm_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
5388
+ use_cross_region_inference: typing.Optional[builtins.bool] = None,
4467
5389
  ) -> _aws_cdk_aws_iam_ceddda9d.Role:
4468
5390
  '''
4469
- :param fm_model: -
4470
5391
  :param id: -
5392
+ :param cross_region_inference_prefix: (experimental) Prefix for cross-region inference configuration. Only used when useCrossRegionInference is true. Default: BedrockCrossRegionInferencePrefix.US
5393
+ :param fm_model_id: (experimental) Foundation model to use. Default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_SONNET_4_20250514_V1_0
5394
+ :param use_cross_region_inference: (experimental) Enable cross-region inference for Bedrock models to improve availability and performance. When enabled, uses inference profiles instead of direct model invocation. Default: false
4471
5395
 
4472
5396
  :stability: experimental
4473
5397
  '''
4474
5398
  if __debug__:
4475
5399
  type_hints = typing.get_type_hints(_typecheckingstub__b765dc24cd888585470934e534f4d8e979ddebd46e42601cc8b50c73499e7d4e)
4476
- check_type(argname="argument fm_model", value=fm_model, expected_type=type_hints["fm_model"])
4477
5400
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
4478
- return typing.cast(_aws_cdk_aws_iam_ceddda9d.Role, jsii.invoke(self, "generateLambdaRoleForBedrock", [fm_model, id]))
5401
+ model = BedrockModelProps(
5402
+ cross_region_inference_prefix=cross_region_inference_prefix,
5403
+ fm_model_id=fm_model_id,
5404
+ use_cross_region_inference=use_cross_region_inference,
5405
+ )
5406
+
5407
+ return typing.cast(_aws_cdk_aws_iam_ceddda9d.Role, jsii.invoke(self, "generateLambdaRoleForBedrock", [id, model]))
4479
5408
 
4480
5409
  @jsii.member(jsii_name="postProcessingStep")
4481
5410
  def _post_processing_step(
@@ -4509,16 +5438,6 @@ class BedrockDocumentProcessing(
4509
5438
  '''
4510
5439
  return typing.cast(typing.Union[_aws_cdk_aws_stepfunctions_tasks_ceddda9d.LambdaInvoke, _aws_cdk_aws_stepfunctions_tasks_ceddda9d.BedrockInvokeModel, _aws_cdk_aws_stepfunctions_tasks_ceddda9d.StepFunctionsStartExecution], jsii.invoke(self, "processingStep", []))
4511
5440
 
4512
- @jsii.python.classproperty
4513
- @jsii.member(jsii_name="DEFAULT_CLASSIFICATION_MODEL_ID")
4514
- def DEFAULT_CLASSIFICATION_MODEL_ID(
4515
- cls,
4516
- ) -> _aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier:
4517
- '''
4518
- :stability: experimental
4519
- '''
4520
- return typing.cast(_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier, jsii.sget(cls, "DEFAULT_CLASSIFICATION_MODEL_ID"))
4521
-
4522
5441
  @jsii.python.classproperty
4523
5442
  @jsii.member(jsii_name="DEFAULT_CLASSIFICATION_PROMPT")
4524
5443
  def DEFAULT_CLASSIFICATION_PROMPT(cls) -> builtins.str:
@@ -4527,16 +5446,6 @@ class BedrockDocumentProcessing(
4527
5446
  '''
4528
5447
  return typing.cast(builtins.str, jsii.sget(cls, "DEFAULT_CLASSIFICATION_PROMPT"))
4529
5448
 
4530
- @jsii.python.classproperty
4531
- @jsii.member(jsii_name="DEFAULT_PROCESSING_MODEL_ID")
4532
- def DEFAULT_PROCESSING_MODEL_ID(
4533
- cls,
4534
- ) -> _aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier:
4535
- '''
4536
- :stability: experimental
4537
- '''
4538
- return typing.cast(_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier, jsii.sget(cls, "DEFAULT_PROCESSING_MODEL_ID"))
4539
-
4540
5449
  @jsii.python.classproperty
4541
5450
  @jsii.member(jsii_name="DEFAULT_PROCESSING_PROMPT")
4542
5451
  def DEFAULT_PROCESSING_PROMPT(cls) -> builtins.str:
@@ -4554,15 +5463,6 @@ class BedrockDocumentProcessing(
4554
5463
  '''
4555
5464
  return typing.cast("BedrockDocumentProcessingProps", jsii.get(self, "bedrockDocumentProcessingProps"))
4556
5465
 
4557
- @builtins.property
4558
- @jsii.member(jsii_name="crossRegionInferencePrefix")
4559
- def _cross_region_inference_prefix(self) -> BedrockCrossRegionInferencePrefix:
4560
- '''(experimental) Cross-region inference prefix for Bedrock model routing.
4561
-
4562
- :stability: experimental
4563
- '''
4564
- return typing.cast(BedrockCrossRegionInferencePrefix, jsii.get(self, "crossRegionInferencePrefix"))
4565
-
4566
5466
  @builtins.property
4567
5467
  @jsii.member(jsii_name="stateMachine")
4568
5468
  def state_machine(self) -> _aws_cdk_aws_stepfunctions_ceddda9d.StateMachine:
@@ -4588,15 +5488,13 @@ class BedrockDocumentProcessing(
4588
5488
  "network": "network",
4589
5489
  "removal_policy": "removalPolicy",
4590
5490
  "workflow_timeout": "workflowTimeout",
4591
- "classification_model_id": "classificationModelId",
5491
+ "classification_bedrock_model": "classificationBedrockModel",
4592
5492
  "classification_prompt": "classificationPrompt",
4593
- "cross_region_inference_prefix": "crossRegionInferencePrefix",
4594
5493
  "enrichment_lambda_function": "enrichmentLambdaFunction",
4595
5494
  "post_processing_lambda_function": "postProcessingLambdaFunction",
4596
- "processing_model_id": "processingModelId",
5495
+ "processing_bedrock_model": "processingBedrockModel",
4597
5496
  "processing_prompt": "processingPrompt",
4598
5497
  "step_timeouts": "stepTimeouts",
4599
- "use_cross_region_inference": "useCrossRegionInference",
4600
5498
  },
4601
5499
  )
4602
5500
  class BedrockDocumentProcessingProps(BaseDocumentProcessingProps):
@@ -4614,15 +5512,13 @@ class BedrockDocumentProcessingProps(BaseDocumentProcessingProps):
4614
5512
  network: typing.Optional[Network] = None,
4615
5513
  removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
4616
5514
  workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
4617
- classification_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
5515
+ classification_bedrock_model: typing.Optional[typing.Union[BedrockModelProps, typing.Dict[builtins.str, typing.Any]]] = None,
4618
5516
  classification_prompt: typing.Optional[builtins.str] = None,
4619
- cross_region_inference_prefix: typing.Optional[BedrockCrossRegionInferencePrefix] = None,
4620
5517
  enrichment_lambda_function: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
4621
5518
  post_processing_lambda_function: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
4622
- processing_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
5519
+ processing_bedrock_model: typing.Optional[typing.Union[BedrockModelProps, typing.Dict[builtins.str, typing.Any]]] = None,
4623
5520
  processing_prompt: typing.Optional[builtins.str] = None,
4624
5521
  step_timeouts: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
4625
- use_cross_region_inference: typing.Optional[builtins.bool] = None,
4626
5522
  ) -> None:
4627
5523
  '''(experimental) Configuration properties for BedrockDocumentProcessing construct.
4628
5524
 
@@ -4639,20 +5535,22 @@ class BedrockDocumentProcessingProps(BaseDocumentProcessingProps):
4639
5535
  :param network: (experimental) Resources that can run inside a VPC will follow the provided network configuration. Default: resources will run outside of a VPC
4640
5536
  :param removal_policy: (experimental) Removal policy for created resources (bucket, table, queue). Default: RemovalPolicy.DESTROY
4641
5537
  :param workflow_timeout: (experimental) Maximum execution time for the Step Functions workflow. Default: Duration.minutes(30)
4642
- :param classification_model_id: (experimental) Bedrock foundation model for document classification step. Default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_7_SONNET_20250219_V1_0
5538
+ :param classification_bedrock_model: (experimental) Bedrock foundation model for document classification step.
4643
5539
  :param classification_prompt: (experimental) Custom prompt template for document classification. Must include placeholder for document content. Default: DEFAULT_CLASSIFICATION_PROMPT
4644
- :param cross_region_inference_prefix: (experimental) Prefix for cross-region inference configuration. Only used when useCrossRegionInference is true. Default: BedrockCrossRegionInferencePrefix.US
4645
5540
  :param enrichment_lambda_function: (experimental) Optional Lambda function for document enrichment step. If provided, will be invoked after extraction with workflow state.
4646
5541
  :param post_processing_lambda_function: (experimental) Optional Lambda function for post-processing step. If provided, will be invoked after enrichment with workflow state.
4647
- :param processing_model_id: (experimental) Bedrock foundation model for document extraction step. Default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_7_SONNET_20250219_V1_0
5542
+ :param processing_bedrock_model: (experimental) Bedrock foundation model for document extraction step.
4648
5543
  :param processing_prompt: (experimental) Custom prompt template for document extraction. Must include placeholder for document content and classification result. Default: DEFAULT_EXTRACTION_PROMPT
4649
5544
  :param step_timeouts: (experimental) Timeout for individual Step Functions tasks (classification, extraction, etc.). Default: Duration.minutes(5)
4650
- :param use_cross_region_inference: (experimental) Enable cross-region inference for Bedrock models to improve availability and performance. When enabled, uses inference profiles instead of direct model invocation. Default: false
4651
5545
 
4652
5546
  :stability: experimental
4653
5547
  '''
4654
5548
  if isinstance(log_group_data_protection, dict):
4655
5549
  log_group_data_protection = LogGroupDataProtectionProps(**log_group_data_protection)
5550
+ if isinstance(classification_bedrock_model, dict):
5551
+ classification_bedrock_model = BedrockModelProps(**classification_bedrock_model)
5552
+ if isinstance(processing_bedrock_model, dict):
5553
+ processing_bedrock_model = BedrockModelProps(**processing_bedrock_model)
4656
5554
  if __debug__:
4657
5555
  type_hints = typing.get_type_hints(_typecheckingstub__9606a6418d69bde20176ec33b27eaa22c0e0cdb6b105d382e9d038566f7a29f3)
4658
5556
  check_type(argname="argument log_group_data_protection", value=log_group_data_protection, expected_type=type_hints["log_group_data_protection"])
@@ -4666,15 +5564,13 @@ class BedrockDocumentProcessingProps(BaseDocumentProcessingProps):
4666
5564
  check_type(argname="argument network", value=network, expected_type=type_hints["network"])
4667
5565
  check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
4668
5566
  check_type(argname="argument workflow_timeout", value=workflow_timeout, expected_type=type_hints["workflow_timeout"])
4669
- check_type(argname="argument classification_model_id", value=classification_model_id, expected_type=type_hints["classification_model_id"])
5567
+ check_type(argname="argument classification_bedrock_model", value=classification_bedrock_model, expected_type=type_hints["classification_bedrock_model"])
4670
5568
  check_type(argname="argument classification_prompt", value=classification_prompt, expected_type=type_hints["classification_prompt"])
4671
- check_type(argname="argument cross_region_inference_prefix", value=cross_region_inference_prefix, expected_type=type_hints["cross_region_inference_prefix"])
4672
5569
  check_type(argname="argument enrichment_lambda_function", value=enrichment_lambda_function, expected_type=type_hints["enrichment_lambda_function"])
4673
5570
  check_type(argname="argument post_processing_lambda_function", value=post_processing_lambda_function, expected_type=type_hints["post_processing_lambda_function"])
4674
- check_type(argname="argument processing_model_id", value=processing_model_id, expected_type=type_hints["processing_model_id"])
5571
+ check_type(argname="argument processing_bedrock_model", value=processing_bedrock_model, expected_type=type_hints["processing_bedrock_model"])
4675
5572
  check_type(argname="argument processing_prompt", value=processing_prompt, expected_type=type_hints["processing_prompt"])
4676
5573
  check_type(argname="argument step_timeouts", value=step_timeouts, expected_type=type_hints["step_timeouts"])
4677
- check_type(argname="argument use_cross_region_inference", value=use_cross_region_inference, expected_type=type_hints["use_cross_region_inference"])
4678
5574
  self._values: typing.Dict[builtins.str, typing.Any] = {}
4679
5575
  if log_group_data_protection is not None:
4680
5576
  self._values["log_group_data_protection"] = log_group_data_protection
@@ -4698,24 +5594,20 @@ class BedrockDocumentProcessingProps(BaseDocumentProcessingProps):
4698
5594
  self._values["removal_policy"] = removal_policy
4699
5595
  if workflow_timeout is not None:
4700
5596
  self._values["workflow_timeout"] = workflow_timeout
4701
- if classification_model_id is not None:
4702
- self._values["classification_model_id"] = classification_model_id
5597
+ if classification_bedrock_model is not None:
5598
+ self._values["classification_bedrock_model"] = classification_bedrock_model
4703
5599
  if classification_prompt is not None:
4704
5600
  self._values["classification_prompt"] = classification_prompt
4705
- if cross_region_inference_prefix is not None:
4706
- self._values["cross_region_inference_prefix"] = cross_region_inference_prefix
4707
5601
  if enrichment_lambda_function is not None:
4708
5602
  self._values["enrichment_lambda_function"] = enrichment_lambda_function
4709
5603
  if post_processing_lambda_function is not None:
4710
5604
  self._values["post_processing_lambda_function"] = post_processing_lambda_function
4711
- if processing_model_id is not None:
4712
- self._values["processing_model_id"] = processing_model_id
5605
+ if processing_bedrock_model is not None:
5606
+ self._values["processing_bedrock_model"] = processing_bedrock_model
4713
5607
  if processing_prompt is not None:
4714
5608
  self._values["processing_prompt"] = processing_prompt
4715
5609
  if step_timeouts is not None:
4716
5610
  self._values["step_timeouts"] = step_timeouts
4717
- if use_cross_region_inference is not None:
4718
- self._values["use_cross_region_inference"] = use_cross_region_inference
4719
5611
 
4720
5612
  @builtins.property
4721
5613
  def log_group_data_protection(self) -> typing.Optional[LogGroupDataProtectionProps]:
@@ -4841,17 +5733,13 @@ class BedrockDocumentProcessingProps(BaseDocumentProcessingProps):
4841
5733
  return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Duration], result)
4842
5734
 
4843
5735
  @builtins.property
4844
- def classification_model_id(
4845
- self,
4846
- ) -> typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier]:
5736
+ def classification_bedrock_model(self) -> typing.Optional[BedrockModelProps]:
4847
5737
  '''(experimental) Bedrock foundation model for document classification step.
4848
5738
 
4849
- :default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_7_SONNET_20250219_V1_0
4850
-
4851
5739
  :stability: experimental
4852
5740
  '''
4853
- result = self._values.get("classification_model_id")
4854
- return typing.cast(typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier], result)
5741
+ result = self._values.get("classification_bedrock_model")
5742
+ return typing.cast(typing.Optional[BedrockModelProps], result)
4855
5743
 
4856
5744
  @builtins.property
4857
5745
  def classification_prompt(self) -> typing.Optional[builtins.str]:
@@ -4866,21 +5754,6 @@ class BedrockDocumentProcessingProps(BaseDocumentProcessingProps):
4866
5754
  result = self._values.get("classification_prompt")
4867
5755
  return typing.cast(typing.Optional[builtins.str], result)
4868
5756
 
4869
- @builtins.property
4870
- def cross_region_inference_prefix(
4871
- self,
4872
- ) -> typing.Optional[BedrockCrossRegionInferencePrefix]:
4873
- '''(experimental) Prefix for cross-region inference configuration.
4874
-
4875
- Only used when useCrossRegionInference is true.
4876
-
4877
- :default: BedrockCrossRegionInferencePrefix.US
4878
-
4879
- :stability: experimental
4880
- '''
4881
- result = self._values.get("cross_region_inference_prefix")
4882
- return typing.cast(typing.Optional[BedrockCrossRegionInferencePrefix], result)
4883
-
4884
5757
  @builtins.property
4885
5758
  def enrichment_lambda_function(
4886
5759
  self,
@@ -4908,17 +5781,13 @@ class BedrockDocumentProcessingProps(BaseDocumentProcessingProps):
4908
5781
  return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function], result)
4909
5782
 
4910
5783
  @builtins.property
4911
- def processing_model_id(
4912
- self,
4913
- ) -> typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier]:
5784
+ def processing_bedrock_model(self) -> typing.Optional[BedrockModelProps]:
4914
5785
  '''(experimental) Bedrock foundation model for document extraction step.
4915
5786
 
4916
- :default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_7_SONNET_20250219_V1_0
4917
-
4918
5787
  :stability: experimental
4919
5788
  '''
4920
- result = self._values.get("processing_model_id")
4921
- return typing.cast(typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier], result)
5789
+ result = self._values.get("processing_bedrock_model")
5790
+ return typing.cast(typing.Optional[BedrockModelProps], result)
4922
5791
 
4923
5792
  @builtins.property
4924
5793
  def processing_prompt(self) -> typing.Optional[builtins.str]:
@@ -4944,19 +5813,6 @@ class BedrockDocumentProcessingProps(BaseDocumentProcessingProps):
4944
5813
  result = self._values.get("step_timeouts")
4945
5814
  return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Duration], result)
4946
5815
 
4947
- @builtins.property
4948
- def use_cross_region_inference(self) -> typing.Optional[builtins.bool]:
4949
- '''(experimental) Enable cross-region inference for Bedrock models to improve availability and performance.
4950
-
4951
- When enabled, uses inference profiles instead of direct model invocation.
4952
-
4953
- :default: false
4954
-
4955
- :stability: experimental
4956
- '''
4957
- result = self._values.get("use_cross_region_inference")
4958
- return typing.cast(typing.Optional[builtins.bool], result)
4959
-
4960
5816
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
4961
5817
  return isinstance(rhs, self.__class__) and rhs._values == self._values
4962
5818
 
@@ -4983,16 +5839,14 @@ class AgenticDocumentProcessing(
4983
5839
  scope: _constructs_77d1e7e8.Construct,
4984
5840
  id: builtins.str,
4985
5841
  *,
4986
- processing_agent_parameters: typing.Optional[typing.Union[AgentProps, typing.Dict[builtins.str, typing.Any]]] = None,
4987
- classification_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
5842
+ processing_agent_parameters: typing.Union[BatchAgentProps, typing.Dict[builtins.str, typing.Any]],
5843
+ classification_bedrock_model: typing.Optional[typing.Union[BedrockModelProps, typing.Dict[builtins.str, typing.Any]]] = None,
4988
5844
  classification_prompt: typing.Optional[builtins.str] = None,
4989
- cross_region_inference_prefix: typing.Optional[BedrockCrossRegionInferencePrefix] = None,
4990
5845
  enrichment_lambda_function: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
4991
5846
  post_processing_lambda_function: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
4992
- processing_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
5847
+ processing_bedrock_model: typing.Optional[typing.Union[BedrockModelProps, typing.Dict[builtins.str, typing.Any]]] = None,
4993
5848
  processing_prompt: typing.Optional[builtins.str] = None,
4994
5849
  step_timeouts: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
4995
- use_cross_region_inference: typing.Optional[builtins.bool] = None,
4996
5850
  document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
4997
5851
  enable_observability: typing.Optional[builtins.bool] = None,
4998
5852
  encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
@@ -5008,16 +5862,14 @@ class AgenticDocumentProcessing(
5008
5862
  '''
5009
5863
  :param scope: -
5010
5864
  :param id: -
5011
- :param processing_agent_parameters:
5012
- :param classification_model_id: (experimental) Bedrock foundation model for document classification step. Default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_7_SONNET_20250219_V1_0
5865
+ :param processing_agent_parameters: (experimental) This parameter takes precedence over the ``processingBedrockModel`` parameter.
5866
+ :param classification_bedrock_model: (experimental) Bedrock foundation model for document classification step.
5013
5867
  :param classification_prompt: (experimental) Custom prompt template for document classification. Must include placeholder for document content. Default: DEFAULT_CLASSIFICATION_PROMPT
5014
- :param cross_region_inference_prefix: (experimental) Prefix for cross-region inference configuration. Only used when useCrossRegionInference is true. Default: BedrockCrossRegionInferencePrefix.US
5015
5868
  :param enrichment_lambda_function: (experimental) Optional Lambda function for document enrichment step. If provided, will be invoked after extraction with workflow state.
5016
5869
  :param post_processing_lambda_function: (experimental) Optional Lambda function for post-processing step. If provided, will be invoked after enrichment with workflow state.
5017
- :param processing_model_id: (experimental) Bedrock foundation model for document extraction step. Default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_7_SONNET_20250219_V1_0
5870
+ :param processing_bedrock_model: (experimental) Bedrock foundation model for document extraction step.
5018
5871
  :param processing_prompt: (experimental) Custom prompt template for document extraction. Must include placeholder for document content and classification result. Default: DEFAULT_EXTRACTION_PROMPT
5019
5872
  :param step_timeouts: (experimental) Timeout for individual Step Functions tasks (classification, extraction, etc.). Default: Duration.minutes(5)
5020
- :param use_cross_region_inference: (experimental) Enable cross-region inference for Bedrock models to improve availability and performance. When enabled, uses inference profiles instead of direct model invocation. Default: false
5021
5873
  :param document_processing_table: (experimental) DynamoDB table for storing document processing metadata and workflow state. If not provided, a new table will be created with DocumentId as partition key.
5022
5874
  :param enable_observability: (experimental) Enable logging and tracing for all supporting resource. Default: false
5023
5875
  :param encryption_key: (experimental) KMS key to be used. Default: A new key would be created
@@ -5038,15 +5890,13 @@ class AgenticDocumentProcessing(
5038
5890
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
5039
5891
  props = AgenticDocumentProcessingProps(
5040
5892
  processing_agent_parameters=processing_agent_parameters,
5041
- classification_model_id=classification_model_id,
5893
+ classification_bedrock_model=classification_bedrock_model,
5042
5894
  classification_prompt=classification_prompt,
5043
- cross_region_inference_prefix=cross_region_inference_prefix,
5044
5895
  enrichment_lambda_function=enrichment_lambda_function,
5045
5896
  post_processing_lambda_function=post_processing_lambda_function,
5046
- processing_model_id=processing_model_id,
5897
+ processing_bedrock_model=processing_bedrock_model,
5047
5898
  processing_prompt=processing_prompt,
5048
5899
  step_timeouts=step_timeouts,
5049
- use_cross_region_inference=use_cross_region_inference,
5050
5900
  document_processing_table=document_processing_table,
5051
5901
  enable_observability=enable_observability,
5052
5902
  encryption_key=encryption_key,
@@ -5092,15 +5942,13 @@ class AgenticDocumentProcessing(
5092
5942
  "network": "network",
5093
5943
  "removal_policy": "removalPolicy",
5094
5944
  "workflow_timeout": "workflowTimeout",
5095
- "classification_model_id": "classificationModelId",
5945
+ "classification_bedrock_model": "classificationBedrockModel",
5096
5946
  "classification_prompt": "classificationPrompt",
5097
- "cross_region_inference_prefix": "crossRegionInferencePrefix",
5098
5947
  "enrichment_lambda_function": "enrichmentLambdaFunction",
5099
5948
  "post_processing_lambda_function": "postProcessingLambdaFunction",
5100
- "processing_model_id": "processingModelId",
5949
+ "processing_bedrock_model": "processingBedrockModel",
5101
5950
  "processing_prompt": "processingPrompt",
5102
5951
  "step_timeouts": "stepTimeouts",
5103
- "use_cross_region_inference": "useCrossRegionInference",
5104
5952
  "processing_agent_parameters": "processingAgentParameters",
5105
5953
  },
5106
5954
  )
@@ -5119,16 +5967,14 @@ class AgenticDocumentProcessingProps(BedrockDocumentProcessingProps):
5119
5967
  network: typing.Optional[Network] = None,
5120
5968
  removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
5121
5969
  workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
5122
- classification_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
5970
+ classification_bedrock_model: typing.Optional[typing.Union[BedrockModelProps, typing.Dict[builtins.str, typing.Any]]] = None,
5123
5971
  classification_prompt: typing.Optional[builtins.str] = None,
5124
- cross_region_inference_prefix: typing.Optional[BedrockCrossRegionInferencePrefix] = None,
5125
5972
  enrichment_lambda_function: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
5126
5973
  post_processing_lambda_function: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
5127
- processing_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
5974
+ processing_bedrock_model: typing.Optional[typing.Union[BedrockModelProps, typing.Dict[builtins.str, typing.Any]]] = None,
5128
5975
  processing_prompt: typing.Optional[builtins.str] = None,
5129
5976
  step_timeouts: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
5130
- use_cross_region_inference: typing.Optional[builtins.bool] = None,
5131
- processing_agent_parameters: typing.Optional[typing.Union[AgentProps, typing.Dict[builtins.str, typing.Any]]] = None,
5977
+ processing_agent_parameters: typing.Union[BatchAgentProps, typing.Dict[builtins.str, typing.Any]],
5132
5978
  ) -> None:
5133
5979
  '''
5134
5980
  :param log_group_data_protection: (experimental) Data protection related configuration. Default: a new KMS key would be generated
@@ -5142,23 +5988,25 @@ class AgenticDocumentProcessingProps(BedrockDocumentProcessingProps):
5142
5988
  :param network: (experimental) Resources that can run inside a VPC will follow the provided network configuration. Default: resources will run outside of a VPC
5143
5989
  :param removal_policy: (experimental) Removal policy for created resources (bucket, table, queue). Default: RemovalPolicy.DESTROY
5144
5990
  :param workflow_timeout: (experimental) Maximum execution time for the Step Functions workflow. Default: Duration.minutes(30)
5145
- :param classification_model_id: (experimental) Bedrock foundation model for document classification step. Default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_7_SONNET_20250219_V1_0
5991
+ :param classification_bedrock_model: (experimental) Bedrock foundation model for document classification step.
5146
5992
  :param classification_prompt: (experimental) Custom prompt template for document classification. Must include placeholder for document content. Default: DEFAULT_CLASSIFICATION_PROMPT
5147
- :param cross_region_inference_prefix: (experimental) Prefix for cross-region inference configuration. Only used when useCrossRegionInference is true. Default: BedrockCrossRegionInferencePrefix.US
5148
5993
  :param enrichment_lambda_function: (experimental) Optional Lambda function for document enrichment step. If provided, will be invoked after extraction with workflow state.
5149
5994
  :param post_processing_lambda_function: (experimental) Optional Lambda function for post-processing step. If provided, will be invoked after enrichment with workflow state.
5150
- :param processing_model_id: (experimental) Bedrock foundation model for document extraction step. Default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_7_SONNET_20250219_V1_0
5995
+ :param processing_bedrock_model: (experimental) Bedrock foundation model for document extraction step.
5151
5996
  :param processing_prompt: (experimental) Custom prompt template for document extraction. Must include placeholder for document content and classification result. Default: DEFAULT_EXTRACTION_PROMPT
5152
5997
  :param step_timeouts: (experimental) Timeout for individual Step Functions tasks (classification, extraction, etc.). Default: Duration.minutes(5)
5153
- :param use_cross_region_inference: (experimental) Enable cross-region inference for Bedrock models to improve availability and performance. When enabled, uses inference profiles instead of direct model invocation. Default: false
5154
- :param processing_agent_parameters:
5998
+ :param processing_agent_parameters: (experimental) This parameter takes precedence over the ``processingBedrockModel`` parameter.
5155
5999
 
5156
6000
  :stability: experimental
5157
6001
  '''
5158
6002
  if isinstance(log_group_data_protection, dict):
5159
6003
  log_group_data_protection = LogGroupDataProtectionProps(**log_group_data_protection)
6004
+ if isinstance(classification_bedrock_model, dict):
6005
+ classification_bedrock_model = BedrockModelProps(**classification_bedrock_model)
6006
+ if isinstance(processing_bedrock_model, dict):
6007
+ processing_bedrock_model = BedrockModelProps(**processing_bedrock_model)
5160
6008
  if isinstance(processing_agent_parameters, dict):
5161
- processing_agent_parameters = AgentProps(**processing_agent_parameters)
6009
+ processing_agent_parameters = BatchAgentProps(**processing_agent_parameters)
5162
6010
  if __debug__:
5163
6011
  type_hints = typing.get_type_hints(_typecheckingstub__da9ccab0035a06d18b5aa3f2de69201b3bbd6e30f7707a291977a0e4f83a72f4)
5164
6012
  check_type(argname="argument log_group_data_protection", value=log_group_data_protection, expected_type=type_hints["log_group_data_protection"])
@@ -5172,17 +6020,17 @@ class AgenticDocumentProcessingProps(BedrockDocumentProcessingProps):
5172
6020
  check_type(argname="argument network", value=network, expected_type=type_hints["network"])
5173
6021
  check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
5174
6022
  check_type(argname="argument workflow_timeout", value=workflow_timeout, expected_type=type_hints["workflow_timeout"])
5175
- check_type(argname="argument classification_model_id", value=classification_model_id, expected_type=type_hints["classification_model_id"])
6023
+ check_type(argname="argument classification_bedrock_model", value=classification_bedrock_model, expected_type=type_hints["classification_bedrock_model"])
5176
6024
  check_type(argname="argument classification_prompt", value=classification_prompt, expected_type=type_hints["classification_prompt"])
5177
- check_type(argname="argument cross_region_inference_prefix", value=cross_region_inference_prefix, expected_type=type_hints["cross_region_inference_prefix"])
5178
6025
  check_type(argname="argument enrichment_lambda_function", value=enrichment_lambda_function, expected_type=type_hints["enrichment_lambda_function"])
5179
6026
  check_type(argname="argument post_processing_lambda_function", value=post_processing_lambda_function, expected_type=type_hints["post_processing_lambda_function"])
5180
- check_type(argname="argument processing_model_id", value=processing_model_id, expected_type=type_hints["processing_model_id"])
6027
+ check_type(argname="argument processing_bedrock_model", value=processing_bedrock_model, expected_type=type_hints["processing_bedrock_model"])
5181
6028
  check_type(argname="argument processing_prompt", value=processing_prompt, expected_type=type_hints["processing_prompt"])
5182
6029
  check_type(argname="argument step_timeouts", value=step_timeouts, expected_type=type_hints["step_timeouts"])
5183
- check_type(argname="argument use_cross_region_inference", value=use_cross_region_inference, expected_type=type_hints["use_cross_region_inference"])
5184
6030
  check_type(argname="argument processing_agent_parameters", value=processing_agent_parameters, expected_type=type_hints["processing_agent_parameters"])
5185
- self._values: typing.Dict[builtins.str, typing.Any] = {}
6031
+ self._values: typing.Dict[builtins.str, typing.Any] = {
6032
+ "processing_agent_parameters": processing_agent_parameters,
6033
+ }
5186
6034
  if log_group_data_protection is not None:
5187
6035
  self._values["log_group_data_protection"] = log_group_data_protection
5188
6036
  if metric_namespace is not None:
@@ -5205,26 +6053,20 @@ class AgenticDocumentProcessingProps(BedrockDocumentProcessingProps):
5205
6053
  self._values["removal_policy"] = removal_policy
5206
6054
  if workflow_timeout is not None:
5207
6055
  self._values["workflow_timeout"] = workflow_timeout
5208
- if classification_model_id is not None:
5209
- self._values["classification_model_id"] = classification_model_id
6056
+ if classification_bedrock_model is not None:
6057
+ self._values["classification_bedrock_model"] = classification_bedrock_model
5210
6058
  if classification_prompt is not None:
5211
6059
  self._values["classification_prompt"] = classification_prompt
5212
- if cross_region_inference_prefix is not None:
5213
- self._values["cross_region_inference_prefix"] = cross_region_inference_prefix
5214
6060
  if enrichment_lambda_function is not None:
5215
6061
  self._values["enrichment_lambda_function"] = enrichment_lambda_function
5216
6062
  if post_processing_lambda_function is not None:
5217
6063
  self._values["post_processing_lambda_function"] = post_processing_lambda_function
5218
- if processing_model_id is not None:
5219
- self._values["processing_model_id"] = processing_model_id
6064
+ if processing_bedrock_model is not None:
6065
+ self._values["processing_bedrock_model"] = processing_bedrock_model
5220
6066
  if processing_prompt is not None:
5221
6067
  self._values["processing_prompt"] = processing_prompt
5222
6068
  if step_timeouts is not None:
5223
6069
  self._values["step_timeouts"] = step_timeouts
5224
- if use_cross_region_inference is not None:
5225
- self._values["use_cross_region_inference"] = use_cross_region_inference
5226
- if processing_agent_parameters is not None:
5227
- self._values["processing_agent_parameters"] = processing_agent_parameters
5228
6070
 
5229
6071
  @builtins.property
5230
6072
  def log_group_data_protection(self) -> typing.Optional[LogGroupDataProtectionProps]:
@@ -5350,17 +6192,13 @@ class AgenticDocumentProcessingProps(BedrockDocumentProcessingProps):
5350
6192
  return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Duration], result)
5351
6193
 
5352
6194
  @builtins.property
5353
- def classification_model_id(
5354
- self,
5355
- ) -> typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier]:
6195
+ def classification_bedrock_model(self) -> typing.Optional[BedrockModelProps]:
5356
6196
  '''(experimental) Bedrock foundation model for document classification step.
5357
6197
 
5358
- :default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_7_SONNET_20250219_V1_0
5359
-
5360
6198
  :stability: experimental
5361
6199
  '''
5362
- result = self._values.get("classification_model_id")
5363
- return typing.cast(typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier], result)
6200
+ result = self._values.get("classification_bedrock_model")
6201
+ return typing.cast(typing.Optional[BedrockModelProps], result)
5364
6202
 
5365
6203
  @builtins.property
5366
6204
  def classification_prompt(self) -> typing.Optional[builtins.str]:
@@ -5375,21 +6213,6 @@ class AgenticDocumentProcessingProps(BedrockDocumentProcessingProps):
5375
6213
  result = self._values.get("classification_prompt")
5376
6214
  return typing.cast(typing.Optional[builtins.str], result)
5377
6215
 
5378
- @builtins.property
5379
- def cross_region_inference_prefix(
5380
- self,
5381
- ) -> typing.Optional[BedrockCrossRegionInferencePrefix]:
5382
- '''(experimental) Prefix for cross-region inference configuration.
5383
-
5384
- Only used when useCrossRegionInference is true.
5385
-
5386
- :default: BedrockCrossRegionInferencePrefix.US
5387
-
5388
- :stability: experimental
5389
- '''
5390
- result = self._values.get("cross_region_inference_prefix")
5391
- return typing.cast(typing.Optional[BedrockCrossRegionInferencePrefix], result)
5392
-
5393
6216
  @builtins.property
5394
6217
  def enrichment_lambda_function(
5395
6218
  self,
@@ -5417,17 +6240,13 @@ class AgenticDocumentProcessingProps(BedrockDocumentProcessingProps):
5417
6240
  return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function], result)
5418
6241
 
5419
6242
  @builtins.property
5420
- def processing_model_id(
5421
- self,
5422
- ) -> typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier]:
6243
+ def processing_bedrock_model(self) -> typing.Optional[BedrockModelProps]:
5423
6244
  '''(experimental) Bedrock foundation model for document extraction step.
5424
6245
 
5425
- :default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_7_SONNET_20250219_V1_0
5426
-
5427
6246
  :stability: experimental
5428
6247
  '''
5429
- result = self._values.get("processing_model_id")
5430
- return typing.cast(typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier], result)
6248
+ result = self._values.get("processing_bedrock_model")
6249
+ return typing.cast(typing.Optional[BedrockModelProps], result)
5431
6250
 
5432
6251
  @builtins.property
5433
6252
  def processing_prompt(self) -> typing.Optional[builtins.str]:
@@ -5454,25 +6273,14 @@ class AgenticDocumentProcessingProps(BedrockDocumentProcessingProps):
5454
6273
  return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Duration], result)
5455
6274
 
5456
6275
  @builtins.property
5457
- def use_cross_region_inference(self) -> typing.Optional[builtins.bool]:
5458
- '''(experimental) Enable cross-region inference for Bedrock models to improve availability and performance.
5459
-
5460
- When enabled, uses inference profiles instead of direct model invocation.
5461
-
5462
- :default: false
6276
+ def processing_agent_parameters(self) -> BatchAgentProps:
6277
+ '''(experimental) This parameter takes precedence over the ``processingBedrockModel`` parameter.
5463
6278
 
5464
- :stability: experimental
5465
- '''
5466
- result = self._values.get("use_cross_region_inference")
5467
- return typing.cast(typing.Optional[builtins.bool], result)
5468
-
5469
- @builtins.property
5470
- def processing_agent_parameters(self) -> typing.Optional[AgentProps]:
5471
- '''
5472
6279
  :stability: experimental
5473
6280
  '''
5474
6281
  result = self._values.get("processing_agent_parameters")
5475
- return typing.cast(typing.Optional[AgentProps], result)
6282
+ assert result is not None, "Required property 'processing_agent_parameters' is missing"
6283
+ return typing.cast(BatchAgentProps, result)
5476
6284
 
5477
6285
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
5478
6286
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -5490,20 +6298,28 @@ __all__ = [
5490
6298
  "AccessLog",
5491
6299
  "AccessLogProps",
5492
6300
  "AdditionalDistributionProps",
5493
- "AgentProps",
6301
+ "AgentDefinitionProps",
6302
+ "AgentToolsLocationDefinition",
5494
6303
  "AgenticDocumentProcessing",
5495
6304
  "AgenticDocumentProcessingProps",
6305
+ "BaseAgent",
6306
+ "BaseAgentProps",
5496
6307
  "BaseDocumentProcessing",
5497
6308
  "BaseDocumentProcessingProps",
6309
+ "BatchAgent",
6310
+ "BatchAgentProps",
5498
6311
  "BedrockCrossRegionInferencePrefix",
5499
6312
  "BedrockDocumentProcessing",
5500
6313
  "BedrockDocumentProcessingProps",
6314
+ "BedrockModelProps",
6315
+ "BedrockModelUtils",
5501
6316
  "CloudfrontDistributionObservabilityPropertyInjector",
5502
6317
  "CustomDomainConfig",
5503
6318
  "DataLoader",
5504
6319
  "DataLoaderProps",
5505
6320
  "DatabaseConfig",
5506
6321
  "DatabaseEngine",
6322
+ "DefaultAgentConfig",
5507
6323
  "DefaultDocumentProcessingConfig",
5508
6324
  "DefaultObservabilityConfig",
5509
6325
  "DefaultRuntimes",
@@ -5521,6 +6337,7 @@ __all__ = [
5521
6337
  "LambdaLogsPermissionsResult",
5522
6338
  "LambdaObservabilityPropertyInjector",
5523
6339
  "LogGroupDataProtectionProps",
6340
+ "LogGroupDataProtectionUtils",
5524
6341
  "Network",
5525
6342
  "NetworkProps",
5526
6343
  "ObservableProps",
@@ -5578,12 +6395,78 @@ def _typecheckingstub__14d3ed5928e5166082cd47a907ab754473c20bb045dc424135b469081
5578
6395
  """Type checking stubs"""
5579
6396
  pass
5580
6397
 
5581
- def _typecheckingstub__e1a82500ee072f393cd9a2ada2f9a3434219c7a51186f26fbba3061bd896d11e(
6398
+ def _typecheckingstub__4a2d1deab0cc9bf96473ffb32138a2c564c47ae7382fe5d2d1f0e43da3324272(
5582
6399
  *,
5583
- agent_system_prompt: typing.Optional[builtins.str] = None,
6400
+ bedrock_model: typing.Union[BedrockModelProps, typing.Dict[builtins.str, typing.Any]],
6401
+ system_prompt: _aws_cdk_aws_s3_assets_ceddda9d.Asset,
6402
+ additional_policy_statements_for_tools: typing.Optional[typing.Sequence[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]] = None,
5584
6403
  lambda_layers: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.LayerVersion]] = None,
5585
- tools_bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
5586
- tools_location: typing.Optional[typing.Sequence[builtins.str]] = None,
6404
+ tools: typing.Optional[typing.Sequence[_aws_cdk_aws_s3_assets_ceddda9d.Asset]] = None,
6405
+ ) -> None:
6406
+ """Type checking stubs"""
6407
+ pass
6408
+
6409
+ def _typecheckingstub__127edbe188000e5bd850f207a22867fb37ca32772d05138c8caeec887b302f84(
6410
+ *,
6411
+ bucket_name: builtins.str,
6412
+ is_file: builtins.bool,
6413
+ is_zip_archive: builtins.bool,
6414
+ key: builtins.str,
6415
+ ) -> None:
6416
+ """Type checking stubs"""
6417
+ pass
6418
+
6419
+ def _typecheckingstub__71b734ed2750632299f59fd7513ccde0ee5f9974b68f8c52b53e2255cdee86ff(
6420
+ scope: _constructs_77d1e7e8.Construct,
6421
+ id: builtins.str,
6422
+ *,
6423
+ agent_definition: typing.Union[AgentDefinitionProps, typing.Dict[builtins.str, typing.Any]],
6424
+ agent_name: builtins.str,
6425
+ enable_observability: typing.Optional[builtins.bool] = None,
6426
+ encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
6427
+ network: typing.Optional[Network] = None,
6428
+ removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
6429
+ log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
6430
+ metric_namespace: typing.Optional[builtins.str] = None,
6431
+ metric_service_name: typing.Optional[builtins.str] = None,
6432
+ ) -> None:
6433
+ """Type checking stubs"""
6434
+ pass
6435
+
6436
+ def _typecheckingstub__c2677306b18b77c5114d824ae734b83ac837c5ea4a5b8805948f0388f1dd7995(
6437
+ scope: _constructs_77d1e7e8.Construct,
6438
+ id: builtins.str,
6439
+ *,
6440
+ prompt: builtins.str,
6441
+ expect_json: typing.Optional[builtins.bool] = None,
6442
+ agent_definition: typing.Union[AgentDefinitionProps, typing.Dict[builtins.str, typing.Any]],
6443
+ agent_name: builtins.str,
6444
+ enable_observability: typing.Optional[builtins.bool] = None,
6445
+ encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
6446
+ network: typing.Optional[Network] = None,
6447
+ removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
6448
+ log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
6449
+ metric_namespace: typing.Optional[builtins.str] = None,
6450
+ metric_service_name: typing.Optional[builtins.str] = None,
6451
+ ) -> None:
6452
+ """Type checking stubs"""
6453
+ pass
6454
+
6455
+ def _typecheckingstub__e45242c855c6631d66b287b02966cc10c7006e63b282779a6fdb35ce0a2a7a67(
6456
+ *,
6457
+ cross_region_inference_prefix: typing.Optional[BedrockCrossRegionInferencePrefix] = None,
6458
+ fm_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
6459
+ use_cross_region_inference: typing.Optional[builtins.bool] = None,
6460
+ ) -> None:
6461
+ """Type checking stubs"""
6462
+ pass
6463
+
6464
+ def _typecheckingstub__c2d6dd904193a96951d351d9b9f88371b9b85f9f44a00b0cbdbfba9f24849527(
6465
+ scope: _constructs_77d1e7e8.Construct,
6466
+ *,
6467
+ cross_region_inference_prefix: typing.Optional[BedrockCrossRegionInferencePrefix] = None,
6468
+ fm_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
6469
+ use_cross_region_inference: typing.Optional[builtins.bool] = None,
5587
6470
  ) -> None:
5588
6471
  """Type checking stubs"""
5589
6472
  pass
@@ -5890,6 +6773,14 @@ def _typecheckingstub__544372751dab1bedee4ed043bef50312abd2658c1142e4b4809c06171
5890
6773
  """Type checking stubs"""
5891
6774
  pass
5892
6775
 
6776
+ def _typecheckingstub__e3a45e54ca44da7f036d13ce54f925e2a16d4e1ae6f2df04d64a1f10ca0133f0(
6777
+ scope: _constructs_77d1e7e8.Construct,
6778
+ props: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
6779
+ removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
6780
+ ) -> None:
6781
+ """Type checking stubs"""
6782
+ pass
6783
+
5893
6784
  def _typecheckingstub__6ad9a3df68ffea56f493c494b7c642fca53d11a7de99864bb5e94dffe00ed330(
5894
6785
  scope: _constructs_77d1e7e8.Construct,
5895
6786
  id: builtins.str,
@@ -6022,6 +6913,21 @@ def _typecheckingstub__011b55520774139b52c951d9cc59273f686e377b5415ee42a57650da5
6022
6913
  """Type checking stubs"""
6023
6914
  pass
6024
6915
 
6916
+ def _typecheckingstub__feb650555d9014f75886d26d16787c0c2e83a042e7e61844bf4d21c890ce479c(
6917
+ *,
6918
+ log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
6919
+ metric_namespace: typing.Optional[builtins.str] = None,
6920
+ metric_service_name: typing.Optional[builtins.str] = None,
6921
+ agent_definition: typing.Union[AgentDefinitionProps, typing.Dict[builtins.str, typing.Any]],
6922
+ agent_name: builtins.str,
6923
+ enable_observability: typing.Optional[builtins.bool] = None,
6924
+ encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
6925
+ network: typing.Optional[Network] = None,
6926
+ removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
6927
+ ) -> None:
6928
+ """Type checking stubs"""
6929
+ pass
6930
+
6025
6931
  def _typecheckingstub__117c249a26f3e7532983afc9123fadff3e20effcc69408df0f45a03eb720ea8a(
6026
6932
  scope: _constructs_77d1e7e8.Construct,
6027
6933
  id: builtins.str,
@@ -6064,19 +6970,34 @@ def _typecheckingstub__75e07bce24d48571be58cad69f751b10a17a738fdb9db601acdc689ff
6064
6970
  """Type checking stubs"""
6065
6971
  pass
6066
6972
 
6973
+ def _typecheckingstub__30511d5990f52f2808903d144bad5a5c502c00b0b8c98b4fd52a3df61c18b19d(
6974
+ *,
6975
+ log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
6976
+ metric_namespace: typing.Optional[builtins.str] = None,
6977
+ metric_service_name: typing.Optional[builtins.str] = None,
6978
+ agent_definition: typing.Union[AgentDefinitionProps, typing.Dict[builtins.str, typing.Any]],
6979
+ agent_name: builtins.str,
6980
+ enable_observability: typing.Optional[builtins.bool] = None,
6981
+ encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
6982
+ network: typing.Optional[Network] = None,
6983
+ removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
6984
+ prompt: builtins.str,
6985
+ expect_json: typing.Optional[builtins.bool] = None,
6986
+ ) -> None:
6987
+ """Type checking stubs"""
6988
+ pass
6989
+
6067
6990
  def _typecheckingstub__7393f9c6b2af93f7d8668b32cec54ba8c77259644ab01f57b3fbd50c78923134(
6068
6991
  scope: _constructs_77d1e7e8.Construct,
6069
6992
  id: builtins.str,
6070
6993
  *,
6071
- classification_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
6994
+ classification_bedrock_model: typing.Optional[typing.Union[BedrockModelProps, typing.Dict[builtins.str, typing.Any]]] = None,
6072
6995
  classification_prompt: typing.Optional[builtins.str] = None,
6073
- cross_region_inference_prefix: typing.Optional[BedrockCrossRegionInferencePrefix] = None,
6074
6996
  enrichment_lambda_function: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
6075
6997
  post_processing_lambda_function: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
6076
- processing_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
6998
+ processing_bedrock_model: typing.Optional[typing.Union[BedrockModelProps, typing.Dict[builtins.str, typing.Any]]] = None,
6077
6999
  processing_prompt: typing.Optional[builtins.str] = None,
6078
7000
  step_timeouts: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
6079
- use_cross_region_inference: typing.Optional[builtins.bool] = None,
6080
7001
  document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
6081
7002
  enable_observability: typing.Optional[builtins.bool] = None,
6082
7003
  encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
@@ -6093,8 +7014,11 @@ def _typecheckingstub__7393f9c6b2af93f7d8668b32cec54ba8c77259644ab01f57b3fbd50c7
6093
7014
  pass
6094
7015
 
6095
7016
  def _typecheckingstub__b765dc24cd888585470934e534f4d8e979ddebd46e42601cc8b50c73499e7d4e(
6096
- fm_model: _aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier,
6097
7017
  id: builtins.str,
7018
+ *,
7019
+ cross_region_inference_prefix: typing.Optional[BedrockCrossRegionInferencePrefix] = None,
7020
+ fm_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
7021
+ use_cross_region_inference: typing.Optional[builtins.bool] = None,
6098
7022
  ) -> None:
6099
7023
  """Type checking stubs"""
6100
7024
  pass
@@ -6112,15 +7036,13 @@ def _typecheckingstub__9606a6418d69bde20176ec33b27eaa22c0e0cdb6b105d382e9d038566
6112
7036
  network: typing.Optional[Network] = None,
6113
7037
  removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
6114
7038
  workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
6115
- classification_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
7039
+ classification_bedrock_model: typing.Optional[typing.Union[BedrockModelProps, typing.Dict[builtins.str, typing.Any]]] = None,
6116
7040
  classification_prompt: typing.Optional[builtins.str] = None,
6117
- cross_region_inference_prefix: typing.Optional[BedrockCrossRegionInferencePrefix] = None,
6118
7041
  enrichment_lambda_function: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
6119
7042
  post_processing_lambda_function: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
6120
- processing_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
7043
+ processing_bedrock_model: typing.Optional[typing.Union[BedrockModelProps, typing.Dict[builtins.str, typing.Any]]] = None,
6121
7044
  processing_prompt: typing.Optional[builtins.str] = None,
6122
7045
  step_timeouts: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
6123
- use_cross_region_inference: typing.Optional[builtins.bool] = None,
6124
7046
  ) -> None:
6125
7047
  """Type checking stubs"""
6126
7048
  pass
@@ -6129,16 +7051,14 @@ def _typecheckingstub__b7f396236f637ec7234d81b355cf773497392b537455f3d888c4b7170
6129
7051
  scope: _constructs_77d1e7e8.Construct,
6130
7052
  id: builtins.str,
6131
7053
  *,
6132
- processing_agent_parameters: typing.Optional[typing.Union[AgentProps, typing.Dict[builtins.str, typing.Any]]] = None,
6133
- classification_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
7054
+ processing_agent_parameters: typing.Union[BatchAgentProps, typing.Dict[builtins.str, typing.Any]],
7055
+ classification_bedrock_model: typing.Optional[typing.Union[BedrockModelProps, typing.Dict[builtins.str, typing.Any]]] = None,
6134
7056
  classification_prompt: typing.Optional[builtins.str] = None,
6135
- cross_region_inference_prefix: typing.Optional[BedrockCrossRegionInferencePrefix] = None,
6136
7057
  enrichment_lambda_function: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
6137
7058
  post_processing_lambda_function: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
6138
- processing_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
7059
+ processing_bedrock_model: typing.Optional[typing.Union[BedrockModelProps, typing.Dict[builtins.str, typing.Any]]] = None,
6139
7060
  processing_prompt: typing.Optional[builtins.str] = None,
6140
7061
  step_timeouts: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
6141
- use_cross_region_inference: typing.Optional[builtins.bool] = None,
6142
7062
  document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
6143
7063
  enable_observability: typing.Optional[builtins.bool] = None,
6144
7064
  encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
@@ -6167,16 +7087,14 @@ def _typecheckingstub__da9ccab0035a06d18b5aa3f2de69201b3bbd6e30f7707a291977a0e4f
6167
7087
  network: typing.Optional[Network] = None,
6168
7088
  removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
6169
7089
  workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
6170
- classification_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
7090
+ classification_bedrock_model: typing.Optional[typing.Union[BedrockModelProps, typing.Dict[builtins.str, typing.Any]]] = None,
6171
7091
  classification_prompt: typing.Optional[builtins.str] = None,
6172
- cross_region_inference_prefix: typing.Optional[BedrockCrossRegionInferencePrefix] = None,
6173
7092
  enrichment_lambda_function: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
6174
7093
  post_processing_lambda_function: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
6175
- processing_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
7094
+ processing_bedrock_model: typing.Optional[typing.Union[BedrockModelProps, typing.Dict[builtins.str, typing.Any]]] = None,
6176
7095
  processing_prompt: typing.Optional[builtins.str] = None,
6177
7096
  step_timeouts: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
6178
- use_cross_region_inference: typing.Optional[builtins.bool] = None,
6179
- processing_agent_parameters: typing.Optional[typing.Union[AgentProps, typing.Dict[builtins.str, typing.Any]]] = None,
7097
+ processing_agent_parameters: typing.Union[BatchAgentProps, typing.Dict[builtins.str, typing.Any]],
6180
7098
  ) -> None:
6181
7099
  """Type checking stubs"""
6182
7100
  pass