From 31492c621c835e3fa08de2bbac24a0adc6fc2d69 Mon Sep 17 00:00:00 2001
From: Hiroki Yamazaki <121911537+ymhiroki@users.noreply.github.com>
Date: Tue, 23 Apr 2024 03:49:41 +0900
Subject: [PATCH] chore(bedrock): support claude3-opus and base models for
 provisioned throughput (#29905)

### Issue # (if applicable)

N/A

### Reason for this change

[Anthropic's Claude 3 Opus mode is now available](https://aws.amazon.com/jp/blogs/aws/anthropics-claude-3-opus-model-on-amazon-bedrock/), and new model IDs are published in [the guide](https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html).

### Description of changes

I added model IDs for Claude 3 Opus for on-demand throughput and Claude 3 Sonnet/Haiku for provisioned throughput.

### Checklist
- [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md)

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
---
 .../aws-bedrock/lib/foundation-model.ts           | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/packages/aws-cdk-lib/aws-bedrock/lib/foundation-model.ts b/packages/aws-cdk-lib/aws-bedrock/lib/foundation-model.ts
index e7a1913f1a7bc..8476d1088678e 100644
--- a/packages/aws-cdk-lib/aws-bedrock/lib/foundation-model.ts
+++ b/packages/aws-cdk-lib/aws-bedrock/lib/foundation-model.ts
@@ -89,9 +89,24 @@ export class FoundationModelIdentifier {
   /** Base model "anthropic.claude-3-sonnet-20240229-v1:0". */
   public static readonly ANTHROPIC_CLAUDE_3_SONNET_20240229_V1_0 = new FoundationModelIdentifier('anthropic.claude-3-sonnet-20240229-v1:0');
 
+  /** Base model "anthropic.claude-3-sonnet-20240229-v1:0:28k" */
+  public static readonly ANTHROPIC_CLAUDE_3_SONNET_20240229_V1_0_28K = new FoundationModelIdentifier('anthropic.claude-3-sonnet-20240229-v1:0:28k');
+
+  /** Base model "anthropic.claude-3-sonnet-20240229-v1:0:200k" */
+  public static readonly ANTHROPIC_CLAUDE_3_SONNET_20240229_V1_0_200K = new FoundationModelIdentifier('anthropic.claude-3-sonnet-20240229-v1:0:200k');
+
   /** Base model "anthropic.claude-3-haiku-20240307-v1:0". */
   public static readonly ANTHROPIC_CLAUDE_3_HAIKU_20240307_V1_0 = new FoundationModelIdentifier('anthropic.claude-3-haiku-20240307-v1:0');
 
+  /** Base model "anthropic.claude-3-haiku-20240307-v1:0:48k" */
+  public static readonly ANTHROPIC_CLAUDE_3_HAIKU_20240307_V1_0_48K = new FoundationModelIdentifier('anthropic.claude-3-haiku-20240307-v1:0:48k');
+
+  /** Base model "anthropic.claude-3-haiku-20240307-v1:0:200k" */
+  public static readonly ANTHROPIC_CLAUDE_3_HAIKU_20240307_V1_0_200K = new FoundationModelIdentifier('anthropic.claude-3-haiku-20240307-v1:0:200k');
+
+  /** Base model "anthropic.claude-3-opus-20240229-v1:0" */
+  public static readonly ANTHROPIC_CLAUDE_3_OPUS_20240229_V1_0 = new FoundationModelIdentifier('anthropic.claude-3-opus-20240229-v1:0');
+
   /** Base model "anthropic.claude-instant-v1". */
   public static readonly ANTHROPIC_CLAUDE_INSTANT_V1 = new FoundationModelIdentifier('anthropic.claude-instant-v1');