type CachedDiscoveryClient … var _ … // ServerResourcesForGroupVersion returns the supported resources for a group and version. func (d *CachedDiscoveryClient) ServerResourcesForGroupVersion(groupVersion string) (*metav1.APIResourceList, error) { … } // ServerGroupsAndResources returns the supported groups and resources for all groups and versions. func (d *CachedDiscoveryClient) ServerGroupsAndResources() ([]*metav1.APIGroup, []*metav1.APIResourceList, error) { … } // ServerGroups returns the supported groups, with information like supported versions and the // preferred version. func (d *CachedDiscoveryClient) ServerGroups() (*metav1.APIGroupList, error) { … } func (d *CachedDiscoveryClient) getCachedFile(filename string) ([]byte, error) { … } func (d *CachedDiscoveryClient) writeCachedFile(filename string, obj runtime.Object) error { … } // RESTClient returns a RESTClient that is used to communicate with API server // by this client implementation. func (d *CachedDiscoveryClient) RESTClient() restclient.Interface { … } // ServerPreferredResources returns the supported resources with the version preferred by the // server. func (d *CachedDiscoveryClient) ServerPreferredResources() ([]*metav1.APIResourceList, error) { … } // ServerPreferredNamespacedResources returns the supported namespaced resources with the // version preferred by the server. func (d *CachedDiscoveryClient) ServerPreferredNamespacedResources() ([]*metav1.APIResourceList, error) { … } // ServerVersion retrieves and parses the server's version (git version). func (d *CachedDiscoveryClient) ServerVersion() (*version.Info, error) { … } // OpenAPISchema retrieves and parses the swagger API schema the server supports. func (d *CachedDiscoveryClient) OpenAPISchema() (*openapi_v2.Document, error) { … } // OpenAPIV3 retrieves and parses the OpenAPIV3 specs exposed by the server func (d *CachedDiscoveryClient) OpenAPIV3() openapi.Client { … } // Fresh is supposed to tell the caller whether or not to retry if the cache // fails to find something (false = retry, true = no need to retry). func (d *CachedDiscoveryClient) Fresh() bool { … } // Invalidate enforces that no cached data is used in the future that is older than the current time. func (d *CachedDiscoveryClient) Invalidate() { … } // WithLegacy returns current cached discovery client; // current client does not support legacy-only discovery. func (d *CachedDiscoveryClient) WithLegacy() discovery.DiscoveryInterface { … } // NewCachedDiscoveryClientForConfig creates a new DiscoveryClient for the given config, and wraps // the created client in a CachedDiscoveryClient. The provided configuration is updated with a // custom transport that understands cache responses. // We receive two distinct cache directories for now, in order to preserve old behavior // which makes use of the --cache-dir flag value for storing cache data from the CacheRoundTripper, // and makes use of the hardcoded destination (~/.kube/cache/discovery/...) for storing // CachedDiscoveryClient cache data. If httpCacheDir is empty, the restconfig's transport will not // be updated with a roundtripper that understands cache responses. // If discoveryCacheDir is empty, cached server resource data will be looked up in the current directory. func NewCachedDiscoveryClientForConfig(config *restclient.Config, discoveryCacheDir, httpCacheDir string, ttl time.Duration) (*CachedDiscoveryClient, error) { … } // NewCachedDiscoveryClient creates a new DiscoveryClient. cacheDirectory is the directory where discovery docs are held. It must be unique per host:port combination to work well. func newCachedDiscoveryClient(delegate discovery.DiscoveryInterface, cacheDirectory string, ttl time.Duration) *CachedDiscoveryClient { … }