@composurecdk/bedrock 0.10.1 → 0.10.3

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.
Files changed (102) hide show
  1. package/README.md +110 -17
  2. package/dist/commonjs/alarm-definition.d.ts +29 -0
  3. package/dist/commonjs/alarm-definition.d.ts.map +1 -0
  4. package/dist/commonjs/alarm-definition.js +53 -0
  5. package/dist/commonjs/alarm-definition.js.map +1 -0
  6. package/dist/commonjs/application-inference-profile-builder.d.ts +44 -0
  7. package/dist/commonjs/application-inference-profile-builder.d.ts.map +1 -0
  8. package/dist/commonjs/application-inference-profile-builder.js +51 -0
  9. package/dist/commonjs/application-inference-profile-builder.js.map +1 -0
  10. package/dist/commonjs/grants.d.ts +25 -1
  11. package/dist/commonjs/grants.d.ts.map +1 -1
  12. package/dist/commonjs/grants.js +57 -6
  13. package/dist/commonjs/grants.js.map +1 -1
  14. package/dist/commonjs/guardrail-alarms.d.ts +40 -0
  15. package/dist/commonjs/guardrail-alarms.d.ts.map +1 -0
  16. package/dist/commonjs/guardrail-alarms.js +41 -0
  17. package/dist/commonjs/guardrail-alarms.js.map +1 -0
  18. package/dist/commonjs/guardrail-builder.d.ts +70 -0
  19. package/dist/commonjs/guardrail-builder.d.ts.map +1 -0
  20. package/dist/commonjs/guardrail-builder.js +78 -0
  21. package/dist/commonjs/guardrail-builder.js.map +1 -0
  22. package/dist/commonjs/guardrail-defaults.d.ts +25 -0
  23. package/dist/commonjs/guardrail-defaults.d.ts.map +1 -0
  24. package/dist/commonjs/guardrail-defaults.js +30 -0
  25. package/dist/commonjs/guardrail-defaults.js.map +1 -0
  26. package/dist/commonjs/index.d.ts +8 -2
  27. package/dist/commonjs/index.d.ts.map +1 -1
  28. package/dist/commonjs/index.js +15 -1
  29. package/dist/commonjs/index.js.map +1 -1
  30. package/dist/commonjs/inference-profile.d.ts +19 -0
  31. package/dist/commonjs/inference-profile.d.ts.map +1 -1
  32. package/dist/commonjs/inference-profile.js.map +1 -1
  33. package/dist/commonjs/inference-target.d.ts +14 -7
  34. package/dist/commonjs/inference-target.d.ts.map +1 -1
  35. package/dist/commonjs/inference-target.js +63 -35
  36. package/dist/commonjs/inference-target.js.map +1 -1
  37. package/dist/commonjs/model-alarm-defaults.d.ts.map +1 -1
  38. package/dist/commonjs/model-alarm-defaults.js +5 -14
  39. package/dist/commonjs/model-alarm-defaults.js.map +1 -1
  40. package/dist/commonjs/model-alarms.d.ts +2 -2
  41. package/dist/commonjs/model-alarms.d.ts.map +1 -1
  42. package/dist/commonjs/model-alarms.js +35 -58
  43. package/dist/commonjs/model-alarms.js.map +1 -1
  44. package/dist/commonjs/model-invocation-logging-alarms.d.ts +42 -0
  45. package/dist/commonjs/model-invocation-logging-alarms.d.ts.map +1 -0
  46. package/dist/commonjs/model-invocation-logging-alarms.js +59 -0
  47. package/dist/commonjs/model-invocation-logging-alarms.js.map +1 -0
  48. package/dist/commonjs/model-invocation-logging-builder.d.ts +84 -0
  49. package/dist/commonjs/model-invocation-logging-builder.d.ts.map +1 -0
  50. package/dist/commonjs/model-invocation-logging-builder.js +135 -0
  51. package/dist/commonjs/model-invocation-logging-builder.js.map +1 -0
  52. package/dist/esm/alarm-definition.d.ts +29 -0
  53. package/dist/esm/alarm-definition.d.ts.map +1 -0
  54. package/dist/esm/alarm-definition.js +48 -0
  55. package/dist/esm/alarm-definition.js.map +1 -0
  56. package/dist/esm/application-inference-profile-builder.d.ts +44 -0
  57. package/dist/esm/application-inference-profile-builder.d.ts.map +1 -0
  58. package/dist/esm/application-inference-profile-builder.js +48 -0
  59. package/dist/esm/application-inference-profile-builder.js.map +1 -0
  60. package/dist/esm/grants.d.ts +25 -1
  61. package/dist/esm/grants.d.ts.map +1 -1
  62. package/dist/esm/grants.js +58 -7
  63. package/dist/esm/grants.js.map +1 -1
  64. package/dist/esm/guardrail-alarms.d.ts +40 -0
  65. package/dist/esm/guardrail-alarms.d.ts.map +1 -0
  66. package/dist/esm/guardrail-alarms.js +37 -0
  67. package/dist/esm/guardrail-alarms.js.map +1 -0
  68. package/dist/esm/guardrail-builder.d.ts +70 -0
  69. package/dist/esm/guardrail-builder.d.ts.map +1 -0
  70. package/dist/esm/guardrail-builder.js +75 -0
  71. package/dist/esm/guardrail-builder.js.map +1 -0
  72. package/dist/esm/guardrail-defaults.d.ts +25 -0
  73. package/dist/esm/guardrail-defaults.d.ts.map +1 -0
  74. package/dist/esm/guardrail-defaults.js +27 -0
  75. package/dist/esm/guardrail-defaults.js.map +1 -0
  76. package/dist/esm/index.d.ts +8 -2
  77. package/dist/esm/index.d.ts.map +1 -1
  78. package/dist/esm/index.js +7 -1
  79. package/dist/esm/index.js.map +1 -1
  80. package/dist/esm/inference-profile.d.ts +19 -0
  81. package/dist/esm/inference-profile.d.ts.map +1 -1
  82. package/dist/esm/inference-profile.js.map +1 -1
  83. package/dist/esm/inference-target.d.ts +14 -7
  84. package/dist/esm/inference-target.d.ts.map +1 -1
  85. package/dist/esm/inference-target.js +62 -35
  86. package/dist/esm/inference-target.js.map +1 -1
  87. package/dist/esm/model-alarm-defaults.d.ts.map +1 -1
  88. package/dist/esm/model-alarm-defaults.js +1 -10
  89. package/dist/esm/model-alarm-defaults.js.map +1 -1
  90. package/dist/esm/model-alarms.d.ts +2 -2
  91. package/dist/esm/model-alarms.d.ts.map +1 -1
  92. package/dist/esm/model-alarms.js +35 -58
  93. package/dist/esm/model-alarms.js.map +1 -1
  94. package/dist/esm/model-invocation-logging-alarms.d.ts +42 -0
  95. package/dist/esm/model-invocation-logging-alarms.d.ts.map +1 -0
  96. package/dist/esm/model-invocation-logging-alarms.js +55 -0
  97. package/dist/esm/model-invocation-logging-alarms.js.map +1 -0
  98. package/dist/esm/model-invocation-logging-builder.d.ts +84 -0
  99. package/dist/esm/model-invocation-logging-builder.d.ts.map +1 -0
  100. package/dist/esm/model-invocation-logging-builder.js +131 -0
  101. package/dist/esm/model-invocation-logging-builder.js.map +1 -0
  102. package/package.json +5 -11
@@ -0,0 +1,70 @@
1
+ import { CfnGuardrail, type CfnGuardrailProps, CfnGuardrailVersion } from "aws-cdk-lib/aws-bedrock";
2
+ import type { Alarm } from "aws-cdk-lib/aws-cloudwatch";
3
+ import type { IConstruct } from "constructs";
4
+ import { COPY_STATE, type Lifecycle, type Resolvable } from "@composurecdk/core";
5
+ import { type ITaggedBuilder } from "@composurecdk/cloudformation";
6
+ import { AlarmDefinitionBuilder } from "@composurecdk/cloudwatch";
7
+ import { type GuardrailAlarmConfig, type GuardrailMetrics } from "./guardrail-alarms.js";
8
+ /** A guardrail's ARN and published version. */
9
+ export interface GuardrailReference {
10
+ /** The guardrail's ARN, without a version. */
11
+ readonly guardrailArn: string;
12
+ /** The published version, e.g. `"1"`. */
13
+ readonly version: string;
14
+ }
15
+ /** Configuration properties for {@link createGuardrailBuilder}. */
16
+ export interface GuardrailBuilderProps extends Omit<CfnGuardrailProps, "tags" | "kmsKeyArn"> {
17
+ /** A customer managed key to encrypt the guardrail with. */
18
+ kmsKeyArn?: Resolvable<NonNullable<CfnGuardrailProps["kmsKeyArn"]>>;
19
+ /**
20
+ * Configuration for the recommended alarms, which are all opt-in. Set to
21
+ * `false` to disable them; alarms added with `addAlarm()` are unaffected.
22
+ */
23
+ recommendedAlarms?: GuardrailAlarmConfig | false;
24
+ }
25
+ /** The build output of an {@link IGuardrailBuilder}. */
26
+ export interface GuardrailBuilderResult {
27
+ guardrail: CfnGuardrail;
28
+ /** The published version callers should use, rather than the working draft. */
29
+ version: CfnGuardrailVersion;
30
+ /** The guardrail's ARN and published version, for grants and invocations. */
31
+ reference: GuardrailReference;
32
+ /** The CloudWatch alarms created, keyed by alarm key. */
33
+ alarms: Record<string, Alarm>;
34
+ }
35
+ /**
36
+ * A fluent builder for an Amazon Bedrock guardrail.
37
+ *
38
+ * @see {@link createGuardrailBuilder}
39
+ */
40
+ export type IGuardrailBuilder = ITaggedBuilder<GuardrailBuilderProps, GuardrailBuilder>;
41
+ declare class GuardrailBuilder implements Lifecycle<GuardrailBuilderResult> {
42
+ #private;
43
+ props: Partial<GuardrailBuilderProps>;
44
+ /**
45
+ * Adds a custom alarm. The metric factory receives the guardrail version's
46
+ * {@link GuardrailMetrics}.
47
+ */
48
+ addAlarm(key: string, configure: (alarm: AlarmDefinitionBuilder<GuardrailMetrics>) => AlarmDefinitionBuilder<GuardrailMetrics>): this;
49
+ /** @internal — see ADR-0005. */
50
+ [COPY_STATE](target: GuardrailBuilder): void;
51
+ build(scope: IConstruct, id: string, context?: Record<string, object>): GuardrailBuilderResult;
52
+ }
53
+ /**
54
+ * Creates a builder for an Amazon Bedrock guardrail and a published version
55
+ * of it ([GENSEC02-BP01](https://docs.aws.amazon.com/wellarchitected/latest/generative-ai-lens/gensec02-bp01.html)).
56
+ *
57
+ * By default it filters every harmful-content category and prompt attacks at
58
+ * `HIGH` ({@link GUARDRAIL_DEFAULTS}). Pass its `reference` to
59
+ * `modelGrants.invoke(target, { requireGuardrail })` to make callers use it.
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * createGuardrailBuilder()
64
+ * .name("support-assistant")
65
+ * .topicPolicyConfig({ topicsConfig: [{ name: "Legal", definition: "Legal advice.", type: "DENY" }] });
66
+ * ```
67
+ */
68
+ export declare function createGuardrailBuilder(): IGuardrailBuilder;
69
+ export {};
70
+ //# sourceMappingURL=guardrail-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrail-builder.d.ts","sourceRoot":"","sources":["../../src/guardrail-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACpG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,KAAK,SAAS,EAAW,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,KAAK,cAAc,EAAiB,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAgB,MAAM,0BAA0B,CAAC;AAChF,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EAGtB,MAAM,uBAAuB,CAAC;AAG/B,+CAA+C;AAC/C,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,yCAAyC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,mEAAmE;AACnE,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,WAAW,CAAC;IAC1F,4DAA4D;IAC5D,SAAS,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAEpE;;;OAGG;IACH,iBAAiB,CAAC,EAAE,oBAAoB,GAAG,KAAK,CAAC;CAClD;AAED,wDAAwD;AACxD,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,YAAY,CAAC;IACxB,+EAA+E;IAC/E,OAAO,EAAE,mBAAmB,CAAC;IAC7B,6EAA6E;IAC7E,SAAS,EAAE,kBAAkB,CAAC;IAC9B,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAC;AAWxF,cAAM,gBAAiB,YAAW,SAAS,CAAC,sBAAsB,CAAC;;IACjE,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAM;IAG3C;;;OAGG;IACH,QAAQ,CACN,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,CACT,KAAK,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,KAC5C,sBAAsB,CAAC,gBAAgB,CAAC,GAC5C,IAAI;IAKP,gCAAgC;IAChC,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAI5C,KAAK,CACH,KAAK,EAAE,UAAU,EACjB,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACnC,sBAAsB;CA4B1B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,IAAI,iBAAiB,CAE1D"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createGuardrailBuilder = createGuardrailBuilder;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const aws_bedrock_1 = require("aws-cdk-lib/aws-bedrock");
6
+ const core_1 = require("@composurecdk/core");
7
+ const cloudformation_1 = require("@composurecdk/cloudformation");
8
+ const cloudwatch_1 = require("@composurecdk/cloudwatch");
9
+ const guardrail_alarms_js_1 = require("./guardrail-alarms.js");
10
+ const guardrail_defaults_js_1 = require("./guardrail-defaults.js");
11
+ /** 32-bit FNV-1a, as 8 hex digits. */
12
+ function fnv1a(value) {
13
+ let hash = 0x811c9dc5;
14
+ for (let i = 0; i < value.length; i++) {
15
+ hash = Math.imul(hash ^ value.charCodeAt(i), 0x01000193) >>> 0;
16
+ }
17
+ return hash.toString(16).padStart(8, "0");
18
+ }
19
+ class GuardrailBuilder {
20
+ props = {};
21
+ #customAlarms = [];
22
+ /**
23
+ * Adds a custom alarm. The metric factory receives the guardrail version's
24
+ * {@link GuardrailMetrics}.
25
+ */
26
+ addAlarm(key, configure) {
27
+ this.#customAlarms.push(configure(new cloudwatch_1.AlarmDefinitionBuilder(key)));
28
+ return this;
29
+ }
30
+ /** @internal — see ADR-0005. */
31
+ [core_1.COPY_STATE](target) {
32
+ target.#customAlarms.push(...this.#customAlarms);
33
+ }
34
+ build(scope, id, context = {}) {
35
+ const { kmsKeyArn, recommendedAlarms, ...rest } = this.props;
36
+ if (!rest.name) {
37
+ throw new Error(`GuardrailBuilder "${id}" requires a name. Call .name().`);
38
+ }
39
+ const props = {
40
+ ...guardrail_defaults_js_1.GUARDRAIL_DEFAULTS,
41
+ ...rest,
42
+ name: rest.name,
43
+ ...(kmsKeyArn !== undefined && { kmsKeyArn: (0, core_1.resolve)(kmsKeyArn, context) }),
44
+ };
45
+ const guardrail = new aws_bedrock_1.CfnGuardrail(scope, id, props);
46
+ // A version is a snapshot, so a configuration change publishes a new one.
47
+ const fingerprint = fnv1a(JSON.stringify(aws_cdk_lib_1.Stack.of(scope).resolve(props)));
48
+ const version = new aws_bedrock_1.CfnGuardrailVersion(scope, `${id}Version${fingerprint}`, {
49
+ guardrailIdentifier: guardrail.attrGuardrailId,
50
+ });
51
+ const reference = { guardrailArn: guardrail.attrGuardrailArn, version: version.attrVersion };
52
+ const metrics = (0, guardrail_alarms_js_1.guardrailMetrics)(reference);
53
+ const alarms = (0, cloudwatch_1.createAlarms)(scope, id, [
54
+ ...(0, guardrail_alarms_js_1.resolveGuardrailAlarmDefinitions)(metrics, recommendedAlarms),
55
+ ...this.#customAlarms.map((b) => b.resolve(metrics)),
56
+ ]);
57
+ return { guardrail, version, reference, alarms };
58
+ }
59
+ }
60
+ /**
61
+ * Creates a builder for an Amazon Bedrock guardrail and a published version
62
+ * of it ([GENSEC02-BP01](https://docs.aws.amazon.com/wellarchitected/latest/generative-ai-lens/gensec02-bp01.html)).
63
+ *
64
+ * By default it filters every harmful-content category and prompt attacks at
65
+ * `HIGH` ({@link GUARDRAIL_DEFAULTS}). Pass its `reference` to
66
+ * `modelGrants.invoke(target, { requireGuardrail })` to make callers use it.
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * createGuardrailBuilder()
71
+ * .name("support-assistant")
72
+ * .topicPolicyConfig({ topicsConfig: [{ name: "Legal", definition: "Legal advice.", type: "DENY" }] });
73
+ * ```
74
+ */
75
+ function createGuardrailBuilder() {
76
+ return (0, cloudformation_1.taggedBuilder)(GuardrailBuilder);
77
+ }
78
+ //# sourceMappingURL=guardrail-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrail-builder.js","sourceRoot":"","sources":["../../src/guardrail-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Defaults for {@link createGuardrailBuilder}.
3
+ *
4
+ * @see https://docs.aws.amazon.com/wellarchitected/latest/generative-ai-lens/gensec02-bp01.html
5
+ */
6
+ export declare const GUARDRAIL_DEFAULTS: {
7
+ blockedInputMessaging: string;
8
+ blockedOutputsMessaging: string;
9
+ /**
10
+ * Every harmful-content category and prompt attacks, at `HIGH`. AWS
11
+ * recommends no strengths; `HIGH` blocks the most, and a category that
12
+ * blocks legitimate content can be lowered. Prompt attacks only apply to
13
+ * input, so their output strength must be `NONE`.
14
+ *
15
+ * @see https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-content-filters.html
16
+ */
17
+ contentPolicyConfig: {
18
+ filtersConfig: {
19
+ type: string;
20
+ inputStrength: string;
21
+ outputStrength: string;
22
+ }[];
23
+ };
24
+ };
25
+ //# sourceMappingURL=guardrail-defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrail-defaults.d.ts","sourceRoot":"","sources":["../../src/guardrail-defaults.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;IAI7B;;;;;;;OAOG;;;;;;;;CAOiC,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GUARDRAIL_DEFAULTS = void 0;
4
+ const HARMFUL_CONTENT = ["SEXUAL", "VIOLENCE", "HATE", "INSULTS", "MISCONDUCT"];
5
+ /** The Bedrock console's default message for a blocked prompt or response. */
6
+ const BLOCKED_MESSAGE = "Sorry, the model cannot answer this question.";
7
+ /**
8
+ * Defaults for {@link createGuardrailBuilder}.
9
+ *
10
+ * @see https://docs.aws.amazon.com/wellarchitected/latest/generative-ai-lens/gensec02-bp01.html
11
+ */
12
+ exports.GUARDRAIL_DEFAULTS = {
13
+ blockedInputMessaging: BLOCKED_MESSAGE,
14
+ blockedOutputsMessaging: BLOCKED_MESSAGE,
15
+ /**
16
+ * Every harmful-content category and prompt attacks, at `HIGH`. AWS
17
+ * recommends no strengths; `HIGH` blocks the most, and a category that
18
+ * blocks legitimate content can be lowered. Prompt attacks only apply to
19
+ * input, so their output strength must be `NONE`.
20
+ *
21
+ * @see https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-content-filters.html
22
+ */
23
+ contentPolicyConfig: {
24
+ filtersConfig: [
25
+ ...HARMFUL_CONTENT.map((type) => ({ type, inputStrength: "HIGH", outputStrength: "HIGH" })),
26
+ { type: "PROMPT_ATTACK", inputStrength: "HIGH", outputStrength: "NONE" },
27
+ ],
28
+ },
29
+ };
30
+ //# sourceMappingURL=guardrail-defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrail-defaults.js","sourceRoot":"","sources":["../../src/guardrail-defaults.ts"],"names":[],"mappings":";;;AAEA,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;AAEhF,8EAA8E;AAC9E,MAAM,eAAe,GAAG,+CAA+C,CAAC;AAExE;;;;GAIG;AACU,QAAA,kBAAkB,GAAG;IAChC,qBAAqB,EAAE,eAAe;IACtC,uBAAuB,EAAE,eAAe;IAExC;;;;;;;OAOG;IACH,mBAAmB,EAAE;QACnB,aAAa,EAAE;YACb,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3F,EAAE,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE;SACzE;KACF;CACmC,CAAC"}
@@ -1,8 +1,14 @@
1
- export { foundationModelFor, type GeographicInferenceProfile, type GeographicInferenceProfileOptions, type GlobalInferenceProfile, INFERENCE_PROFILE_GEOGRAPHIES, type InferenceProfile, type InferenceProfileGeography, inferenceProfile, } from "./inference-profile.js";
1
+ export { type ApplicationInferenceProfileBuilderProps, type ApplicationInferenceProfileBuilderResult, createApplicationInferenceProfileBuilder, type IApplicationInferenceProfileBuilder, } from "./application-inference-profile-builder.js";
2
+ export { type ApplicationInferenceProfile, foundationModelFor, type GeographicInferenceProfile, type GeographicInferenceProfileOptions, type GlobalInferenceProfile, INFERENCE_PROFILE_GEOGRAPHIES, type InferenceProfile, type InferenceProfileGeography, inferenceProfile, } from "./inference-profile.js";
2
3
  export { type InferenceTarget, invocationArns } from "./inference-target.js";
3
- export { modelGrants } from "./grants.js";
4
+ export { guardrailGrants, type ModelInvokeGrantOptions, modelGrants } from "./grants.js";
5
+ export { createGuardrailBuilder, type GuardrailBuilderProps, type GuardrailBuilderResult, type GuardrailReference, type IGuardrailBuilder, } from "./guardrail-builder.js";
6
+ export { GUARDRAIL_DEFAULTS } from "./guardrail-defaults.js";
7
+ export { type GuardrailAlarmConfig, type GuardrailMetrics, guardrailMetrics, } from "./guardrail-alarms.js";
4
8
  export { createModelAlarmBuilder, type IModelAlarmBuilder, type ModelAlarmBuilderProps, type ModelAlarmBuilderResult, } from "./model-alarm-builder.js";
5
9
  export { type ModelAlarmConfig, type QuotaAlarmConfig } from "./model-alarm-config.js";
6
10
  export { MODEL_ALARM_DEFAULTS } from "./model-alarm-defaults.js";
7
11
  export { type ModelAlarmTarget, type ModelMetrics, modelMetrics } from "./model-alarms.js";
12
+ export { createModelInvocationLoggingBuilder, type IModelInvocationLoggingBuilder, MODEL_INVOCATION_LOGGING_DEFAULTS, type ModelInvocationLoggingBuilderProps, type ModelInvocationLoggingBuilderResult, type ModelInvocationLoggingModalities, } from "./model-invocation-logging-builder.js";
13
+ export { MODEL_INVOCATION_LOGGING_ALARM_DEFAULTS, type ModelInvocationLoggingAlarmConfig, } from "./model-invocation-logging-alarms.js";
8
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,0BAA0B,EAC/B,KAAK,iCAAiC,EACtC,KAAK,sBAAsB,EAC3B,6BAA6B,EAC7B,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,GAC7B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uCAAuC,EAC5C,KAAK,wCAAwC,EAC7C,wCAAwC,EACxC,KAAK,mCAAmC,GACzC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,KAAK,2BAA2B,EAChC,kBAAkB,EAClB,KAAK,0BAA0B,EAC/B,KAAK,iCAAiC,EACtC,KAAK,sBAAsB,EAC3B,6BAA6B,EAC7B,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,KAAK,uBAAuB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EACL,sBAAsB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,GAC7B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EACL,mCAAmC,EACnC,KAAK,8BAA8B,EACnC,iCAAiC,EACjC,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EACxC,KAAK,gCAAgC,GACtC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,uCAAuC,EACvC,KAAK,iCAAiC,GACvC,MAAM,sCAAsC,CAAC"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.modelMetrics = exports.MODEL_ALARM_DEFAULTS = exports.createModelAlarmBuilder = exports.modelGrants = exports.invocationArns = exports.inferenceProfile = exports.INFERENCE_PROFILE_GEOGRAPHIES = exports.foundationModelFor = void 0;
3
+ exports.MODEL_INVOCATION_LOGGING_ALARM_DEFAULTS = exports.MODEL_INVOCATION_LOGGING_DEFAULTS = exports.createModelInvocationLoggingBuilder = exports.modelMetrics = exports.MODEL_ALARM_DEFAULTS = exports.createModelAlarmBuilder = exports.guardrailMetrics = exports.GUARDRAIL_DEFAULTS = exports.createGuardrailBuilder = exports.modelGrants = exports.guardrailGrants = exports.invocationArns = exports.inferenceProfile = exports.INFERENCE_PROFILE_GEOGRAPHIES = exports.foundationModelFor = exports.createApplicationInferenceProfileBuilder = void 0;
4
+ var application_inference_profile_builder_js_1 = require("./application-inference-profile-builder.js");
5
+ Object.defineProperty(exports, "createApplicationInferenceProfileBuilder", { enumerable: true, get: function () { return application_inference_profile_builder_js_1.createApplicationInferenceProfileBuilder; } });
4
6
  var inference_profile_js_1 = require("./inference-profile.js");
5
7
  Object.defineProperty(exports, "foundationModelFor", { enumerable: true, get: function () { return inference_profile_js_1.foundationModelFor; } });
6
8
  Object.defineProperty(exports, "INFERENCE_PROFILE_GEOGRAPHIES", { enumerable: true, get: function () { return inference_profile_js_1.INFERENCE_PROFILE_GEOGRAPHIES; } });
@@ -8,11 +10,23 @@ Object.defineProperty(exports, "inferenceProfile", { enumerable: true, get: func
8
10
  var inference_target_js_1 = require("./inference-target.js");
9
11
  Object.defineProperty(exports, "invocationArns", { enumerable: true, get: function () { return inference_target_js_1.invocationArns; } });
10
12
  var grants_js_1 = require("./grants.js");
13
+ Object.defineProperty(exports, "guardrailGrants", { enumerable: true, get: function () { return grants_js_1.guardrailGrants; } });
11
14
  Object.defineProperty(exports, "modelGrants", { enumerable: true, get: function () { return grants_js_1.modelGrants; } });
15
+ var guardrail_builder_js_1 = require("./guardrail-builder.js");
16
+ Object.defineProperty(exports, "createGuardrailBuilder", { enumerable: true, get: function () { return guardrail_builder_js_1.createGuardrailBuilder; } });
17
+ var guardrail_defaults_js_1 = require("./guardrail-defaults.js");
18
+ Object.defineProperty(exports, "GUARDRAIL_DEFAULTS", { enumerable: true, get: function () { return guardrail_defaults_js_1.GUARDRAIL_DEFAULTS; } });
19
+ var guardrail_alarms_js_1 = require("./guardrail-alarms.js");
20
+ Object.defineProperty(exports, "guardrailMetrics", { enumerable: true, get: function () { return guardrail_alarms_js_1.guardrailMetrics; } });
12
21
  var model_alarm_builder_js_1 = require("./model-alarm-builder.js");
13
22
  Object.defineProperty(exports, "createModelAlarmBuilder", { enumerable: true, get: function () { return model_alarm_builder_js_1.createModelAlarmBuilder; } });
14
23
  var model_alarm_defaults_js_1 = require("./model-alarm-defaults.js");
15
24
  Object.defineProperty(exports, "MODEL_ALARM_DEFAULTS", { enumerable: true, get: function () { return model_alarm_defaults_js_1.MODEL_ALARM_DEFAULTS; } });
16
25
  var model_alarms_js_1 = require("./model-alarms.js");
17
26
  Object.defineProperty(exports, "modelMetrics", { enumerable: true, get: function () { return model_alarms_js_1.modelMetrics; } });
27
+ var model_invocation_logging_builder_js_1 = require("./model-invocation-logging-builder.js");
28
+ Object.defineProperty(exports, "createModelInvocationLoggingBuilder", { enumerable: true, get: function () { return model_invocation_logging_builder_js_1.createModelInvocationLoggingBuilder; } });
29
+ Object.defineProperty(exports, "MODEL_INVOCATION_LOGGING_DEFAULTS", { enumerable: true, get: function () { return model_invocation_logging_builder_js_1.MODEL_INVOCATION_LOGGING_DEFAULTS; } });
30
+ var model_invocation_logging_alarms_js_1 = require("./model-invocation-logging-alarms.js");
31
+ Object.defineProperty(exports, "MODEL_INVOCATION_LOGGING_ALARM_DEFAULTS", { enumerable: true, get: function () { return model_invocation_logging_alarms_js_1.MODEL_INVOCATION_LOGGING_ALARM_DEFAULTS; } });
18
32
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,+DASgC;AAR9B,0HAAA,kBAAkB,OAAA;AAIlB,qIAAA,6BAA6B,OAAA;AAG7B,wHAAA,gBAAgB,OAAA;AAElB,6DAA6E;AAA9C,qHAAA,cAAc,OAAA;AAC7C,yCAA0C;AAAjC,wGAAA,WAAW,OAAA;AACpB,mEAKkC;AAJhC,iIAAA,uBAAuB,OAAA;AAMzB,qEAAiE;AAAxD,+HAAA,oBAAoB,OAAA;AAC7B,qDAA2F;AAAxC,+GAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,uGAKoD;AAFlD,oKAAA,wCAAwC,OAAA;AAG1C,+DAUgC;AAR9B,0HAAA,kBAAkB,OAAA;AAIlB,qIAAA,6BAA6B,OAAA;AAG7B,wHAAA,gBAAgB,OAAA;AAElB,6DAA6E;AAA9C,qHAAA,cAAc,OAAA;AAC7C,yCAAyF;AAAhF,4GAAA,eAAe,OAAA;AAAgC,wGAAA,WAAW,OAAA;AACnE,+DAMgC;AAL9B,8HAAA,sBAAsB,OAAA;AAMxB,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAC3B,6DAI+B;AAD7B,uHAAA,gBAAgB,OAAA;AAElB,mEAKkC;AAJhC,iIAAA,uBAAuB,OAAA;AAMzB,qEAAiE;AAAxD,+HAAA,oBAAoB,OAAA;AAC7B,qDAA2F;AAAxC,+GAAA,YAAY,OAAA;AAC/D,6FAO+C;AAN7C,0JAAA,mCAAmC,OAAA;AAEnC,wJAAA,iCAAiC,OAAA;AAKnC,2FAG8C;AAF5C,6JAAA,uCAAuC,OAAA"}
@@ -47,6 +47,25 @@ export interface GlobalInferenceProfile {
47
47
  }
48
48
  /** A system-defined cross-Region inference profile. */
49
49
  export type InferenceProfile = GeographicInferenceProfile | GlobalInferenceProfile;
50
+ /**
51
+ * An application inference profile: an account-owned profile, tagged for
52
+ * cost allocation, that routes to a foundation model or a system-defined
53
+ * profile. Build one with `createApplicationInferenceProfileBuilder()`.
54
+ *
55
+ * @see https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-create.html
56
+ */
57
+ export interface ApplicationInferenceProfile {
58
+ readonly kind: "application";
59
+ /** The profile's ARN, which callers pass as the model id. */
60
+ readonly profileArn: string;
61
+ /**
62
+ * The profile's id, the last segment of {@link profileArn}: the `ModelId`
63
+ * its invocation metrics are reported under.
64
+ */
65
+ readonly profileId: string;
66
+ /** What the profile routes to. */
67
+ readonly source: FoundationModelIdentifier | InferenceProfile;
68
+ }
50
69
  /** Options for {@link inferenceProfile.geographic}. */
51
70
  export type GeographicInferenceProfileOptions = Pick<GeographicInferenceProfile, "model" | "geography" | "routingRegions">;
52
71
  declare function geographic(options: GeographicInferenceProfileOptions): GeographicInferenceProfile;
@@ -1 +1 @@
1
- {"version":3,"file":"inference-profile.d.ts","sourceRoot":"","sources":["../../src/inference-profile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,qDAAsD,CAAC;AAEjG,2EAA2E;AAC3E,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AAIvF;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,yBAAyB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC9D,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,uDAAuD;AACvD,MAAM,MAAM,gBAAgB,GAAG,0BAA0B,GAAG,sBAAsB,CAAC;AAEnF,uDAAuD;AACvD,MAAM,MAAM,iCAAiC,GAAG,IAAI,CAClD,0BAA0B,EAC1B,OAAO,GAAG,WAAW,GAAG,gBAAgB,CACzC,CAAC;AA4CF,iBAAS,UAAU,CAAC,OAAO,EAAE,iCAAiC,GAAG,0BAA0B,CAiB1F;AAED,iBAAS,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,sBAAsB,CAGxE;AAaD,iBAAS,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,sBAAsB,CAAC;AAC1D,iBAAS,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,MAAM,EAAE,GAAG,gBAAgB,CAAC;AAkBvF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB;IAC3B,8CAA8C;;IAE9C,4DAA4D;;IAE5D;;;;OAIG;;CAEJ,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB,CAE/E"}
1
+ {"version":3,"file":"inference-profile.d.ts","sourceRoot":"","sources":["../../src/inference-profile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,qDAAsD,CAAC;AAEjG,2EAA2E;AAC3E,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AAIvF;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,yBAAyB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC9D,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,uDAAuD;AACvD,MAAM,MAAM,gBAAgB,GAAG,0BAA0B,GAAG,sBAAsB,CAAC;AAEnF;;;;;;GAMG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,kCAAkC;IAClC,QAAQ,CAAC,MAAM,EAAE,yBAAyB,GAAG,gBAAgB,CAAC;CAC/D;AAED,uDAAuD;AACvD,MAAM,MAAM,iCAAiC,GAAG,IAAI,CAClD,0BAA0B,EAC1B,OAAO,GAAG,WAAW,GAAG,gBAAgB,CACzC,CAAC;AA4CF,iBAAS,UAAU,CAAC,OAAO,EAAE,iCAAiC,GAAG,0BAA0B,CAiB1F;AAED,iBAAS,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,sBAAsB,CAGxE;AAaD,iBAAS,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,sBAAsB,CAAC;AAC1D,iBAAS,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,MAAM,EAAE,GAAG,gBAAgB,CAAC;AAkBvF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB;IAC3B,8CAA8C;;IAE9C,4DAA4D;;IAE5D;;;;OAIG;;CAEJ,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB,CAE/E"}
@@ -1 +1 @@
1
- {"version":3,"file":"inference-profile.js","sourceRoot":"","sources":["../../src/inference-profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inference-profile.js","sourceRoot":"","sources":["../../src/inference-profile.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import type { FoundationModelIdentifier, IModel } from "aws-cdk-lib/aws-bedrock";
2
2
  import { type IConstruct } from "constructs";
3
- import type { InferenceProfile } from "./inference-profile.js";
3
+ import type { ApplicationInferenceProfile, InferenceProfile } from "./inference-profile.js";
4
4
  /**
5
5
  * Anything a caller can invoke: an in-Region foundation model, a
6
- * system-defined inference profile, or any {@link IModel} (a provisioned
7
- * model, or `{ modelArn }` for a model ARN from elsewhere).
6
+ * system-defined or application inference profile, or any {@link IModel} (a
7
+ * provisioned model, or `{ modelArn }` for a model ARN from elsewhere).
8
8
  */
9
- export type InferenceTarget = FoundationModelIdentifier | InferenceProfile | IModel;
9
+ export type InferenceTarget = FoundationModelIdentifier | InferenceProfile | ApplicationInferenceProfile | IModel;
10
10
  /** @internal */
11
11
  export declare function isInferenceProfile(target: InferenceTarget): target is InferenceProfile;
12
12
  /** One IAM statement's resources and conditions for invoking a target. @internal */
@@ -15,18 +15,25 @@ export interface InvocationStatement {
15
15
  readonly conditions?: Record<string, Record<string, unknown>>;
16
16
  }
17
17
  /**
18
- * The statements the Bedrock user guide prescribes for invoking `target` from
19
- * the Region `scope` deploys to.
18
+ * The statements for invoking `target` from the Region `scope` deploys to:
19
+ * those the Bedrock user guide prescribes, and for an application profile the
20
+ * shape verified against live IAM.
20
21
  *
21
22
  * @see https://docs.aws.amazon.com/bedrock/latest/userguide/geographic-cross-region-inference.html#geographic-cris-iam-setup
22
23
  * @see https://docs.aws.amazon.com/bedrock/latest/userguide/global-cross-region-inference.html#global-cris-iam-setup
23
24
  * @internal
24
25
  */
25
26
  export declare function invocationStatements(target: InferenceTarget, scope?: IConstruct): InvocationStatement[];
27
+ /**
28
+ * The ARN that identifies `source` in `scope`'s Region: the foundation model
29
+ * or the system-defined profile. @internal
30
+ */
31
+ export declare function sourceArn(source: FoundationModelIdentifier | InferenceProfile, scope: IConstruct | undefined): string;
26
32
  /**
27
33
  * Every resource ARN a caller in `scope`'s Region must be allowed to invoke to
28
34
  * use `target`. For a cross-Region profile that is the profile plus the
29
- * foundation model in the source Region and in each Region it routes to.
35
+ * foundation model in the source Region and in each Region it routes to; for
36
+ * an application profile, the profile plus its source's foundation models.
30
37
  *
31
38
  * {@link modelGrants.invoke} applies these with the conditions the Bedrock
32
39
  * user guide prescribes; use this list where you write a policy yourself,
@@ -1 +1 @@
1
- {"version":3,"file":"inference-target.d.ts","sourceRoot":"","sources":["../../src/inference-target.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,yBAAyB,GAAG,gBAAgB,GAAG,MAAM,CAAC;AAEpF,gBAAgB;AAChB,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,IAAI,gBAAgB,CAEtF;AAMD,oFAAoF;AACpF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC/D;AA4BD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,eAAe,EACvB,KAAK,CAAC,EAAE,UAAU,GACjB,mBAAmB,EAAE,CAuDvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,CAEpF;AAED,gBAAgB;AAChB,wBAAgB,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAElE"}
1
+ {"version":3,"file":"inference-target.d.ts","sourceRoot":"","sources":["../../src/inference-target.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE5F;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACzB,yBAAyB,GAAG,gBAAgB,GAAG,2BAA2B,GAAG,MAAM,CAAC;AAEtF,gBAAgB;AAChB,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,IAAI,gBAAgB,CAEtF;AAUD,oFAAoF;AACpF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC/D;AA4BD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,eAAe,EACvB,KAAK,CAAC,EAAE,UAAU,GACjB,mBAAmB,EAAE,CASvB;AA4DD;;;GAGG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,yBAAyB,GAAG,gBAAgB,EACpD,KAAK,EAAE,UAAU,GAAG,SAAS,GAC5B,MAAM,CAKR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,CAEpF;AAED,gBAAgB;AAChB,wBAAgB,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAElE"}
@@ -2,13 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isInferenceProfile = isInferenceProfile;
4
4
  exports.invocationStatements = invocationStatements;
5
+ exports.sourceArn = sourceArn;
5
6
  exports.invocationArns = invocationArns;
6
7
  exports.scopeOf = scopeOf;
7
8
  const aws_cdk_lib_1 = require("aws-cdk-lib");
8
9
  const constructs_1 = require("constructs");
9
10
  /** @internal */
10
11
  function isInferenceProfile(target) {
11
- return "kind" in target;
12
+ return "kind" in target && (target.kind === "geographic" || target.kind === "global");
13
+ }
14
+ function isApplicationProfile(target) {
15
+ return "kind" in target && target.kind === "application";
12
16
  }
13
17
  function isModel(target) {
14
18
  return "modelArn" in target;
@@ -30,8 +34,9 @@ function bedrockArn(partition, resource, resourceName, region, account = "") {
30
34
  });
31
35
  }
32
36
  /**
33
- * The statements the Bedrock user guide prescribes for invoking `target` from
34
- * the Region `scope` deploys to.
37
+ * The statements for invoking `target` from the Region `scope` deploys to:
38
+ * those the Bedrock user guide prescribes, and for an application profile the
39
+ * shape verified against live IAM.
35
40
  *
36
41
  * @see https://docs.aws.amazon.com/bedrock/latest/userguide/geographic-cross-region-inference.html#geographic-cris-iam-setup
37
42
  * @see https://docs.aws.amazon.com/bedrock/latest/userguide/global-cross-region-inference.html#global-cris-iam-setup
@@ -40,52 +45,75 @@ function bedrockArn(partition, resource, resourceName, region, account = "") {
40
45
  function invocationStatements(target, scope) {
41
46
  if (isModel(target))
42
47
  return [{ resourceArns: [target.modelArn] }];
43
- const { partition, region: sourceRegion, account } = environmentOf(scope);
48
+ if (isApplicationProfile(target)) {
49
+ return [
50
+ { resourceArns: [target.profileArn] },
51
+ ...sourceStatements(target.source, scope, target.profileArn),
52
+ ];
53
+ }
54
+ return sourceStatements(target, scope);
55
+ }
56
+ /**
57
+ * Statements for a foundation model or system-defined profile. Through an
58
+ * application profile (`viaProfile`), Bedrock checks only that profile's ARN
59
+ * in `bedrock:InferenceProfileArn` and needs no access to the source profile
60
+ * itself (verified live for a global source), so none is granted.
61
+ */
62
+ function sourceStatements(target, scope, viaProfile) {
63
+ const { partition, region: sourceRegion } = environmentOf(scope);
44
64
  const modelArn = (modelId, region) => bedrockArn(partition, "foundation-model", modelId, region);
65
+ const through = (arn) => ({ "bedrock:InferenceProfileArn": arn });
45
66
  if (!isInferenceProfile(target)) {
46
- return [{ resourceArns: [modelArn(target.modelId, sourceRegion)] }];
47
- }
48
- const profileArn = bedrockArn(partition, "inference-profile", target.profileId, sourceRegion, account);
49
- const { modelId } = target.model;
50
- if (target.kind === "geographic") {
51
- const regions = [...new Set([sourceRegion, ...target.routingRegions])];
52
67
  return [
53
- { resourceArns: [profileArn] },
54
68
  {
55
- resourceArns: regions.map((region) => modelArn(modelId, region)),
56
- conditions: { StringEquals: { "bedrock:InferenceProfileArn": profileArn } },
69
+ resourceArns: [modelArn(target.modelId, sourceRegion)],
70
+ ...(viaProfile && { conditions: { StringEquals: through(viaProfile) } }),
57
71
  },
58
72
  ];
59
73
  }
60
- return [
61
- {
62
- resourceArns: [profileArn],
74
+ const profileArn = sourceArn(target, scope);
75
+ const via = through(viaProfile ?? profileArn);
76
+ const { modelId } = target.model;
77
+ const ownProfile = {
78
+ resourceArns: [profileArn],
79
+ ...(target.kind === "global" && {
63
80
  conditions: { StringEquals: { "aws:RequestedRegion": sourceRegion } },
64
- },
65
- {
66
- resourceArns: [modelArn(modelId, sourceRegion)],
67
- conditions: {
68
- StringEquals: {
69
- "aws:RequestedRegion": sourceRegion,
70
- "bedrock:InferenceProfileArn": profileArn,
71
- },
81
+ }),
82
+ };
83
+ const models = target.kind === "geographic"
84
+ ? [
85
+ {
86
+ resourceArns: [...new Set([sourceRegion, ...target.routingRegions])].map((region) => modelArn(modelId, region)),
87
+ conditions: { StringEquals: via },
72
88
  },
73
- },
74
- {
75
- resourceArns: [modelArn(modelId, "")],
76
- conditions: {
77
- StringEquals: {
78
- "aws:RequestedRegion": "unspecified",
79
- "bedrock:InferenceProfileArn": profileArn,
80
- },
89
+ ]
90
+ : [
91
+ {
92
+ resourceArns: [modelArn(modelId, sourceRegion)],
93
+ conditions: { StringEquals: { "aws:RequestedRegion": sourceRegion, ...via } },
94
+ },
95
+ {
96
+ resourceArns: [modelArn(modelId, "")],
97
+ conditions: { StringEquals: { "aws:RequestedRegion": "unspecified", ...via } },
81
98
  },
82
- },
83
- ];
99
+ ];
100
+ return viaProfile ? models : [ownProfile, ...models];
101
+ }
102
+ /**
103
+ * The ARN that identifies `source` in `scope`'s Region: the foundation model
104
+ * or the system-defined profile. @internal
105
+ */
106
+ function sourceArn(source, scope) {
107
+ const { partition, region, account } = environmentOf(scope);
108
+ return isInferenceProfile(source)
109
+ ? bedrockArn(partition, "inference-profile", source.profileId, region, account)
110
+ : bedrockArn(partition, "foundation-model", source.modelId, region);
84
111
  }
85
112
  /**
86
113
  * Every resource ARN a caller in `scope`'s Region must be allowed to invoke to
87
114
  * use `target`. For a cross-Region profile that is the profile plus the
88
- * foundation model in the source Region and in each Region it routes to.
115
+ * foundation model in the source Region and in each Region it routes to; for
116
+ * an application profile, the profile plus its source's foundation models.
89
117
  *
90
118
  * {@link modelGrants.invoke} applies these with the conditions the Bedrock
91
119
  * user guide prescribes; use this list where you write a policy yourself,
@@ -1 +1 @@
1
- {"version":3,"file":"inference-target.js","sourceRoot":"","sources":["../../src/inference-target.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inference-target.js","sourceRoot":"","sources":["../../src/inference-target.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"model-alarm-defaults.d.ts","sourceRoot":"","sources":["../../src/model-alarm-defaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAYpE,UAAU,kBAAkB;IAC1B,OAAO,EAAE,IAAI,CAAC;IACd,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,sBAAsB,EAAE,mBAAmB,CAAC;IAC5C,sBAAsB,EAAE,mBAAmB,CAAC;IAC5C,2EAA2E;IAC3E,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;IAC9C,sBAAsB,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,kBAQlC,CAAC"}
1
+ {"version":3,"file":"model-alarm-defaults.d.ts","sourceRoot":"","sources":["../../src/model-alarm-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGpE,UAAU,kBAAkB;IAC1B,OAAO,EAAE,IAAI,CAAC;IACd,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,sBAAsB,EAAE,mBAAmB,CAAC;IAC5C,sBAAsB,EAAE,mBAAmB,CAAC;IAC5C,2EAA2E;IAC3E,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;IAC9C,sBAAsB,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,kBAQlC,CAAC"}
@@ -1,16 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MODEL_ALARM_DEFAULTS = void 0;
4
- const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
5
- /**
6
- * 3 breaching minutes out of 5: SDK retries absorb isolated throttles and
7
- * transient errors, so a single datapoint is noise. No traffic emits no data.
8
- */
9
- const SUSTAINED = {
10
- evaluationPeriods: 5,
11
- datapointsToAlarm: 3,
12
- treatMissingData: aws_cloudwatch_1.TreatMissingData.NOT_BREACHING,
13
- };
4
+ const alarm_definition_js_1 = require("./alarm-definition.js");
14
5
  /**
15
6
  * Default alarm configuration for a Bedrock model. AWS publishes no Bedrock
16
7
  * thresholds; these follow the shape of AWS's recommended Lambda `Errors` and
@@ -20,10 +11,10 @@ const SUSTAINED = {
20
11
  */
21
12
  exports.MODEL_ALARM_DEFAULTS = {
22
13
  enabled: true,
23
- invocationThrottles: { threshold: 0, ...SUSTAINED },
24
- invocationServerErrors: { threshold: 0, ...SUSTAINED },
25
- invocationClientErrors: { threshold: 0, ...SUSTAINED },
26
- optIn: SUSTAINED,
14
+ invocationThrottles: { threshold: 0, ...alarm_definition_js_1.SUSTAINED },
15
+ invocationServerErrors: { threshold: 0, ...alarm_definition_js_1.SUSTAINED },
16
+ invocationClientErrors: { threshold: 0, ...alarm_definition_js_1.SUSTAINED },
17
+ optIn: alarm_definition_js_1.SUSTAINED,
27
18
  /** Leaves 20% headroom to act before requests are throttled. */
28
19
  estimatedTpmQuotaUsage: { thresholdPercent: 0.8 },
29
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"model-alarm-defaults.js","sourceRoot":"","sources":["../../src/model-alarm-defaults.ts"],"names":[],"mappings":";;;AAAA,+DAA8D;AAG9D;;;GAGG;AACH,MAAM,SAAS,GAAG;IAChB,iBAAiB,EAAE,CAAC;IACpB,iBAAiB,EAAE,CAAC;IACpB,gBAAgB,EAAE,iCAAgB,CAAC,aAAa;CACjD,CAAC;AAYF;;;;;;GAMG;AACU,QAAA,oBAAoB,GAAuB;IACtD,OAAO,EAAE,IAAI;IACb,mBAAmB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE;IACnD,sBAAsB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE;IACtD,sBAAsB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE;IACtD,KAAK,EAAE,SAAS;IAChB,gEAAgE;IAChE,sBAAsB,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE;CAClD,CAAC"}
1
+ {"version":3,"file":"model-alarm-defaults.js","sourceRoot":"","sources":["../../src/model-alarm-defaults.ts"],"names":[],"mappings":";;;AACA,+DAAkD;AAYlD;;;;;;GAMG;AACU,QAAA,oBAAoB,GAAuB;IACtD,OAAO,EAAE,IAAI;IACb,mBAAmB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,+BAAS,EAAE;IACnD,sBAAsB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,+BAAS,EAAE;IACtD,sBAAsB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,+BAAS,EAAE;IACtD,KAAK,EAAE,+BAAS;IAChB,gEAAgE;IAChE,sBAAsB,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE;CAClD,CAAC"}