Methods w/o parameters don't have a parameters object in discovery.
diff --git a/apiclient/discovery.py b/apiclient/discovery.py
index b859a7d..ea76d97 100644
--- a/apiclient/discovery.py
+++ b/apiclient/discovery.py
@@ -163,18 +163,19 @@
pattern_params = {} # Parameters that must match a regex
query_params = [] # Parameters that will be used in the query string
path_params = {} # Parameters that will be used in the base URL
- for arg, desc in methodDesc['parameters'].iteritems():
- param = key2param(arg)
- argmap[param] = arg
+ if 'parameters' in methodDesc:
+ for arg, desc in methodDesc['parameters'].iteritems():
+ param = key2param(arg)
+ argmap[param] = arg
- if desc.get('pattern', ''):
- pattern_params[param] = desc['pattern']
- if desc.get('required', False):
- required_params.append(param)
- if desc.get('parameterType') == 'query':
- query_params.append(param)
- if desc.get('parameterType') == 'path':
- path_params[param] = param
+ if desc.get('pattern', ''):
+ pattern_params[param] = desc['pattern']
+ if desc.get('required', False):
+ required_params.append(param)
+ if desc.get('parameterType') == 'query':
+ query_params.append(param)
+ if desc.get('parameterType') == 'path':
+ path_params[param] = param
def method(self, **kwargs):
for name in kwargs.iterkeys():