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 }