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

     1  package main
     2  
     3  import (
     4  	"flag"
     5  	"log"
     6  	"os"
     7  
     8  	"github.com/IBM-Cloud/bluemix-go/models"
     9  	"github.com/IBM-Cloud/bluemix-go/utils"
    10  
    11  	"github.com/IBM-Cloud/bluemix-go/api/account/accountv2"
    12  	"github.com/IBM-Cloud/bluemix-go/api/iam/iamv1"
    13  	"github.com/IBM-Cloud/bluemix-go/api/mccp/mccpv2"
    14  	"github.com/IBM-Cloud/bluemix-go/session"
    15  	"github.com/IBM-Cloud/bluemix-go/trace"
    16  )
    17  
    18  func main() {
    19  	var org string
    20  	flag.StringVar(&org, "org", "", "Bluemix Organization")
    21  
    22  	var serviceID string
    23  	flag.StringVar(&serviceID, "serviceID", "", "Bluemix service id name")
    24  
    25  	flag.Parse()
    26  	if org == "" || serviceID == "" {
    27  		flag.Usage()
    28  		os.Exit(1)
    29  	}
    30  
    31  	trace.Logger = trace.NewLogger("true")
    32  	sess, err := session.New()
    33  	if err != nil {
    34  		log.Fatal(err)
    35  	}
    36  
    37  	client, err := mccpv2.New(sess)
    38  
    39  	if err != nil {
    40  		log.Fatal(err)
    41  	}
    42  	orgAPI := client.Organizations()
    43  	myorg, err := orgAPI.FindByName(org, sess.Config.Region)
    44  
    45  	if err != nil {
    46  		log.Fatal(err)
    47  	}
    48  
    49  	accClient, err := accountv2.New(sess)
    50  	if err != nil {
    51  		log.Fatal(err)
    52  	}
    53  	accountAPI := accClient.Accounts()
    54  	myAccount, err := accountAPI.FindByOrg(myorg.GUID, sess.Config.Region)
    55  	if err != nil {
    56  		log.Fatal(err)
    57  	}
    58  
    59  	regionAPI := client.Regions()
    60  	region, err := regionAPI.FindRegionByName(sess.Config.Region)
    61  	if err != nil {
    62  		log.Fatal(err)
    63  	}
    64  
    65  	iamClient, err := iamv1.New(sess)
    66  	if err != nil {
    67  		log.Fatal(err)
    68  	}
    69  	serviceIdAPI := iamClient.ServiceIds()
    70  
    71  	boundTo := utils.GenerateBoundToCRN(*region, myAccount.GUID).String()
    72  
    73  	data := models.ServiceID{
    74  		Name:    serviceID,
    75  		BoundTo: boundTo,
    76  	}
    77  	sID, err := serviceIdAPI.Create(data)
    78  	if err != nil {
    79  		log.Fatal(err)
    80  	}
    81  	log.Println(sID)
    82  
    83  	sID, err = serviceIdAPI.Get(sID.UUID)
    84  	if err != nil {
    85  		log.Fatal(err)
    86  	}
    87  	log.Println(sID)
    88  
    89  	err = serviceIdAPI.Delete(sID.UUID)
    90  	if err != nil {
    91  		log.Fatal(err)
    92  	}
    93  
    94  }