def validate!(parameters)
errors = validate(params, parameters)
missing_arguments, errors = errors.partition { |e| e.kind == :missing_argument }
missing_arguments.map! { |e| e.argument }
raise ApipieBindings::MissingArgumentsError.new(missing_arguments) unless missing_arguments.empty?
invalid_types, errors = errors.partition { |e| e.kind == :invalid_type }
invalid_types.map! { |e| [e.argument, e.details] }
raise ApipieBindings::InvalidArgumentTypesError.new(invalid_types) unless invalid_types.empty?
errors.map! { |e| e.argument }
raise ApipieBindings::ValidationError.new(errors) unless errors.empty?
end