Support repeated enum arguments for clients built by discovery.
diff --git a/apiclient/discovery.py b/apiclient/discovery.py
index 82629ee..02ab99e 100644
--- a/apiclient/discovery.py
+++ b/apiclient/discovery.py
@@ -424,10 +424,19 @@
 
       for name, enums in enum_params.iteritems():
         if name in kwargs:
-          if kwargs[name] not in enums:
-            raise TypeError(
-                'Parameter "%s" value "%s" is not an allowed value in "%s"' %
-                (name, kwargs[name], str(enums)))
+          # We need to handle the case of a repeated enum
+          # name differently, since we want to handle both
+          # arg='value' and arg=['value1', 'value2']
+          if (name in repeated_params and
+              not isinstance(kwargs[name], basestring)):
+            values = kwargs[name]
+          else:
+            values = [kwargs[name]]
+          for value in values:
+            if value not in enums:
+              raise TypeError(
+                  'Parameter "%s" value "%s" is not an allowed value in "%s"' %
+                  (name, value, str(enums)))
 
       actual_query_params = {}
       actual_path_params = {}
diff --git a/tests/data/zoo.json b/tests/data/zoo.json
index 9ead92a..7ef0f24 100644
--- a/tests/data/zoo.json
+++ b/tests/data/zoo.json
@@ -178,6 +178,17 @@
        "bar"
      ]
     },
+    "er": {
+      "type": "string",
+      "location": "query",
+      "required": false,
+      "repeated": true,
+      "enum": [
+        "one",
+        "two",
+        "three"
+      ]
+    },
     "rr": {
      "type": "string",
      "location": "query",
diff --git a/tests/test_discovery.py b/tests/test_discovery.py
index f15ec62..36d9c8a 100644
--- a/tests/test_discovery.py
+++ b/tests/test_discovery.py
@@ -170,13 +170,18 @@
     self._check_query_types(request)
 
     request = zoo.query(
-        q="foo", i="1", n="1", b="", a=[1,2,3], o={'a':1}, e='bar')
+        q="foo", i="1", n="1", b="", a=[1,2,3], o={'a':1}, e='bar', er='two')
 
     request = zoo.query(
-        q="foo", i="1", n="1", b="", a=[1,2,3], o={'a':1}, e='bar', rr=['foo',
-                                                                        'bar'])
+        q="foo", i="1", n="1", b="", a=[1,2,3], o={'a':1}, e='bar',
+        er=['one', 'three'], rr=['foo', 'bar'])
     self._check_query_types(request)
 
+    # Five is right out.
+    self.assertRaisesRegexp(
+      TypeError, '"five" is not an allowed value in',
+      zoo.query, er=['one', 'five'])
+
   def test_optional_stack_query_parameters(self):
     http = HttpMock(datafile('zoo.json'), {'status': '200'})
     zoo = build('zoo', 'v1', http)