module AWS::Core::OptionGrammar::Descriptors::Structure
def validate(value, context = nil)
def validate(value, context = nil) raise format_error("hash value", context) unless value.respond_to?(:to_hash) context = context_description(context) value.each do |name, v| name = name.to_s raise ArgumentError.new("unexpected key #{name} for #{context}") unless member_option(name) member_option(name).validate(v, "key #{name} of #{context}") end member_options.each do |option| raise ArgumentError.new("missing required key #{option.ruby_name} for #{context}") if option.required? and !value.has_key?(option.ruby_name) and !value.has_key?(option.ruby_name.to_sym) and !value.has_key?(option.name) end end