github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/api/container/containerv1/versions.go (about)

     1  package containerv1
     2  
     3  import (
     4  	"github.com/IBM-Cloud/bluemix-go/client"
     5  )
     6  
     7  //KubeVersion ...
     8  type KubeVersion struct {
     9  	Major   int
    10  	Minor   int
    11  	Patch   int
    12  	Default bool
    13  }
    14  
    15  type V1Version map[string][]KubeVersion
    16  
    17  //KubeVersions interface
    18  type KubeVersions interface {
    19  	List(target ClusterTargetHeader) ([]KubeVersion, error)
    20  	ListV1(target ClusterTargetHeader) (V1Version, error)
    21  }
    22  
    23  type version struct {
    24  	client *client.Client
    25  }
    26  
    27  func newKubeVersionAPI(c *client.Client) KubeVersions {
    28  	return &version{
    29  		client: c,
    30  	}
    31  }
    32  
    33  //List ...
    34  func (v *version) List(target ClusterTargetHeader) ([]KubeVersion, error) {
    35  	versions := []KubeVersion{}
    36  	_, err := v.client.Get("/v1/kube-versions", &versions, target.ToMap())
    37  	if err != nil {
    38  		return nil, err
    39  	}
    40  	return versions, err
    41  }
    42  
    43  func (v *version) ListV1(target ClusterTargetHeader) (V1Version, error) {
    44  	v1ver := V1Version{}
    45  	_, err := v.client.Get("/v1/versions", &v1ver, target.ToMap())
    46  	if err != nil {
    47  		return nil, err
    48  	}
    49  
    50  	return v1ver, err
    51  }