# File lib/aws/core/options/validator.rb, line 42
        def validate! request_options, rules = @rules

          # Verify all required options are present.
          rules.each_pair do |opt_name, opt_rules|
            if opt_rules[:required]
              unless request_options.key?(opt_name)
                raise ArgumentError, "missing required option #{opt_name.inspect}"
              end
            end
          end

          request_options.inject({}) do |options, (opt_name, value)|

            # Ensure this is a valid/accepted option
            unless rules.key?(opt_name)
              raise ArgumentError, "unexpected option #{opt_name.inspect}"
            end

            # Validate and convert the value
            valid_value = validate_value(rules[opt_name], value, opt_name)

            options.merge(opt_name => valid_value)

          end
        end