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

     1  package main
     2  
     3  import (
     4  	"flag"
     5  	"fmt"
     6  	"log"
     7  	"os"
     8  
     9  	"github.com/IBM-Cloud/bluemix-go/api/iamuum/iamuumv2"
    10  	"github.com/IBM-Cloud/bluemix-go/session"
    11  	"github.com/IBM-Cloud/bluemix-go/trace"
    12  )
    13  
    14  func main() {
    15  	var agID string
    16  	flag.StringVar(&agID, "agID", "", "Access group ID")
    17  
    18  	flag.Parse()
    19  	if agID == "" {
    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  	iamuumClient, err := iamuumv2.New(sess)
    31  	if err != nil {
    32  		log.Fatal(err)
    33  	}
    34  
    35  	log.Println(agID)
    36  
    37  	drAPI := iamuumClient.DynamicRule()
    38  
    39  	rulereq := iamuumv2.CreateRuleRequest{
    40  		Name:       "test rule name 12",
    41  		Expiration: 24,
    42  		RealmName:  "test-idp.com",
    43  		Conditions: []iamuumv2.Condition{
    44  			{
    45  				Claim:    "blueGroups",
    46  				Operator: "CONTAINS",
    47  				Value:    "\"test-bluegroup-saml\"",
    48  			},
    49  		},
    50  	}
    51  
    52  	resp, err := drAPI.Create(agID, rulereq)
    53  	if err != nil {
    54  		log.Fatal(err)
    55  	}
    56  	log.Println("create resp=", resp)
    57  
    58  	listres, err := drAPI.List(agID)
    59  	if err != nil {
    60  		log.Fatal(err)
    61  	}
    62  
    63  	fmt.Println("\nlistres=", listres)
    64  
    65  	getres, etag, err := drAPI.Get(agID, listres[0].RuleID)
    66  	if err != nil {
    67  		log.Fatal(err)
    68  	}
    69  
    70  	fmt.Println("\ngetres=", getres)
    71  
    72  	upres, err := drAPI.Replace(agID, listres[0].RuleID, rulereq, etag)
    73  	if err != nil {
    74  		log.Fatal(err)
    75  	}
    76  
    77  	fmt.Println("\nupres=", upres)
    78  
    79  	err = drAPI.Delete(agID, listres[0].RuleID)
    80  	if err != nil {
    81  		log.Fatal(err)
    82  	}
    83  
    84  	fmt.Println("\nerr=", err)
    85  }