class Aws::Endpoints::RuleSet

This class is deprecated. It is used by the Runtime endpoint resolution approach. It has been replaced by a code generated approach in each service gem. It can be removed in a new major version. It has to exist because old service gems can use a new core version. @api private

Attributes

parameters[R]
rules[R]
service_id[R]
version[R]

Public Class Methods

new(version:, service_id:, parameters:, rules:) click to toggle source
# File lib/aws-sdk-core/endpoints/rule_set.rb, line 12
def initialize(version:, service_id:, parameters:, rules:)
  @version = version
  @service_id = service_id
  @parameters = parameters
  @rules = RuleSet.rules_from_json(rules || [])
end
rules_from_json(rules_json) click to toggle source
# File lib/aws-sdk-core/endpoints/rule_set.rb, line 24
def self.rules_from_json(rules_json)
  rules_json.each.with_object([]) do |rule, rules|
    if rule['type'] == 'endpoint'
      rules << EndpointRule.new(
        conditions: rule['conditions'],
        endpoint: rule['endpoint'],
        documentation: rule['documentation']
      )
    elsif rule['type'] == 'error'
      rules << ErrorRule.new(
        conditions: rule['conditions'],
        error: rule['error'],
        documentation: rule['documentation']
      )
    elsif rule['type'] == 'tree'
      rules << TreeRule.new(
        conditions: rule['conditions'],
        rules: rule['rules'],
        documentation: rule['documentation']
      )
    else
      # should not happen
      raise "Unknown endpoint rule type: #{rule}"
    end
  end
end