github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/examples/iamuum/access_group/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  
    10  	"github.com/IBM-Cloud/bluemix-go/api/account/accountv2"
    11  	"github.com/IBM-Cloud/bluemix-go/api/iamuum/iamuumv2"
    12  	"github.com/IBM-Cloud/bluemix-go/api/mccp/mccpv2"
    13  	"github.com/IBM-Cloud/bluemix-go/session"
    14  	"github.com/IBM-Cloud/bluemix-go/trace"
    15  )
    16  
    17  func main() {
    18  	var org string
    19  	flag.StringVar(&org, "org", "umaraliorg", "Bluemix Organization")
    20  
    21  	var accessGroup string
    22  	flag.StringVar(&accessGroup, "accessGroup", "test", "Bluemix access group name")
    23  
    24  	var user string
    25  	flag.StringVar(&user, "user", "umarali.nagoor@in.ibm.com", "IBM-id or email id of the user")
    26  
    27  	flag.Parse()
    28  	if org == "" || accessGroup == "" || user == "" {
    29  		flag.Usage()
    30  		os.Exit(1)
    31  	}
    32  
    33  	trace.Logger = trace.NewLogger("true")
    34  	sess, err := session.New()
    35  	if err != nil {
    36  		log.Fatal(err)
    37  	}
    38  
    39  	client, err := mccpv2.New(sess)
    40  
    41  	if err != nil {
    42  		log.Fatal(err)
    43  	}
    44  	orgAPI := client.Organizations()
    45  	myorg, err := orgAPI.FindByName(org, sess.Config.Region)
    46  
    47  	if err != nil {
    48  		log.Fatal(err)
    49  	}
    50  
    51  	accClient, err := accountv2.New(sess)
    52  	if err != nil {
    53  		log.Fatal(err)
    54  	}
    55  	accountAPI := accClient.Accounts()
    56  	myAccount, err := accountAPI.FindByOrg(myorg.GUID, sess.Config.Region)
    57  	if err != nil {
    58  		log.Fatal(err)
    59  	}
    60  
    61  	iamuumClient, err := iamuumv2.New(sess)
    62  	if err != nil {
    63  		log.Fatal(err)
    64  	}
    65  	accessGroupAPI := iamuumClient.AccessGroup()
    66  
    67  	data := models.AccessGroupV2{
    68  		AccessGroup: models.AccessGroup{
    69  			Name: accessGroup,
    70  		},
    71  	}
    72  	agID, err := accessGroupAPI.Create(data, myAccount.GUID)
    73  	if err != nil {
    74  		log.Fatal(err)
    75  	}
    76  	log.Println("create", agID)
    77  
    78  	agID, _, err = accessGroupAPI.Get(agID.ID)
    79  	if err != nil {
    80  		log.Fatal(err)
    81  	}
    82  	log.Println("get", agID)
    83  
    84  	err = accessGroupAPI.Delete(agID.ID, false)
    85  	if err != nil {
    86  		log.Fatal(err)
    87  	}
    88  
    89  	accGroups, err1 := accessGroupAPI.List(myAccount.GUID, user)
    90  	if err1 != nil {
    91  		log.Fatal(err1)
    92  	}
    93  	log.Println("ListAccGroups=> ", accGroups)
    94  
    95  }