github.com/docker/compose-on-kubernetes@v0.5.0/api/client/clientset/clientset.go (about)

     1  package clientset
     2  
     3  import (
     4  	composev1alpha3 "github.com/docker/compose-on-kubernetes/api/client/clientset/typed/compose/v1alpha3"
     5  	composev1beta1 "github.com/docker/compose-on-kubernetes/api/client/clientset/typed/compose/v1beta1"
     6  	composev1beta2 "github.com/docker/compose-on-kubernetes/api/client/clientset/typed/compose/v1beta2"
     7  	discovery "k8s.io/client-go/discovery"
     8  	rest "k8s.io/client-go/rest"
     9  	flowcontrol "k8s.io/client-go/util/flowcontrol"
    10  )
    11  
    12  // Interface defines the methods a compose kube client should have
    13  // FIXME(vdemeester) is it required ?
    14  type Interface interface {
    15  	Discovery() discovery.DiscoveryInterface
    16  	ComposeV1alpha3() composev1alpha3.ComposeV1alpha3Interface
    17  	ComposeV1beta2() composev1beta2.ComposeV1beta2Interface
    18  	ComposeV1beta1() composev1beta1.ComposeV1beta1Interface
    19  	// Deprecated: please explicitly pick a version if possible.
    20  	Compose() composev1beta1.ComposeV1beta1Interface
    21  	ComposeLatest() composev1alpha3.ComposeV1alpha3Interface
    22  }
    23  
    24  // Clientset contains the clients for groups. Each group has exactly one
    25  // version included in a Clientset.
    26  type Clientset struct {
    27  	*discovery.DiscoveryClient
    28  	*composev1alpha3.ComposeV1alpha3Client
    29  	*composev1beta2.ComposeV1beta2Client
    30  	*composev1beta1.ComposeV1beta1Client
    31  }
    32  
    33  // ComposeV1alpha3 retrieves the ComposeV1alpha3Client
    34  func (c *Clientset) ComposeV1alpha3() composev1alpha3.ComposeV1alpha3Interface {
    35  	if c == nil {
    36  		return nil
    37  	}
    38  	return c.ComposeV1alpha3Client
    39  }
    40  
    41  // ComposeLatest retrieves the latest version of the client
    42  func (c *Clientset) ComposeLatest() composev1alpha3.ComposeV1alpha3Interface {
    43  	return c.ComposeV1alpha3()
    44  }
    45  
    46  // ComposeV1beta2 retrieves the ComposeV1beta2Client
    47  func (c *Clientset) ComposeV1beta2() composev1beta2.ComposeV1beta2Interface {
    48  	if c == nil {
    49  		return nil
    50  	}
    51  	return c.ComposeV1beta2Client
    52  }
    53  
    54  // ComposeV1beta1 retrieves the ComposeV1beta1Client
    55  func (c *Clientset) ComposeV1beta1() composev1beta1.ComposeV1beta1Interface {
    56  	if c == nil {
    57  		return nil
    58  	}
    59  	return c.ComposeV1beta1Client
    60  }
    61  
    62  // Compose retrieves the default version of ComposeClient.
    63  // deprecated: please explicitly pick a version.
    64  func (c *Clientset) Compose() composev1beta1.ComposeV1beta1Interface {
    65  	if c == nil {
    66  		return nil
    67  	}
    68  	return c.ComposeV1beta1Client
    69  }
    70  
    71  // Discovery retrieves the DiscoveryClient
    72  func (c *Clientset) Discovery() discovery.DiscoveryInterface {
    73  	if c == nil {
    74  		return nil
    75  	}
    76  	return c.DiscoveryClient
    77  }
    78  
    79  // NewForConfig creates a new Clientset for the given config.
    80  func NewForConfig(c *rest.Config) (*Clientset, error) {
    81  	configShallowCopy := *c
    82  	if configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 {
    83  		configShallowCopy.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(configShallowCopy.QPS, configShallowCopy.Burst)
    84  	}
    85  	var cs Clientset
    86  	var err error
    87  	cs.ComposeV1alpha3Client, err = composev1alpha3.NewForConfig(&configShallowCopy)
    88  	if err != nil {
    89  		return nil, err
    90  	}
    91  	cs.ComposeV1beta2Client, err = composev1beta2.NewForConfig(&configShallowCopy)
    92  	if err != nil {
    93  		return nil, err
    94  	}
    95  	cs.ComposeV1beta1Client, err = composev1beta1.NewForConfig(&configShallowCopy)
    96  	if err != nil {
    97  		return nil, err
    98  	}
    99  
   100  	cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(&configShallowCopy)
   101  	if err != nil {
   102  		return nil, err
   103  	}
   104  	return &cs, nil
   105  }
   106  
   107  // NewForConfigOrDie creates a new Clientset for the given config and
   108  // panics if there is an error in the config.
   109  func NewForConfigOrDie(c *rest.Config) *Clientset {
   110  	var cs Clientset
   111  	cs.ComposeV1alpha3Client = composev1alpha3.NewForConfigOrDie(c)
   112  	cs.ComposeV1beta2Client = composev1beta2.NewForConfigOrDie(c)
   113  	cs.ComposeV1beta1Client = composev1beta1.NewForConfigOrDie(c)
   114  
   115  	cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c)
   116  	return &cs
   117  }
   118  
   119  // New creates a new Clientset for the given RESTClient.
   120  func New(c rest.Interface) *Clientset {
   121  	var cs Clientset
   122  	cs.ComposeV1alpha3Client = composev1alpha3.New(c)
   123  	cs.ComposeV1beta2Client = composev1beta2.New(c)
   124  	cs.ComposeV1beta1Client = composev1beta1.New(c)
   125  
   126  	cs.DiscoveryClient = discovery.NewDiscoveryClient(c)
   127  	return &cs
   128  }