commit 91fff26e6be1792506408b1a24ffe23407caef5f
Author: Madhuri Kumari <madhuri.kumari@nectechnologies.in>
Date:   Mon Mar 23 07:48:49 2015 +0000

    Adding support of python-k8client.
    
    Change-Id: I793afa000f1173d7bd19da18d6204879f556f5d2
    Partially-Implements: blueprint python-k8sclient

diff --git a/magnum/common/pythonk8sclient/README.rst b/magnum/common/pythonk8sclient/README.rst
new file mode 100644
index 0000000..b4f9ca7
--- /dev/null
+++ b/magnum/common/pythonk8sclient/README.rst
@@ -0,0 +1,35 @@
+==========================
+Kubernetes API client code
+==========================
+
+Overview
+--------
+
+This is Kubernetes API python client code. This code is generated by
+swagger-codegen. Kubernetes provide swagger-spec to generate client code
+for different versions. The specs live in Kubernetes repo.
+
+See also
+--------
+
+* swagger-codegen: https://github.com/swagger-api/swagger-codegen
+* Kubernetes swagger-spec: https://github.com/GoogleCloudPlatform/kubernetes/tree/master/api/swagger-spec
+
+Steps to generate API client code
+---------------------------------
+
+Steps to generate Kubernetes client code for v1beta3:
+
+* Clone the Kubernetes repo.
+
+  git clone https://github.com/GoogleCloudPlatform/kubernetes.git
+
+* Clone the swagger-codegen repo.
+
+  git clone https://github.com/swagger-api/swagger-codegen.git
+
+* Run below command to generate the API client code for Kubernetes.
+
+  java -jar ./swagger-codegen/modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i ./kubernetes/api/swagger-spec/v1beta3.json -l python -o ./KubernetesClientCode
+
+Now you can check the code at location ./KubernetesClientCode.
diff --git a/magnum/common/pythonk8sclient/__init__.py b/magnum/common/pythonk8sclient/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/magnum/common/pythonk8sclient/client/ApivbetaApi.py b/magnum/common/pythonk8sclient/client/ApivbetaApi.py
new file mode 100644
index 0000000..4e6f6ee
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/ApivbetaApi.py
@@ -0,0 +1,11298 @@
+#!/usr/bin/env python
+"""
+ApivbetaApi.py
+Copyright 2015 Reverb Technologies, Inc.
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually.
+"""
+import sys
+import os
+import urllib
+
+from models import *
+
+
+class ApivbetaApi(object):
+
+    def __init__(self, apiClient):
+      self.apiClient = apiClient
+
+    
+    
+    def listEndpoints(self, **kwargs):
+        """list or watch objects of kind Endpoints
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_EndpointsList
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listEndpoints" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/endpoints'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_EndpointsList')
+        return responseObject
+        
+        
+        
+    
+    def listEvent(self, **kwargs):
+        """list or watch objects of kind Event
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_EventList
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listEvent" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/events'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_EventList')
+        return responseObject
+        
+        
+        
+    
+    def listLimitRange(self, **kwargs):
+        """list or watch objects of kind LimitRange
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_LimitRangeList
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listLimitRange" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/limitranges'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_LimitRangeList')
+        return responseObject
+        
+        
+        
+    
+    def listNamespace(self, **kwargs):
+        """list or watch objects of kind Namespace
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_NamespaceList
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listNamespace" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_NamespaceList')
+        return responseObject
+        
+        
+        
+    
+    def createNamespace(self, **kwargs):
+        """create a Namespace
+
+        Args:
+            
+            body, V1beta3_Namespace:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method createNamespace" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def createBinding(self, **kwargs):
+        """create a Binding
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Binding:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method createBinding" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/bindings'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def listEndpoints(self, **kwargs):
+        """list or watch objects of kind Endpoints
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_EndpointsList
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listEndpoints" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/endpoints'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_EndpointsList')
+        return responseObject
+        
+        
+        
+    
+    def createEndpoints(self, **kwargs):
+        """create a Endpoints
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Endpoints:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method createEndpoints" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/endpoints'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def readEndpoints(self, **kwargs):
+        """read the specified Endpoints
+
+        Args:
+            
+            name, str: name of the Endpoints (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: v1beta3_Endpoints
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method readEndpoints" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/endpoints/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_Endpoints')
+        return responseObject
+        
+        
+        
+    
+    def replaceEndpoints(self, **kwargs):
+        """replace the specified Endpoints
+
+        Args:
+            
+            name, str: name of the Endpoints (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Endpoints:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method replaceEndpoints" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/endpoints/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def deleteEndpoints(self, **kwargs):
+        """delete a Endpoints
+
+        Args:
+            
+            name, str: name of the Endpoints (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_DeleteOptions:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method deleteEndpoints" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/endpoints/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def patchEndpoints(self, **kwargs):
+        """partially update the specified Endpoints
+
+        Args:
+            
+            name, str: name of the Endpoints (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Endpoints:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method patchEndpoints" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/endpoints/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PATCH'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = 'application/json-patch+json,application/merge-patch+json,application/strategic-merge-patch+json,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def listEvent(self, **kwargs):
+        """list or watch objects of kind Event
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_EventList
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listEvent" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/events'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_EventList')
+        return responseObject
+        
+        
+        
+    
+    def createEvent(self, **kwargs):
+        """create a Event
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Event:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method createEvent" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/events'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def readEvent(self, **kwargs):
+        """read the specified Event
+
+        Args:
+            
+            name, str: name of the Event (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: v1beta3_Event
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method readEvent" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/events/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_Event')
+        return responseObject
+        
+        
+        
+    
+    def replaceEvent(self, **kwargs):
+        """replace the specified Event
+
+        Args:
+            
+            name, str: name of the Event (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Event:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method replaceEvent" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/events/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def deleteEvent(self, **kwargs):
+        """delete a Event
+
+        Args:
+            
+            name, str: name of the Event (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method deleteEvent" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/events/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def patchEvent(self, **kwargs):
+        """partially update the specified Event
+
+        Args:
+            
+            name, str: name of the Event (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Event:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method patchEvent" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/events/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PATCH'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = 'application/json-patch+json,application/merge-patch+json,application/strategic-merge-patch+json,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def listLimitRange(self, **kwargs):
+        """list or watch objects of kind LimitRange
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_LimitRangeList
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listLimitRange" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/limitranges'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_LimitRangeList')
+        return responseObject
+        
+        
+        
+    
+    def createLimitRange(self, **kwargs):
+        """create a LimitRange
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_LimitRange:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method createLimitRange" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/limitranges'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def readLimitRange(self, **kwargs):
+        """read the specified LimitRange
+
+        Args:
+            
+            name, str: name of the LimitRange (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: v1beta3_LimitRange
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method readLimitRange" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/limitranges/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_LimitRange')
+        return responseObject
+        
+        
+        
+    
+    def replaceLimitRange(self, **kwargs):
+        """replace the specified LimitRange
+
+        Args:
+            
+            name, str: name of the LimitRange (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_LimitRange:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method replaceLimitRange" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/limitranges/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def deleteLimitRange(self, **kwargs):
+        """delete a LimitRange
+
+        Args:
+            
+            name, str: name of the LimitRange (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method deleteLimitRange" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/limitranges/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def patchLimitRange(self, **kwargs):
+        """partially update the specified LimitRange
+
+        Args:
+            
+            name, str: name of the LimitRange (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_LimitRange:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method patchLimitRange" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/limitranges/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PATCH'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = 'application/json-patch+json,application/merge-patch+json,application/strategic-merge-patch+json,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def listPersistentVolumeClaim(self, **kwargs):
+        """list or watch objects of kind PersistentVolumeClaim
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_PersistentVolumeClaimList
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listPersistentVolumeClaim" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/persistentvolumeclaims'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_PersistentVolumeClaimList')
+        return responseObject
+        
+        
+        
+    
+    def createPersistentVolumeClaim(self, **kwargs):
+        """create a PersistentVolumeClaim
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_PersistentVolumeClaim:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method createPersistentVolumeClaim" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/persistentvolumeclaims'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def readPersistentVolumeClaim(self, **kwargs):
+        """read the specified PersistentVolumeClaim
+
+        Args:
+            
+            name, str: name of the PersistentVolumeClaim (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: v1beta3_PersistentVolumeClaim
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method readPersistentVolumeClaim" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/persistentvolumeclaims/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_PersistentVolumeClaim')
+        return responseObject
+        
+        
+        
+    
+    def replacePersistentVolumeClaim(self, **kwargs):
+        """replace the specified PersistentVolumeClaim
+
+        Args:
+            
+            name, str: name of the PersistentVolumeClaim (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_PersistentVolumeClaim:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method replacePersistentVolumeClaim" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/persistentvolumeclaims/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def deletePersistentVolumeClaim(self, **kwargs):
+        """delete a PersistentVolumeClaim
+
+        Args:
+            
+            name, str: name of the PersistentVolumeClaim (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_DeleteOptions:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method deletePersistentVolumeClaim" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/persistentvolumeclaims/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def patchPersistentVolumeClaim(self, **kwargs):
+        """partially update the specified PersistentVolumeClaim
+
+        Args:
+            
+            name, str: name of the PersistentVolumeClaim (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_PersistentVolumeClaim:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method patchPersistentVolumeClaim" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/persistentvolumeclaims/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PATCH'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = 'application/json-patch+json,application/merge-patch+json,application/strategic-merge-patch+json,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def listPod(self, **kwargs):
+        """list or watch objects of kind Pod
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_PodList
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listPod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/pods'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_PodList')
+        return responseObject
+        
+        
+        
+    
+    def createPod(self, **kwargs):
+        """create a Pod
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Pod:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method createPod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/pods'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def readPod(self, **kwargs):
+        """read the specified Pod
+
+        Args:
+            
+            name, str: name of the Pod (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: v1beta3_Pod
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method readPod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/pods/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_Pod')
+        return responseObject
+        
+        
+        
+    
+    def replacePod(self, **kwargs):
+        """replace the specified Pod
+
+        Args:
+            
+            name, str: name of the Pod (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Pod:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method replacePod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/pods/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def deletePod(self, **kwargs):
+        """delete a Pod
+
+        Args:
+            
+            name, str: name of the Pod (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_DeleteOptions:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method deletePod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/pods/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def patchPod(self, **kwargs):
+        """partially update the specified Pod
+
+        Args:
+            
+            name, str: name of the Pod (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Pod:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method patchPod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/pods/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PATCH'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = 'application/json-patch+json,application/merge-patch+json,application/strategic-merge-patch+json,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def createBinding(self, **kwargs):
+        """create a Binding
+
+        Args:
+            
+            name, str: name of the Binding (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Binding:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method createBinding" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/pods/{name}/binding'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def readPodLogOptions(self, **kwargs):
+        """read the specified PodLogOptions
+
+        Args:
+            
+            name, str: name of the PodLogOptions (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: v1beta3_PodLogOptions
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method readPodLogOptions" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/pods/{name}/log'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_PodLogOptions')
+        return responseObject
+        
+        
+        
+    
+    def replacePod(self, **kwargs):
+        """replace the specified Pod
+
+        Args:
+            
+            name, str: name of the Pod (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Pod:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method replacePod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/pods/{name}/status'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def listReplicationController(self, **kwargs):
+        """list or watch objects of kind ReplicationController
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_ReplicationControllerList
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listReplicationController" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/replicationcontrollers'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_ReplicationControllerList')
+        return responseObject
+        
+        
+        
+    
+    def createReplicationController(self, **kwargs):
+        """create a ReplicationController
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_ReplicationController:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method createReplicationController" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/replicationcontrollers'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def readReplicationController(self, **kwargs):
+        """read the specified ReplicationController
+
+        Args:
+            
+            name, str: name of the ReplicationController (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: v1beta3_ReplicationController
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method readReplicationController" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/replicationcontrollers/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_ReplicationController')
+        return responseObject
+        
+        
+        
+    
+    def replaceReplicationController(self, **kwargs):
+        """replace the specified ReplicationController
+
+        Args:
+            
+            name, str: name of the ReplicationController (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_ReplicationController:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method replaceReplicationController" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/replicationcontrollers/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def deleteReplicationController(self, **kwargs):
+        """delete a ReplicationController
+
+        Args:
+            
+            name, str: name of the ReplicationController (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_DeleteOptions:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method deleteReplicationController" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/replicationcontrollers/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def patchReplicationController(self, **kwargs):
+        """partially update the specified ReplicationController
+
+        Args:
+            
+            name, str: name of the ReplicationController (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_ReplicationController:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method patchReplicationController" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/replicationcontrollers/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PATCH'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = 'application/json-patch+json,application/merge-patch+json,application/strategic-merge-patch+json,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def listResourceQuota(self, **kwargs):
+        """list or watch objects of kind ResourceQuota
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_ResourceQuotaList
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listResourceQuota" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/resourcequotas'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_ResourceQuotaList')
+        return responseObject
+        
+        
+        
+    
+    def createResourceQuota(self, **kwargs):
+        """create a ResourceQuota
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_ResourceQuota:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method createResourceQuota" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/resourcequotas'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def readResourceQuota(self, **kwargs):
+        """read the specified ResourceQuota
+
+        Args:
+            
+            name, str: name of the ResourceQuota (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: v1beta3_ResourceQuota
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method readResourceQuota" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/resourcequotas/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_ResourceQuota')
+        return responseObject
+        
+        
+        
+    
+    def replaceResourceQuota(self, **kwargs):
+        """replace the specified ResourceQuota
+
+        Args:
+            
+            name, str: name of the ResourceQuota (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_ResourceQuota:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method replaceResourceQuota" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/resourcequotas/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def deleteResourceQuota(self, **kwargs):
+        """delete a ResourceQuota
+
+        Args:
+            
+            name, str: name of the ResourceQuota (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_DeleteOptions:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method deleteResourceQuota" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/resourcequotas/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def patchResourceQuota(self, **kwargs):
+        """partially update the specified ResourceQuota
+
+        Args:
+            
+            name, str: name of the ResourceQuota (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_ResourceQuota:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method patchResourceQuota" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/resourcequotas/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PATCH'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = 'application/json-patch+json,application/merge-patch+json,application/strategic-merge-patch+json,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def replaceResourceQuota(self, **kwargs):
+        """replace the specified ResourceQuota
+
+        Args:
+            
+            name, str: name of the ResourceQuota (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_ResourceQuota:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method replaceResourceQuota" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/resourcequotas/{name}/status'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def listSecret(self, **kwargs):
+        """list or watch objects of kind Secret
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_SecretList
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listSecret" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/secrets'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_SecretList')
+        return responseObject
+        
+        
+        
+    
+    def createSecret(self, **kwargs):
+        """create a Secret
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Secret:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method createSecret" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/secrets'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def readSecret(self, **kwargs):
+        """read the specified Secret
+
+        Args:
+            
+            name, str: name of the Secret (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: v1beta3_Secret
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method readSecret" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/secrets/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_Secret')
+        return responseObject
+        
+        
+        
+    
+    def replaceSecret(self, **kwargs):
+        """replace the specified Secret
+
+        Args:
+            
+            name, str: name of the Secret (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Secret:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method replaceSecret" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/secrets/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def deleteSecret(self, **kwargs):
+        """delete a Secret
+
+        Args:
+            
+            name, str: name of the Secret (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method deleteSecret" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/secrets/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def patchSecret(self, **kwargs):
+        """partially update the specified Secret
+
+        Args:
+            
+            name, str: name of the Secret (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Secret:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method patchSecret" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/secrets/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PATCH'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = 'application/json-patch+json,application/merge-patch+json,application/strategic-merge-patch+json,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def listService(self, **kwargs):
+        """list or watch objects of kind Service
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_ServiceList
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listService" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/services'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_ServiceList')
+        return responseObject
+        
+        
+        
+    
+    def createService(self, **kwargs):
+        """create a Service
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Service:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method createService" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/services'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def readService(self, **kwargs):
+        """read the specified Service
+
+        Args:
+            
+            name, str: name of the Service (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: v1beta3_Service
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method readService" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/services/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_Service')
+        return responseObject
+        
+        
+        
+    
+    def replaceService(self, **kwargs):
+        """replace the specified Service
+
+        Args:
+            
+            name, str: name of the Service (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Service:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method replaceService" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/services/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def deleteService(self, **kwargs):
+        """delete a Service
+
+        Args:
+            
+            name, str: name of the Service (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method deleteService" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/services/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def patchService(self, **kwargs):
+        """partially update the specified Service
+
+        Args:
+            
+            name, str: name of the Service (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            body, V1beta3_Service:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method patchService" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{namespaces}/services/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PATCH'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = 'application/json-patch+json,application/merge-patch+json,application/strategic-merge-patch+json,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def readNamespace(self, **kwargs):
+        """read the specified Namespace
+
+        Args:
+            
+            name, str: name of the Namespace (required)
+            
+            
+        
+        Returns: v1beta3_Namespace
+        """
+
+        allParams = ['name']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method readNamespace" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_Namespace')
+        return responseObject
+        
+        
+        
+    
+    def replaceNamespace(self, **kwargs):
+        """replace the specified Namespace
+
+        Args:
+            
+            name, str: name of the Namespace (required)
+            
+            
+            body, V1beta3_Namespace:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method replaceNamespace" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def deleteNamespace(self, **kwargs):
+        """delete a Namespace
+
+        Args:
+            
+            name, str: name of the Namespace (required)
+            
+            
+            body, V1beta3_DeleteOptions:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method deleteNamespace" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def patchNamespace(self, **kwargs):
+        """partially update the specified Namespace
+
+        Args:
+            
+            name, str: name of the Namespace (required)
+            
+            
+            body, V1beta3_Namespace:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method patchNamespace" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PATCH'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = 'application/json-patch+json,application/merge-patch+json,application/strategic-merge-patch+json,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def replaceNamespace(self, **kwargs):
+        """replace the specified Namespace
+
+        Args:
+            
+            name, str: name of the Namespace (required)
+            
+            
+            body, V1beta3_Namespace:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method replaceNamespace" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{name}/finalize'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def replaceNamespace(self, **kwargs):
+        """replace the specified Namespace
+
+        Args:
+            
+            name, str: name of the Namespace (required)
+            
+            
+            body, V1beta3_Namespace:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method replaceNamespace" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/namespaces/{name}/status'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def listNode(self, **kwargs):
+        """list or watch objects of kind Node
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_NodeList
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listNode" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/nodes'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_NodeList')
+        return responseObject
+        
+        
+        
+    
+    def createNode(self, **kwargs):
+        """create a Node
+
+        Args:
+            
+            body, V1beta3_Node:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method createNode" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/nodes'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def readNode(self, **kwargs):
+        """read the specified Node
+
+        Args:
+            
+            name, str: name of the Node (required)
+            
+            
+        
+        Returns: v1beta3_Node
+        """
+
+        allParams = ['name']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method readNode" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/nodes/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_Node')
+        return responseObject
+        
+        
+        
+    
+    def replaceNode(self, **kwargs):
+        """replace the specified Node
+
+        Args:
+            
+            name, str: name of the Node (required)
+            
+            
+            body, V1beta3_Node:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method replaceNode" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/nodes/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def deleteNode(self, **kwargs):
+        """delete a Node
+
+        Args:
+            
+            name, str: name of the Node (required)
+            
+            
+            body, V1beta3_DeleteOptions:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method deleteNode" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/nodes/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def patchNode(self, **kwargs):
+        """partially update the specified Node
+
+        Args:
+            
+            name, str: name of the Node (required)
+            
+            
+            body, V1beta3_Node:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method patchNode" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/nodes/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PATCH'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = 'application/json-patch+json,application/merge-patch+json,application/strategic-merge-patch+json,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def listPersistentVolumeClaim(self, **kwargs):
+        """list or watch objects of kind PersistentVolumeClaim
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_PersistentVolumeClaimList
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listPersistentVolumeClaim" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/persistentvolumeclaims'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_PersistentVolumeClaimList')
+        return responseObject
+        
+        
+        
+    
+    def listPersistentVolume(self, **kwargs):
+        """list or watch objects of kind PersistentVolume
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_PersistentVolumeList
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listPersistentVolume" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/persistentvolumes'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_PersistentVolumeList')
+        return responseObject
+        
+        
+        
+    
+    def createPersistentVolume(self, **kwargs):
+        """create a PersistentVolume
+
+        Args:
+            
+            body, V1beta3_PersistentVolume:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method createPersistentVolume" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/persistentvolumes'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def readPersistentVolume(self, **kwargs):
+        """read the specified PersistentVolume
+
+        Args:
+            
+            name, str: name of the PersistentVolume (required)
+            
+            
+        
+        Returns: v1beta3_PersistentVolume
+        """
+
+        allParams = ['name']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method readPersistentVolume" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/persistentvolumes/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_PersistentVolume')
+        return responseObject
+        
+        
+        
+    
+    def replacePersistentVolume(self, **kwargs):
+        """replace the specified PersistentVolume
+
+        Args:
+            
+            name, str: name of the PersistentVolume (required)
+            
+            
+            body, V1beta3_PersistentVolume:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method replacePersistentVolume" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/persistentvolumes/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def deletePersistentVolume(self, **kwargs):
+        """delete a PersistentVolume
+
+        Args:
+            
+            name, str: name of the PersistentVolume (required)
+            
+            
+            body, V1beta3_DeleteOptions:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method deletePersistentVolume" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/persistentvolumes/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def patchPersistentVolume(self, **kwargs):
+        """partially update the specified PersistentVolume
+
+        Args:
+            
+            name, str: name of the PersistentVolume (required)
+            
+            
+            body, V1beta3_PersistentVolume:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method patchPersistentVolume" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/persistentvolumes/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PATCH'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = 'application/json-patch+json,application/merge-patch+json,application/strategic-merge-patch+json,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def replacePersistentVolume(self, **kwargs):
+        """replace the specified PersistentVolume
+
+        Args:
+            
+            name, str: name of the PersistentVolume (required)
+            
+            
+            body, V1beta3_PersistentVolume:  (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'body']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method replacePersistentVolume" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/persistentvolumes/{name}/status'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+        if ('body' in params):
+            bodyParam = params['body']
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def listPod(self, **kwargs):
+        """list or watch objects of kind Pod
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_PodList
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listPod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/pods'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_PodList')
+        return responseObject
+        
+        
+        
+    
+    def proxyGETPod(self, **kwargs):
+        """proxy GET requests to Pod
+
+        Args:
+            
+            name, str: name of the Pod (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyGETPod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/namespaces/{namespaces}/pods/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyPUTPod(self, **kwargs):
+        """proxy PUT requests to Pod
+
+        Args:
+            
+            name, str: name of the Pod (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyPUTPod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/namespaces/{namespaces}/pods/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyPOSTPod(self, **kwargs):
+        """proxy POST requests to Pod
+
+        Args:
+            
+            name, str: name of the Pod (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyPOSTPod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/namespaces/{namespaces}/pods/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyDELETEPod(self, **kwargs):
+        """proxy DELETE requests to Pod
+
+        Args:
+            
+            name, str: name of the Pod (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyDELETEPod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/namespaces/{namespaces}/pods/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyGETPod(self, **kwargs):
+        """proxy GET requests to Pod
+
+        Args:
+            
+            name, str: name of the Pod (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            path:*, str: path to the resource (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'path:*']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyGETPod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/namespaces/{namespaces}/pods/{name}/{path:*}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+        if ('path:*' in params):
+            replacement = str(self.apiClient.toPathValue(params['path:*']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'path:*' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyPUTPod(self, **kwargs):
+        """proxy PUT requests to Pod
+
+        Args:
+            
+            name, str: name of the Pod (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            path:*, str: path to the resource (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'path:*']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyPUTPod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/namespaces/{namespaces}/pods/{name}/{path:*}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+        if ('path:*' in params):
+            replacement = str(self.apiClient.toPathValue(params['path:*']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'path:*' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyPOSTPod(self, **kwargs):
+        """proxy POST requests to Pod
+
+        Args:
+            
+            name, str: name of the Pod (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            path:*, str: path to the resource (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'path:*']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyPOSTPod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/namespaces/{namespaces}/pods/{name}/{path:*}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+        if ('path:*' in params):
+            replacement = str(self.apiClient.toPathValue(params['path:*']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'path:*' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyDELETEPod(self, **kwargs):
+        """proxy DELETE requests to Pod
+
+        Args:
+            
+            name, str: name of the Pod (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            path:*, str: path to the resource (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'path:*']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyDELETEPod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/namespaces/{namespaces}/pods/{name}/{path:*}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+        if ('path:*' in params):
+            replacement = str(self.apiClient.toPathValue(params['path:*']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'path:*' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyGETService(self, **kwargs):
+        """proxy GET requests to Service
+
+        Args:
+            
+            name, str: name of the Service (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyGETService" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/namespaces/{namespaces}/services/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyPUTService(self, **kwargs):
+        """proxy PUT requests to Service
+
+        Args:
+            
+            name, str: name of the Service (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyPUTService" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/namespaces/{namespaces}/services/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyPOSTService(self, **kwargs):
+        """proxy POST requests to Service
+
+        Args:
+            
+            name, str: name of the Service (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyPOSTService" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/namespaces/{namespaces}/services/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyDELETEService(self, **kwargs):
+        """proxy DELETE requests to Service
+
+        Args:
+            
+            name, str: name of the Service (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyDELETEService" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/namespaces/{namespaces}/services/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyGETService(self, **kwargs):
+        """proxy GET requests to Service
+
+        Args:
+            
+            name, str: name of the Service (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            path:*, str: path to the resource (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'path:*']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyGETService" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/namespaces/{namespaces}/services/{name}/{path:*}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+        if ('path:*' in params):
+            replacement = str(self.apiClient.toPathValue(params['path:*']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'path:*' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyPUTService(self, **kwargs):
+        """proxy PUT requests to Service
+
+        Args:
+            
+            name, str: name of the Service (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            path:*, str: path to the resource (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'path:*']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyPUTService" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/namespaces/{namespaces}/services/{name}/{path:*}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+        if ('path:*' in params):
+            replacement = str(self.apiClient.toPathValue(params['path:*']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'path:*' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyPOSTService(self, **kwargs):
+        """proxy POST requests to Service
+
+        Args:
+            
+            name, str: name of the Service (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            path:*, str: path to the resource (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'path:*']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyPOSTService" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/namespaces/{namespaces}/services/{name}/{path:*}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+        if ('path:*' in params):
+            replacement = str(self.apiClient.toPathValue(params['path:*']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'path:*' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyDELETEService(self, **kwargs):
+        """proxy DELETE requests to Service
+
+        Args:
+            
+            name, str: name of the Service (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            path:*, str: path to the resource (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces', 'path:*']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyDELETEService" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/namespaces/{namespaces}/services/{name}/{path:*}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+        if ('path:*' in params):
+            replacement = str(self.apiClient.toPathValue(params['path:*']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'path:*' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyGETNode(self, **kwargs):
+        """proxy GET requests to Node
+
+        Args:
+            
+            name, str: name of the Node (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyGETNode" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/nodes/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyPUTNode(self, **kwargs):
+        """proxy PUT requests to Node
+
+        Args:
+            
+            name, str: name of the Node (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyPUTNode" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/nodes/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyPOSTNode(self, **kwargs):
+        """proxy POST requests to Node
+
+        Args:
+            
+            name, str: name of the Node (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyPOSTNode" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/nodes/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyDELETENode(self, **kwargs):
+        """proxy DELETE requests to Node
+
+        Args:
+            
+            name, str: name of the Node (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyDELETENode" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/nodes/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyGETNode(self, **kwargs):
+        """proxy GET requests to Node
+
+        Args:
+            
+            name, str: name of the Node (required)
+            
+            
+            path:*, str: path to the resource (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'path:*']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyGETNode" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/nodes/{name}/{path:*}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('path:*' in params):
+            replacement = str(self.apiClient.toPathValue(params['path:*']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'path:*' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyPUTNode(self, **kwargs):
+        """proxy PUT requests to Node
+
+        Args:
+            
+            name, str: name of the Node (required)
+            
+            
+            path:*, str: path to the resource (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'path:*']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyPUTNode" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/nodes/{name}/{path:*}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'PUT'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('path:*' in params):
+            replacement = str(self.apiClient.toPathValue(params['path:*']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'path:*' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyPOSTNode(self, **kwargs):
+        """proxy POST requests to Node
+
+        Args:
+            
+            name, str: name of the Node (required)
+            
+            
+            path:*, str: path to the resource (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'path:*']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyPOSTNode" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/nodes/{name}/{path:*}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'POST'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('path:*' in params):
+            replacement = str(self.apiClient.toPathValue(params['path:*']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'path:*' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def proxyDELETENode(self, **kwargs):
+        """proxy DELETE requests to Node
+
+        Args:
+            
+            name, str: name of the Node (required)
+            
+            
+            path:*, str: path to the resource (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'path:*']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method proxyDELETENode" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/proxy/nodes/{name}/{path:*}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'DELETE'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('path:*' in params):
+            replacement = str(self.apiClient.toPathValue(params['path:*']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'path:*' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def redirectPod(self, **kwargs):
+        """redirect GET request to Pod
+
+        Args:
+            
+            name, str: name of the Pod (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method redirectPod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/redirect/namespaces/{namespaces}/pods/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def redirectService(self, **kwargs):
+        """redirect GET request to Service
+
+        Args:
+            
+            name, str: name of the Service (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name', 'namespaces']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method redirectService" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/redirect/namespaces/{namespaces}/services/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def redirectNode(self, **kwargs):
+        """redirect GET request to Node
+
+        Args:
+            
+            name, str: name of the Node (required)
+            
+            
+        
+        Returns: 
+        """
+
+        allParams = ['name']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method redirectNode" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/redirect/nodes/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = '*/*'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        
+        
+    
+    def listReplicationController(self, **kwargs):
+        """list or watch objects of kind ReplicationController
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_ReplicationControllerList
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listReplicationController" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/replicationcontrollers'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_ReplicationControllerList')
+        return responseObject
+        
+        
+        
+    
+    def listResourceQuota(self, **kwargs):
+        """list or watch objects of kind ResourceQuota
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_ResourceQuotaList
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listResourceQuota" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/resourcequotas'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_ResourceQuotaList')
+        return responseObject
+        
+        
+        
+    
+    def listSecret(self, **kwargs):
+        """list or watch objects of kind Secret
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_SecretList
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listSecret" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/secrets'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_SecretList')
+        return responseObject
+        
+        
+        
+    
+    def listService(self, **kwargs):
+        """list or watch objects of kind Service
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: v1beta3_ServiceList
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method listService" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/services'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'v1beta3_ServiceList')
+        return responseObject
+        
+        
+        
+    
+    def watchEndpointslist(self, **kwargs):
+        """watch individual changes to a list of Endpoints
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchEndpointslist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/endpoints'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchEventlist(self, **kwargs):
+        """watch individual changes to a list of Event
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchEventlist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/events'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchLimitRangelist(self, **kwargs):
+        """watch individual changes to a list of LimitRange
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchLimitRangelist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/limitranges'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchNamespacelist(self, **kwargs):
+        """watch individual changes to a list of Namespace
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchNamespacelist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchEndpointslist(self, **kwargs):
+        """watch individual changes to a list of Endpoints
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchEndpointslist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/endpoints'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchEndpoints(self, **kwargs):
+        """watch changes to an object of kind Endpoints
+
+        Args:
+            
+            name, str: name of the Endpoints (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['name', 'namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchEndpoints" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/endpoints/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchEventlist(self, **kwargs):
+        """watch individual changes to a list of Event
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchEventlist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/events'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchEvent(self, **kwargs):
+        """watch changes to an object of kind Event
+
+        Args:
+            
+            name, str: name of the Event (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['name', 'namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchEvent" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/events/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchLimitRangelist(self, **kwargs):
+        """watch individual changes to a list of LimitRange
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchLimitRangelist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/limitranges'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchLimitRange(self, **kwargs):
+        """watch changes to an object of kind LimitRange
+
+        Args:
+            
+            name, str: name of the LimitRange (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['name', 'namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchLimitRange" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/limitranges/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchPersistentVolumeClaimlist(self, **kwargs):
+        """watch individual changes to a list of PersistentVolumeClaim
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchPersistentVolumeClaimlist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/persistentvolumeclaims'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchPersistentVolumeClaim(self, **kwargs):
+        """watch changes to an object of kind PersistentVolumeClaim
+
+        Args:
+            
+            name, str: name of the PersistentVolumeClaim (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['name', 'namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchPersistentVolumeClaim" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/persistentvolumeclaims/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchPodlist(self, **kwargs):
+        """watch individual changes to a list of Pod
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchPodlist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/pods'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchPod(self, **kwargs):
+        """watch changes to an object of kind Pod
+
+        Args:
+            
+            name, str: name of the Pod (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['name', 'namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchPod" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/pods/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchReplicationControllerlist(self, **kwargs):
+        """watch individual changes to a list of ReplicationController
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchReplicationControllerlist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/replicationcontrollers'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchReplicationController(self, **kwargs):
+        """watch changes to an object of kind ReplicationController
+
+        Args:
+            
+            name, str: name of the ReplicationController (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['name', 'namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchReplicationController" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/replicationcontrollers/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchResourceQuotalist(self, **kwargs):
+        """watch individual changes to a list of ResourceQuota
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchResourceQuotalist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/resourcequotas'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchResourceQuota(self, **kwargs):
+        """watch changes to an object of kind ResourceQuota
+
+        Args:
+            
+            name, str: name of the ResourceQuota (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['name', 'namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchResourceQuota" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/resourcequotas/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchSecretlist(self, **kwargs):
+        """watch individual changes to a list of Secret
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchSecretlist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/secrets'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchSecret(self, **kwargs):
+        """watch changes to an object of kind Secret
+
+        Args:
+            
+            name, str: name of the Secret (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['name', 'namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchSecret" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/secrets/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchServicelist(self, **kwargs):
+        """watch individual changes to a list of Service
+
+        Args:
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchServicelist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/services'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchService(self, **kwargs):
+        """watch changes to an object of kind Service
+
+        Args:
+            
+            name, str: name of the Service (required)
+            
+            
+            namespaces, str: object name and auth scope, such as for teams and projects (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['name', 'namespaces', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchService" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{namespaces}/services/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+        if ('namespaces' in params):
+            replacement = str(self.apiClient.toPathValue(params['namespaces']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'namespaces' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchNamespace(self, **kwargs):
+        """watch changes to an object of kind Namespace
+
+        Args:
+            
+            name, str: name of the Namespace (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['name', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchNamespace" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/namespaces/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchNodelist(self, **kwargs):
+        """watch individual changes to a list of Node
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchNodelist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/nodes'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchNode(self, **kwargs):
+        """watch changes to an object of kind Node
+
+        Args:
+            
+            name, str: name of the Node (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['name', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchNode" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/nodes/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchPersistentVolumeClaimlist(self, **kwargs):
+        """watch individual changes to a list of PersistentVolumeClaim
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchPersistentVolumeClaimlist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/persistentvolumeclaims'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchPersistentVolumelist(self, **kwargs):
+        """watch individual changes to a list of PersistentVolume
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchPersistentVolumelist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/persistentvolumes'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchPersistentVolume(self, **kwargs):
+        """watch changes to an object of kind PersistentVolume
+
+        Args:
+            
+            name, str: name of the PersistentVolume (required)
+            
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['name', 'fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchPersistentVolume" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/persistentvolumes/{name}'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+        if ('name' in params):
+            replacement = str(self.apiClient.toPathValue(params['name']))
+            replacement = urllib.quote(replacement)
+            resourcePath = resourcePath.replace('{' + 'name' + '}',
+                                                replacement)
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchPodlist(self, **kwargs):
+        """watch individual changes to a list of Pod
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchPodlist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/pods'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchReplicationControllerlist(self, **kwargs):
+        """watch individual changes to a list of ReplicationController
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchReplicationControllerlist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/replicationcontrollers'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchResourceQuotalist(self, **kwargs):
+        """watch individual changes to a list of ResourceQuota
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchResourceQuotalist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/resourcequotas'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchSecretlist(self, **kwargs):
+        """watch individual changes to a list of Secret
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchSecretlist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/secrets'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+    def watchServicelist(self, **kwargs):
+        """watch individual changes to a list of Service
+
+        Args:
+            
+            fieldSelector, str: a selector to restrict the list of returned objects by their fields; defaults to everything (required)
+            
+            
+            labelSelector, str: a selector to restrict the list of returned objects by their labels; defaults to everything (required)
+            
+            
+            resourceVersion, str: when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history (required)
+            
+            
+            watch, bool: watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion (required)
+            
+            
+        
+        Returns: json_WatchEvent
+        """
+
+        allParams = ['fieldSelector', 'labelSelector', 'resourceVersion', 'watch']
+
+        params = locals()
+        for (key, val) in params['kwargs'].iteritems():
+            if key not in allParams:
+                raise TypeError("Got an unexpected keyword argument '%s' to method watchServicelist" % key)
+            params[key] = val
+        del params['kwargs']
+
+        resourcePath = '/api/v1beta3/watch/services'
+        resourcePath = resourcePath.replace('{format}', 'json')
+        method = 'GET'
+
+        queryParams = {}
+        headerParams = {}
+        formParams = {}
+        files = {}
+        bodyParam = None
+
+        headerParams['Accept'] = 'application/json'
+        headerParams['Content-Type'] = '*/*,'
+
+        
+        if ('fieldSelector' in params):
+            queryParams['fieldSelector'] = self.apiClient.toPathValue(params['fieldSelector'])
+        
+        if ('labelSelector' in params):
+            queryParams['labelSelector'] = self.apiClient.toPathValue(params['labelSelector'])
+        
+        if ('resourceVersion' in params):
+            queryParams['resourceVersion'] = self.apiClient.toPathValue(params['resourceVersion'])
+        
+        if ('watch' in params):
+            queryParams['watch'] = self.apiClient.toPathValue(params['watch'])
+        
+
+        
+
+        
+
+        
+
+        
+
+        postData = (formParams if formParams else bodyParam)
+
+        response = self.apiClient.callAPI(resourcePath, method, queryParams,
+                                          postData, headerParams, files=files)
+
+        
+        if not response:
+            return None
+
+        responseObject = self.apiClient.deserialize(response, 'json_WatchEvent')
+        return responseObject
+        
+        
+        
+    
+
+
diff --git a/magnum/common/pythonk8sclient/client/__init__.py b/magnum/common/pythonk8sclient/client/__init__.py
new file mode 100644
index 0000000..728aacb
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/__init__.py
@@ -0,0 +1,9 @@
+#!/usr/bin/env python
+"""Add all of the modules in the current directory to __all__"""
+import os
+
+__all__ = []
+
+for module in os.listdir(os.path.dirname(__file__)):
+  if module != '__init__.py' and module[-3:] == '.py':
+    __all__.append(module[:-3])
diff --git a/magnum/common/pythonk8sclient/client/models/Json_WatchEvent.py b/magnum/common/pythonk8sclient/client/models/Json_WatchEvent.py
new file mode 100644
index 0000000..9249fb6
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/Json_WatchEvent.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class Json_WatchEvent(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'object': 'str',
+            
+            
+            'type': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'object': 'object',
+            
+            'type': 'type'
+            
+        }       
+
+        
+        #the object being watched; will match the type of the resource endpoint or be a Status object if the type is ERROR
+        
+        self.object = None # str
+        
+        #the type of watch event; may be ADDED, MODIFIED, DELETED, or ERROR
+        
+        self.type = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_AccessModeType.py b/magnum/common/pythonk8sclient/client/models/V1beta3_AccessModeType.py
new file mode 100644
index 0000000..019328c
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_AccessModeType.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_AccessModeType(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+        }
+
+        self.attributeMap = {
+            
+        }       
+
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_Binding.py b/magnum/common/pythonk8sclient/client/models/V1beta3_Binding.py
new file mode 100644
index 0000000..c0662c8
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_Binding.py
@@ -0,0 +1,153 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_Binding(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'annotations': 'any',
+            
+            
+            'apiVersion': 'str',
+            
+            
+            'creationTimestamp': 'str',
+            
+            
+            'deletionTimestamp': 'str',
+            
+            
+            'generateName': 'str',
+            
+            
+            'kind': 'str',
+            
+            
+            'labels': 'any',
+            
+            
+            'name': 'str',
+            
+            
+            'namespace': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str',
+            
+            
+            'target': 'v1beta3_ObjectReference',
+            
+            
+            'uid': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'annotations': 'annotations',
+            
+            'apiVersion': 'apiVersion',
+            
+            'creationTimestamp': 'creationTimestamp',
+            
+            'deletionTimestamp': 'deletionTimestamp',
+            
+            'generateName': 'generateName',
+            
+            'kind': 'kind',
+            
+            'labels': 'labels',
+            
+            'name': 'name',
+            
+            'namespace': 'namespace',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink',
+            
+            'target': 'target',
+            
+            'uid': 'uid'
+            
+        }       
+
+        
+        #map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects
+        
+        self.annotations = None # any
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists
+        
+        self.creationTimestamp = None # str
+        
+        #RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested
+        
+        self.deletionTimestamp = None # str
+        
+        #an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified
+        
+        self.generateName = None # str
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services
+        
+        self.labels = None # any
+        
+        #string that identifies an object. Must be unique within a namespace; cannot be updated
+        
+        self.name = None # str
+        
+        #namespace of the object; cannot be updated
+        
+        self.namespace = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
+        #an object to bind to
+        
+        self.target = None # v1beta3_ObjectReference
+        
+        #unique UUID across space and time; populated by the system; read-only
+        
+        self.uid = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_Capabilities.py b/magnum/common/pythonk8sclient/client/models/V1beta3_Capabilities.py
new file mode 100644
index 0000000..6bf64e8
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_Capabilities.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_Capabilities(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'add': 'list[v1beta3_CapabilityType]',
+            
+            
+            'drop': 'list[v1beta3_CapabilityType]'
+            
+        }
+
+        self.attributeMap = {
+            
+            'add': 'add',
+            
+            'drop': 'drop'
+            
+        }       
+
+        
+        #added capabilities
+        
+        self.add = None # list[v1beta3_CapabilityType]
+        
+        #droped capabilities
+        
+        self.drop = None # list[v1beta3_CapabilityType]
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_CapabilityType.py b/magnum/common/pythonk8sclient/client/models/V1beta3_CapabilityType.py
new file mode 100644
index 0000000..e9ac260
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_CapabilityType.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_CapabilityType(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+        }
+
+        self.attributeMap = {
+            
+        }       
+
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_Container.py b/magnum/common/pythonk8sclient/client/models/V1beta3_Container.py
new file mode 100644
index 0000000..c776bbc
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_Container.py
@@ -0,0 +1,180 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_Container(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'args': 'list[str]',
+            
+            
+            'capabilities': 'v1beta3_Capabilities',
+            
+            
+            'command': 'list[str]',
+            
+            
+            'env': 'list[v1beta3_EnvVar]',
+            
+            
+            'image': 'str',
+            
+            
+            'imagePullPolicy': 'str',
+            
+            
+            'lifecycle': 'v1beta3_Lifecycle',
+            
+            
+            'livenessProbe': 'v1beta3_Probe',
+            
+            
+            'name': 'str',
+            
+            
+            'ports': 'list[v1beta3_ContainerPort]',
+            
+            
+            'privileged': 'bool',
+            
+            
+            'readinessProbe': 'v1beta3_Probe',
+            
+            
+            'resources': 'v1beta3_ResourceRequirements',
+            
+            
+            'terminationMessagePath': 'str',
+            
+            
+            'volumeMounts': 'list[v1beta3_VolumeMount]',
+            
+            
+            'workingDir': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'args': 'args',
+            
+            'capabilities': 'capabilities',
+            
+            'command': 'command',
+            
+            'env': 'env',
+            
+            'image': 'image',
+            
+            'imagePullPolicy': 'imagePullPolicy',
+            
+            'lifecycle': 'lifecycle',
+            
+            'livenessProbe': 'livenessProbe',
+            
+            'name': 'name',
+            
+            'ports': 'ports',
+            
+            'privileged': 'privileged',
+            
+            'readinessProbe': 'readinessProbe',
+            
+            'resources': 'resources',
+            
+            'terminationMessagePath': 'terminationMessagePath',
+            
+            'volumeMounts': 'volumeMounts',
+            
+            'workingDir': 'workingDir'
+            
+        }       
+
+        
+        #command array; the docker image&#39;s cmd is used if this is not provided; arguments to the entrypoint; cannot be updated
+        
+        self.args = None # list[str]
+        
+        #capabilities for container; cannot be updated
+        
+        self.capabilities = None # v1beta3_Capabilities
+        
+        #entrypoint array; not executed within a shell; the docker image&#39;s entrypoint is used if this is not provided; cannot be updated
+        
+        self.command = None # list[str]
+        
+        #list of environment variables to set in the container; cannot be updated
+        
+        self.env = None # list[v1beta3_EnvVar]
+        
+        #Docker image name
+        
+        self.image = None # str
+        
+        #image pull policy; one of PullAlways, PullNever, PullIfNotPresent; defaults to PullAlways if :latest tag is specified, or PullIfNotPresent otherwise; cannot be updated
+        
+        self.imagePullPolicy = None # str
+        
+        #actions that the management system should take in response to container lifecycle events; cannot be updated
+        
+        self.lifecycle = None # v1beta3_Lifecycle
+        
+        #periodic probe of container liveness; container will be restarted if the probe fails; cannot be updated
+        
+        self.livenessProbe = None # v1beta3_Probe
+        
+        #name of the container; must be a DNS_LABEL and unique within the pod; cannot be updated
+        
+        self.name = None # str
+        
+        #list of ports to expose from the container; cannot be updated
+        
+        self.ports = None # list[v1beta3_ContainerPort]
+        
+        #whether or not the container is granted privileged status; defaults to false; cannot be updated
+        
+        self.privileged = None # bool
+        
+        #periodic probe of container service readiness; container will be removed from service endpoints if the probe fails; cannot be updated
+        
+        self.readinessProbe = None # v1beta3_Probe
+        
+        #Compute Resources required by this container; cannot be updated
+        
+        self.resources = None # v1beta3_ResourceRequirements
+        
+        #path at which the file to which the container&#39;s termination message will be written is mounted into the container&#39;s filesystem; message written is intended to be brief final status, such as an assertion failure message; defaults to /dev/termination-log; cannot be updated
+        
+        self.terminationMessagePath = None # str
+        
+        #pod volumes to mount into the container&#39;s filesyste; cannot be updated
+        
+        self.volumeMounts = None # list[v1beta3_VolumeMount]
+        
+        #container&#39;s working directory; defaults to image&#39;s default; cannot be updated
+        
+        self.workingDir = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerPort.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerPort.py
new file mode 100644
index 0000000..f6d6e1c
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerPort.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ContainerPort(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'containerPort': 'int',
+            
+            
+            'hostIP': 'str',
+            
+            
+            'hostPort': 'int',
+            
+            
+            'name': 'str',
+            
+            
+            'protocol': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'containerPort': 'containerPort',
+            
+            'hostIP': 'hostIP',
+            
+            'hostPort': 'hostPort',
+            
+            'name': 'name',
+            
+            'protocol': 'protocol'
+            
+        }       
+
+        
+        #number of port to expose on the pod&#39;s IP address
+        
+        self.containerPort = None # int
+        
+        #host IP to bind the port to
+        
+        self.hostIP = None # str
+        
+        #number of port to expose on the host; most containers do not need this
+        
+        self.hostPort = None # int
+        
+        #name for the port that can be referred to by services; must be a DNS_LABEL and unique without the pod
+        
+        self.name = None # str
+        
+        #protocol for port; must be UDP or TCP; TCP if unspecified
+        
+        self.protocol = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerState.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerState.py
new file mode 100644
index 0000000..3dd0b16
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerState.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ContainerState(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'running': 'v1beta3_ContainerStateRunning',
+            
+            
+            'termination': 'v1beta3_ContainerStateTerminated',
+            
+            
+            'waiting': 'v1beta3_ContainerStateWaiting'
+            
+        }
+
+        self.attributeMap = {
+            
+            'running': 'running',
+            
+            'termination': 'termination',
+            
+            'waiting': 'waiting'
+            
+        }       
+
+        
+        #details about a running container
+        
+        self.running = None # v1beta3_ContainerStateRunning
+        
+        #details about a terminated container
+        
+        self.termination = None # v1beta3_ContainerStateTerminated
+        
+        #details about a waiting container
+        
+        self.waiting = None # v1beta3_ContainerStateWaiting
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStateRunning.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStateRunning.py
new file mode 100644
index 0000000..4743cf3
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStateRunning.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ContainerStateRunning(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'startedAt': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'startedAt': 'startedAt'
+            
+        }       
+
+        
+        #time at which the container was last (re-)started
+        
+        self.startedAt = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStateTerminated.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStateTerminated.py
new file mode 100644
index 0000000..5cceb43
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStateTerminated.py
@@ -0,0 +1,99 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ContainerStateTerminated(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'containerID': 'str',
+            
+            
+            'exitCode': 'int',
+            
+            
+            'finishedAt': 'str',
+            
+            
+            'message': 'str',
+            
+            
+            'reason': 'str',
+            
+            
+            'signal': 'int',
+            
+            
+            'startedAt': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'containerID': 'containerID',
+            
+            'exitCode': 'exitCode',
+            
+            'finishedAt': 'finishedAt',
+            
+            'message': 'message',
+            
+            'reason': 'reason',
+            
+            'signal': 'signal',
+            
+            'startedAt': 'startedAt'
+            
+        }       
+
+        
+        #container&#39;s ID in the format &#39;docker://&lt;container_id&gt;&#39;
+        
+        self.containerID = None # str
+        
+        #exit status from the last termination of the container
+        
+        self.exitCode = None # int
+        
+        #time at which the container last terminated
+        
+        self.finishedAt = None # str
+        
+        #message regarding the last termination of the container
+        
+        self.message = None # str
+        
+        #(brief) reason from the last termination of the container
+        
+        self.reason = None # str
+        
+        #signal from the last termination of the container
+        
+        self.signal = None # int
+        
+        #time at which previous execution of the container started
+        
+        self.startedAt = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStateWaiting.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStateWaiting.py
new file mode 100644
index 0000000..5b8dfcc
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStateWaiting.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ContainerStateWaiting(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'reason': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'reason': 'reason'
+            
+        }       
+
+        
+        #(brief) reason the container is not yet running, such as pulling its image
+        
+        self.reason = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStatus.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStatus.py
new file mode 100644
index 0000000..0972aaa
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ContainerStatus.py
@@ -0,0 +1,108 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ContainerStatus(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'containerID': 'str',
+            
+            
+            'image': 'str',
+            
+            
+            'imageID': 'str',
+            
+            
+            'lastState': 'v1beta3_ContainerState',
+            
+            
+            'name': 'str',
+            
+            
+            'ready': 'bool',
+            
+            
+            'restartCount': 'int',
+            
+            
+            'state': 'v1beta3_ContainerState'
+            
+        }
+
+        self.attributeMap = {
+            
+            'containerID': 'containerID',
+            
+            'image': 'image',
+            
+            'imageID': 'imageID',
+            
+            'lastState': 'lastState',
+            
+            'name': 'name',
+            
+            'ready': 'ready',
+            
+            'restartCount': 'restartCount',
+            
+            'state': 'state'
+            
+        }       
+
+        
+        #container&#39;s ID in the format &#39;docker://&lt;container_id&gt;&#39;
+        
+        self.containerID = None # str
+        
+        #image of the container
+        
+        self.image = None # str
+        
+        #ID of the container&#39;s image
+        
+        self.imageID = None # str
+        
+        #details about the container&#39;s last termination condition
+        
+        self.lastState = None # v1beta3_ContainerState
+        
+        #name of the container; must be a DNS_LABEL and unique within the pod; cannot be updated
+        
+        self.name = None # str
+        
+        #specifies whether the container has passed its readiness probe
+        
+        self.ready = None # bool
+        
+        #the number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed
+        
+        self.restartCount = None # int
+        
+        #details about the container&#39;s current condition
+        
+        self.state = None # v1beta3_ContainerState
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_DeleteOptions.py b/magnum/common/pythonk8sclient/client/models/V1beta3_DeleteOptions.py
new file mode 100644
index 0000000..dca4c01
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_DeleteOptions.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_DeleteOptions(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+        }
+
+        self.attributeMap = {
+            
+        }       
+
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_EmptyDirVolumeSource.py b/magnum/common/pythonk8sclient/client/models/V1beta3_EmptyDirVolumeSource.py
new file mode 100644
index 0000000..b3de605
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_EmptyDirVolumeSource.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_EmptyDirVolumeSource(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'medium': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'medium': 'medium'
+            
+        }       
+
+        
+        #type of storage used to back the volume; must be an empty string (default) or Memory
+        
+        self.medium = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_EndpointAddress.py b/magnum/common/pythonk8sclient/client/models/V1beta3_EndpointAddress.py
new file mode 100644
index 0000000..352a330
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_EndpointAddress.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_EndpointAddress(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'IP': 'str',
+            
+            
+            'targetRef': 'v1beta3_ObjectReference'
+            
+        }
+
+        self.attributeMap = {
+            
+            'IP': 'IP',
+            
+            'targetRef': 'targetRef'
+            
+        }       
+
+        
+        #IP address of the endpoint
+        
+        self.IP = None # str
+        
+        #reference to object providing the endpoint
+        
+        self.targetRef = None # v1beta3_ObjectReference
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_EndpointPort.py b/magnum/common/pythonk8sclient/client/models/V1beta3_EndpointPort.py
new file mode 100644
index 0000000..551239e
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_EndpointPort.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_EndpointPort(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'name': 'str',
+            
+            
+            'port': 'int',
+            
+            
+            'protocol': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'name': 'name',
+            
+            'port': 'port',
+            
+            'protocol': 'protocol'
+            
+        }       
+
+        
+        #name of this port
+        
+        self.name = None # str
+        
+        #port number of the endpoint
+        
+        self.port = None # int
+        
+        #protocol for this port; must be UDP or TCP; TCP if unspecified
+        
+        self.protocol = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_EndpointSubset.py b/magnum/common/pythonk8sclient/client/models/V1beta3_EndpointSubset.py
new file mode 100644
index 0000000..52a6767
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_EndpointSubset.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_EndpointSubset(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'addresses': 'list[v1beta3_EndpointAddress]',
+            
+            
+            'ports': 'list[v1beta3_EndpointPort]'
+            
+        }
+
+        self.attributeMap = {
+            
+            'addresses': 'addresses',
+            
+            'ports': 'ports'
+            
+        }       
+
+        
+        #IP addresses which offer the related ports
+        
+        self.addresses = None # list[v1beta3_EndpointAddress]
+        
+        #port numbers available on the related IP addresses
+        
+        self.ports = None # list[v1beta3_EndpointPort]
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_Endpoints.py b/magnum/common/pythonk8sclient/client/models/V1beta3_Endpoints.py
new file mode 100644
index 0000000..19053bc
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_Endpoints.py
@@ -0,0 +1,153 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_Endpoints(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'annotations': 'any',
+            
+            
+            'apiVersion': 'str',
+            
+            
+            'creationTimestamp': 'str',
+            
+            
+            'deletionTimestamp': 'str',
+            
+            
+            'generateName': 'str',
+            
+            
+            'kind': 'str',
+            
+            
+            'labels': 'any',
+            
+            
+            'name': 'str',
+            
+            
+            'namespace': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str',
+            
+            
+            'subsets': 'list[v1beta3_EndpointSubset]',
+            
+            
+            'uid': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'annotations': 'annotations',
+            
+            'apiVersion': 'apiVersion',
+            
+            'creationTimestamp': 'creationTimestamp',
+            
+            'deletionTimestamp': 'deletionTimestamp',
+            
+            'generateName': 'generateName',
+            
+            'kind': 'kind',
+            
+            'labels': 'labels',
+            
+            'name': 'name',
+            
+            'namespace': 'namespace',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink',
+            
+            'subsets': 'subsets',
+            
+            'uid': 'uid'
+            
+        }       
+
+        
+        #map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects
+        
+        self.annotations = None # any
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists
+        
+        self.creationTimestamp = None # str
+        
+        #RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested
+        
+        self.deletionTimestamp = None # str
+        
+        #an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified
+        
+        self.generateName = None # str
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services
+        
+        self.labels = None # any
+        
+        #string that identifies an object. Must be unique within a namespace; cannot be updated
+        
+        self.name = None # str
+        
+        #namespace of the object; cannot be updated
+        
+        self.namespace = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
+        #sets of addresses and ports that comprise a service
+        
+        self.subsets = None # list[v1beta3_EndpointSubset]
+        
+        #unique UUID across space and time; populated by the system; read-only
+        
+        self.uid = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_EndpointsList.py b/magnum/common/pythonk8sclient/client/models/V1beta3_EndpointsList.py
new file mode 100644
index 0000000..ab7af79
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_EndpointsList.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_EndpointsList(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'apiVersion': 'str',
+            
+            
+            'items': 'list[v1beta3_Endpoints]',
+            
+            
+            'kind': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'apiVersion': 'apiVersion',
+            
+            'items': 'items',
+            
+            'kind': 'kind',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink'
+            
+        }       
+
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #list of endpoints
+        
+        self.items = None # list[v1beta3_Endpoints]
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_EnvVar.py b/magnum/common/pythonk8sclient/client/models/V1beta3_EnvVar.py
new file mode 100644
index 0000000..f2592a9
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_EnvVar.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_EnvVar(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'name': 'str',
+            
+            
+            'value': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'name': 'name',
+            
+            'value': 'value'
+            
+        }       
+
+        
+        #name of the environment variable; must be a C_IDENTIFIER
+        
+        self.name = None # str
+        
+        #value of the environment variable; defaults to empty string
+        
+        self.value = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_Event.py b/magnum/common/pythonk8sclient/client/models/V1beta3_Event.py
new file mode 100644
index 0000000..83e9e7b
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_Event.py
@@ -0,0 +1,207 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_Event(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'annotations': 'any',
+            
+            
+            'apiVersion': 'str',
+            
+            
+            'count': 'int',
+            
+            
+            'creationTimestamp': 'str',
+            
+            
+            'deletionTimestamp': 'str',
+            
+            
+            'firstTimestamp': 'str',
+            
+            
+            'generateName': 'str',
+            
+            
+            'involvedObject': 'v1beta3_ObjectReference',
+            
+            
+            'kind': 'str',
+            
+            
+            'labels': 'any',
+            
+            
+            'lastTimestamp': 'str',
+            
+            
+            'message': 'str',
+            
+            
+            'name': 'str',
+            
+            
+            'namespace': 'str',
+            
+            
+            'reason': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str',
+            
+            
+            'source': 'v1beta3_EventSource',
+            
+            
+            'uid': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'annotations': 'annotations',
+            
+            'apiVersion': 'apiVersion',
+            
+            'count': 'count',
+            
+            'creationTimestamp': 'creationTimestamp',
+            
+            'deletionTimestamp': 'deletionTimestamp',
+            
+            'firstTimestamp': 'firstTimestamp',
+            
+            'generateName': 'generateName',
+            
+            'involvedObject': 'involvedObject',
+            
+            'kind': 'kind',
+            
+            'labels': 'labels',
+            
+            'lastTimestamp': 'lastTimestamp',
+            
+            'message': 'message',
+            
+            'name': 'name',
+            
+            'namespace': 'namespace',
+            
+            'reason': 'reason',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink',
+            
+            'source': 'source',
+            
+            'uid': 'uid'
+            
+        }       
+
+        
+        #map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects
+        
+        self.annotations = None # any
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #the number of times this event has occurred
+        
+        self.count = None # int
+        
+        #RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists
+        
+        self.creationTimestamp = None # str
+        
+        #RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested
+        
+        self.deletionTimestamp = None # str
+        
+        #the time at which the event was first recorded
+        
+        self.firstTimestamp = None # str
+        
+        #an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified
+        
+        self.generateName = None # str
+        
+        #object this event is about
+        
+        self.involvedObject = None # v1beta3_ObjectReference
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services
+        
+        self.labels = None # any
+        
+        #the time at which the most recent occurance of this event was recorded
+        
+        self.lastTimestamp = None # str
+        
+        #human-readable description of the status of this operation
+        
+        self.message = None # str
+        
+        #string that identifies an object. Must be unique within a namespace; cannot be updated
+        
+        self.name = None # str
+        
+        #namespace of the object; cannot be updated
+        
+        self.namespace = None # str
+        
+        #short, machine understandable string that gives the reason for the transition into the object&#39;s current status
+        
+        self.reason = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
+        #component reporting this event
+        
+        self.source = None # v1beta3_EventSource
+        
+        #unique UUID across space and time; populated by the system; read-only
+        
+        self.uid = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_EventList.py b/magnum/common/pythonk8sclient/client/models/V1beta3_EventList.py
new file mode 100644
index 0000000..0e15522
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_EventList.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_EventList(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'apiVersion': 'str',
+            
+            
+            'items': 'list[v1beta3_Event]',
+            
+            
+            'kind': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'apiVersion': 'apiVersion',
+            
+            'items': 'items',
+            
+            'kind': 'kind',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink'
+            
+        }       
+
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #list of events
+        
+        self.items = None # list[v1beta3_Event]
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_EventSource.py b/magnum/common/pythonk8sclient/client/models/V1beta3_EventSource.py
new file mode 100644
index 0000000..e9486ed
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_EventSource.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_EventSource(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'component': 'str',
+            
+            
+            'host': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'component': 'component',
+            
+            'host': 'host'
+            
+        }       
+
+        
+        #component that generated the event
+        
+        self.component = None # str
+        
+        #name of the host where the event is generated
+        
+        self.host = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ExecAction.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ExecAction.py
new file mode 100644
index 0000000..061c0c5
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ExecAction.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ExecAction(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'command': 'list[str]'
+            
+        }
+
+        self.attributeMap = {
+            
+            'command': 'command'
+            
+        }       
+
+        
+        #command line to execute inside the container; working directory for the command is root (&#39;/&#39;) in the container&#39;s file system; the command is exec&#39;d, not run inside a shell; exit status of 0 is treated as live/healthy and non-zero is unhealthy
+        
+        self.command = None # list[str]
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_FinalizerName.py b/magnum/common/pythonk8sclient/client/models/V1beta3_FinalizerName.py
new file mode 100644
index 0000000..7f4ed4a
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_FinalizerName.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_FinalizerName(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+        }
+
+        self.attributeMap = {
+            
+        }       
+
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_GCEPersistentDiskVolumeSource.py b/magnum/common/pythonk8sclient/client/models/V1beta3_GCEPersistentDiskVolumeSource.py
new file mode 100644
index 0000000..a4d0b05
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_GCEPersistentDiskVolumeSource.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_GCEPersistentDiskVolumeSource(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'fsType': 'str',
+            
+            
+            'partition': 'int',
+            
+            
+            'pdName': 'str',
+            
+            
+            'readOnly': 'bool'
+            
+        }
+
+        self.attributeMap = {
+            
+            'fsType': 'fsType',
+            
+            'partition': 'partition',
+            
+            'pdName': 'pdName',
+            
+            'readOnly': 'readOnly'
+            
+        }       
+
+        
+        #file system type to mount, such as ext4, xfs, ntfs
+        
+        self.fsType = None # str
+        
+        #partition on the disk to mount (e.g., &#39;1&#39; for /dev/sda1); if omitted the plain device name (e.g., /dev/sda) will be mounted
+        
+        self.partition = None # int
+        
+        #unique name of the PD resource in GCE
+        
+        self.pdName = None # str
+        
+        #read-only if true, read-write otherwise (false or unspecified)
+        
+        self.readOnly = None # bool
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_GitRepoVolumeSource.py b/magnum/common/pythonk8sclient/client/models/V1beta3_GitRepoVolumeSource.py
new file mode 100644
index 0000000..03bd51e
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_GitRepoVolumeSource.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_GitRepoVolumeSource(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'repository': 'str',
+            
+            
+            'revision': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'repository': 'repository',
+            
+            'revision': 'revision'
+            
+        }       
+
+        
+        #repository URL
+        
+        self.repository = None # str
+        
+        #commit hash for the specified revision
+        
+        self.revision = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_HTTPGetAction.py b/magnum/common/pythonk8sclient/client/models/V1beta3_HTTPGetAction.py
new file mode 100644
index 0000000..114e686
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_HTTPGetAction.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_HTTPGetAction(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'host': 'str',
+            
+            
+            'path': 'str',
+            
+            
+            'port': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'host': 'host',
+            
+            'path': 'path',
+            
+            'port': 'port'
+            
+        }       
+
+        
+        #hostname to connect to; defaults to pod IP
+        
+        self.host = None # str
+        
+        #path to access on the HTTP server
+        
+        self.path = None # str
+        
+        #number or name of the port to access on the container
+        
+        self.port = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_Handler.py b/magnum/common/pythonk8sclient/client/models/V1beta3_Handler.py
new file mode 100644
index 0000000..04d832e
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_Handler.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_Handler(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'exect': 'v1beta3_ExecAction',
+            
+            
+            'httpGet': 'v1beta3_HTTPGetAction',
+            
+            
+            'tcpSocket': 'v1beta3_TCPSocketAction'
+            
+        }
+
+        self.attributeMap = {
+            
+            'exect': 'exect',
+            
+            'httpGet': 'httpGet',
+            
+            'tcpSocket': 'tcpSocket'
+            
+        }       
+
+        
+        #exec-based handler
+        
+        self.exect = None # v1beta3_ExecAction
+        
+        #HTTP-based handler
+        
+        self.httpGet = None # v1beta3_HTTPGetAction
+        
+        #TCP-based handler; TCP hooks not yet supported
+        
+        self.tcpSocket = None # v1beta3_TCPSocketAction
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_HostPathVolumeSource.py b/magnum/common/pythonk8sclient/client/models/V1beta3_HostPathVolumeSource.py
new file mode 100644
index 0000000..4b1e3cf
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_HostPathVolumeSource.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_HostPathVolumeSource(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'path': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'path': 'path'
+            
+        }       
+
+        
+        #path of the directory on the host
+        
+        self.path = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ISCSIVolumeSource.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ISCSIVolumeSource.py
new file mode 100644
index 0000000..e172aff
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ISCSIVolumeSource.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ISCSIVolumeSource(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'fsType': 'str',
+            
+            
+            'iqn': 'str',
+            
+            
+            'lun': 'int',
+            
+            
+            'readOnly': 'bool',
+            
+            
+            'targetPortal': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'fsType': 'fsType',
+            
+            'iqn': 'iqn',
+            
+            'lun': 'lun',
+            
+            'readOnly': 'readOnly',
+            
+            'targetPortal': 'targetPortal'
+            
+        }       
+
+        
+        #file system type to mount, such as ext4, xfs, ntfs
+        
+        self.fsType = None # str
+        
+        #iSCSI Qualified Name
+        
+        self.iqn = None # str
+        
+        #iscsi target lun number
+        
+        self.lun = None # int
+        
+        #read-only if true, read-write otherwise (false or unspecified)
+        
+        self.readOnly = None # bool
+        
+        #iSCSI target portal
+        
+        self.targetPortal = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_Lifecycle.py b/magnum/common/pythonk8sclient/client/models/V1beta3_Lifecycle.py
new file mode 100644
index 0000000..9e1b4f1
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_Lifecycle.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_Lifecycle(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'postStart': 'v1beta3_Handler',
+            
+            
+            'preStop': 'v1beta3_Handler'
+            
+        }
+
+        self.attributeMap = {
+            
+            'postStart': 'postStart',
+            
+            'preStop': 'preStop'
+            
+        }       
+
+        
+        #called immediately after a container is started; if the handler fails, the container is terminated and restarted according to its restart policy; other management of the container blocks until the hook completes
+        
+        self.postStart = None # v1beta3_Handler
+        
+        #called before a container is terminated; the container is terminated after the handler completes; other management of the container blocks until the hook completes
+        
+        self.preStop = None # v1beta3_Handler
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_LimitRange.py b/magnum/common/pythonk8sclient/client/models/V1beta3_LimitRange.py
new file mode 100644
index 0000000..b0fe972
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_LimitRange.py
@@ -0,0 +1,153 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_LimitRange(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'annotations': 'any',
+            
+            
+            'apiVersion': 'str',
+            
+            
+            'creationTimestamp': 'str',
+            
+            
+            'deletionTimestamp': 'str',
+            
+            
+            'generateName': 'str',
+            
+            
+            'kind': 'str',
+            
+            
+            'labels': 'any',
+            
+            
+            'name': 'str',
+            
+            
+            'namespace': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str',
+            
+            
+            'spec': 'v1beta3_LimitRangeSpec',
+            
+            
+            'uid': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'annotations': 'annotations',
+            
+            'apiVersion': 'apiVersion',
+            
+            'creationTimestamp': 'creationTimestamp',
+            
+            'deletionTimestamp': 'deletionTimestamp',
+            
+            'generateName': 'generateName',
+            
+            'kind': 'kind',
+            
+            'labels': 'labels',
+            
+            'name': 'name',
+            
+            'namespace': 'namespace',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink',
+            
+            'spec': 'spec',
+            
+            'uid': 'uid'
+            
+        }       
+
+        
+        #map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects
+        
+        self.annotations = None # any
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists
+        
+        self.creationTimestamp = None # str
+        
+        #RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested
+        
+        self.deletionTimestamp = None # str
+        
+        #an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified
+        
+        self.generateName = None # str
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services
+        
+        self.labels = None # any
+        
+        #string that identifies an object. Must be unique within a namespace; cannot be updated
+        
+        self.name = None # str
+        
+        #namespace of the object; cannot be updated
+        
+        self.namespace = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
+        #spec defines the limits enforced; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status
+        
+        self.spec = None # v1beta3_LimitRangeSpec
+        
+        #unique UUID across space and time; populated by the system; read-only
+        
+        self.uid = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_LimitRangeItem.py b/magnum/common/pythonk8sclient/client/models/V1beta3_LimitRangeItem.py
new file mode 100644
index 0000000..646e837
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_LimitRangeItem.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_LimitRangeItem(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'default': 'any',
+            
+            
+            'max': 'any',
+            
+            
+            'min': 'any',
+            
+            
+            'type': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'default': 'default',
+            
+            'max': 'max',
+            
+            'min': 'min',
+            
+            'type': 'type'
+            
+        }       
+
+        
+        #default values on this kind by resource name if omitted
+        
+        self.default = None # any
+        
+        #max usage constraints on this kind by resource name
+        
+        self.max = None # any
+        
+        #min usage constraints on this kind by resource name
+        
+        self.min = None # any
+        
+        #type of resource that this limit applies to
+        
+        self.type = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_LimitRangeList.py b/magnum/common/pythonk8sclient/client/models/V1beta3_LimitRangeList.py
new file mode 100644
index 0000000..9a4933a
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_LimitRangeList.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_LimitRangeList(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'apiVersion': 'str',
+            
+            
+            'items': 'list[v1beta3_LimitRange]',
+            
+            
+            'kind': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'apiVersion': 'apiVersion',
+            
+            'items': 'items',
+            
+            'kind': 'kind',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink'
+            
+        }       
+
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #items is a list of LimitRange objects
+        
+        self.items = None # list[v1beta3_LimitRange]
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_LimitRangeSpec.py b/magnum/common/pythonk8sclient/client/models/V1beta3_LimitRangeSpec.py
new file mode 100644
index 0000000..e49bf5c
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_LimitRangeSpec.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_LimitRangeSpec(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'limits': 'list[v1beta3_LimitRangeItem]'
+            
+        }
+
+        self.attributeMap = {
+            
+            'limits': 'limits'
+            
+        }       
+
+        
+        #limits is the list of LimitRangeItem objects that are enforced
+        
+        self.limits = None # list[v1beta3_LimitRangeItem]
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_NFSVolumeSource.py b/magnum/common/pythonk8sclient/client/models/V1beta3_NFSVolumeSource.py
new file mode 100644
index 0000000..d86cd80
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_NFSVolumeSource.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_NFSVolumeSource(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'path': 'str',
+            
+            
+            'readOnly': 'bool',
+            
+            
+            'server': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'path': 'path',
+            
+            'readOnly': 'readOnly',
+            
+            'server': 'server'
+            
+        }       
+
+        
+        #the path that is exported by the NFS server
+        
+        self.path = None # str
+        
+        #forces the NFS export to be mounted with read-only permissions
+        
+        self.readOnly = None # bool
+        
+        #the hostname or IP address of the NFS server
+        
+        self.server = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_Namespace.py b/magnum/common/pythonk8sclient/client/models/V1beta3_Namespace.py
new file mode 100644
index 0000000..da8c2cb
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_Namespace.py
@@ -0,0 +1,162 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_Namespace(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'annotations': 'any',
+            
+            
+            'apiVersion': 'str',
+            
+            
+            'creationTimestamp': 'str',
+            
+            
+            'deletionTimestamp': 'str',
+            
+            
+            'generateName': 'str',
+            
+            
+            'kind': 'str',
+            
+            
+            'labels': 'any',
+            
+            
+            'name': 'str',
+            
+            
+            'namespace': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str',
+            
+            
+            'spec': 'v1beta3_NamespaceSpec',
+            
+            
+            'status': 'v1beta3_NamespaceStatus',
+            
+            
+            'uid': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'annotations': 'annotations',
+            
+            'apiVersion': 'apiVersion',
+            
+            'creationTimestamp': 'creationTimestamp',
+            
+            'deletionTimestamp': 'deletionTimestamp',
+            
+            'generateName': 'generateName',
+            
+            'kind': 'kind',
+            
+            'labels': 'labels',
+            
+            'name': 'name',
+            
+            'namespace': 'namespace',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink',
+            
+            'spec': 'spec',
+            
+            'status': 'status',
+            
+            'uid': 'uid'
+            
+        }       
+
+        
+        #map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects
+        
+        self.annotations = None # any
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists
+        
+        self.creationTimestamp = None # str
+        
+        #RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested
+        
+        self.deletionTimestamp = None # str
+        
+        #an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified
+        
+        self.generateName = None # str
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services
+        
+        self.labels = None # any
+        
+        #string that identifies an object. Must be unique within a namespace; cannot be updated
+        
+        self.name = None # str
+        
+        #namespace of the object; cannot be updated
+        
+        self.namespace = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
+        #spec defines the behavior of the Namespace; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status
+        
+        self.spec = None # v1beta3_NamespaceSpec
+        
+        #status describes the current status of a Namespace; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status
+        
+        self.status = None # v1beta3_NamespaceStatus
+        
+        #unique UUID across space and time; populated by the system; read-only
+        
+        self.uid = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_NamespaceList.py b/magnum/common/pythonk8sclient/client/models/V1beta3_NamespaceList.py
new file mode 100644
index 0000000..f868824
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_NamespaceList.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_NamespaceList(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'apiVersion': 'str',
+            
+            
+            'items': 'list[v1beta3_Namespace]',
+            
+            
+            'kind': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'apiVersion': 'apiVersion',
+            
+            'items': 'items',
+            
+            'kind': 'kind',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink'
+            
+        }       
+
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #items is the list of Namespace objects in the list
+        
+        self.items = None # list[v1beta3_Namespace]
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_NamespaceSpec.py b/magnum/common/pythonk8sclient/client/models/V1beta3_NamespaceSpec.py
new file mode 100644
index 0000000..d5c0333
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_NamespaceSpec.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_NamespaceSpec(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'finalizers': 'list[v1beta3_FinalizerName]'
+            
+        }
+
+        self.attributeMap = {
+            
+            'finalizers': 'finalizers'
+            
+        }       
+
+        
+        #an opaque list of values that must be empty to permanently remove object from storage
+        
+        self.finalizers = None # list[v1beta3_FinalizerName]
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_NamespaceStatus.py b/magnum/common/pythonk8sclient/client/models/V1beta3_NamespaceStatus.py
new file mode 100644
index 0000000..77ceba2
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_NamespaceStatus.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_NamespaceStatus(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'phase': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'phase': 'phase'
+            
+        }       
+
+        
+        #phase is the current lifecycle phase of the namespace
+        
+        self.phase = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_Node.py b/magnum/common/pythonk8sclient/client/models/V1beta3_Node.py
new file mode 100644
index 0000000..9539fc8
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_Node.py
@@ -0,0 +1,162 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_Node(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'annotations': 'any',
+            
+            
+            'apiVersion': 'str',
+            
+            
+            'creationTimestamp': 'str',
+            
+            
+            'deletionTimestamp': 'str',
+            
+            
+            'generateName': 'str',
+            
+            
+            'kind': 'str',
+            
+            
+            'labels': 'any',
+            
+            
+            'name': 'str',
+            
+            
+            'namespace': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str',
+            
+            
+            'spec': 'v1beta3_NodeSpec',
+            
+            
+            'status': 'v1beta3_NodeStatus',
+            
+            
+            'uid': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'annotations': 'annotations',
+            
+            'apiVersion': 'apiVersion',
+            
+            'creationTimestamp': 'creationTimestamp',
+            
+            'deletionTimestamp': 'deletionTimestamp',
+            
+            'generateName': 'generateName',
+            
+            'kind': 'kind',
+            
+            'labels': 'labels',
+            
+            'name': 'name',
+            
+            'namespace': 'namespace',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink',
+            
+            'spec': 'spec',
+            
+            'status': 'status',
+            
+            'uid': 'uid'
+            
+        }       
+
+        
+        #map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects
+        
+        self.annotations = None # any
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists
+        
+        self.creationTimestamp = None # str
+        
+        #RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested
+        
+        self.deletionTimestamp = None # str
+        
+        #an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified
+        
+        self.generateName = None # str
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services
+        
+        self.labels = None # any
+        
+        #string that identifies an object. Must be unique within a namespace; cannot be updated
+        
+        self.name = None # str
+        
+        #namespace of the object; cannot be updated
+        
+        self.namespace = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
+        #specification of a node; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status
+        
+        self.spec = None # v1beta3_NodeSpec
+        
+        #most recently observed status of the node; populated by the system, read-only; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status
+        
+        self.status = None # v1beta3_NodeStatus
+        
+        #unique UUID across space and time; populated by the system; read-only
+        
+        self.uid = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_NodeAddress.py b/magnum/common/pythonk8sclient/client/models/V1beta3_NodeAddress.py
new file mode 100644
index 0000000..8a87e68
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_NodeAddress.py
@@ -0,0 +1,52 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_NodeAddress(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'address': 'str',
+            
+            
+            'type': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'address': 'address',
+            
+            'type': 'type'
+            
+        }       
+
+        
+        
+        self.address = None # str
+        
+        
+        self.type = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_NodeCondition.py b/magnum/common/pythonk8sclient/client/models/V1beta3_NodeCondition.py
new file mode 100644
index 0000000..54f76c4
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_NodeCondition.py
@@ -0,0 +1,90 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_NodeCondition(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'lastProbeTime': 'str',
+            
+            
+            'lastTransitionTime': 'str',
+            
+            
+            'message': 'str',
+            
+            
+            'reason': 'str',
+            
+            
+            'status': 'str',
+            
+            
+            'type': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'lastProbeTime': 'lastProbeTime',
+            
+            'lastTransitionTime': 'lastTransitionTime',
+            
+            'message': 'message',
+            
+            'reason': 'reason',
+            
+            'status': 'status',
+            
+            'type': 'type'
+            
+        }       
+
+        
+        #last time the condition was probed
+        
+        self.lastProbeTime = None # str
+        
+        #last time the condition transit from one status to another
+        
+        self.lastTransitionTime = None # str
+        
+        #human readable message indicating details about last transition
+        
+        self.message = None # str
+        
+        #(brief) reason for the condition&#39;s last transition
+        
+        self.reason = None # str
+        
+        #status of the condition, one of Full, None, Unknown
+        
+        self.status = None # str
+        
+        #type of node condition, one of Ready, Schedulable
+        
+        self.type = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_NodeList.py b/magnum/common/pythonk8sclient/client/models/V1beta3_NodeList.py
new file mode 100644
index 0000000..45530ac
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_NodeList.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_NodeList(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'apiVersion': 'str',
+            
+            
+            'items': 'list[v1beta3_Node]',
+            
+            
+            'kind': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'apiVersion': 'apiVersion',
+            
+            'items': 'items',
+            
+            'kind': 'kind',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink'
+            
+        }       
+
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #list of nodes
+        
+        self.items = None # list[v1beta3_Node]
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_NodeSpec.py b/magnum/common/pythonk8sclient/client/models/V1beta3_NodeSpec.py
new file mode 100644
index 0000000..36d3955
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_NodeSpec.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_NodeSpec(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'externalID': 'str',
+            
+            
+            'podCIDR': 'str',
+            
+            
+            'unschedulable': 'bool'
+            
+        }
+
+        self.attributeMap = {
+            
+            'externalID': 'externalID',
+            
+            'podCIDR': 'podCIDR',
+            
+            'unschedulable': 'unschedulable'
+            
+        }       
+
+        
+        #external ID assigned to the node by some machine database (e.g. a cloud provider). Defaults to node name when empty.
+        
+        self.externalID = None # str
+        
+        #pod IP range assigned to the node
+        
+        self.podCIDR = None # str
+        
+        #disable pod scheduling on the node
+        
+        self.unschedulable = None # bool
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_NodeStatus.py b/magnum/common/pythonk8sclient/client/models/V1beta3_NodeStatus.py
new file mode 100644
index 0000000..cf92c2f
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_NodeStatus.py
@@ -0,0 +1,80 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_NodeStatus(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'addresses': 'list[v1beta3_NodeAddress]',
+            
+            
+            'capacity': 'any',
+            
+            
+            'conditions': 'list[v1beta3_NodeCondition]',
+            
+            
+            'nodeInfo': 'v1beta3_NodeSystemInfo',
+            
+            
+            'phase': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'addresses': 'addresses',
+            
+            'capacity': 'capacity',
+            
+            'conditions': 'conditions',
+            
+            'nodeInfo': 'nodeInfo',
+            
+            'phase': 'phase'
+            
+        }       
+
+        
+        #list of addresses reachable to the node
+        
+        self.addresses = None # list[v1beta3_NodeAddress]
+        
+        #compute resource capacity of the node; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/resources.md
+        
+        self.capacity = None # any
+        
+        #list of node conditions observed
+        
+        self.conditions = None # list[v1beta3_NodeCondition]
+        
+        
+        self.nodeInfo = None # v1beta3_NodeSystemInfo
+        
+        #most recently observed lifecycle phase of the node
+        
+        self.phase = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_NodeSystemInfo.py b/magnum/common/pythonk8sclient/client/models/V1beta3_NodeSystemInfo.py
new file mode 100644
index 0000000..690c661
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_NodeSystemInfo.py
@@ -0,0 +1,106 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_NodeSystemInfo(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'KubeProxyVersion': 'str',
+            
+            
+            'bootID': 'str',
+            
+            
+            'containerRuntimeVersion': 'str',
+            
+            
+            'kernelVersion': 'str',
+            
+            
+            'kubeletVersion': 'str',
+            
+            
+            'machineID': 'str',
+            
+            
+            'osImage': 'str',
+            
+            
+            'systemUUID': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'KubeProxyVersion': 'KubeProxyVersion',
+            
+            'bootID': 'bootID',
+            
+            'containerRuntimeVersion': 'containerRuntimeVersion',
+            
+            'kernelVersion': 'kernelVersion',
+            
+            'kubeletVersion': 'kubeletVersion',
+            
+            'machineID': 'machineID',
+            
+            'osImage': 'osImage',
+            
+            'systemUUID': 'systemUUID'
+            
+        }       
+
+        
+        #Kube-proxy version reported by the node
+        
+        self.KubeProxyVersion = None # str
+        
+        #boot id is the boot-id reported by the node
+        
+        self.bootID = None # str
+        
+        #Container runtime version reported by the node through runtime remote API (e.g. docker://1.5.0)
+        
+        self.containerRuntimeVersion = None # str
+        
+        #Kernel version reported by the node from &#39;uname -r&#39; (e.g. 3.16.0-0.bpo.4-amd64)
+        
+        self.kernelVersion = None # str
+        
+        #Kubelet version reported by the node
+        
+        self.kubeletVersion = None # str
+        
+        
+        self.machineID = None # str
+        
+        #OS image used reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy))
+        
+        self.osImage = None # str
+        
+        
+        self.systemUUID = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ObjectReference.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ObjectReference.py
new file mode 100644
index 0000000..12f4bfc
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ObjectReference.py
@@ -0,0 +1,99 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ObjectReference(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'apiVersion': 'str',
+            
+            
+            'fieldPath': 'str',
+            
+            
+            'kind': 'str',
+            
+            
+            'name': 'str',
+            
+            
+            'namespace': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'uid': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'apiVersion': 'apiVersion',
+            
+            'fieldPath': 'fieldPath',
+            
+            'kind': 'kind',
+            
+            'name': 'name',
+            
+            'namespace': 'namespace',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'uid': 'uid'
+            
+        }       
+
+        
+        #API version of the referent
+        
+        self.apiVersion = None # str
+        
+        #if referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]
+        
+        self.fieldPath = None # str
+        
+        #kind of the referent
+        
+        self.kind = None # str
+        
+        #name of the referent
+        
+        self.name = None # str
+        
+        #namespace of the referent
+        
+        self.namespace = None # str
+        
+        #specific resourceVersion to which this reference is made, if any: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #uid of the referent
+        
+        self.uid = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolume.py b/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolume.py
new file mode 100644
index 0000000..ec8beb4
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolume.py
@@ -0,0 +1,162 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_PersistentVolume(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'annotations': 'any',
+            
+            
+            'apiVersion': 'str',
+            
+            
+            'creationTimestamp': 'str',
+            
+            
+            'deletionTimestamp': 'str',
+            
+            
+            'generateName': 'str',
+            
+            
+            'kind': 'str',
+            
+            
+            'labels': 'any',
+            
+            
+            'name': 'str',
+            
+            
+            'namespace': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str',
+            
+            
+            'spec': 'v1beta3_PersistentVolumeSpec',
+            
+            
+            'status': 'v1beta3_PersistentVolumeStatus',
+            
+            
+            'uid': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'annotations': 'annotations',
+            
+            'apiVersion': 'apiVersion',
+            
+            'creationTimestamp': 'creationTimestamp',
+            
+            'deletionTimestamp': 'deletionTimestamp',
+            
+            'generateName': 'generateName',
+            
+            'kind': 'kind',
+            
+            'labels': 'labels',
+            
+            'name': 'name',
+            
+            'namespace': 'namespace',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink',
+            
+            'spec': 'spec',
+            
+            'status': 'status',
+            
+            'uid': 'uid'
+            
+        }       
+
+        
+        #map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects
+        
+        self.annotations = None # any
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists
+        
+        self.creationTimestamp = None # str
+        
+        #RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested
+        
+        self.deletionTimestamp = None # str
+        
+        #an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified
+        
+        self.generateName = None # str
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services
+        
+        self.labels = None # any
+        
+        #string that identifies an object. Must be unique within a namespace; cannot be updated
+        
+        self.name = None # str
+        
+        #namespace of the object; cannot be updated
+        
+        self.namespace = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
+        #specification of a persistent volume as provisioned by an administrator
+        
+        self.spec = None # v1beta3_PersistentVolumeSpec
+        
+        #current status of a persistent volume; populated by the system, read-only
+        
+        self.status = None # v1beta3_PersistentVolumeStatus
+        
+        #unique UUID across space and time; populated by the system; read-only
+        
+        self.uid = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeClaim.py b/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeClaim.py
new file mode 100644
index 0000000..d8b7e46
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeClaim.py
@@ -0,0 +1,161 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_PersistentVolumeClaim(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'annotations': 'any',
+            
+            
+            'apiVersion': 'str',
+            
+            
+            'creationTimestamp': 'str',
+            
+            
+            'deletionTimestamp': 'str',
+            
+            
+            'generateName': 'str',
+            
+            
+            'kind': 'str',
+            
+            
+            'labels': 'any',
+            
+            
+            'name': 'str',
+            
+            
+            'namespace': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str',
+            
+            
+            'spec': 'v1beta3_PersistentVolumeClaimSpec',
+            
+            
+            'status': 'v1beta3_PersistentVolumeClaimStatus',
+            
+            
+            'uid': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'annotations': 'annotations',
+            
+            'apiVersion': 'apiVersion',
+            
+            'creationTimestamp': 'creationTimestamp',
+            
+            'deletionTimestamp': 'deletionTimestamp',
+            
+            'generateName': 'generateName',
+            
+            'kind': 'kind',
+            
+            'labels': 'labels',
+            
+            'name': 'name',
+            
+            'namespace': 'namespace',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink',
+            
+            'spec': 'spec',
+            
+            'status': 'status',
+            
+            'uid': 'uid'
+            
+        }       
+
+        
+        #map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects
+        
+        self.annotations = None # any
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists
+        
+        self.creationTimestamp = None # str
+        
+        #RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested
+        
+        self.deletionTimestamp = None # str
+        
+        #an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified
+        
+        self.generateName = None # str
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services
+        
+        self.labels = None # any
+        
+        #string that identifies an object. Must be unique within a namespace; cannot be updated
+        
+        self.name = None # str
+        
+        #namespace of the object; cannot be updated
+        
+        self.namespace = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
+        
+        self.spec = None # v1beta3_PersistentVolumeClaimSpec
+        
+        #the current status of a persistent volume claim; read-only
+        
+        self.status = None # v1beta3_PersistentVolumeClaimStatus
+        
+        #unique UUID across space and time; populated by the system; read-only
+        
+        self.uid = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeClaimList.py b/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeClaimList.py
new file mode 100644
index 0000000..80ab484
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeClaimList.py
@@ -0,0 +1,80 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_PersistentVolumeClaimList(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'apiVersion': 'str',
+            
+            
+            'items': 'list[v1beta3_PersistentVolumeClaim]',
+            
+            
+            'kind': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'apiVersion': 'apiVersion',
+            
+            'items': 'items',
+            
+            'kind': 'kind',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink'
+            
+        }       
+
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        
+        self.items = None # list[v1beta3_PersistentVolumeClaim]
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeClaimSpec.py b/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeClaimSpec.py
new file mode 100644
index 0000000..7eda1e7
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeClaimSpec.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_PersistentVolumeClaimSpec(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'accessModes': 'list[v1beta3_AccessModeType]',
+            
+            
+            'resources': 'v1beta3_ResourceRequirements'
+            
+        }
+
+        self.attributeMap = {
+            
+            'accessModes': 'accessModes',
+            
+            'resources': 'resources'
+            
+        }       
+
+        
+        #the desired access modes the volume should have
+        
+        self.accessModes = None # list[v1beta3_AccessModeType]
+        
+        #the desired resources the volume should have
+        
+        self.resources = None # v1beta3_ResourceRequirements
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeClaimStatus.py b/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeClaimStatus.py
new file mode 100644
index 0000000..e337b67
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeClaimStatus.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_PersistentVolumeClaimStatus(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'accessModes': 'list[v1beta3_AccessModeType]',
+            
+            
+            'capacity': 'any',
+            
+            
+            'phase': 'str',
+            
+            
+            'volumeRef': 'v1beta3_ObjectReference'
+            
+        }
+
+        self.attributeMap = {
+            
+            'accessModes': 'accessModes',
+            
+            'capacity': 'capacity',
+            
+            'phase': 'phase',
+            
+            'volumeRef': 'volumeRef'
+            
+        }       
+
+        
+        #the actual access modes the volume has
+        
+        self.accessModes = None # list[v1beta3_AccessModeType]
+        
+        #the actual resources the volume has
+        
+        self.capacity = None # any
+        
+        #the current phase of the claim
+        
+        self.phase = None # str
+        
+        #a reference to the backing persistent volume, when bound
+        
+        self.volumeRef = None # v1beta3_ObjectReference
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeList.py b/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeList.py
new file mode 100644
index 0000000..451fa17
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeList.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_PersistentVolumeList(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'apiVersion': 'str',
+            
+            
+            'items': 'list[v1beta3_PersistentVolume]',
+            
+            
+            'kind': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'apiVersion': 'apiVersion',
+            
+            'items': 'items',
+            
+            'kind': 'kind',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink'
+            
+        }       
+
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #list of persistent volumes
+        
+        self.items = None # list[v1beta3_PersistentVolume]
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeSpec.py b/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeSpec.py
new file mode 100644
index 0000000..8534011
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeSpec.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_PersistentVolumeSpec(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'accessModes': 'list[v1beta3_AccessModeType]',
+            
+            
+            'capacity': 'any',
+            
+            
+            'claimRef': 'v1beta3_ObjectReference',
+            
+            
+            'gcePersistentDisk': 'v1beta3_GCEPersistentDiskVolumeSource',
+            
+            
+            'hostPath': 'v1beta3_HostPathVolumeSource'
+            
+        }
+
+        self.attributeMap = {
+            
+            'accessModes': 'accessModes',
+            
+            'capacity': 'capacity',
+            
+            'claimRef': 'claimRef',
+            
+            'gcePersistentDisk': 'gcePersistentDisk',
+            
+            'hostPath': 'hostPath'
+            
+        }       
+
+        
+        #all ways the volume can be mounted
+        
+        self.accessModes = None # list[v1beta3_AccessModeType]
+        
+        #a description of the persistent volume&#39;s resources and capacity
+        
+        self.capacity = None # any
+        
+        #the binding reference to a persistent volume claim
+        
+        self.claimRef = None # v1beta3_ObjectReference
+        
+        #GCE disk resource provisioned by an admin
+        
+        self.gcePersistentDisk = None # v1beta3_GCEPersistentDiskVolumeSource
+        
+        #a HostPath provisioned by a developer or tester; for develment use only
+        
+        self.hostPath = None # v1beta3_HostPathVolumeSource
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeStatus.py b/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeStatus.py
new file mode 100644
index 0000000..fb7076d
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_PersistentVolumeStatus.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_PersistentVolumeStatus(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'phase': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'phase': 'phase'
+            
+        }       
+
+        
+        #the current phase of a persistent volume
+        
+        self.phase = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_Pod.py b/magnum/common/pythonk8sclient/client/models/V1beta3_Pod.py
new file mode 100644
index 0000000..8500ee2
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_Pod.py
@@ -0,0 +1,162 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_Pod(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'annotations': 'any',
+            
+            
+            'apiVersion': 'str',
+            
+            
+            'creationTimestamp': 'str',
+            
+            
+            'deletionTimestamp': 'str',
+            
+            
+            'generateName': 'str',
+            
+            
+            'kind': 'str',
+            
+            
+            'labels': 'any',
+            
+            
+            'name': 'str',
+            
+            
+            'namespace': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str',
+            
+            
+            'spec': 'v1beta3_PodSpec',
+            
+            
+            'status': 'v1beta3_PodStatus',
+            
+            
+            'uid': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'annotations': 'annotations',
+            
+            'apiVersion': 'apiVersion',
+            
+            'creationTimestamp': 'creationTimestamp',
+            
+            'deletionTimestamp': 'deletionTimestamp',
+            
+            'generateName': 'generateName',
+            
+            'kind': 'kind',
+            
+            'labels': 'labels',
+            
+            'name': 'name',
+            
+            'namespace': 'namespace',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink',
+            
+            'spec': 'spec',
+            
+            'status': 'status',
+            
+            'uid': 'uid'
+            
+        }       
+
+        
+        #map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects
+        
+        self.annotations = None # any
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists
+        
+        self.creationTimestamp = None # str
+        
+        #RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested
+        
+        self.deletionTimestamp = None # str
+        
+        #an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified
+        
+        self.generateName = None # str
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services
+        
+        self.labels = None # any
+        
+        #string that identifies an object. Must be unique within a namespace; cannot be updated
+        
+        self.name = None # str
+        
+        #namespace of the object; cannot be updated
+        
+        self.namespace = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
+        #specification of the desired behavior of the pod; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status
+        
+        self.spec = None # v1beta3_PodSpec
+        
+        #most recently observed status of the pod; populated by the system, read-only; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status
+        
+        self.status = None # v1beta3_PodStatus
+        
+        #unique UUID across space and time; populated by the system; read-only
+        
+        self.uid = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_PodCondition.py b/magnum/common/pythonk8sclient/client/models/V1beta3_PodCondition.py
new file mode 100644
index 0000000..3e618fd
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_PodCondition.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_PodCondition(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'status': 'str',
+            
+            
+            'type': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'status': 'status',
+            
+            'type': 'type'
+            
+        }       
+
+        
+        #status of the condition, one of Full, None, Unknown
+        
+        self.status = None # str
+        
+        #kind of the condition
+        
+        self.type = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_PodList.py b/magnum/common/pythonk8sclient/client/models/V1beta3_PodList.py
new file mode 100644
index 0000000..5d8ad1f
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_PodList.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_PodList(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'apiVersion': 'str',
+            
+            
+            'items': 'list[v1beta3_Pod]',
+            
+            
+            'kind': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'apiVersion': 'apiVersion',
+            
+            'items': 'items',
+            
+            'kind': 'kind',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink'
+            
+        }       
+
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #list of pods
+        
+        self.items = None # list[v1beta3_Pod]
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_PodLogOptions.py b/magnum/common/pythonk8sclient/client/models/V1beta3_PodLogOptions.py
new file mode 100644
index 0000000..77bdf11
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_PodLogOptions.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_PodLogOptions(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'apiVersion': 'str',
+            
+            
+            'container': 'str',
+            
+            
+            'follow': 'bool',
+            
+            
+            'kind': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'apiVersion': 'apiVersion',
+            
+            'container': 'container',
+            
+            'follow': 'follow',
+            
+            'kind': 'kind'
+            
+        }       
+
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #the container for which to stream logs; defaults to only container if there is one container in the pod
+        
+        self.container = None # str
+        
+        #follow the log stream of the pod; defaults to false
+        
+        self.follow = None # bool
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_PodSpec.py b/magnum/common/pythonk8sclient/client/models/V1beta3_PodSpec.py
new file mode 100644
index 0000000..70fa721
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_PodSpec.py
@@ -0,0 +1,99 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_PodSpec(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'containers': 'list[v1beta3_Container]',
+            
+            
+            'dnsPolicy': 'str',
+            
+            
+            'host': 'str',
+            
+            
+            'hostNetwork': 'bool',
+            
+            
+            'nodeSelector': 'any',
+            
+            
+            'restartPolicy': 'str',
+            
+            
+            'volumes': 'list[v1beta3_Volume]'
+            
+        }
+
+        self.attributeMap = {
+            
+            'containers': 'containers',
+            
+            'dnsPolicy': 'dnsPolicy',
+            
+            'host': 'host',
+            
+            'hostNetwork': 'hostNetwork',
+            
+            'nodeSelector': 'nodeSelector',
+            
+            'restartPolicy': 'restartPolicy',
+            
+            'volumes': 'volumes'
+            
+        }       
+
+        
+        #list of containers belonging to the pod; cannot be updated; containers cannot currently be added or removed; there must be at least one container in a Pod
+        
+        self.containers = None # list[v1beta3_Container]
+        
+        #DNS policy for containers within the pod; one of &#39;ClusterFirst&#39; or &#39;Default&#39;
+        
+        self.dnsPolicy = None # str
+        
+        #host requested for this pod
+        
+        self.host = None # str
+        
+        #host networking requested for this pod
+        
+        self.hostNetwork = None # bool
+        
+        #selector which must match a node&#39;s labels for the pod to be scheduled on that node
+        
+        self.nodeSelector = None # any
+        
+        #restart policy for all containers within the pod; one of RestartPolicyAlways, RestartPolicyOnFailure, RestartPolicyNever
+        
+        self.restartPolicy = None # str
+        
+        #list of volumes that can be mounted by containers belonging to the pod
+        
+        self.volumes = None # list[v1beta3_Volume]
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_PodStatus.py b/magnum/common/pythonk8sclient/client/models/V1beta3_PodStatus.py
new file mode 100644
index 0000000..391c2aa
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_PodStatus.py
@@ -0,0 +1,90 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_PodStatus(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'Condition': 'list[v1beta3_PodCondition]',
+            
+            
+            'containerStatuses': 'list[v1beta3_ContainerStatus]',
+            
+            
+            'hostIP': 'str',
+            
+            
+            'message': 'str',
+            
+            
+            'phase': 'str',
+            
+            
+            'podIP': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'Condition': 'Condition',
+            
+            'containerStatuses': 'containerStatuses',
+            
+            'hostIP': 'hostIP',
+            
+            'message': 'message',
+            
+            'phase': 'phase',
+            
+            'podIP': 'podIP'
+            
+        }       
+
+        
+        #current service state of pod
+        
+        self.Condition = None # list[v1beta3_PodCondition]
+        
+        #list of container statuses
+        
+        self.containerStatuses = None # list[v1beta3_ContainerStatus]
+        
+        #IP address of the host to which the pod is assigned; empty if not yet scheduled
+        
+        self.hostIP = None # str
+        
+        #human readable message indicating details about why the pod is in this condition
+        
+        self.message = None # str
+        
+        #current condition of the pod.
+        
+        self.phase = None # str
+        
+        #IP address allocated to the pod; routable at least within the cluster; empty if not yet allocated
+        
+        self.podIP = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_PodTemplateSpec.py b/magnum/common/pythonk8sclient/client/models/V1beta3_PodTemplateSpec.py
new file mode 100644
index 0000000..66dda09
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_PodTemplateSpec.py
@@ -0,0 +1,135 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_PodTemplateSpec(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'annotations': 'any',
+            
+            
+            'creationTimestamp': 'str',
+            
+            
+            'deletionTimestamp': 'str',
+            
+            
+            'generateName': 'str',
+            
+            
+            'labels': 'any',
+            
+            
+            'name': 'str',
+            
+            
+            'namespace': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str',
+            
+            
+            'spec': 'v1beta3_PodSpec',
+            
+            
+            'uid': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'annotations': 'annotations',
+            
+            'creationTimestamp': 'creationTimestamp',
+            
+            'deletionTimestamp': 'deletionTimestamp',
+            
+            'generateName': 'generateName',
+            
+            'labels': 'labels',
+            
+            'name': 'name',
+            
+            'namespace': 'namespace',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink',
+            
+            'spec': 'spec',
+            
+            'uid': 'uid'
+            
+        }       
+
+        
+        #map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects
+        
+        self.annotations = None # any
+        
+        #RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists
+        
+        self.creationTimestamp = None # str
+        
+        #RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested
+        
+        self.deletionTimestamp = None # str
+        
+        #an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified
+        
+        self.generateName = None # str
+        
+        #map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services
+        
+        self.labels = None # any
+        
+        #string that identifies an object. Must be unique within a namespace; cannot be updated
+        
+        self.name = None # str
+        
+        #namespace of the object; cannot be updated
+        
+        self.namespace = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
+        #specification of the desired behavior of the pod; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status
+        
+        self.spec = None # v1beta3_PodSpec
+        
+        #unique UUID across space and time; populated by the system; read-only
+        
+        self.uid = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_Probe.py b/magnum/common/pythonk8sclient/client/models/V1beta3_Probe.py
new file mode 100644
index 0000000..8c5e9fa
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_Probe.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_Probe(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'exect': 'v1beta3_ExecAction',
+            
+            
+            'httpGet': 'v1beta3_HTTPGetAction',
+            
+            
+            'initialDelaySeconds': 'long',
+            
+            
+            'tcpSocket': 'v1beta3_TCPSocketAction',
+            
+            
+            'timeoutSeconds': 'long'
+            
+        }
+
+        self.attributeMap = {
+            
+            'exect': 'exect',
+            
+            'httpGet': 'httpGet',
+            
+            'initialDelaySeconds': 'initialDelaySeconds',
+            
+            'tcpSocket': 'tcpSocket',
+            
+            'timeoutSeconds': 'timeoutSeconds'
+            
+        }       
+
+        
+        #exec-based handler
+        
+        self.exect = None # v1beta3_ExecAction
+        
+        #HTTP-based handler
+        
+        self.httpGet = None # v1beta3_HTTPGetAction
+        
+        #number of seconds after the container has started before liveness probes are initiated
+        
+        self.initialDelaySeconds = None # long
+        
+        #TCP-based handler; TCP hooks not yet supported
+        
+        self.tcpSocket = None # v1beta3_TCPSocketAction
+        
+        #number of seconds after which liveness probes timeout; defaults to 1 second
+        
+        self.timeoutSeconds = None # long
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ReplicationController.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ReplicationController.py
new file mode 100644
index 0000000..fd5eadf
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ReplicationController.py
@@ -0,0 +1,162 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ReplicationController(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'annotations': 'any',
+            
+            
+            'apiVersion': 'str',
+            
+            
+            'creationTimestamp': 'str',
+            
+            
+            'deletionTimestamp': 'str',
+            
+            
+            'generateName': 'str',
+            
+            
+            'kind': 'str',
+            
+            
+            'labels': 'any',
+            
+            
+            'name': 'str',
+            
+            
+            'namespace': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str',
+            
+            
+            'spec': 'v1beta3_ReplicationControllerSpec',
+            
+            
+            'status': 'v1beta3_ReplicationControllerStatus',
+            
+            
+            'uid': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'annotations': 'annotations',
+            
+            'apiVersion': 'apiVersion',
+            
+            'creationTimestamp': 'creationTimestamp',
+            
+            'deletionTimestamp': 'deletionTimestamp',
+            
+            'generateName': 'generateName',
+            
+            'kind': 'kind',
+            
+            'labels': 'labels',
+            
+            'name': 'name',
+            
+            'namespace': 'namespace',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink',
+            
+            'spec': 'spec',
+            
+            'status': 'status',
+            
+            'uid': 'uid'
+            
+        }       
+
+        
+        #map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects
+        
+        self.annotations = None # any
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists
+        
+        self.creationTimestamp = None # str
+        
+        #RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested
+        
+        self.deletionTimestamp = None # str
+        
+        #an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified
+        
+        self.generateName = None # str
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services
+        
+        self.labels = None # any
+        
+        #string that identifies an object. Must be unique within a namespace; cannot be updated
+        
+        self.name = None # str
+        
+        #namespace of the object; cannot be updated
+        
+        self.namespace = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
+        #specification of the desired behavior of the replication controller; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status
+        
+        self.spec = None # v1beta3_ReplicationControllerSpec
+        
+        #most recently observed status of the replication controller; populated by the system, read-only; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status
+        
+        self.status = None # v1beta3_ReplicationControllerStatus
+        
+        #unique UUID across space and time; populated by the system; read-only
+        
+        self.uid = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ReplicationControllerList.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ReplicationControllerList.py
new file mode 100644
index 0000000..809c85d
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ReplicationControllerList.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ReplicationControllerList(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'apiVersion': 'str',
+            
+            
+            'items': 'list[v1beta3_ReplicationController]',
+            
+            
+            'kind': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'apiVersion': 'apiVersion',
+            
+            'items': 'items',
+            
+            'kind': 'kind',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink'
+            
+        }       
+
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #list of replication controllers
+        
+        self.items = None # list[v1beta3_ReplicationController]
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ReplicationControllerSpec.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ReplicationControllerSpec.py
new file mode 100644
index 0000000..970736c
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ReplicationControllerSpec.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ReplicationControllerSpec(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'replicas': 'int',
+            
+            
+            'selector': 'any',
+            
+            
+            'template': 'v1beta3_PodTemplateSpec',
+            
+            
+            'templateRef': 'v1beta3_ObjectReference'
+            
+        }
+
+        self.attributeMap = {
+            
+            'replicas': 'replicas',
+            
+            'selector': 'selector',
+            
+            'template': 'template',
+            
+            'templateRef': 'templateRef'
+            
+        }       
+
+        
+        #number of replicas desired
+        
+        self.replicas = None # int
+        
+        #label keys and values that must match in order to be controlled by this replication controller
+        
+        self.selector = None # any
+        
+        #object that describes the pod that will be created if insufficient replicas are detected; takes precendence over templateRef
+        
+        self.template = None # v1beta3_PodTemplateSpec
+        
+        #reference to an object that describes the pod that will be created if insufficient replicas are detected
+        
+        self.templateRef = None # v1beta3_ObjectReference
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ReplicationControllerStatus.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ReplicationControllerStatus.py
new file mode 100644
index 0000000..f9717e8
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ReplicationControllerStatus.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ReplicationControllerStatus(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'replicas': 'int'
+            
+        }
+
+        self.attributeMap = {
+            
+            'replicas': 'replicas'
+            
+        }       
+
+        
+        #most recently oberved number of replicas
+        
+        self.replicas = None # int
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ResourceQuota.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ResourceQuota.py
new file mode 100644
index 0000000..72c97be
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ResourceQuota.py
@@ -0,0 +1,162 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ResourceQuota(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'annotations': 'any',
+            
+            
+            'apiVersion': 'str',
+            
+            
+            'creationTimestamp': 'str',
+            
+            
+            'deletionTimestamp': 'str',
+            
+            
+            'generateName': 'str',
+            
+            
+            'kind': 'str',
+            
+            
+            'labels': 'any',
+            
+            
+            'name': 'str',
+            
+            
+            'namespace': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str',
+            
+            
+            'spec': 'v1beta3_ResourceQuotaSpec',
+            
+            
+            'status': 'v1beta3_ResourceQuotaStatus',
+            
+            
+            'uid': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'annotations': 'annotations',
+            
+            'apiVersion': 'apiVersion',
+            
+            'creationTimestamp': 'creationTimestamp',
+            
+            'deletionTimestamp': 'deletionTimestamp',
+            
+            'generateName': 'generateName',
+            
+            'kind': 'kind',
+            
+            'labels': 'labels',
+            
+            'name': 'name',
+            
+            'namespace': 'namespace',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink',
+            
+            'spec': 'spec',
+            
+            'status': 'status',
+            
+            'uid': 'uid'
+            
+        }       
+
+        
+        #map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects
+        
+        self.annotations = None # any
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists
+        
+        self.creationTimestamp = None # str
+        
+        #RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested
+        
+        self.deletionTimestamp = None # str
+        
+        #an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified
+        
+        self.generateName = None # str
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services
+        
+        self.labels = None # any
+        
+        #string that identifies an object. Must be unique within a namespace; cannot be updated
+        
+        self.name = None # str
+        
+        #namespace of the object; cannot be updated
+        
+        self.namespace = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
+        #spec defines the desired quota; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status
+        
+        self.spec = None # v1beta3_ResourceQuotaSpec
+        
+        #status defines the actual enforced quota and current usage; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status
+        
+        self.status = None # v1beta3_ResourceQuotaStatus
+        
+        #unique UUID across space and time; populated by the system; read-only
+        
+        self.uid = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ResourceQuotaList.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ResourceQuotaList.py
new file mode 100644
index 0000000..6f6e66b
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ResourceQuotaList.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ResourceQuotaList(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'apiVersion': 'str',
+            
+            
+            'items': 'list[v1beta3_ResourceQuota]',
+            
+            
+            'kind': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'apiVersion': 'apiVersion',
+            
+            'items': 'items',
+            
+            'kind': 'kind',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink'
+            
+        }       
+
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #items is a list of ResourceQuota objects
+        
+        self.items = None # list[v1beta3_ResourceQuota]
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ResourceQuotaSpec.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ResourceQuotaSpec.py
new file mode 100644
index 0000000..5e620f3
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ResourceQuotaSpec.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ResourceQuotaSpec(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'hard': 'any'
+            
+        }
+
+        self.attributeMap = {
+            
+            'hard': 'hard'
+            
+        }       
+
+        
+        #hard is the set of desired hard limits for each named resource
+        
+        self.hard = None # any
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ResourceQuotaStatus.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ResourceQuotaStatus.py
new file mode 100644
index 0000000..63ef9ad
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ResourceQuotaStatus.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ResourceQuotaStatus(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'hard': 'any',
+            
+            
+            'used': 'any'
+            
+        }
+
+        self.attributeMap = {
+            
+            'hard': 'hard',
+            
+            'used': 'used'
+            
+        }       
+
+        
+        #hard is the set of enforced hard limits for each named resource
+        
+        self.hard = None # any
+        
+        #used is the current observed total usage of the resource in the namespace
+        
+        self.used = None # any
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ResourceRequirements.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ResourceRequirements.py
new file mode 100644
index 0000000..608ee9a
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ResourceRequirements.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ResourceRequirements(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'limits': 'any',
+            
+            
+            'requests': 'any'
+            
+        }
+
+        self.attributeMap = {
+            
+            'limits': 'limits',
+            
+            'requests': 'requests'
+            
+        }       
+
+        
+        #Maximum amount of compute resources allowed
+        
+        self.limits = None # any
+        
+        #Minimum amount of resources requested
+        
+        self.requests = None # any
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_Secret.py b/magnum/common/pythonk8sclient/client/models/V1beta3_Secret.py
new file mode 100644
index 0000000..b461bef
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_Secret.py
@@ -0,0 +1,162 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_Secret(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'annotations': 'any',
+            
+            
+            'apiVersion': 'str',
+            
+            
+            'creationTimestamp': 'str',
+            
+            
+            'data': 'any',
+            
+            
+            'deletionTimestamp': 'str',
+            
+            
+            'generateName': 'str',
+            
+            
+            'kind': 'str',
+            
+            
+            'labels': 'any',
+            
+            
+            'name': 'str',
+            
+            
+            'namespace': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str',
+            
+            
+            'type': 'str',
+            
+            
+            'uid': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'annotations': 'annotations',
+            
+            'apiVersion': 'apiVersion',
+            
+            'creationTimestamp': 'creationTimestamp',
+            
+            'data': 'data',
+            
+            'deletionTimestamp': 'deletionTimestamp',
+            
+            'generateName': 'generateName',
+            
+            'kind': 'kind',
+            
+            'labels': 'labels',
+            
+            'name': 'name',
+            
+            'namespace': 'namespace',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink',
+            
+            'type': 'type',
+            
+            'uid': 'uid'
+            
+        }       
+
+        
+        #map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects
+        
+        self.annotations = None # any
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists
+        
+        self.creationTimestamp = None # str
+        
+        #data contains the secret data.  Each key must be a valid DNS_SUBDOMAIN.  Each value must be a base64 encoded string
+        
+        self.data = None # any
+        
+        #RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested
+        
+        self.deletionTimestamp = None # str
+        
+        #an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified
+        
+        self.generateName = None # str
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services
+        
+        self.labels = None # any
+        
+        #string that identifies an object. Must be unique within a namespace; cannot be updated
+        
+        self.name = None # str
+        
+        #namespace of the object; cannot be updated
+        
+        self.namespace = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
+        #type facilitates programmatic handling of secret data
+        
+        self.type = None # str
+        
+        #unique UUID across space and time; populated by the system; read-only
+        
+        self.uid = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_SecretList.py b/magnum/common/pythonk8sclient/client/models/V1beta3_SecretList.py
new file mode 100644
index 0000000..08377de
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_SecretList.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_SecretList(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'apiVersion': 'str',
+            
+            
+            'items': 'list[v1beta3_Secret]',
+            
+            
+            'kind': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'apiVersion': 'apiVersion',
+            
+            'items': 'items',
+            
+            'kind': 'kind',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink'
+            
+        }       
+
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #items is a list of secret objects
+        
+        self.items = None # list[v1beta3_Secret]
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_SecretVolumeSource.py b/magnum/common/pythonk8sclient/client/models/V1beta3_SecretVolumeSource.py
new file mode 100644
index 0000000..7c74ca8
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_SecretVolumeSource.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_SecretVolumeSource(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'secretName': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'secretName': 'secretName'
+            
+        }       
+
+        
+        #secretName is the name of a secret in the pod&#39;s namespace
+        
+        self.secretName = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_Service.py b/magnum/common/pythonk8sclient/client/models/V1beta3_Service.py
new file mode 100644
index 0000000..8173d95
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_Service.py
@@ -0,0 +1,162 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_Service(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'annotations': 'any',
+            
+            
+            'apiVersion': 'str',
+            
+            
+            'creationTimestamp': 'str',
+            
+            
+            'deletionTimestamp': 'str',
+            
+            
+            'generateName': 'str',
+            
+            
+            'kind': 'str',
+            
+            
+            'labels': 'any',
+            
+            
+            'name': 'str',
+            
+            
+            'namespace': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str',
+            
+            
+            'spec': 'v1beta3_ServiceSpec',
+            
+            
+            'status': 'v1beta3_ServiceStatus',
+            
+            
+            'uid': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'annotations': 'annotations',
+            
+            'apiVersion': 'apiVersion',
+            
+            'creationTimestamp': 'creationTimestamp',
+            
+            'deletionTimestamp': 'deletionTimestamp',
+            
+            'generateName': 'generateName',
+            
+            'kind': 'kind',
+            
+            'labels': 'labels',
+            
+            'name': 'name',
+            
+            'namespace': 'namespace',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink',
+            
+            'spec': 'spec',
+            
+            'status': 'status',
+            
+            'uid': 'uid'
+            
+        }       
+
+        
+        #map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects
+        
+        self.annotations = None # any
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists
+        
+        self.creationTimestamp = None # str
+        
+        #RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested
+        
+        self.deletionTimestamp = None # str
+        
+        #an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified
+        
+        self.generateName = None # str
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services
+        
+        self.labels = None # any
+        
+        #string that identifies an object. Must be unique within a namespace; cannot be updated
+        
+        self.name = None # str
+        
+        #namespace of the object; cannot be updated
+        
+        self.namespace = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
+        #specification of the desired behavior of the service; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status
+        
+        self.spec = None # v1beta3_ServiceSpec
+        
+        #most recently observed status of the service; populated by the system, read-only; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status
+        
+        self.status = None # v1beta3_ServiceStatus
+        
+        #unique UUID across space and time; populated by the system; read-only
+        
+        self.uid = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ServiceList.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ServiceList.py
new file mode 100644
index 0000000..f1a31da
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ServiceList.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ServiceList(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'apiVersion': 'str',
+            
+            
+            'items': 'list[v1beta3_Service]',
+            
+            
+            'kind': 'str',
+            
+            
+            'resourceVersion': 'str',
+            
+            
+            'selfLink': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'apiVersion': 'apiVersion',
+            
+            'items': 'items',
+            
+            'kind': 'kind',
+            
+            'resourceVersion': 'resourceVersion',
+            
+            'selfLink': 'selfLink'
+            
+        }       
+
+        
+        #version of the schema the object should have
+        
+        self.apiVersion = None # str
+        
+        #list of services
+        
+        self.items = None # list[v1beta3_Service]
+        
+        #kind of object, in CamelCase; cannot be updated
+        
+        self.kind = None # str
+        
+        #string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency
+        
+        self.resourceVersion = None # str
+        
+        #URL for the object; populated by the system, read-only
+        
+        self.selfLink = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ServicePort.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ServicePort.py
new file mode 100644
index 0000000..d68b65e
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ServicePort.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ServicePort(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'name': 'str',
+            
+            
+            'port': 'int',
+            
+            
+            'protocol': 'str',
+            
+            
+            'targetPort': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'name': 'name',
+            
+            'port': 'port',
+            
+            'protocol': 'protocol',
+            
+            'targetPort': 'targetPort'
+            
+        }       
+
+        
+        #the name of this port; optional if only one port is defined
+        
+        self.name = None # str
+        
+        #the port number that is exposed
+        
+        self.port = None # int
+        
+        #the protocol used by this port; must be UDP or TCP; TCP if unspecified
+        
+        self.protocol = None # str
+        
+        #the port to access on the pods targeted by the service; defaults to the service port
+        
+        self.targetPort = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ServiceSpec.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ServiceSpec.py
new file mode 100644
index 0000000..57d5b84
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ServiceSpec.py
@@ -0,0 +1,89 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ServiceSpec(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'createExternalLoadBalancer': 'bool',
+            
+            
+            'portalIP': 'str',
+            
+            
+            'ports': 'list[v1beta3_ServicePort]',
+            
+            
+            'publicIPs': 'list[str]',
+            
+            
+            'selector': 'any',
+            
+            
+            'sessionAffinity': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'createExternalLoadBalancer': 'createExternalLoadBalancer',
+            
+            'portalIP': 'portalIP',
+            
+            'ports': 'ports',
+            
+            'publicIPs': 'publicIPs',
+            
+            'selector': 'selector',
+            
+            'sessionAffinity': 'sessionAffinity'
+            
+        }       
+
+        
+        #set up a cloud-provider-specific load balancer on an external IP
+        
+        self.createExternalLoadBalancer = None # bool
+        
+        
+        self.portalIP = None # str
+        
+        #ports exposed by the service
+        
+        self.ports = None # list[v1beta3_ServicePort]
+        
+        #externally visible IPs (e.g. load balancers) that should be proxied to this service
+        
+        self.publicIPs = None # list[str]
+        
+        #label keys and values that must match in order to receive traffic for this service; if empty, all pods are selected, if not specified, endpoints must be manually specified
+        
+        self.selector = None # any
+        
+        #enable client IP based session affinity; must be ClientIP or None; defaults to None
+        
+        self.sessionAffinity = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_ServiceStatus.py b/magnum/common/pythonk8sclient/client/models/V1beta3_ServiceStatus.py
new file mode 100644
index 0000000..4e174bd
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_ServiceStatus.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_ServiceStatus(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+        }
+
+        self.attributeMap = {
+            
+        }       
+
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_TCPSocketAction.py b/magnum/common/pythonk8sclient/client/models/V1beta3_TCPSocketAction.py
new file mode 100644
index 0000000..0c91c2c
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_TCPSocketAction.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_TCPSocketAction(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'port': 'str'
+            
+        }
+
+        self.attributeMap = {
+            
+            'port': 'port'
+            
+        }       
+
+        
+        #number of name of the port to access on the container
+        
+        self.port = None # str
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_Volume.py b/magnum/common/pythonk8sclient/client/models/V1beta3_Volume.py
new file mode 100644
index 0000000..c79ddcd
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_Volume.py
@@ -0,0 +1,108 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_Volume(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'emptyDir': 'v1beta3_EmptyDirVolumeSource',
+            
+            
+            'gcePersistentDisk': 'v1beta3_GCEPersistentDiskVolumeSource',
+            
+            
+            'gitRepo': 'v1beta3_GitRepoVolumeSource',
+            
+            
+            'hostPath': 'v1beta3_HostPathVolumeSource',
+            
+            
+            'iscsi': 'v1beta3_ISCSIVolumeSource',
+            
+            
+            'name': 'str',
+            
+            
+            'nfs': 'v1beta3_NFSVolumeSource',
+            
+            
+            'secret': 'v1beta3_SecretVolumeSource'
+            
+        }
+
+        self.attributeMap = {
+            
+            'emptyDir': 'emptyDir',
+            
+            'gcePersistentDisk': 'gcePersistentDisk',
+            
+            'gitRepo': 'gitRepo',
+            
+            'hostPath': 'hostPath',
+            
+            'iscsi': 'iscsi',
+            
+            'name': 'name',
+            
+            'nfs': 'nfs',
+            
+            'secret': 'secret'
+            
+        }       
+
+        
+        #temporary directory that shares a pod&#39;s lifetime
+        
+        self.emptyDir = None # v1beta3_EmptyDirVolumeSource
+        
+        #GCE disk resource attached to the host machine on demand
+        
+        self.gcePersistentDisk = None # v1beta3_GCEPersistentDiskVolumeSource
+        
+        #git repository at a particular revision
+        
+        self.gitRepo = None # v1beta3_GitRepoVolumeSource
+        
+        #pre-existing host file or directory; generally for privileged system daemons or other agents tied to the host
+        
+        self.hostPath = None # v1beta3_HostPathVolumeSource
+        
+        #iSCSI disk attached to host machine on demand
+        
+        self.iscsi = None # v1beta3_ISCSIVolumeSource
+        
+        #volume name; must be a DNS_LABEL and unique within the pod
+        
+        self.name = None # str
+        
+        #NFS volume that will be mounted in the host machine
+        
+        self.nfs = None # v1beta3_NFSVolumeSource
+        
+        #secret to populate volume
+        
+        self.secret = None # v1beta3_SecretVolumeSource
+        
diff --git a/magnum/common/pythonk8sclient/client/models/V1beta3_VolumeMount.py b/magnum/common/pythonk8sclient/client/models/V1beta3_VolumeMount.py
new file mode 100644
index 0000000..c17fbfc
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/V1beta3_VolumeMount.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+"""
+Copyright 2015 Reverb Technologies, Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+"""
+
+class V1beta3_VolumeMount(object):
+    """NOTE: This class is auto generated by the swagger code generator program.
+    Do not edit the class manually."""
+
+
+    def __init__(self):
+        """
+        Attributes:
+          swaggerTypes (dict): The key is attribute name and the value is attribute type.
+          attributeMap (dict): The key is attribute name and the value is json key in definition.
+        """
+        self.swaggerTypes = {
+            
+            'mountPath': 'str',
+            
+            
+            'name': 'str',
+            
+            
+            'readOnly': 'bool'
+            
+        }
+
+        self.attributeMap = {
+            
+            'mountPath': 'mountPath',
+            
+            'name': 'name',
+            
+            'readOnly': 'readOnly'
+            
+        }       
+
+        
+        #path within the container at which the volume should be mounted
+        
+        self.mountPath = None # str
+        
+        #name of the volume to mount
+        
+        self.name = None # str
+        
+        #mounted read-only if true, read-write otherwise (false or unspecified)
+        
+        self.readOnly = None # bool
+        
diff --git a/magnum/common/pythonk8sclient/client/models/__init__.py b/magnum/common/pythonk8sclient/client/models/__init__.py
new file mode 100644
index 0000000..728aacb
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/models/__init__.py
@@ -0,0 +1,9 @@
+#!/usr/bin/env python
+"""Add all of the modules in the current directory to __all__"""
+import os
+
+__all__ = []
+
+for module in os.listdir(os.path.dirname(__file__)):
+  if module != '__init__.py' and module[-3:] == '.py':
+    __all__.append(module[:-3])
diff --git a/magnum/common/pythonk8sclient/client/swagger.py b/magnum/common/pythonk8sclient/client/swagger.py
new file mode 100644
index 0000000..d5e5466
--- /dev/null
+++ b/magnum/common/pythonk8sclient/client/swagger.py
@@ -0,0 +1,272 @@
+#!/usr/bin/env python
+"""Swagger generic API client. This client handles the client-
+server communication, and is invariant across implementations. Specifics of
+the methods and models for each application are generated from the Swagger
+templates."""
+
+import sys
+import os
+import re
+import urllib
+import urllib2
+import httplib
+import json
+import datetime
+import mimetypes
+import random
+import string
+
+from models import *
+
+
+class ApiClient(object):
+  """Generic API client for Swagger client library builds
+
+  Attributes:
+    host: The base path for the server to call
+    headerName: a header to pass when making calls to the API
+    headerValue: a header value to pass when making calls to the API
+  """
+  def __init__(self, host=None, headerName=None, headerValue=None):
+    self.defaultHeaders = {}
+    if (headerName is not None):
+      self.defaultHeaders[headerName] = headerValue
+    self.host = host
+    self.cookie = None
+    self.boundary = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(30))
+    # Set default User-Agent.
+    self.user_agent = 'Python-Swagger'
+
+  @property
+  def user_agent(self):
+    return self.defaultHeaders['User-Agent']
+
+  @user_agent.setter
+  def user_agent(self, value):
+    self.defaultHeaders['User-Agent'] = value
+
+  def setDefaultHeader(self, headerName, headerValue):
+    self.defaultHeaders[headerName] = headerValue
+
+  def callAPI(self, resourcePath, method, queryParams, postData,
+              headerParams=None, files=None):
+
+    url = self.host + resourcePath
+
+    mergedHeaderParams = self.defaultHeaders.copy()
+    mergedHeaderParams.update(headerParams)
+    headers = {}
+    if mergedHeaderParams:
+      for param, value in mergedHeaderParams.iteritems():
+        headers[param] = ApiClient.sanitizeForSerialization(value)
+
+    if self.cookie:
+      headers['Cookie'] = ApiClient.sanitizeForSerialization(self.cookie)
+
+    data = None
+
+    if queryParams:
+      # Need to remove None values, these should not be sent
+      sentQueryParams = {}
+      for param, value in queryParams.items():
+        if value is not None:
+          sentQueryParams[param] = ApiClient.sanitizeForSerialization(value)
+      url = url + '?' + urllib.urlencode(sentQueryParams)
+
+    if method in ['GET']:
+      #Options to add statements later on and for compatibility
+      pass
+
+    elif method in ['POST', 'PUT', 'DELETE']:
+      if postData:
+        postData = ApiClient.sanitizeForSerialization(postData)
+        if 'Content-type' not in headers:
+          headers['Content-type'] = 'application/json'
+          data = json.dumps(postData)
+        elif headers['Content-type'] == 'multipart/form-data':
+          data = self.buildMultipartFormData(postData, files)
+          headers['Content-type'] = 'multipart/form-data; boundary={0}'.format(self.boundary)
+          headers['Content-length'] = str(len(data))
+        else:
+            data = urllib.urlencode(postData)
+
+    else:
+      raise Exception('Method ' + method + ' is not recognized.')
+
+    request = MethodRequest(method=method, url=url, headers=headers,
+                            data=data)
+
+    # Make the request
+    response = urllib2.urlopen(request)
+    if 'Set-Cookie' in response.headers:
+      self.cookie = response.headers['Set-Cookie']
+    string = response.read()
+
+    try:
+      data = json.loads(string)
+    except ValueError:  # PUT requests don't return anything
+      data = None
+
+    return data
+
+  def toPathValue(self, obj):
+    """Convert a string or object to a path-friendly value
+    Args:
+        obj -- object or string value
+    Returns:
+        string -- quoted value
+    """
+    if type(obj) == list:
+      return ','.join(obj)
+    else:
+      return str(obj)
+
+  @staticmethod
+  def sanitizeForSerialization(obj):
+    """
+    Sanitize an object for Request.
+
+    If obj is None, return None.
+    If obj is str, int, long, float, bool, return directly.
+    If obj is datetime.datetime, datetime.date convert to string in iso8601 format.
+    If obj is list, santize each element in the list.
+    If obj is dict, return the dict.
+    If obj is swagger model, return the properties dict.
+    """
+    if isinstance(obj, type(None)):
+      return None
+    elif isinstance(obj, (str, int, long, float, bool, file)):
+      return obj
+    elif isinstance(obj, list):
+      return [ApiClient.sanitizeForSerialization(subObj) for subObj in obj]
+    elif isinstance(obj, (datetime.datetime, datetime.date)):
+      return obj.isoformat()
+    else:
+      if isinstance(obj, dict):
+        objDict = obj
+      else:
+        # Convert model obj to dict except attributes `swaggerTypes`, `attributeMap`
+        # and attributes which value is not None.
+        # Convert attribute name to json key in model definition for request.
+        objDict = {obj.attributeMap[key]: val
+                   for key, val in obj.__dict__.iteritems()
+                   if key != 'swaggerTypes' and key != 'attributeMap' and val is not None}
+      return {key: ApiClient.sanitizeForSerialization(val)
+              for (key, val) in objDict.iteritems()}
+
+  def buildMultipartFormData(self, postData, files):
+    def escape_quotes(s):
+      return s.replace('"', '\\"')
+
+    lines = []
+
+    for name, value in postData.items():
+      lines.extend((
+        '--{0}'.format(self.boundary),
+        'Content-Disposition: form-data; name="{0}"'.format(escape_quotes(name)),
+        '',
+        str(value),
+      ))
+
+    for name, filepath in files.items():
+      f = open(filepath, 'r')
+      filename = filepath.split('/')[-1]
+      mimetype = mimetypes.guess_type(filename)[0] or 'application/octet-stream'
+      lines.extend((
+        '--{0}'.format(self.boundary),
+        'Content-Disposition: form-data; name="{0}"; filename="{1}"'.format(escape_quotes(name), escape_quotes(filename)),
+        'Content-Type: {0}'.format(mimetype),
+        '',
+        f.read()
+      ))
+
+    lines.extend((
+      '--{0}--'.format(self.boundary),
+      ''
+    ))
+    return '\r\n'.join(lines)
+
+  def deserialize(self, obj, objClass):
+    """Derialize a JSON string into an object.
+
+    Args:
+        obj -- string or object to be deserialized
+        objClass -- class literal for deserialzied object, or string
+            of class name
+    Returns:
+        object -- deserialized object"""
+
+    # Have to accept objClass as string or actual type. Type could be a
+    # native Python type, or one of the model classes.
+    if type(objClass) == str:
+      if 'list[' in objClass:
+        match = re.match('list\[(.*)\]', objClass)
+        subClass = match.group(1)
+        return [self.deserialize(subObj, subClass) for subObj in obj]
+
+      if (objClass in ['int', 'float', 'long', 'dict', 'list', 'str', 'bool', 'datetime']):
+        objClass = eval(objClass)
+      else:  # not a native type, must be model class
+        objClass = eval(objClass + '.' + objClass)
+
+    if objClass in [int, long, float, dict, list, str, bool]:
+      return objClass(obj)
+    elif objClass == datetime:
+      return self.__parse_string_to_datetime(obj)
+
+    instance = objClass()
+
+    for attr, attrType in instance.swaggerTypes.iteritems():
+        if obj is not None and instance.attributeMap[attr] in obj and type(obj) in [list, dict]:
+          value = obj[instance.attributeMap[attr]]
+          if attrType in ['str', 'int', 'long', 'float', 'bool']:
+            attrType = eval(attrType)
+            try:
+              value = attrType(value)
+            except UnicodeEncodeError:
+              value = unicode(value)
+            except TypeError:
+              value = value
+            setattr(instance, attr, value)
+          elif (attrType == 'datetime'):
+            setattr(instance, attr, self.__parse_string_to_datetime(value))
+          elif 'list[' in attrType:
+            match = re.match('list\[(.*)\]', attrType)
+            subClass = match.group(1)
+            subValues = []
+            if not value:
+              setattr(instance, attr, None)
+            else:
+              for subValue in value:
+                subValues.append(self.deserialize(subValue, subClass))
+            setattr(instance, attr, subValues)
+          else:
+            setattr(instance, attr, self.deserialize(value, attrType))
+
+    return instance
+
+  def __parse_string_to_datetime(self, string):
+    """
+    Parse datetime in string to datetime.
+
+    The string should be in iso8601 datetime format.
+    """
+    try:
+        from dateutil.parser import parse
+        return parse(string)
+    except ImportError:
+        return string
+
+class MethodRequest(urllib2.Request):
+  def __init__(self, *args, **kwargs):
+    """Construct a MethodRequest. Usage is the same as for
+    `urllib2.Request` except it also takes an optional `method`
+    keyword argument. If supplied, `method` will be used instead of
+    the default."""
+
+    if 'method' in kwargs:
+      self.method = kwargs.pop('method')
+    return urllib2.Request.__init__(self, *args, **kwargs)
+
+  def get_method(self):
+    return getattr(self, 'method', urllib2.Request.get_method(self))
diff --git a/magnum/common/pythonk8sclient/templates/v1beta3.json b/magnum/common/pythonk8sclient/templates/v1beta3.json
new file mode 100644
index 0000000..f1dcb44
--- /dev/null
+++ b/magnum/common/pythonk8sclient/templates/v1beta3.json
@@ -0,0 +1,8815 @@
+{
+  "swaggerVersion": "1.2",
+  "apiVersion": "v1beta3",
+  "basePath": "https://127.0.0.1:6443",
+  "resourcePath": "/api/v1beta3",
+  "apis": [
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/bindings",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "create a Binding",
+      "nickname": "createBinding",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Binding",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/endpoints",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_EndpointsList",
+      "method": "GET",
+      "summary": "list or watch objects of kind Endpoints",
+      "nickname": "listEndpoints",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "create a Endpoints",
+      "nickname": "createEndpoints",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Endpoints",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/endpoints",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of Endpoints",
+      "nickname": "watchEndpointslist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/endpoints/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_Endpoints",
+      "method": "GET",
+      "summary": "read the specified Endpoints",
+      "nickname": "readEndpoints",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Endpoints",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "replace the specified Endpoints",
+      "nickname": "replaceEndpoints",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Endpoints",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Endpoints",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PATCH",
+      "summary": "partially update the specified Endpoints",
+      "nickname": "patchEndpoints",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Endpoints",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Endpoints",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "application/json-patch+json",
+       "application/merge-patch+json",
+       "application/strategic-merge-patch+json"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "delete a Endpoints",
+      "nickname": "deleteEndpoints",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Endpoints",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_DeleteOptions",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/endpoints/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch changes to an object of kind Endpoints",
+      "nickname": "watchEndpoints",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Endpoints",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/endpoints",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_EndpointsList",
+      "method": "GET",
+      "summary": "list or watch objects of kind Endpoints",
+      "nickname": "listEndpoints",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/endpoints",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of Endpoints",
+      "nickname": "watchEndpointslist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/events",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_EventList",
+      "method": "GET",
+      "summary": "list or watch objects of kind Event",
+      "nickname": "listEvent",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "create a Event",
+      "nickname": "createEvent",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Event",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/events",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of Event",
+      "nickname": "watchEventlist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/events/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_Event",
+      "method": "GET",
+      "summary": "read the specified Event",
+      "nickname": "readEvent",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Event",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "replace the specified Event",
+      "nickname": "replaceEvent",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Event",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Event",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PATCH",
+      "summary": "partially update the specified Event",
+      "nickname": "patchEvent",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Event",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Event",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "application/json-patch+json",
+       "application/merge-patch+json",
+       "application/strategic-merge-patch+json"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "delete a Event",
+      "nickname": "deleteEvent",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Event",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/events/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch changes to an object of kind Event",
+      "nickname": "watchEvent",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Event",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/events",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_EventList",
+      "method": "GET",
+      "summary": "list or watch objects of kind Event",
+      "nickname": "listEvent",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/events",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of Event",
+      "nickname": "watchEventlist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/limitranges",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_LimitRangeList",
+      "method": "GET",
+      "summary": "list or watch objects of kind LimitRange",
+      "nickname": "listLimitRange",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "create a LimitRange",
+      "nickname": "createLimitRange",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_LimitRange",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/limitranges",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of LimitRange",
+      "nickname": "watchLimitRangelist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/limitranges/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_LimitRange",
+      "method": "GET",
+      "summary": "read the specified LimitRange",
+      "nickname": "readLimitRange",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the LimitRange",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "replace the specified LimitRange",
+      "nickname": "replaceLimitRange",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the LimitRange",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_LimitRange",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PATCH",
+      "summary": "partially update the specified LimitRange",
+      "nickname": "patchLimitRange",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the LimitRange",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_LimitRange",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "application/json-patch+json",
+       "application/merge-patch+json",
+       "application/strategic-merge-patch+json"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "delete a LimitRange",
+      "nickname": "deleteLimitRange",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the LimitRange",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/limitranges/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch changes to an object of kind LimitRange",
+      "nickname": "watchLimitRange",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the LimitRange",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/limitranges",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_LimitRangeList",
+      "method": "GET",
+      "summary": "list or watch objects of kind LimitRange",
+      "nickname": "listLimitRange",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/limitranges",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of LimitRange",
+      "nickname": "watchLimitRangelist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_NamespaceList",
+      "method": "GET",
+      "summary": "list or watch objects of kind Namespace",
+      "nickname": "listNamespace",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "create a Namespace",
+      "nickname": "createNamespace",
+      "parameters": [
+       {
+        "type": "v1beta3_Namespace",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of Namespace",
+      "nickname": "watchNamespacelist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_Namespace",
+      "method": "GET",
+      "summary": "read the specified Namespace",
+      "nickname": "readNamespace",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Namespace",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "replace the specified Namespace",
+      "nickname": "replaceNamespace",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Namespace",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Namespace",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PATCH",
+      "summary": "partially update the specified Namespace",
+      "nickname": "patchNamespace",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Namespace",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Namespace",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "application/json-patch+json",
+       "application/merge-patch+json",
+       "application/strategic-merge-patch+json"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "delete a Namespace",
+      "nickname": "deleteNamespace",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Namespace",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_DeleteOptions",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch changes to an object of kind Namespace",
+      "nickname": "watchNamespace",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Namespace",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{name}/finalize",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "replace the specified Namespace",
+      "nickname": "replaceNamespace",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Namespace",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Namespace",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{name}/status",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "replace the specified Namespace",
+      "nickname": "replaceNamespace",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Namespace",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Namespace",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/nodes",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_NodeList",
+      "method": "GET",
+      "summary": "list or watch objects of kind Node",
+      "nickname": "listNode",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "create a Node",
+      "nickname": "createNode",
+      "parameters": [
+       {
+        "type": "v1beta3_Node",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/nodes",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of Node",
+      "nickname": "watchNodelist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/nodes/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_Node",
+      "method": "GET",
+      "summary": "read the specified Node",
+      "nickname": "readNode",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Node",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "replace the specified Node",
+      "nickname": "replaceNode",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Node",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Node",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PATCH",
+      "summary": "partially update the specified Node",
+      "nickname": "patchNode",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Node",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Node",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "application/json-patch+json",
+       "application/merge-patch+json",
+       "application/strategic-merge-patch+json"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "delete a Node",
+      "nickname": "deleteNode",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Node",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_DeleteOptions",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/nodes/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch changes to an object of kind Node",
+      "nickname": "watchNode",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Node",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/redirect/nodes/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "void",
+      "method": "GET",
+      "summary": "redirect GET request to Node",
+      "nickname": "redirectNode",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Node",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/proxy/nodes/{name}/{path:*}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "void",
+      "method": "GET",
+      "summary": "proxy GET requests to Node",
+      "nickname": "proxyGETNode",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Node",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "path:*",
+        "description": "path to the resource",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "proxy PUT requests to Node",
+      "nickname": "proxyPUTNode",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Node",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "path:*",
+        "description": "path to the resource",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "proxy POST requests to Node",
+      "nickname": "proxyPOSTNode",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Node",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "path:*",
+        "description": "path to the resource",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "proxy DELETE requests to Node",
+      "nickname": "proxyDELETENode",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Node",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "path:*",
+        "description": "path to the resource",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/proxy/nodes/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "void",
+      "method": "GET",
+      "summary": "proxy GET requests to Node",
+      "nickname": "proxyGETNode",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Node",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "proxy PUT requests to Node",
+      "nickname": "proxyPUTNode",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Node",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "proxy POST requests to Node",
+      "nickname": "proxyPOSTNode",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Node",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "proxy DELETE requests to Node",
+      "nickname": "proxyDELETENode",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Node",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/persistentvolumeclaims",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_PersistentVolumeClaimList",
+      "method": "GET",
+      "summary": "list or watch objects of kind PersistentVolumeClaim",
+      "nickname": "listPersistentVolumeClaim",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "create a PersistentVolumeClaim",
+      "nickname": "createPersistentVolumeClaim",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_PersistentVolumeClaim",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/persistentvolumeclaims",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of PersistentVolumeClaim",
+      "nickname": "watchPersistentVolumeClaimlist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/persistentvolumeclaims/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_PersistentVolumeClaim",
+      "method": "GET",
+      "summary": "read the specified PersistentVolumeClaim",
+      "nickname": "readPersistentVolumeClaim",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the PersistentVolumeClaim",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "replace the specified PersistentVolumeClaim",
+      "nickname": "replacePersistentVolumeClaim",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the PersistentVolumeClaim",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_PersistentVolumeClaim",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PATCH",
+      "summary": "partially update the specified PersistentVolumeClaim",
+      "nickname": "patchPersistentVolumeClaim",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the PersistentVolumeClaim",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_PersistentVolumeClaim",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "application/json-patch+json",
+       "application/merge-patch+json",
+       "application/strategic-merge-patch+json"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "delete a PersistentVolumeClaim",
+      "nickname": "deletePersistentVolumeClaim",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the PersistentVolumeClaim",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_DeleteOptions",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/persistentvolumeclaims/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch changes to an object of kind PersistentVolumeClaim",
+      "nickname": "watchPersistentVolumeClaim",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the PersistentVolumeClaim",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/persistentvolumeclaims",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_PersistentVolumeClaimList",
+      "method": "GET",
+      "summary": "list or watch objects of kind PersistentVolumeClaim",
+      "nickname": "listPersistentVolumeClaim",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/persistentvolumeclaims",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of PersistentVolumeClaim",
+      "nickname": "watchPersistentVolumeClaimlist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/persistentvolumes",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_PersistentVolumeList",
+      "method": "GET",
+      "summary": "list or watch objects of kind PersistentVolume",
+      "nickname": "listPersistentVolume",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "create a PersistentVolume",
+      "nickname": "createPersistentVolume",
+      "parameters": [
+       {
+        "type": "v1beta3_PersistentVolume",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/persistentvolumes",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of PersistentVolume",
+      "nickname": "watchPersistentVolumelist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/persistentvolumes/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_PersistentVolume",
+      "method": "GET",
+      "summary": "read the specified PersistentVolume",
+      "nickname": "readPersistentVolume",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the PersistentVolume",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "replace the specified PersistentVolume",
+      "nickname": "replacePersistentVolume",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the PersistentVolume",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_PersistentVolume",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PATCH",
+      "summary": "partially update the specified PersistentVolume",
+      "nickname": "patchPersistentVolume",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the PersistentVolume",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_PersistentVolume",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "application/json-patch+json",
+       "application/merge-patch+json",
+       "application/strategic-merge-patch+json"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "delete a PersistentVolume",
+      "nickname": "deletePersistentVolume",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the PersistentVolume",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_DeleteOptions",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/persistentvolumes/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch changes to an object of kind PersistentVolume",
+      "nickname": "watchPersistentVolume",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the PersistentVolume",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/persistentvolumes/{name}/status",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "replace the specified PersistentVolume",
+      "nickname": "replacePersistentVolume",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the PersistentVolume",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_PersistentVolume",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/pods",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_PodList",
+      "method": "GET",
+      "summary": "list or watch objects of kind Pod",
+      "nickname": "listPod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "create a Pod",
+      "nickname": "createPod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Pod",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/pods",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of Pod",
+      "nickname": "watchPodlist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/pods/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_Pod",
+      "method": "GET",
+      "summary": "read the specified Pod",
+      "nickname": "readPod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Pod",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "replace the specified Pod",
+      "nickname": "replacePod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Pod",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Pod",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PATCH",
+      "summary": "partially update the specified Pod",
+      "nickname": "patchPod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Pod",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Pod",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "application/json-patch+json",
+       "application/merge-patch+json",
+       "application/strategic-merge-patch+json"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "delete a Pod",
+      "nickname": "deletePod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Pod",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_DeleteOptions",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/pods/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch changes to an object of kind Pod",
+      "nickname": "watchPod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Pod",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/redirect/namespaces/{namespaces}/pods/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "void",
+      "method": "GET",
+      "summary": "redirect GET request to Pod",
+      "nickname": "redirectPod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Pod",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/proxy/namespaces/{namespaces}/pods/{name}/{path:*}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "void",
+      "method": "GET",
+      "summary": "proxy GET requests to Pod",
+      "nickname": "proxyGETPod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Pod",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "path:*",
+        "description": "path to the resource",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "proxy PUT requests to Pod",
+      "nickname": "proxyPUTPod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Pod",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "path:*",
+        "description": "path to the resource",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "proxy POST requests to Pod",
+      "nickname": "proxyPOSTPod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Pod",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "path:*",
+        "description": "path to the resource",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "proxy DELETE requests to Pod",
+      "nickname": "proxyDELETEPod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Pod",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "path:*",
+        "description": "path to the resource",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/proxy/namespaces/{namespaces}/pods/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "void",
+      "method": "GET",
+      "summary": "proxy GET requests to Pod",
+      "nickname": "proxyGETPod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Pod",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "proxy PUT requests to Pod",
+      "nickname": "proxyPUTPod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Pod",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "proxy POST requests to Pod",
+      "nickname": "proxyPOSTPod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Pod",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "proxy DELETE requests to Pod",
+      "nickname": "proxyDELETEPod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Pod",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/pods",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_PodList",
+      "method": "GET",
+      "summary": "list or watch objects of kind Pod",
+      "nickname": "listPod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/pods",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of Pod",
+      "nickname": "watchPodlist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/pods/{name}/binding",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "create a Binding",
+      "nickname": "createBinding",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Binding",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Binding",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/pods/{name}/log",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_PodLogOptions",
+      "method": "GET",
+      "summary": "read the specified PodLogOptions",
+      "nickname": "readPodLogOptions",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the PodLogOptions",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/pods/{name}/status",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "replace the specified Pod",
+      "nickname": "replacePod",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Pod",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Pod",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/replicationcontrollers",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_ReplicationControllerList",
+      "method": "GET",
+      "summary": "list or watch objects of kind ReplicationController",
+      "nickname": "listReplicationController",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "create a ReplicationController",
+      "nickname": "createReplicationController",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_ReplicationController",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/replicationcontrollers",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of ReplicationController",
+      "nickname": "watchReplicationControllerlist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/replicationcontrollers/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_ReplicationController",
+      "method": "GET",
+      "summary": "read the specified ReplicationController",
+      "nickname": "readReplicationController",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the ReplicationController",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "replace the specified ReplicationController",
+      "nickname": "replaceReplicationController",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the ReplicationController",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_ReplicationController",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PATCH",
+      "summary": "partially update the specified ReplicationController",
+      "nickname": "patchReplicationController",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the ReplicationController",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_ReplicationController",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "application/json-patch+json",
+       "application/merge-patch+json",
+       "application/strategic-merge-patch+json"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "delete a ReplicationController",
+      "nickname": "deleteReplicationController",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the ReplicationController",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_DeleteOptions",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/replicationcontrollers/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch changes to an object of kind ReplicationController",
+      "nickname": "watchReplicationController",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the ReplicationController",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/replicationcontrollers",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_ReplicationControllerList",
+      "method": "GET",
+      "summary": "list or watch objects of kind ReplicationController",
+      "nickname": "listReplicationController",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/replicationcontrollers",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of ReplicationController",
+      "nickname": "watchReplicationControllerlist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/resourcequotas",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_ResourceQuotaList",
+      "method": "GET",
+      "summary": "list or watch objects of kind ResourceQuota",
+      "nickname": "listResourceQuota",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "create a ResourceQuota",
+      "nickname": "createResourceQuota",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_ResourceQuota",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/resourcequotas",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of ResourceQuota",
+      "nickname": "watchResourceQuotalist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/resourcequotas/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_ResourceQuota",
+      "method": "GET",
+      "summary": "read the specified ResourceQuota",
+      "nickname": "readResourceQuota",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the ResourceQuota",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "replace the specified ResourceQuota",
+      "nickname": "replaceResourceQuota",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the ResourceQuota",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_ResourceQuota",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PATCH",
+      "summary": "partially update the specified ResourceQuota",
+      "nickname": "patchResourceQuota",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the ResourceQuota",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_ResourceQuota",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "application/json-patch+json",
+       "application/merge-patch+json",
+       "application/strategic-merge-patch+json"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "delete a ResourceQuota",
+      "nickname": "deleteResourceQuota",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the ResourceQuota",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_DeleteOptions",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/resourcequotas/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch changes to an object of kind ResourceQuota",
+      "nickname": "watchResourceQuota",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the ResourceQuota",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/resourcequotas",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_ResourceQuotaList",
+      "method": "GET",
+      "summary": "list or watch objects of kind ResourceQuota",
+      "nickname": "listResourceQuota",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/resourcequotas",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of ResourceQuota",
+      "nickname": "watchResourceQuotalist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/resourcequotas/{name}/status",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "replace the specified ResourceQuota",
+      "nickname": "replaceResourceQuota",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the ResourceQuota",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_ResourceQuota",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/secrets",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_SecretList",
+      "method": "GET",
+      "summary": "list or watch objects of kind Secret",
+      "nickname": "listSecret",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "create a Secret",
+      "nickname": "createSecret",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Secret",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/secrets",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of Secret",
+      "nickname": "watchSecretlist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/secrets/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_Secret",
+      "method": "GET",
+      "summary": "read the specified Secret",
+      "nickname": "readSecret",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Secret",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "replace the specified Secret",
+      "nickname": "replaceSecret",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Secret",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Secret",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PATCH",
+      "summary": "partially update the specified Secret",
+      "nickname": "patchSecret",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Secret",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Secret",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "application/json-patch+json",
+       "application/merge-patch+json",
+       "application/strategic-merge-patch+json"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "delete a Secret",
+      "nickname": "deleteSecret",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Secret",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/secrets/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch changes to an object of kind Secret",
+      "nickname": "watchSecret",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Secret",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/secrets",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_SecretList",
+      "method": "GET",
+      "summary": "list or watch objects of kind Secret",
+      "nickname": "listSecret",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/secrets",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of Secret",
+      "nickname": "watchSecretlist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/services",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_ServiceList",
+      "method": "GET",
+      "summary": "list or watch objects of kind Service",
+      "nickname": "listService",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "create a Service",
+      "nickname": "createService",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Service",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/services",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of Service",
+      "nickname": "watchServicelist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/namespaces/{namespaces}/services/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_Service",
+      "method": "GET",
+      "summary": "read the specified Service",
+      "nickname": "readService",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Service",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "replace the specified Service",
+      "nickname": "replaceService",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Service",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Service",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PATCH",
+      "summary": "partially update the specified Service",
+      "nickname": "patchService",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Service",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "v1beta3_Service",
+        "paramType": "body",
+        "name": "body",
+        "description": "",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "application/json-patch+json",
+       "application/merge-patch+json",
+       "application/strategic-merge-patch+json"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "delete a Service",
+      "nickname": "deleteService",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Service",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/namespaces/{namespaces}/services/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch changes to an object of kind Service",
+      "nickname": "watchService",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Service",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/redirect/namespaces/{namespaces}/services/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "void",
+      "method": "GET",
+      "summary": "redirect GET request to Service",
+      "nickname": "redirectService",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Service",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/proxy/namespaces/{namespaces}/services/{name}/{path:*}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "void",
+      "method": "GET",
+      "summary": "proxy GET requests to Service",
+      "nickname": "proxyGETService",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Service",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "path:*",
+        "description": "path to the resource",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "proxy PUT requests to Service",
+      "nickname": "proxyPUTService",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Service",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "path:*",
+        "description": "path to the resource",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "proxy POST requests to Service",
+      "nickname": "proxyPOSTService",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Service",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "path:*",
+        "description": "path to the resource",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "proxy DELETE requests to Service",
+      "nickname": "proxyDELETEService",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Service",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "path:*",
+        "description": "path to the resource",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/proxy/namespaces/{namespaces}/services/{name}",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "void",
+      "method": "GET",
+      "summary": "proxy GET requests to Service",
+      "nickname": "proxyGETService",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Service",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "PUT",
+      "summary": "proxy PUT requests to Service",
+      "nickname": "proxyPUTService",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Service",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "POST",
+      "summary": "proxy POST requests to Service",
+      "nickname": "proxyPOSTService",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Service",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     },
+     {
+      "type": "void",
+      "method": "DELETE",
+      "summary": "proxy DELETE requests to Service",
+      "nickname": "proxyDELETEService",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "name",
+        "description": "name of the Service",
+        "required": true,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "path",
+        "name": "namespaces",
+        "description": "object name and auth scope, such as for teams and projects",
+        "required": true,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "*/*"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/services",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "v1beta3_ServiceList",
+      "method": "GET",
+      "summary": "list or watch objects of kind Service",
+      "nickname": "listService",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   },
+   {
+    "path": "/api/v1beta3/watch/services",
+    "description": "API at /api/v1beta3 version v1beta3",
+    "operations": [
+     {
+      "type": "json_WatchEvent",
+      "method": "GET",
+      "summary": "watch individual changes to a list of Service",
+      "nickname": "watchServicelist",
+      "parameters": [
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "fieldSelector",
+        "description": "a selector to restrict the list of returned objects by their fields; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "labelSelector",
+        "description": "a selector to restrict the list of returned objects by their labels; defaults to everything",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "string",
+        "paramType": "query",
+        "name": "resourceVersion",
+        "description": "when specified with a watch call, shows changes that occur after that particular version of a resource; defaults to changes from the beginning of history",
+        "required": false,
+        "allowMultiple": false
+       },
+       {
+        "type": "boolean",
+        "paramType": "query",
+        "name": "watch",
+        "description": "watch for changes to the described resources and return them as a stream of add, update, and remove notifications; specify resourceVersion",
+        "required": false,
+        "allowMultiple": false
+       }
+      ],
+      "produces": [
+       "application/json"
+      ],
+      "consumes": [
+       "*/*"
+      ]
+     }
+    ]
+   }
+  ],
+  "models": {
+   "v1beta3_DeleteOptions": {
+    "id": "v1beta3_DeleteOptions",
+    "properties": {}
+   },
+   "json_WatchEvent": {
+    "id": "json_WatchEvent",
+    "properties": {
+     "object": {
+      "type": "string",
+      "description": "the object being watched; will match the type of the resource endpoint or be a Status object if the type is ERROR"
+     },
+     "type": {
+      "type": "string",
+      "description": "the type of watch event; may be ADDED, MODIFIED, DELETED, or ERROR"
+     }
+    }
+   },
+   "v1beta3_AccessModeType": {
+    "id": "v1beta3_AccessModeType",
+    "properties": {}
+   },
+   "v1beta3_Binding": {
+    "id": "v1beta3_Binding",
+    "required": [
+     "target"
+    ],
+    "properties": {
+     "annotations": {
+      "type": "any",
+      "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects"
+     },
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "creationTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists"
+     },
+     "deletionTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested"
+     },
+     "generateName": {
+      "type": "string",
+      "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "labels": {
+      "type": "any",
+      "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services"
+     },
+     "name": {
+      "type": "string",
+      "description": "string that identifies an object. Must be unique within a namespace; cannot be updated"
+     },
+     "namespace": {
+      "type": "string",
+      "description": "namespace of the object; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     },
+     "target": {
+      "$ref": "v1beta3_ObjectReference",
+      "description": "an object to bind to"
+     },
+     "uid": {
+      "type": "string",
+      "description": "unique UUID across space and time; populated by the system; read-only"
+     }
+    }
+   },
+   "v1beta3_Capabilities": {
+    "id": "v1beta3_Capabilities",
+    "properties": {
+     "add": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_CapabilityType"
+      },
+      "description": "added capabilities"
+     },
+     "drop": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_CapabilityType"
+      },
+      "description": "droped capabilities"
+     }
+    }
+   },
+   "v1beta3_CapabilityType": {
+    "id": "v1beta3_CapabilityType",
+    "properties": {}
+   },
+   "v1beta3_Container": {
+    "id": "v1beta3_Container",
+    "required": [
+     "name",
+     "image",
+     "imagePullPolicy"
+    ],
+    "properties": {
+     "args": {
+      "type": "array",
+      "items": {
+       "type": "string"
+      },
+      "description": "command array; the docker image's cmd is used if this is not provided; arguments to the entrypoint; cannot be updated"
+     },
+     "capabilities": {
+      "$ref": "v1beta3_Capabilities",
+      "description": "capabilities for container; cannot be updated"
+     },
+     "command": {
+      "type": "array",
+      "items": {
+       "type": "string"
+      },
+      "description": "entrypoint array; not executed within a shell; the docker image's entrypoint is used if this is not provided; cannot be updated"
+     },
+     "env": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_EnvVar"
+      },
+      "description": "list of environment variables to set in the container; cannot be updated"
+     },
+     "image": {
+      "type": "string",
+      "description": "Docker image name"
+     },
+     "imagePullPolicy": {
+      "type": "string",
+      "description": "image pull policy; one of PullAlways, PullNever, PullIfNotPresent; defaults to PullAlways if :latest tag is specified, or PullIfNotPresent otherwise; cannot be updated"
+     },
+     "lifecycle": {
+      "$ref": "v1beta3_Lifecycle",
+      "description": "actions that the management system should take in response to container lifecycle events; cannot be updated"
+     },
+     "livenessProbe": {
+      "$ref": "v1beta3_Probe",
+      "description": "periodic probe of container liveness; container will be restarted if the probe fails; cannot be updated"
+     },
+     "name": {
+      "type": "string",
+      "description": "name of the container; must be a DNS_LABEL and unique within the pod; cannot be updated"
+     },
+     "ports": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_ContainerPort"
+      },
+      "description": "list of ports to expose from the container; cannot be updated"
+     },
+     "privileged": {
+      "type": "boolean",
+      "description": "whether or not the container is granted privileged status; defaults to false; cannot be updated"
+     },
+     "readinessProbe": {
+      "$ref": "v1beta3_Probe",
+      "description": "periodic probe of container service readiness; container will be removed from service endpoints if the probe fails; cannot be updated"
+     },
+     "resources": {
+      "$ref": "v1beta3_ResourceRequirements",
+      "description": "Compute Resources required by this container; cannot be updated"
+     },
+     "terminationMessagePath": {
+      "type": "string",
+      "description": "path at which the file to which the container's termination message will be written is mounted into the container's filesystem; message written is intended to be brief final status, such as an assertion failure message; defaults to /dev/termination-log; cannot be updated"
+     },
+     "volumeMounts": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_VolumeMount"
+      },
+      "description": "pod volumes to mount into the container's filesyste; cannot be updated"
+     },
+     "workingDir": {
+      "type": "string",
+      "description": "container's working directory; defaults to image's default; cannot be updated"
+     }
+    }
+   },
+   "v1beta3_ContainerPort": {
+    "id": "v1beta3_ContainerPort",
+    "required": [
+     "containerPort"
+    ],
+    "properties": {
+     "containerPort": {
+      "type": "integer",
+      "format": "int32",
+      "description": "number of port to expose on the pod's IP address"
+     },
+     "hostIP": {
+      "type": "string",
+      "description": "host IP to bind the port to"
+     },
+     "hostPort": {
+      "type": "integer",
+      "format": "int32",
+      "description": "number of port to expose on the host; most containers do not need this"
+     },
+     "name": {
+      "type": "string",
+      "description": "name for the port that can be referred to by services; must be a DNS_LABEL and unique without the pod"
+     },
+     "protocol": {
+      "type": "string",
+      "description": "protocol for port; must be UDP or TCP; TCP if unspecified"
+     }
+    }
+   },
+   "v1beta3_ContainerState": {
+    "id": "v1beta3_ContainerState",
+    "properties": {
+     "running": {
+      "$ref": "v1beta3_ContainerStateRunning",
+      "description": "details about a running container"
+     },
+     "termination": {
+      "$ref": "v1beta3_ContainerStateTerminated",
+      "description": "details about a terminated container"
+     },
+     "waiting": {
+      "$ref": "v1beta3_ContainerStateWaiting",
+      "description": "details about a waiting container"
+     }
+    }
+   },
+   "v1beta3_ContainerStateRunning": {
+    "id": "v1beta3_ContainerStateRunning",
+    "properties": {
+     "startedAt": {
+      "type": "string",
+      "description": "time at which the container was last (re-)started"
+     }
+    }
+   },
+   "v1beta3_ContainerStateTerminated": {
+    "id": "v1beta3_ContainerStateTerminated",
+    "required": [
+     "exitCode"
+    ],
+    "properties": {
+     "containerID": {
+      "type": "string",
+      "description": "container's ID in the format 'docker://\u003ccontainer_id\u003e'"
+     },
+     "exitCode": {
+      "type": "integer",
+      "format": "int32",
+      "description": "exit status from the last termination of the container"
+     },
+     "finishedAt": {
+      "type": "string",
+      "description": "time at which the container last terminated"
+     },
+     "message": {
+      "type": "string",
+      "description": "message regarding the last termination of the container"
+     },
+     "reason": {
+      "type": "string",
+      "description": "(brief) reason from the last termination of the container"
+     },
+     "signal": {
+      "type": "integer",
+      "format": "int32",
+      "description": "signal from the last termination of the container"
+     },
+     "startedAt": {
+      "type": "string",
+      "description": "time at which previous execution of the container started"
+     }
+    }
+   },
+   "v1beta3_ContainerStateWaiting": {
+    "id": "v1beta3_ContainerStateWaiting",
+    "properties": {
+     "reason": {
+      "type": "string",
+      "description": "(brief) reason the container is not yet running, such as pulling its image"
+     }
+    }
+   },
+   "v1beta3_ContainerStatus": {
+    "id": "v1beta3_ContainerStatus",
+    "required": [
+     "name",
+     "ready",
+     "restartCount",
+     "image",
+     "imageID"
+    ],
+    "properties": {
+     "containerID": {
+      "type": "string",
+      "description": "container's ID in the format 'docker://\u003ccontainer_id\u003e'"
+     },
+     "image": {
+      "type": "string",
+      "description": "image of the container"
+     },
+     "imageID": {
+      "type": "string",
+      "description": "ID of the container's image"
+     },
+     "lastState": {
+      "$ref": "v1beta3_ContainerState",
+      "description": "details about the container's last termination condition"
+     },
+     "name": {
+      "type": "string",
+      "description": "name of the container; must be a DNS_LABEL and unique within the pod; cannot be updated"
+     },
+     "ready": {
+      "type": "boolean",
+      "description": "specifies whether the container has passed its readiness probe"
+     },
+     "restartCount": {
+      "type": "integer",
+      "format": "int32",
+      "description": "the number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed"
+     },
+     "state": {
+      "$ref": "v1beta3_ContainerState",
+      "description": "details about the container's current condition"
+     }
+    }
+   },
+   "v1beta3_EmptyDirVolumeSource": {
+    "id": "v1beta3_EmptyDirVolumeSource",
+    "required": [
+     "medium"
+    ],
+    "properties": {
+     "medium": {
+      "type": "string",
+      "description": "type of storage used to back the volume; must be an empty string (default) or Memory"
+     }
+    }
+   },
+   "v1beta3_EndpointAddress": {
+    "id": "v1beta3_EndpointAddress",
+    "required": [
+     "IP"
+    ],
+    "properties": {
+     "IP": {
+      "type": "string",
+      "description": "IP address of the endpoint"
+     },
+     "targetRef": {
+      "$ref": "v1beta3_ObjectReference",
+      "description": "reference to object providing the endpoint"
+     }
+    }
+   },
+   "v1beta3_EndpointPort": {
+    "id": "v1beta3_EndpointPort",
+    "required": [
+     "port"
+    ],
+    "properties": {
+     "name": {
+      "type": "string",
+      "description": "name of this port"
+     },
+     "port": {
+      "type": "integer",
+      "format": "int32",
+      "description": "port number of the endpoint"
+     },
+     "protocol": {
+      "type": "string",
+      "description": "protocol for this port; must be UDP or TCP; TCP if unspecified"
+     }
+    }
+   },
+   "v1beta3_EndpointSubset": {
+    "id": "v1beta3_EndpointSubset",
+    "properties": {
+     "addresses": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_EndpointAddress"
+      },
+      "description": "IP addresses which offer the related ports"
+     },
+     "ports": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_EndpointPort"
+      },
+      "description": "port numbers available on the related IP addresses"
+     }
+    }
+   },
+   "v1beta3_Endpoints": {
+    "id": "v1beta3_Endpoints",
+    "required": [
+     "subsets"
+    ],
+    "properties": {
+     "annotations": {
+      "type": "any",
+      "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects"
+     },
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "creationTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists"
+     },
+     "deletionTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested"
+     },
+     "generateName": {
+      "type": "string",
+      "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "labels": {
+      "type": "any",
+      "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services"
+     },
+     "name": {
+      "type": "string",
+      "description": "string that identifies an object. Must be unique within a namespace; cannot be updated"
+     },
+     "namespace": {
+      "type": "string",
+      "description": "namespace of the object; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     },
+     "subsets": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_EndpointSubset"
+      },
+      "description": "sets of addresses and ports that comprise a service"
+     },
+     "uid": {
+      "type": "string",
+      "description": "unique UUID across space and time; populated by the system; read-only"
+     }
+    }
+   },
+   "v1beta3_EndpointsList": {
+    "id": "v1beta3_EndpointsList",
+    "required": [
+     "items"
+    ],
+    "properties": {
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "items": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_Endpoints"
+      },
+      "description": "list of endpoints"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     }
+    }
+   },
+   "v1beta3_EnvVar": {
+    "id": "v1beta3_EnvVar",
+    "required": [
+     "name"
+    ],
+    "properties": {
+     "name": {
+      "type": "string",
+      "description": "name of the environment variable; must be a C_IDENTIFIER"
+     },
+     "value": {
+      "type": "string",
+      "description": "value of the environment variable; defaults to empty string"
+     }
+    }
+   },
+   "v1beta3_Event": {
+    "id": "v1beta3_Event",
+    "properties": {
+     "annotations": {
+      "type": "any",
+      "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects"
+     },
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "count": {
+      "type": "integer",
+      "format": "int32",
+      "description": "the number of times this event has occurred"
+     },
+     "creationTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists"
+     },
+     "deletionTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested"
+     },
+     "firstTimestamp": {
+      "type": "string",
+      "description": "the time at which the event was first recorded"
+     },
+     "generateName": {
+      "type": "string",
+      "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified"
+     },
+     "involvedObject": {
+      "$ref": "v1beta3_ObjectReference",
+      "description": "object this event is about"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "labels": {
+      "type": "any",
+      "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services"
+     },
+     "lastTimestamp": {
+      "type": "string",
+      "description": "the time at which the most recent occurance of this event was recorded"
+     },
+     "message": {
+      "type": "string",
+      "description": "human-readable description of the status of this operation"
+     },
+     "name": {
+      "type": "string",
+      "description": "string that identifies an object. Must be unique within a namespace; cannot be updated"
+     },
+     "namespace": {
+      "type": "string",
+      "description": "namespace of the object; cannot be updated"
+     },
+     "reason": {
+      "type": "string",
+      "description": "short, machine understandable string that gives the reason for the transition into the object's current status"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     },
+     "source": {
+      "$ref": "v1beta3_EventSource",
+      "description": "component reporting this event"
+     },
+     "uid": {
+      "type": "string",
+      "description": "unique UUID across space and time; populated by the system; read-only"
+     }
+    }
+   },
+   "v1beta3_EventList": {
+    "id": "v1beta3_EventList",
+    "required": [
+     "items"
+    ],
+    "properties": {
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "items": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_Event"
+      },
+      "description": "list of events"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     }
+    }
+   },
+   "v1beta3_EventSource": {
+    "id": "v1beta3_EventSource",
+    "properties": {
+     "component": {
+      "type": "string",
+      "description": "component that generated the event"
+     },
+     "host": {
+      "type": "string",
+      "description": "name of the host where the event is generated"
+     }
+    }
+   },
+   "v1beta3_ExecAction": {
+    "id": "v1beta3_ExecAction",
+    "properties": {
+     "command": {
+      "type": "array",
+      "items": {
+       "type": "string"
+      },
+      "description": "command line to execute inside the container; working directory for the command is root ('/') in the container's file system; the command is exec'd, not run inside a shell; exit status of 0 is treated as live/healthy and non-zero is unhealthy"
+     }
+    }
+   },
+   "v1beta3_FinalizerName": {
+    "id": "v1beta3_FinalizerName",
+    "properties": {}
+   },
+   "v1beta3_GCEPersistentDiskVolumeSource": {
+    "id": "v1beta3_GCEPersistentDiskVolumeSource",
+    "required": [
+     "pdName"
+    ],
+    "properties": {
+     "fsType": {
+      "type": "string",
+      "description": "file system type to mount, such as ext4, xfs, ntfs"
+     },
+     "partition": {
+      "type": "integer",
+      "format": "int32",
+      "description": "partition on the disk to mount (e.g., '1' for /dev/sda1); if omitted the plain device name (e.g., /dev/sda) will be mounted"
+     },
+     "pdName": {
+      "type": "string",
+      "description": "unique name of the PD resource in GCE"
+     },
+     "readOnly": {
+      "type": "boolean",
+      "description": "read-only if true, read-write otherwise (false or unspecified)"
+     }
+    }
+   },
+   "v1beta3_GitRepoVolumeSource": {
+    "id": "v1beta3_GitRepoVolumeSource",
+    "required": [
+     "repository",
+     "revision"
+    ],
+    "properties": {
+     "repository": {
+      "type": "string",
+      "description": "repository URL"
+     },
+     "revision": {
+      "type": "string",
+      "description": "commit hash for the specified revision"
+     }
+    }
+   },
+   "v1beta3_HTTPGetAction": {
+    "id": "v1beta3_HTTPGetAction",
+    "properties": {
+     "host": {
+      "type": "string",
+      "description": "hostname to connect to; defaults to pod IP"
+     },
+     "path": {
+      "type": "string",
+      "description": "path to access on the HTTP server"
+     },
+     "port": {
+      "type": "string",
+      "description": "number or name of the port to access on the container"
+     }
+    }
+   },
+   "v1beta3_Handler": {
+    "id": "v1beta3_Handler",
+    "properties": {
+     "exect": {
+      "$ref": "v1beta3_ExecAction",
+      "description": "exec-based handler"
+     },
+     "httpGet": {
+      "$ref": "v1beta3_HTTPGetAction",
+      "description": "HTTP-based handler"
+     },
+     "tcpSocket": {
+      "$ref": "v1beta3_TCPSocketAction",
+      "description": "TCP-based handler; TCP hooks not yet supported"
+     }
+    }
+   },
+   "v1beta3_HostPathVolumeSource": {
+    "id": "v1beta3_HostPathVolumeSource",
+    "required": [
+     "path"
+    ],
+    "properties": {
+     "path": {
+      "type": "string",
+      "description": "path of the directory on the host"
+     }
+    }
+   },
+   "v1beta3_ISCSIVolumeSource": {
+    "id": "v1beta3_ISCSIVolumeSource",
+    "properties": {
+     "fsType": {
+      "type": "string",
+      "description": "file system type to mount, such as ext4, xfs, ntfs"
+     },
+     "iqn": {
+      "type": "string",
+      "description": "iSCSI Qualified Name"
+     },
+     "lun": {
+      "type": "integer",
+      "format": "int32",
+      "description": "iscsi target lun number"
+     },
+     "readOnly": {
+      "type": "boolean",
+      "description": "read-only if true, read-write otherwise (false or unspecified)"
+     },
+     "targetPortal": {
+      "type": "string",
+      "description": "iSCSI target portal"
+     }
+    }
+   },
+   "v1beta3_Lifecycle": {
+    "id": "v1beta3_Lifecycle",
+    "properties": {
+     "postStart": {
+      "$ref": "v1beta3_Handler",
+      "description": "called immediately after a container is started; if the handler fails, the container is terminated and restarted according to its restart policy; other management of the container blocks until the hook completes"
+     },
+     "preStop": {
+      "$ref": "v1beta3_Handler",
+      "description": "called before a container is terminated; the container is terminated after the handler completes; other management of the container blocks until the hook completes"
+     }
+    }
+   },
+   "v1beta3_LimitRange": {
+    "id": "v1beta3_LimitRange",
+    "properties": {
+     "annotations": {
+      "type": "any",
+      "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects"
+     },
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "creationTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists"
+     },
+     "deletionTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested"
+     },
+     "generateName": {
+      "type": "string",
+      "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "labels": {
+      "type": "any",
+      "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services"
+     },
+     "name": {
+      "type": "string",
+      "description": "string that identifies an object. Must be unique within a namespace; cannot be updated"
+     },
+     "namespace": {
+      "type": "string",
+      "description": "namespace of the object; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     },
+     "spec": {
+      "$ref": "v1beta3_LimitRangeSpec",
+      "description": "spec defines the limits enforced; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status"
+     },
+     "uid": {
+      "type": "string",
+      "description": "unique UUID across space and time; populated by the system; read-only"
+     }
+    }
+   },
+   "v1beta3_LimitRangeItem": {
+    "id": "v1beta3_LimitRangeItem",
+    "properties": {
+     "default": {
+      "type": "any",
+      "description": "default values on this kind by resource name if omitted"
+     },
+     "max": {
+      "type": "any",
+      "description": "max usage constraints on this kind by resource name"
+     },
+     "min": {
+      "type": "any",
+      "description": "min usage constraints on this kind by resource name"
+     },
+     "type": {
+      "type": "string",
+      "description": "type of resource that this limit applies to"
+     }
+    }
+   },
+   "v1beta3_LimitRangeList": {
+    "id": "v1beta3_LimitRangeList",
+    "required": [
+     "items"
+    ],
+    "properties": {
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "items": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_LimitRange"
+      },
+      "description": "items is a list of LimitRange objects"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     }
+    }
+   },
+   "v1beta3_LimitRangeSpec": {
+    "id": "v1beta3_LimitRangeSpec",
+    "required": [
+     "limits"
+    ],
+    "properties": {
+     "limits": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_LimitRangeItem"
+      },
+      "description": "limits is the list of LimitRangeItem objects that are enforced"
+     }
+    }
+   },
+   "v1beta3_NFSVolumeSource": {
+    "id": "v1beta3_NFSVolumeSource",
+    "required": [
+     "server",
+     "path"
+    ],
+    "properties": {
+     "path": {
+      "type": "string",
+      "description": "the path that is exported by the NFS server"
+     },
+     "readOnly": {
+      "type": "boolean",
+      "description": "forces the NFS export to be mounted with read-only permissions"
+     },
+     "server": {
+      "type": "string",
+      "description": "the hostname or IP address of the NFS server"
+     }
+    }
+   },
+   "v1beta3_Namespace": {
+    "id": "v1beta3_Namespace",
+    "properties": {
+     "annotations": {
+      "type": "any",
+      "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects"
+     },
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "creationTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists"
+     },
+     "deletionTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested"
+     },
+     "generateName": {
+      "type": "string",
+      "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "labels": {
+      "type": "any",
+      "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services"
+     },
+     "name": {
+      "type": "string",
+      "description": "string that identifies an object. Must be unique within a namespace; cannot be updated"
+     },
+     "namespace": {
+      "type": "string",
+      "description": "namespace of the object; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     },
+     "spec": {
+      "$ref": "v1beta3_NamespaceSpec",
+      "description": "spec defines the behavior of the Namespace; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status"
+     },
+     "status": {
+      "$ref": "v1beta3_NamespaceStatus",
+      "description": "status describes the current status of a Namespace; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status"
+     },
+     "uid": {
+      "type": "string",
+      "description": "unique UUID across space and time; populated by the system; read-only"
+     }
+    }
+   },
+   "v1beta3_NamespaceList": {
+    "id": "v1beta3_NamespaceList",
+    "required": [
+     "items"
+    ],
+    "properties": {
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "items": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_Namespace"
+      },
+      "description": "items is the list of Namespace objects in the list"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     }
+    }
+   },
+   "v1beta3_NamespaceSpec": {
+    "id": "v1beta3_NamespaceSpec",
+    "properties": {
+     "finalizers": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_FinalizerName"
+      },
+      "description": "an opaque list of values that must be empty to permanently remove object from storage"
+     }
+    }
+   },
+   "v1beta3_NamespaceStatus": {
+    "id": "v1beta3_NamespaceStatus",
+    "properties": {
+     "phase": {
+      "type": "string",
+      "description": "phase is the current lifecycle phase of the namespace"
+     }
+    }
+   },
+   "v1beta3_Node": {
+    "id": "v1beta3_Node",
+    "properties": {
+     "annotations": {
+      "type": "any",
+      "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects"
+     },
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "creationTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists"
+     },
+     "deletionTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested"
+     },
+     "generateName": {
+      "type": "string",
+      "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "labels": {
+      "type": "any",
+      "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services"
+     },
+     "name": {
+      "type": "string",
+      "description": "string that identifies an object. Must be unique within a namespace; cannot be updated"
+     },
+     "namespace": {
+      "type": "string",
+      "description": "namespace of the object; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     },
+     "spec": {
+      "$ref": "v1beta3_NodeSpec",
+      "description": "specification of a node; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status"
+     },
+     "status": {
+      "$ref": "v1beta3_NodeStatus",
+      "description": "most recently observed status of the node; populated by the system, read-only; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status"
+     },
+     "uid": {
+      "type": "string",
+      "description": "unique UUID across space and time; populated by the system; read-only"
+     }
+    }
+   },
+   "v1beta3_NodeAddress": {
+    "id": "v1beta3_NodeAddress",
+    "required": [
+     "type",
+     "address"
+    ],
+    "properties": {
+     "address": {
+      "type": "string"
+     },
+     "type": {
+      "type": "string"
+     }
+    }
+   },
+   "v1beta3_NodeCondition": {
+    "id": "v1beta3_NodeCondition",
+    "required": [
+     "type",
+     "status"
+    ],
+    "properties": {
+     "lastProbeTime": {
+      "type": "string",
+      "description": "last time the condition was probed"
+     },
+     "lastTransitionTime": {
+      "type": "string",
+      "description": "last time the condition transit from one status to another"
+     },
+     "message": {
+      "type": "string",
+      "description": "human readable message indicating details about last transition"
+     },
+     "reason": {
+      "type": "string",
+      "description": "(brief) reason for the condition's last transition"
+     },
+     "status": {
+      "type": "string",
+      "description": "status of the condition, one of Full, None, Unknown"
+     },
+     "type": {
+      "type": "string",
+      "description": "type of node condition, one of Ready, Schedulable"
+     }
+    }
+   },
+   "v1beta3_NodeList": {
+    "id": "v1beta3_NodeList",
+    "required": [
+     "items"
+    ],
+    "properties": {
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "items": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_Node"
+      },
+      "description": "list of nodes"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     }
+    }
+   },
+   "v1beta3_NodeSpec": {
+    "id": "v1beta3_NodeSpec",
+    "properties": {
+     "externalID": {
+      "type": "string",
+      "description": "external ID assigned to the node by some machine database (e.g. a cloud provider). Defaults to node name when empty."
+     },
+     "podCIDR": {
+      "type": "string",
+      "description": "pod IP range assigned to the node"
+     },
+     "unschedulable": {
+      "type": "boolean",
+      "description": "disable pod scheduling on the node"
+     }
+    }
+   },
+   "v1beta3_NodeStatus": {
+    "id": "v1beta3_NodeStatus",
+    "properties": {
+     "addresses": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_NodeAddress"
+      },
+      "description": "list of addresses reachable to the node"
+     },
+     "capacity": {
+      "type": "any",
+      "description": "compute resource capacity of the node; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/resources.md"
+     },
+     "conditions": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_NodeCondition"
+      },
+      "description": "list of node conditions observed"
+     },
+     "nodeInfo": {
+      "$ref": "v1beta3_NodeSystemInfo"
+     },
+     "phase": {
+      "type": "string",
+      "description": "most recently observed lifecycle phase of the node"
+     }
+    }
+   },
+   "v1beta3_NodeSystemInfo": {
+    "id": "v1beta3_NodeSystemInfo",
+    "required": [
+     "machineID",
+     "systemUUID",
+     "bootID",
+     "kernelVersion",
+     "osImage",
+     "containerRuntimeVersion",
+     "kubeletVersion",
+     "KubeProxyVersion"
+    ],
+    "properties": {
+     "KubeProxyVersion": {
+      "type": "string",
+      "description": "Kube-proxy version reported by the node"
+     },
+     "bootID": {
+      "type": "string",
+      "description": "boot id is the boot-id reported by the node"
+     },
+     "containerRuntimeVersion": {
+      "type": "string",
+      "description": "Container runtime version reported by the node through runtime remote API (e.g. docker://1.5.0)"
+     },
+     "kernelVersion": {
+      "type": "string",
+      "description": "Kernel version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64)"
+     },
+     "kubeletVersion": {
+      "type": "string",
+      "description": "Kubelet version reported by the node"
+     },
+     "machineID": {
+      "type": "string"
+     },
+     "osImage": {
+      "type": "string",
+      "description": "OS image used reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy))"
+     },
+     "systemUUID": {
+      "type": "string"
+     }
+    }
+   },
+   "v1beta3_ObjectReference": {
+    "id": "v1beta3_ObjectReference",
+    "properties": {
+     "apiVersion": {
+      "type": "string",
+      "description": "API version of the referent"
+     },
+     "fieldPath": {
+      "type": "string",
+      "description": "if referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of the referent"
+     },
+     "name": {
+      "type": "string",
+      "description": "name of the referent"
+     },
+     "namespace": {
+      "type": "string",
+      "description": "namespace of the referent"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "specific resourceVersion to which this reference is made, if any: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "uid": {
+      "type": "string",
+      "description": "uid of the referent"
+     }
+    }
+   },
+   "v1beta3_PersistentVolume": {
+    "id": "v1beta3_PersistentVolume",
+    "properties": {
+     "annotations": {
+      "type": "any",
+      "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects"
+     },
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "creationTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists"
+     },
+     "deletionTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested"
+     },
+     "generateName": {
+      "type": "string",
+      "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "labels": {
+      "type": "any",
+      "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services"
+     },
+     "name": {
+      "type": "string",
+      "description": "string that identifies an object. Must be unique within a namespace; cannot be updated"
+     },
+     "namespace": {
+      "type": "string",
+      "description": "namespace of the object; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     },
+     "spec": {
+      "$ref": "v1beta3_PersistentVolumeSpec",
+      "description": "specification of a persistent volume as provisioned by an administrator"
+     },
+     "status": {
+      "$ref": "v1beta3_PersistentVolumeStatus",
+      "description": "current status of a persistent volume; populated by the system, read-only"
+     },
+     "uid": {
+      "type": "string",
+      "description": "unique UUID across space and time; populated by the system; read-only"
+     }
+    }
+   },
+   "v1beta3_PersistentVolumeClaim": {
+    "id": "v1beta3_PersistentVolumeClaim",
+    "properties": {
+     "annotations": {
+      "type": "any",
+      "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects"
+     },
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "creationTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists"
+     },
+     "deletionTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested"
+     },
+     "generateName": {
+      "type": "string",
+      "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "labels": {
+      "type": "any",
+      "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services"
+     },
+     "name": {
+      "type": "string",
+      "description": "string that identifies an object. Must be unique within a namespace; cannot be updated"
+     },
+     "namespace": {
+      "type": "string",
+      "description": "namespace of the object; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     },
+     "spec": {
+      "$ref": "v1beta3_PersistentVolumeClaimSpec"
+     },
+     "status": {
+      "$ref": "v1beta3_PersistentVolumeClaimStatus",
+      "description": "the current status of a persistent volume claim; read-only"
+     },
+     "uid": {
+      "type": "string",
+      "description": "unique UUID across space and time; populated by the system; read-only"
+     }
+    }
+   },
+   "v1beta3_PersistentVolumeClaimList": {
+    "id": "v1beta3_PersistentVolumeClaimList",
+    "properties": {
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "items": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_PersistentVolumeClaim"
+      }
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     }
+    }
+   },
+   "v1beta3_PersistentVolumeClaimSpec": {
+    "id": "v1beta3_PersistentVolumeClaimSpec",
+    "properties": {
+     "accessModes": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_AccessModeType"
+      },
+      "description": "the desired access modes the volume should have"
+     },
+     "resources": {
+      "$ref": "v1beta3_ResourceRequirements",
+      "description": "the desired resources the volume should have"
+     }
+    }
+   },
+   "v1beta3_PersistentVolumeClaimStatus": {
+    "id": "v1beta3_PersistentVolumeClaimStatus",
+    "properties": {
+     "accessModes": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_AccessModeType"
+      },
+      "description": "the actual access modes the volume has"
+     },
+     "capacity": {
+      "type": "any",
+      "description": "the actual resources the volume has"
+     },
+     "phase": {
+      "type": "string",
+      "description": "the current phase of the claim"
+     },
+     "volumeRef": {
+      "$ref": "v1beta3_ObjectReference",
+      "description": "a reference to the backing persistent volume, when bound"
+     }
+    }
+   },
+   "v1beta3_PersistentVolumeList": {
+    "id": "v1beta3_PersistentVolumeList",
+    "properties": {
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "items": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_PersistentVolume"
+      },
+      "description": "list of persistent volumes"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     }
+    }
+   },
+   "v1beta3_PersistentVolumeSpec": {
+    "id": "v1beta3_PersistentVolumeSpec",
+    "required": [
+     "hostPath",
+     "gcePersistentDisk"
+    ],
+    "properties": {
+     "accessModes": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_AccessModeType"
+      },
+      "description": "all ways the volume can be mounted"
+     },
+     "capacity": {
+      "type": "any",
+      "description": "a description of the persistent volume's resources and capacity"
+     },
+     "claimRef": {
+      "$ref": "v1beta3_ObjectReference",
+      "description": "the binding reference to a persistent volume claim"
+     },
+     "gcePersistentDisk": {
+      "$ref": "v1beta3_GCEPersistentDiskVolumeSource",
+      "description": "GCE disk resource provisioned by an admin"
+     },
+     "hostPath": {
+      "$ref": "v1beta3_HostPathVolumeSource",
+      "description": "a HostPath provisioned by a developer or tester; for develment use only"
+     }
+    }
+   },
+   "v1beta3_PersistentVolumeStatus": {
+    "id": "v1beta3_PersistentVolumeStatus",
+    "properties": {
+     "phase": {
+      "type": "string",
+      "description": "the current phase of a persistent volume"
+     }
+    }
+   },
+   "v1beta3_Pod": {
+    "id": "v1beta3_Pod",
+    "properties": {
+     "annotations": {
+      "type": "any",
+      "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects"
+     },
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "creationTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists"
+     },
+     "deletionTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested"
+     },
+     "generateName": {
+      "type": "string",
+      "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "labels": {
+      "type": "any",
+      "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services"
+     },
+     "name": {
+      "type": "string",
+      "description": "string that identifies an object. Must be unique within a namespace; cannot be updated"
+     },
+     "namespace": {
+      "type": "string",
+      "description": "namespace of the object; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     },
+     "spec": {
+      "$ref": "v1beta3_PodSpec",
+      "description": "specification of the desired behavior of the pod; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status"
+     },
+     "status": {
+      "$ref": "v1beta3_PodStatus",
+      "description": "most recently observed status of the pod; populated by the system, read-only; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status"
+     },
+     "uid": {
+      "type": "string",
+      "description": "unique UUID across space and time; populated by the system; read-only"
+     }
+    }
+   },
+   "v1beta3_PodCondition": {
+    "id": "v1beta3_PodCondition",
+    "required": [
+     "type",
+     "status"
+    ],
+    "properties": {
+     "status": {
+      "type": "string",
+      "description": "status of the condition, one of Full, None, Unknown"
+     },
+     "type": {
+      "type": "string",
+      "description": "kind of the condition"
+     }
+    }
+   },
+   "v1beta3_PodList": {
+    "id": "v1beta3_PodList",
+    "required": [
+     "items"
+    ],
+    "properties": {
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "items": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_Pod"
+      },
+      "description": "list of pods"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     }
+    }
+   },
+   "v1beta3_PodLogOptions": {
+    "id": "v1beta3_PodLogOptions",
+    "properties": {
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "container": {
+      "type": "string",
+      "description": "the container for which to stream logs; defaults to only container if there is one container in the pod"
+     },
+     "follow": {
+      "type": "boolean",
+      "description": "follow the log stream of the pod; defaults to false"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     }
+    }
+   },
+   "v1beta3_PodSpec": {
+    "id": "v1beta3_PodSpec",
+    "required": [
+     "volumes",
+     "containers"
+    ],
+    "properties": {
+     "containers": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_Container"
+      },
+      "description": "list of containers belonging to the pod; cannot be updated; containers cannot currently be added or removed; there must be at least one container in a Pod"
+     },
+     "dnsPolicy": {
+      "type": "string",
+      "description": "DNS policy for containers within the pod; one of 'ClusterFirst' or 'Default'"
+     },
+     "host": {
+      "type": "string",
+      "description": "host requested for this pod"
+     },
+     "hostNetwork": {
+      "type": "boolean",
+      "description": "host networking requested for this pod"
+     },
+     "nodeSelector": {
+      "type": "any",
+      "description": "selector which must match a node's labels for the pod to be scheduled on that node"
+     },
+     "restartPolicy": {
+      "type": "string",
+      "description": "restart policy for all containers within the pod; one of RestartPolicyAlways, RestartPolicyOnFailure, RestartPolicyNever"
+     },
+     "volumes": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_Volume"
+      },
+      "description": "list of volumes that can be mounted by containers belonging to the pod"
+     }
+    }
+   },
+   "v1beta3_PodStatus": {
+    "id": "v1beta3_PodStatus",
+    "properties": {
+     "Condition": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_PodCondition"
+      },
+      "description": "current service state of pod"
+     },
+     "containerStatuses": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_ContainerStatus"
+      },
+      "description": "list of container statuses"
+     },
+     "hostIP": {
+      "type": "string",
+      "description": "IP address of the host to which the pod is assigned; empty if not yet scheduled"
+     },
+     "message": {
+      "type": "string",
+      "description": "human readable message indicating details about why the pod is in this condition"
+     },
+     "phase": {
+      "type": "string",
+      "description": "current condition of the pod."
+     },
+     "podIP": {
+      "type": "string",
+      "description": "IP address allocated to the pod; routable at least within the cluster; empty if not yet allocated"
+     }
+    }
+   },
+   "v1beta3_PodTemplateSpec": {
+    "id": "v1beta3_PodTemplateSpec",
+    "properties": {
+     "annotations": {
+      "type": "any",
+      "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects"
+     },
+     "creationTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists"
+     },
+     "deletionTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested"
+     },
+     "generateName": {
+      "type": "string",
+      "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified"
+     },
+     "labels": {
+      "type": "any",
+      "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services"
+     },
+     "name": {
+      "type": "string",
+      "description": "string that identifies an object. Must be unique within a namespace; cannot be updated"
+     },
+     "namespace": {
+      "type": "string",
+      "description": "namespace of the object; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     },
+     "spec": {
+      "$ref": "v1beta3_PodSpec",
+      "description": "specification of the desired behavior of the pod; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status"
+     },
+     "uid": {
+      "type": "string",
+      "description": "unique UUID across space and time; populated by the system; read-only"
+     }
+    }
+   },
+   "v1beta3_Probe": {
+    "id": "v1beta3_Probe",
+    "properties": {
+     "exect": {
+      "$ref": "v1beta3_ExecAction",
+      "description": "exec-based handler"
+     },
+     "httpGet": {
+      "$ref": "v1beta3_HTTPGetAction",
+      "description": "HTTP-based handler"
+     },
+     "initialDelaySeconds": {
+      "type": "integer",
+      "format": "int64",
+      "description": "number of seconds after the container has started before liveness probes are initiated"
+     },
+     "tcpSocket": {
+      "$ref": "v1beta3_TCPSocketAction",
+      "description": "TCP-based handler; TCP hooks not yet supported"
+     },
+     "timeoutSeconds": {
+      "type": "integer",
+      "format": "int64",
+      "description": "number of seconds after which liveness probes timeout; defaults to 1 second"
+     }
+    }
+   },
+   "v1beta3_ReplicationController": {
+    "id": "v1beta3_ReplicationController",
+    "properties": {
+     "annotations": {
+      "type": "any",
+      "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects"
+     },
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "creationTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists"
+     },
+     "deletionTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested"
+     },
+     "generateName": {
+      "type": "string",
+      "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "labels": {
+      "type": "any",
+      "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services"
+     },
+     "name": {
+      "type": "string",
+      "description": "string that identifies an object. Must be unique within a namespace; cannot be updated"
+     },
+     "namespace": {
+      "type": "string",
+      "description": "namespace of the object; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     },
+     "spec": {
+      "$ref": "v1beta3_ReplicationControllerSpec",
+      "description": "specification of the desired behavior of the replication controller; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status"
+     },
+     "status": {
+      "$ref": "v1beta3_ReplicationControllerStatus",
+      "description": "most recently observed status of the replication controller; populated by the system, read-only; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status"
+     },
+     "uid": {
+      "type": "string",
+      "description": "unique UUID across space and time; populated by the system; read-only"
+     }
+    }
+   },
+   "v1beta3_ReplicationControllerList": {
+    "id": "v1beta3_ReplicationControllerList",
+    "required": [
+     "items"
+    ],
+    "properties": {
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "items": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_ReplicationController"
+      },
+      "description": "list of replication controllers"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     }
+    }
+   },
+   "v1beta3_ReplicationControllerSpec": {
+    "id": "v1beta3_ReplicationControllerSpec",
+    "required": [
+     "replicas"
+    ],
+    "properties": {
+     "replicas": {
+      "type": "integer",
+      "format": "int32",
+      "description": "number of replicas desired"
+     },
+     "selector": {
+      "type": "any",
+      "description": "label keys and values that must match in order to be controlled by this replication controller"
+     },
+     "template": {
+      "$ref": "v1beta3_PodTemplateSpec",
+      "description": "object that describes the pod that will be created if insufficient replicas are detected; takes precendence over templateRef"
+     },
+     "templateRef": {
+      "$ref": "v1beta3_ObjectReference",
+      "description": "reference to an object that describes the pod that will be created if insufficient replicas are detected"
+     }
+    }
+   },
+   "v1beta3_ReplicationControllerStatus": {
+    "id": "v1beta3_ReplicationControllerStatus",
+    "required": [
+     "replicas"
+    ],
+    "properties": {
+     "replicas": {
+      "type": "integer",
+      "format": "int32",
+      "description": "most recently oberved number of replicas"
+     }
+    }
+   },
+   "v1beta3_ResourceQuota": {
+    "id": "v1beta3_ResourceQuota",
+    "properties": {
+     "annotations": {
+      "type": "any",
+      "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects"
+     },
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "creationTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists"
+     },
+     "deletionTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested"
+     },
+     "generateName": {
+      "type": "string",
+      "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "labels": {
+      "type": "any",
+      "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services"
+     },
+     "name": {
+      "type": "string",
+      "description": "string that identifies an object. Must be unique within a namespace; cannot be updated"
+     },
+     "namespace": {
+      "type": "string",
+      "description": "namespace of the object; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     },
+     "spec": {
+      "$ref": "v1beta3_ResourceQuotaSpec",
+      "description": "spec defines the desired quota; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status"
+     },
+     "status": {
+      "$ref": "v1beta3_ResourceQuotaStatus",
+      "description": "status defines the actual enforced quota and current usage; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status"
+     },
+     "uid": {
+      "type": "string",
+      "description": "unique UUID across space and time; populated by the system; read-only"
+     }
+    }
+   },
+   "v1beta3_ResourceQuotaList": {
+    "id": "v1beta3_ResourceQuotaList",
+    "required": [
+     "items"
+    ],
+    "properties": {
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "items": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_ResourceQuota"
+      },
+      "description": "items is a list of ResourceQuota objects"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     }
+    }
+   },
+   "v1beta3_ResourceQuotaSpec": {
+    "id": "v1beta3_ResourceQuotaSpec",
+    "properties": {
+     "hard": {
+      "type": "any",
+      "description": "hard is the set of desired hard limits for each named resource"
+     }
+    }
+   },
+   "v1beta3_ResourceQuotaStatus": {
+    "id": "v1beta3_ResourceQuotaStatus",
+    "properties": {
+     "hard": {
+      "type": "any",
+      "description": "hard is the set of enforced hard limits for each named resource"
+     },
+     "used": {
+      "type": "any",
+      "description": "used is the current observed total usage of the resource in the namespace"
+     }
+    }
+   },
+   "v1beta3_ResourceRequirements": {
+    "id": "v1beta3_ResourceRequirements",
+    "properties": {
+     "limits": {
+      "type": "any",
+      "description": "Maximum amount of compute resources allowed"
+     },
+     "requests": {
+      "type": "any",
+      "description": "Minimum amount of resources requested"
+     }
+    }
+   },
+   "v1beta3_Secret": {
+    "id": "v1beta3_Secret",
+    "properties": {
+     "annotations": {
+      "type": "any",
+      "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects"
+     },
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "creationTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists"
+     },
+     "data": {
+      "type": "any",
+      "description": "data contains the secret data.  Each key must be a valid DNS_SUBDOMAIN.  Each value must be a base64 encoded string"
+     },
+     "deletionTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested"
+     },
+     "generateName": {
+      "type": "string",
+      "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "labels": {
+      "type": "any",
+      "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services"
+     },
+     "name": {
+      "type": "string",
+      "description": "string that identifies an object. Must be unique within a namespace; cannot be updated"
+     },
+     "namespace": {
+      "type": "string",
+      "description": "namespace of the object; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     },
+     "type": {
+      "type": "string",
+      "description": "type facilitates programmatic handling of secret data"
+     },
+     "uid": {
+      "type": "string",
+      "description": "unique UUID across space and time; populated by the system; read-only"
+     }
+    }
+   },
+   "v1beta3_SecretList": {
+    "id": "v1beta3_SecretList",
+    "required": [
+     "items"
+    ],
+    "properties": {
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "items": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_Secret"
+      },
+      "description": "items is a list of secret objects"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     }
+    }
+   },
+   "v1beta3_SecretVolumeSource": {
+    "id": "v1beta3_SecretVolumeSource",
+    "required": [
+     "secretName"
+    ],
+    "properties": {
+     "secretName": {
+      "type": "string",
+      "description": "secretName is the name of a secret in the pod's namespace"
+     }
+    }
+   },
+   "v1beta3_Service": {
+    "id": "v1beta3_Service",
+    "properties": {
+     "annotations": {
+      "type": "any",
+      "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects"
+     },
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "creationTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object was created; populated by the system, read-only; null for lists"
+     },
+     "deletionTimestamp": {
+      "type": "string",
+      "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested, read-only; if not set, graceful deletion of the object has not been requested"
+     },
+     "generateName": {
+      "type": "string",
+      "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional, and is applied only name if is not specified"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "labels": {
+      "type": "any",
+      "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services"
+     },
+     "name": {
+      "type": "string",
+      "description": "string that identifies an object. Must be unique within a namespace; cannot be updated"
+     },
+     "namespace": {
+      "type": "string",
+      "description": "namespace of the object; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     },
+     "spec": {
+      "$ref": "v1beta3_ServiceSpec",
+      "description": "specification of the desired behavior of the service; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status"
+     },
+     "status": {
+      "$ref": "v1beta3_ServiceStatus",
+      "description": "most recently observed status of the service; populated by the system, read-only; https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#spec-and-status"
+     },
+     "uid": {
+      "type": "string",
+      "description": "unique UUID across space and time; populated by the system; read-only"
+     }
+    }
+   },
+   "v1beta3_ServiceList": {
+    "id": "v1beta3_ServiceList",
+    "required": [
+     "items"
+    ],
+    "properties": {
+     "apiVersion": {
+      "type": "string",
+      "description": "version of the schema the object should have"
+     },
+     "items": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_Service"
+      },
+      "description": "list of services"
+     },
+     "kind": {
+      "type": "string",
+      "description": "kind of object, in CamelCase; cannot be updated"
+     },
+     "resourceVersion": {
+      "type": "string",
+      "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system, read-only; value must be treated as opaque by clients and passed unmodified back to the server: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api-conventions.md#concurrency-control-and-consistency"
+     },
+     "selfLink": {
+      "type": "string",
+      "description": "URL for the object; populated by the system, read-only"
+     }
+    }
+   },
+   "v1beta3_ServicePort": {
+    "id": "v1beta3_ServicePort",
+    "required": [
+     "name",
+     "protocol",
+     "port",
+     "targetPort"
+    ],
+    "properties": {
+     "name": {
+      "type": "string",
+      "description": "the name of this port; optional if only one port is defined"
+     },
+     "port": {
+      "type": "integer",
+      "format": "int32",
+      "description": "the port number that is exposed"
+     },
+     "protocol": {
+      "type": "string",
+      "description": "the protocol used by this port; must be UDP or TCP; TCP if unspecified"
+     },
+     "targetPort": {
+      "type": "string",
+      "description": "the port to access on the pods targeted by the service; defaults to the service port"
+     }
+    }
+   },
+   "v1beta3_ServiceSpec": {
+    "id": "v1beta3_ServiceSpec",
+    "required": [
+     "ports",
+     "selector",
+     "portalIP"
+    ],
+    "properties": {
+     "createExternalLoadBalancer": {
+      "type": "boolean",
+      "description": "set up a cloud-provider-specific load balancer on an external IP"
+     },
+     "portalIP": {
+      "type": "string"
+     },
+     "ports": {
+      "type": "array",
+      "items": {
+       "$ref": "v1beta3_ServicePort"
+      },
+      "description": "ports exposed by the service"
+     },
+     "publicIPs": {
+      "type": "array",
+      "items": {
+       "type": "string"
+      },
+      "description": "externally visible IPs (e.g. load balancers) that should be proxied to this service"
+     },
+     "selector": {
+      "type": "any",
+      "description": "label keys and values that must match in order to receive traffic for this service; if empty, all pods are selected, if not specified, endpoints must be manually specified"
+     },
+     "sessionAffinity": {
+      "type": "string",
+      "description": "enable client IP based session affinity; must be ClientIP or None; defaults to None"
+     }
+    }
+   },
+   "v1beta3_ServiceStatus": {
+    "id": "v1beta3_ServiceStatus",
+    "properties": {}
+   },
+   "v1beta3_TCPSocketAction": {
+    "id": "v1beta3_TCPSocketAction",
+    "properties": {
+     "port": {
+      "type": "string",
+      "description": "number of name of the port to access on the container"
+     }
+    }
+   },
+   "v1beta3_Volume": {
+    "id": "v1beta3_Volume",
+    "required": [
+     "name",
+     "emptyDir",
+     "gcePersistentDisk",
+     "gitRepo",
+     "secret",
+     "nfs",
+     "iscsi",
+     "hostPath"
+    ],
+    "properties": {
+     "emptyDir": {
+      "$ref": "v1beta3_EmptyDirVolumeSource",
+      "description": "temporary directory that shares a pod's lifetime"
+     },
+     "gcePersistentDisk": {
+      "$ref": "v1beta3_GCEPersistentDiskVolumeSource",
+      "description": "GCE disk resource attached to the host machine on demand"
+     },
+     "gitRepo": {
+      "$ref": "v1beta3_GitRepoVolumeSource",
+      "description": "git repository at a particular revision"
+     },
+     "hostPath": {
+      "$ref": "v1beta3_HostPathVolumeSource",
+      "description": "pre-existing host file or directory; generally for privileged system daemons or other agents tied to the host"
+     },
+     "iscsi": {
+      "$ref": "v1beta3_ISCSIVolumeSource",
+      "description": "iSCSI disk attached to host machine on demand"
+     },
+     "name": {
+      "type": "string",
+      "description": "volume name; must be a DNS_LABEL and unique within the pod"
+     },
+     "nfs": {
+      "$ref": "v1beta3_NFSVolumeSource",
+      "description": "NFS volume that will be mounted in the host machine"
+     },
+     "secret": {
+      "$ref": "v1beta3_SecretVolumeSource",
+      "description": "secret to populate volume"
+     }
+    }
+   },
+   "v1beta3_VolumeMount": {
+    "id": "v1beta3_VolumeMount",
+    "required": [
+     "name",
+     "mountPath"
+    ],
+    "properties": {
+     "mountPath": {
+      "type": "string",
+      "description": "path within the container at which the volume should be mounted"
+     },
+     "name": {
+      "type": "string",
+      "description": "name of the volume to mount"
+     },
+     "readOnly": {
+      "type": "boolean",
+      "description": "mounted read-only if true, read-write otherwise (false or unspecified)"
+     }
+    }
+   }
+  }
+ }