Skip to content

create_routing_rule async

create_routing_rule(
    domain_name: __string,
    *,
    config_overrides: Optional[AsyncApiGatewayV2ClientConfig] = None,
    actions: Optional[__listOfRoutingRuleAction] = None,
    conditions: Optional[__listOfRoutingRuleCondition] = None,
    domain_name_id: Optional[__string] = None,
    priority: Optional[RoutingRulePriority] = None,
) -> CreateRoutingRuleResponse

Creates a RoutingRule.

Parameters:

  • actions (Optional[__listOfRoutingRuleAction], default: None ) –

    Represents a routing rule action. The only supported action is invokeApi.

  • conditions (Optional[__listOfRoutingRuleCondition], default: None ) –

    Represents a condition. Conditions can contain up to two matchHeaders conditions and one matchBasePaths conditions. API Gateway evaluates header conditions and base path conditions together. You can only use AND between header and base path conditions.

  • domain_name (__string) –

    The domain name.

  • domain_name_id (Optional[__string], default: None ) –

    The domain name ID.

  • priority (Optional[RoutingRulePriority], default: None ) –

    Represents the priority of the routing rule.

Raises:

  • BadRequestException –

    The request is not valid, for example, the input is incomplete or incorrect. See the accompanying error message for details.

  • ConflictException –

    The requested operation would cause a conflict with the current state of a service resource associated with the request. Resolve the conflict before retrying this request. See the accompanying error message for details.

  • NotFoundException –

    The resource specified in the request was not found. See the message field for more information.

  • TooManyRequestsException –

    A limit has been exceeded. See the accompanying error message for details.

  • UnknownServiceError –

    The service returned an error code this client does not model.

Source code in docs_src/capo_apigatewayv2/_services/async_api_gateway_v2.py
async def create_routing_rule(
    self,
    domain_name: "capo_apigatewayv2.types.__string.__string",
    *,
    config_overrides: Optional[AsyncApiGatewayV2ClientConfig] = None,
    actions: Optional[
        "capo_apigatewayv2.types.__list_of_routing_rule_action.__listOfRoutingRuleAction"
    ] = None,
    conditions: Optional[
        "capo_apigatewayv2.types.__list_of_routing_rule_condition.__listOfRoutingRuleCondition"
    ] = None,
    domain_name_id: Optional["capo_apigatewayv2.types.__string.__string"] = None,
    priority: Optional[
        "capo_apigatewayv2.types.routing_rule_priority.RoutingRulePriority"
    ] = None,
) -> (
    "capo_apigatewayv2.types.create_routing_rule_response.CreateRoutingRuleResponse"
):
    """<p>Creates a RoutingRule.</p>

    Args:
        actions: <p>Represents a routing rule action. The only supported action is invokeApi.</p>
        conditions: <p>Represents a condition. Conditions can contain up to two matchHeaders conditions and one matchBasePaths conditions. API Gateway evaluates header conditions and base path conditions together. You can only use AND between header and base path conditions.</p>
        domain_name: <p>The domain name.</p>
        domain_name_id: <p>The domain name ID.</p>
        priority: Represents the priority of the routing rule.

    Raises:
        capo_apigatewayv2.errors.bad_request_exception.BadRequestException: <p>The request is not valid, for example, the input is incomplete or incorrect. See the accompanying error message for details.</p>
        capo_apigatewayv2.errors.conflict_exception.ConflictException: <p>The requested operation would cause a conflict with the current state of a service resource associated with the request. Resolve the conflict before retrying this request. See the accompanying error message for details.</p>
        capo_apigatewayv2.errors.not_found_exception.NotFoundException: <p>The resource specified in the request was not found. See the message field for more information.</p>
        capo_apigatewayv2.errors.too_many_requests_exception.TooManyRequestsException: <p>A limit has been exceeded. See the accompanying error message for details.</p>
        capo_apigatewayv2.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_apigatewayv2.types.create_routing_rule_request.CreateRoutingRuleRequest]",
    ) -> AsyncOperationResponse[
        "capo_apigatewayv2.types.create_routing_rule_response.CreateRoutingRuleResponse"
    ]:
        import capo_apigatewayv2._operations.api_gateway_v2.create_routing_rule

        (
            output,
            http_response,
        ) = await capo_apigatewayv2._operations.api_gateway_v2.create_routing_rule.async_create_routing_rule(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateRoutingRule")
    )
    input_: capo_apigatewayv2.types.create_routing_rule_request.CreateRoutingRuleRequest = {
        "domain_name": domain_name
    }
    if actions is not None:
        input_["actions"] = actions
    if conditions is not None:
        input_["conditions"] = conditions
    if domain_name_id is not None:
        input_["domain_name_id"] = domain_name_id
    if priority is not None:
        input_["priority"] = priority

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output