sigs.k8s.io/kueue@v0.6.2/client-go/clientset/versioned/clientset.go (about)

     1  /*
     2  Copyright The Kubernetes Authors.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8      http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  // Code generated by client-gen. DO NOT EDIT.
    17  
    18  package versioned
    19  
    20  import (
    21  	"fmt"
    22  	"net/http"
    23  
    24  	discovery "k8s.io/client-go/discovery"
    25  	rest "k8s.io/client-go/rest"
    26  	flowcontrol "k8s.io/client-go/util/flowcontrol"
    27  	kueuev1alpha1 "sigs.k8s.io/kueue/client-go/clientset/versioned/typed/kueue/v1alpha1"
    28  	kueuev1beta1 "sigs.k8s.io/kueue/client-go/clientset/versioned/typed/kueue/v1beta1"
    29  	visibilityv1alpha1 "sigs.k8s.io/kueue/client-go/clientset/versioned/typed/visibility/v1alpha1"
    30  )
    31  
    32  type Interface interface {
    33  	Discovery() discovery.DiscoveryInterface
    34  	KueueV1alpha1() kueuev1alpha1.KueueV1alpha1Interface
    35  	KueueV1beta1() kueuev1beta1.KueueV1beta1Interface
    36  	VisibilityV1alpha1() visibilityv1alpha1.VisibilityV1alpha1Interface
    37  }
    38  
    39  // Clientset contains the clients for groups.
    40  type Clientset struct {
    41  	*discovery.DiscoveryClient
    42  	kueueV1alpha1      *kueuev1alpha1.KueueV1alpha1Client
    43  	kueueV1beta1       *kueuev1beta1.KueueV1beta1Client
    44  	visibilityV1alpha1 *visibilityv1alpha1.VisibilityV1alpha1Client
    45  }
    46  
    47  // KueueV1alpha1 retrieves the KueueV1alpha1Client
    48  func (c *Clientset) KueueV1alpha1() kueuev1alpha1.KueueV1alpha1Interface {
    49  	return c.kueueV1alpha1
    50  }
    51  
    52  // KueueV1beta1 retrieves the KueueV1beta1Client
    53  func (c *Clientset) KueueV1beta1() kueuev1beta1.KueueV1beta1Interface {
    54  	return c.kueueV1beta1
    55  }
    56  
    57  // VisibilityV1alpha1 retrieves the VisibilityV1alpha1Client
    58  func (c *Clientset) VisibilityV1alpha1() visibilityv1alpha1.VisibilityV1alpha1Interface {
    59  	return c.visibilityV1alpha1
    60  }
    61  
    62  // Discovery retrieves the DiscoveryClient
    63  func (c *Clientset) Discovery() discovery.DiscoveryInterface {
    64  	if c == nil {
    65  		return nil
    66  	}
    67  	return c.DiscoveryClient
    68  }
    69  
    70  // NewForConfig creates a new Clientset for the given config.
    71  // If config's RateLimiter is not set and QPS and Burst are acceptable,
    72  // NewForConfig will generate a rate-limiter in configShallowCopy.
    73  // NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),
    74  // where httpClient was generated with rest.HTTPClientFor(c).
    75  func NewForConfig(c *rest.Config) (*Clientset, error) {
    76  	configShallowCopy := *c
    77  
    78  	if configShallowCopy.UserAgent == "" {
    79  		configShallowCopy.UserAgent = rest.DefaultKubernetesUserAgent()
    80  	}
    81  
    82  	// share the transport between all clients
    83  	httpClient, err := rest.HTTPClientFor(&configShallowCopy)
    84  	if err != nil {
    85  		return nil, err
    86  	}
    87  
    88  	return NewForConfigAndClient(&configShallowCopy, httpClient)
    89  }
    90  
    91  // NewForConfigAndClient creates a new Clientset for the given config and http client.
    92  // Note the http client provided takes precedence over the configured transport values.
    93  // If config's RateLimiter is not set and QPS and Burst are acceptable,
    94  // NewForConfigAndClient will generate a rate-limiter in configShallowCopy.
    95  func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset, error) {
    96  	configShallowCopy := *c
    97  	if configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 {
    98  		if configShallowCopy.Burst <= 0 {
    99  			return nil, fmt.Errorf("burst is required to be greater than 0 when RateLimiter is not set and QPS is set to greater than 0")
   100  		}
   101  		configShallowCopy.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(configShallowCopy.QPS, configShallowCopy.Burst)
   102  	}
   103  
   104  	var cs Clientset
   105  	var err error
   106  	cs.kueueV1alpha1, err = kueuev1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)
   107  	if err != nil {
   108  		return nil, err
   109  	}
   110  	cs.kueueV1beta1, err = kueuev1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)
   111  	if err != nil {
   112  		return nil, err
   113  	}
   114  	cs.visibilityV1alpha1, err = visibilityv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)
   115  	if err != nil {
   116  		return nil, err
   117  	}
   118  
   119  	cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfigAndClient(&configShallowCopy, httpClient)
   120  	if err != nil {
   121  		return nil, err
   122  	}
   123  	return &cs, nil
   124  }
   125  
   126  // NewForConfigOrDie creates a new Clientset for the given config and
   127  // panics if there is an error in the config.
   128  func NewForConfigOrDie(c *rest.Config) *Clientset {
   129  	cs, err := NewForConfig(c)
   130  	if err != nil {
   131  		panic(err)
   132  	}
   133  	return cs
   134  }
   135  
   136  // New creates a new Clientset for the given RESTClient.
   137  func New(c rest.Interface) *Clientset {
   138  	var cs Clientset
   139  	cs.kueueV1alpha1 = kueuev1alpha1.New(c)
   140  	cs.kueueV1beta1 = kueuev1beta1.New(c)
   141  	cs.visibilityV1alpha1 = visibilityv1alpha1.New(c)
   142  
   143  	cs.DiscoveryClient = discovery.NewDiscoveryClient(c)
   144  	return &cs
   145  }