Skip to content

create_gateway_rate_limit

create_gateway_rate_limit(
    gateway_identifier: GatewayIdentifier,
    dimension_keys: DimensionKeys,
    entries: LimitEntries,
    *,
    config_overrides: Optional[BedrockAgentCoreControlClientConfig] = None,
    client_token: Optional[ClientToken] = None,
    rate_limit_id: Optional[GatewayRateLimitId] = None,
    description: Optional[GatewayRateLimitDescription] = None,
) -> CreateGatewayRateLimitResponse

Creates a rate limit for a gateway. Rate limits define throttling rules for each dimension that control request rates, token consumption rates, and concurrent connections through the gateway.

Parameters:

  • gateway_identifier (GatewayIdentifier) –

    The unique identifier of the gateway to create the rate limit for.

  • client_token (Optional[ClientToken], default: None ) –

    A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see Ensuring idempotency.

  • rate_limit_id (Optional[GatewayRateLimitId], default: None ) –

    An optional customer-defined identifier for the rate limit. If not provided, the system generates one.

  • description (Optional[GatewayRateLimitDescription], default: None ) –

    An optional human-readable description for this rate limit. If not provided, the rate limit is created without a description.

  • dimension_keys (DimensionKeys) –

    The ordered list of dimension key names that define the scope of this rate limit. Must be unique per gateway—no two rate limits can share the same dimension keys.

  • entries (LimitEntries) –

    The rule entries that map dimension values to rate configurations.

Raises:

Source code in docs_src/capo_bedrock_agentcore_control/_services/bedrock_agent_core_control.py
def create_gateway_rate_limit(
    self,
    gateway_identifier: "capo_bedrock_agentcore_control.types.gateway_identifier.GatewayIdentifier",
    dimension_keys: "capo_bedrock_agentcore_control.types.dimension_keys.DimensionKeys",
    entries: "capo_bedrock_agentcore_control.types.limit_entries.LimitEntries",
    *,
    config_overrides: Optional[BedrockAgentCoreControlClientConfig] = None,
    client_token: Optional[
        "capo_bedrock_agentcore_control.types.client_token.ClientToken"
    ] = None,
    rate_limit_id: Optional[
        "capo_bedrock_agentcore_control.types.gateway_rate_limit_id.GatewayRateLimitId"
    ] = None,
    description: Optional[
        "capo_bedrock_agentcore_control.types.gateway_rate_limit_description.GatewayRateLimitDescription"
    ] = None,
) -> "capo_bedrock_agentcore_control.types.create_gateway_rate_limit_response.CreateGatewayRateLimitResponse":
    """<p>Creates a rate limit for a gateway. Rate limits define throttling rules for each dimension that control request rates, token consumption rates, and concurrent connections through the gateway.</p>

    Args:
        gateway_identifier: <p>The unique identifier of the gateway to create the rate limit for.</p>
        client_token: <p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If you don't specify this field, a value is randomly generated for you. If this token matches a previous request, the service ignores the request, but doesn't return an error. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring idempotency</a>.</p>
        rate_limit_id: <p>An optional customer-defined identifier for the rate limit. If not provided, the system generates one.</p>
        description: <p>An optional human-readable description for this rate limit. If not provided, the rate limit is created without a description.</p>
        dimension_keys: <p>The ordered list of dimension key names that define the scope of this rate limit. Must be unique per gateway—no two rate limits can share the same dimension keys.</p>
        entries: <p>The rule entries that map dimension values to rate configurations.</p>

    Raises:
        capo_bedrock_agentcore_control.errors.access_denied_exception.AccessDeniedException: <p>This exception is thrown when a request is denied per access permissions</p>
        capo_bedrock_agentcore_control.errors.conflict_exception.ConflictException: <p>This exception is thrown when there is a conflict performing an operation</p>
        capo_bedrock_agentcore_control.errors.internal_server_exception.InternalServerException: <p>This exception is thrown if there was an unexpected error during processing of request</p>
        capo_bedrock_agentcore_control.errors.resource_not_found_exception.ResourceNotFoundException: <p>This exception is thrown when a resource referenced by the operation does not exist</p>
        capo_bedrock_agentcore_control.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>This exception is thrown when a request is made beyond the service quota</p>
        capo_bedrock_agentcore_control.errors.throttling_exception.ThrottlingException: <p>This exception is thrown when the number of requests exceeds the limit</p>
        capo_bedrock_agentcore_control.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service.</p>
        capo_bedrock_agentcore_control.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_bedrock_agentcore_control.types.create_gateway_rate_limit_request.CreateGatewayRateLimitRequest]",
    ) -> OperationResponse[
        "capo_bedrock_agentcore_control.types.create_gateway_rate_limit_response.CreateGatewayRateLimitResponse"
    ]:
        import capo_bedrock_agentcore_control._operations.amazon_bedrock_agent_core_control.create_gateway_rate_limit

        output, http_response = (
            capo_bedrock_agentcore_control._operations.amazon_bedrock_agent_core_control.create_gateway_rate_limit.create_gateway_rate_limit(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateGatewayRateLimit")
    )
    input_: capo_bedrock_agentcore_control.types.create_gateway_rate_limit_request.CreateGatewayRateLimitRequest = {
        "gateway_identifier": gateway_identifier,
        "dimension_keys": dimension_keys,
        "entries": entries,
    }
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token
    if rate_limit_id is not None:
        input_["rate_limit_id"] = rate_limit_id
    if description is not None:
        input_["description"] = description

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output