github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/examples/container/image_security/main.go (about)

     1  package main
     2  
     3  import (
     4  	"flag"
     5  	"fmt"
     6  	"log"
     7  
     8  	bluemix "github.com/IBM-Cloud/bluemix-go"
     9  	"github.com/IBM-Cloud/bluemix-go/session"
    10  
    11  	v2 "github.com/IBM-Cloud/bluemix-go/api/container/containerv2"
    12  )
    13  
    14  func main() {
    15  
    16  	var clusterIDOrName string
    17  	flag.StringVar(&clusterIDOrName, "cluster-id-or-name", "", "ID or Name of the targeted cluster")
    18  
    19  	var requestType string
    20  	flag.StringVar(&requestType, "request-type", "", "'enable' or 'disable' image security enforcement")
    21  
    22  	flag.Parse()
    23  
    24  	if clusterIDOrName == "" {
    25  		fmt.Println("Please provide a cluster ID or Name to target with -cluster-id-or-name!")
    26  		return
    27  	}
    28  
    29  	c := new(bluemix.Config)
    30  
    31  	sess, err := session.New(c)
    32  	if err != nil {
    33  		log.Fatal(err)
    34  	}
    35  
    36  	v2ClusterClient, err := v2.New(sess)
    37  	if err != nil {
    38  		log.Fatal(err)
    39  	}
    40  
    41  	v2ClusterAPI := v2ClusterClient.Clusters()
    42  
    43  	switch requestType {
    44  	case "enable":
    45  		err = v2ClusterAPI.EnableImageSecurityEnforcement(
    46  			clusterIDOrName,
    47  			v2.ClusterTargetHeader{},
    48  		)
    49  		if err != nil {
    50  			log.Fatal(err)
    51  		}
    52  	case "disable":
    53  		if requestType == "disable" {
    54  			err = v2ClusterAPI.DisableImageSecurityEnforcement(
    55  				clusterIDOrName,
    56  				v2.ClusterTargetHeader{},
    57  			)
    58  			if err != nil {
    59  				log.Fatal(err)
    60  			}
    61  		}
    62  	default:
    63  		fmt.Println("Please provide the request type using request-type!")
    64  	}
    65  }