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 }