github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/examples/iam/custom_roles/main.go (about) 1 package main 2 3 import ( 4 "flag" 5 "log" 6 "os" 7 8 "github.com/IBM-Cloud/bluemix-go/api/iampap/iampapv2" 9 "github.com/IBM-Cloud/bluemix-go/session" 10 "github.com/IBM-Cloud/bluemix-go/trace" 11 ) 12 13 func main() { 14 15 var acID string 16 flag.StringVar(&acID, "acID", "", "Account ID") 17 18 flag.Parse() 19 if acID == "" { 20 flag.Usage() 21 os.Exit(1) 22 } 23 24 trace.Logger = trace.NewLogger("true") 25 sess, err := session.New() 26 if err != nil { 27 log.Fatal(err) 28 } 29 30 roleClient, err := iampapv2.New(sess) 31 if err != nil { 32 log.Fatal(err) 33 } 34 35 log.Println(acID) 36 37 rAPI := roleClient.IAMRoles() 38 39 rolereq := iampapv2.CreateRoleRequest{ 40 Name: "Testrole44", 41 DisplayName: "Testrole44 disp", 42 Description: "Custom role for example", 43 ServiceName: "kms", 44 Actions: []string{"kms.policies.write"}, 45 } 46 rolereq.AccountID = acID 47 48 updatereq := iampapv2.UpdateRoleRequest{ 49 DisplayName: "Example Role updated3", 50 Description: "aaa", 51 } 52 resp, err := rAPI.Create(rolereq) 53 if err != nil { 54 log.Fatal(err) 55 } 56 log.Println("\nresp=", resp) 57 58 listres, err := rAPI.ListAll(iampapv2.RoleQuery{AccountID: acID, ServiceName: "kms"}) 59 if err != nil { 60 log.Fatal(err) 61 } 62 63 log.Println("\nlistres=", listres) 64 65 getresp, etag, err := rAPI.Get(resp.ID) 66 if err != nil { 67 log.Fatal(err) 68 } 69 log.Println("\ngetresp=", getresp) 70 71 upres, err := rAPI.Update(updatereq, getresp.ID, etag) 72 if err != nil { 73 log.Fatal(err) 74 } 75 76 log.Println("\nupresp=", upres) 77 78 err1 := rAPI.Delete(getresp.ID) 79 if err != nil { 80 log.Fatal(err1) 81 } 82 log.Println("deleted") 83 84 }