createRoutingRule method

Future<CreateRoutingRuleResponse> createRoutingRule({
  1. required List<RoutingRuleAction> actions,
  2. required List<RoutingRuleCondition> conditions,
  3. required String domainName,
  4. required int priority,
  5. String? domainNameId,
})

Creates a RoutingRule.

May throw BadRequestException. May throw ConflictException. May throw NotFoundException. May throw TooManyRequestsException.

Parameter actions : Represents a routing rule action. The only supported action is invokeApi.

Parameter conditions : 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.

Parameter domainName : The domain name.

Parameter priority : Represents the priority of the routing rule.

Parameter domainNameId : The domain name ID.

Implementation

Future<CreateRoutingRuleResponse> createRoutingRule({
  required List<RoutingRuleAction> actions,
  required List<RoutingRuleCondition> conditions,
  required String domainName,
  required int priority,
  String? domainNameId,
}) async {
  _s.validateNumRange(
    'priority',
    priority,
    1,
    1000000,
    isRequired: true,
  );
  final $query = <String, List<String>>{
    if (domainNameId != null) 'domainNameId': [domainNameId],
  };
  final $payload = <String, dynamic>{
    'actions': actions,
    'conditions': conditions,
    'priority': priority,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri:
        '/v2/domainnames/${Uri.encodeComponent(domainName)}/routingrules',
    queryParams: $query,
    exceptionFnMap: _exceptionFns,
  );
  return CreateRoutingRuleResponse.fromJson(response);
}