class Aws::Endpoints::RuleSet

def self.rules_from_json(rules_json)

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