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

     1  package main
     2  
     3  import (
     4  	"flag"
     5  	"log"
     6  	"os"
     7  	"strings"
     8  
     9  	"github.com/IBM-Cloud/bluemix-go/api/globaltagging/globaltaggingv3"
    10  	"github.com/IBM-Cloud/bluemix-go/session"
    11  	"github.com/IBM-Cloud/bluemix-go/trace"
    12  )
    13  
    14  func main() {
    15  	// Detach tags. Note this only detaches a tag from a resource it does not delete it as it could be attached
    16  	// to other resources. Call delete separately.
    17  	var resourceID string
    18  	var tagin string
    19  	flag.StringVar(&resourceID, "id", "", "CRN string")
    20  	flag.StringVar(&tagin, "tags", "", "List of comma separated tags to be detached prior to delete")
    21  	flag.Parse()
    22  
    23  	if resourceID == "" || tagin == "" {
    24  		flag.Usage()
    25  		os.Exit(1)
    26  	}
    27  
    28  	taglist := strings.Split(tagin, ",")
    29  
    30  	trace.Logger = trace.NewLogger("true")
    31  	sess, err := session.New()
    32  	if err != nil {
    33  		log.Fatal(err)
    34  	}
    35  
    36  	gtClient, err := globaltaggingv3.New(sess)
    37  	if err != nil {
    38  		log.Fatal(err)
    39  	}
    40  
    41  	tagUpdateResult, err := gtClient.Tags().DetachTags(resourceID, taglist)
    42  	if err != nil {
    43  		log.Fatal(err)
    44  	}
    45  	log.Println("Result: ", tagUpdateResult)
    46  
    47  }