Skip to content

GuardrailInvocationMetrics dataclass

The invocation metrics for the guardrail.

Source code in src/aws_sdk_bedrock_runtime/models.py
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
@dataclass(kw_only=True)
class GuardrailInvocationMetrics:
    """The invocation metrics for the guardrail."""

    guardrail_processing_latency: int | None = None
    """The processing latency details for the guardrail invocation metrics."""

    usage: GuardrailUsage | None = None
    """The usage details for the guardrail invocation metrics."""

    guardrail_coverage: GuardrailCoverage | None = None
    """The coverage details for the guardrail invocation metrics."""

    def serialize(self, serializer: ShapeSerializer):
        serializer.write_struct(_SCHEMA_GUARDRAIL_INVOCATION_METRICS, self)

    def serialize_members(self, serializer: ShapeSerializer):
        if self.guardrail_processing_latency is not None:
            serializer.write_long(
                _SCHEMA_GUARDRAIL_INVOCATION_METRICS.members[
                    "guardrailProcessingLatency"
                ],
                self.guardrail_processing_latency,
            )

        if self.usage is not None:
            serializer.write_struct(
                _SCHEMA_GUARDRAIL_INVOCATION_METRICS.members["usage"], self.usage
            )

        if self.guardrail_coverage is not None:
            serializer.write_struct(
                _SCHEMA_GUARDRAIL_INVOCATION_METRICS.members["guardrailCoverage"],
                self.guardrail_coverage,
            )

    @classmethod
    def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
        return cls(**cls.deserialize_kwargs(deserializer))

    @classmethod
    def deserialize_kwargs(cls, deserializer: ShapeDeserializer) -> dict[str, Any]:
        kwargs: dict[str, Any] = {}

        def _consumer(schema: Schema, de: ShapeDeserializer) -> None:
            match schema.expect_member_index():
                case 0:
                    kwargs["guardrail_processing_latency"] = de.read_long(
                        _SCHEMA_GUARDRAIL_INVOCATION_METRICS.members[
                            "guardrailProcessingLatency"
                        ]
                    )

                case 1:
                    kwargs["usage"] = GuardrailUsage.deserialize(de)

                case 2:
                    kwargs["guardrail_coverage"] = GuardrailCoverage.deserialize(de)

                case _:
                    logger.debug("Unexpected member schema: %s", schema)

        deserializer.read_struct(
            _SCHEMA_GUARDRAIL_INVOCATION_METRICS, consumer=_consumer
        )
        return kwargs

Attributes

guardrail_coverage class-attribute instance-attribute

guardrail_coverage: GuardrailCoverage | None = None

The coverage details for the guardrail invocation metrics.

guardrail_processing_latency class-attribute instance-attribute

guardrail_processing_latency: int | None = None

The processing latency details for the guardrail invocation metrics.

usage class-attribute instance-attribute

usage: GuardrailUsage | None = None

The usage details for the guardrail invocation metrics.