github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/examples/functions/main.go (about) 1 package main 2 3 import ( 4 "flag" 5 "log" 6 "os" 7 8 "github.com/IBM-Cloud/bluemix-go" 9 "github.com/IBM-Cloud/bluemix-go/api/functions" 10 "github.com/IBM-Cloud/bluemix-go/session" 11 "github.com/IBM-Cloud/bluemix-go/trace" 12 ) 13 14 func main() { 15 16 c := new(bluemix.Config) 17 var namespaceName string 18 flag.StringVar(&namespaceName, "namespace", "", "Namespace ID") 19 var resourceGroupID string 20 flag.StringVar(&resourceGroupID, "resourceGroupID", "", "resourceGroupID for namespace") 21 22 flag.Parse() 23 24 if namespaceName == "" || resourceGroupID == "" { 25 flag.Usage() 26 os.Exit(1) 27 } 28 29 trace.Logger = trace.NewLogger("true") 30 sess, err := session.New(c) 31 if err != nil { 32 log.Fatal(err) 33 } 34 35 nsCFClient, err := functions.NewCF(sess) 36 if err != nil { 37 log.Fatal(err) 38 } 39 nsCFAPI := nsCFClient.Namespaces() 40 41 log.Println(">>>>>>>>> List CF namespaces") 42 cfList, err := nsCFAPI.GetCloudFoundaryNamespaces() 43 if err != nil { 44 log.Fatal(err) 45 } 46 47 log.Println(cfList) 48 49 nsClient, err := functions.New(sess) 50 if err != nil { 51 log.Fatal(err) 52 } 53 nsAPI := nsClient.Namespaces() 54 55 log.Println(">>>>>>>>> Namespace create") 56 resourcePlanID := "functions-base-plan" 57 namespaceOpts := functions.CreateNamespaceOptions{ 58 Name: &namespaceName, 59 ResourceGroupID: &resourceGroupID, 60 ResourcePlanID: &resourcePlanID, 61 } 62 namespaceResponse, err := nsAPI.CreateNamespace(namespaceOpts) 63 if err != nil { 64 log.Fatal(err) 65 } 66 67 log.Println(">>>>>>>>> List namespaces") 68 _, err = nsAPI.GetNamespaces() 69 if err != nil { 70 log.Fatal(err) 71 } 72 73 log.Println(">>>>>>>>> Get namespace by ID") 74 getNamespaceOpts := functions.GetNamespaceOptions{ 75 ID: namespaceResponse.ID, 76 } 77 _, err = nsAPI.GetNamespace(getNamespaceOpts) 78 if err != nil { 79 log.Fatal(err) 80 } 81 82 log.Println(">>>>>>>>> Update namespace by ID") 83 updateName := "namespace-update-01" 84 updateNamespaceOpts := functions.UpdateNamespaceOptions{ 85 ID: namespaceResponse.ID, 86 Name: &updateName, 87 } 88 _, err = nsAPI.UpdateNamespace(updateNamespaceOpts) 89 if err != nil { 90 log.Fatal(err) 91 } 92 93 log.Println(">>>>>>>>> Delete Namespace") 94 _, err = nsAPI.DeleteNamespace(*namespaceResponse.ID) 95 if err != nil { 96 log.Fatal(err) 97 } 98 99 }