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  }