github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/examples/mccp/service/main.go (about) 1 package main 2 3 import ( 4 "flag" 5 "log" 6 "os" 7 8 "github.com/IBM-Cloud/bluemix-go/api/mccp/mccpv2" 9 "github.com/IBM-Cloud/bluemix-go/helpers" 10 "github.com/IBM-Cloud/bluemix-go/session" 11 "github.com/IBM-Cloud/bluemix-go/trace" 12 ) 13 14 func main() { 15 var org string 16 flag.StringVar(&org, "org", "", "Bluemix Organization") 17 18 var space string 19 flag.StringVar(&space, "space", "", "Bluemix Space") 20 21 var skipDeletion bool 22 flag.BoolVar(&skipDeletion, "no-delete", true, "If provided will delete the resources created") 23 24 flag.Parse() 25 26 if org == "" || space == "" { 27 flag.Usage() 28 os.Exit(1) 29 } 30 31 trace.Logger = trace.NewLogger("true") 32 sess, err := session.New() 33 if err != nil { 34 log.Fatal(err) 35 } 36 37 client, err := mccpv2.New(sess) 38 39 if err != nil { 40 log.Fatal(err) 41 } 42 43 region := sess.Config.Region 44 45 orgAPI := client.Organizations() 46 myorg, err := orgAPI.FindByName(org, region) 47 48 if err != nil { 49 log.Fatal(err) 50 } 51 52 spaceAPI := client.Spaces() 53 myspace, err := spaceAPI.FindByNameInOrg(myorg.GUID, space, region) 54 55 if err != nil { 56 log.Fatal(err) 57 } 58 59 serviceOfferingAPI := client.ServiceOfferings() 60 myserviceOff, err := serviceOfferingAPI.FindByLabel("cloud-object-storage") 61 if err != nil { 62 log.Fatal(err) 63 } 64 servicePlanAPI := client.ServicePlans() 65 plan, err := servicePlanAPI.FindPlanInServiceOffering(myserviceOff.GUID, "Lite") 66 if err != nil { 67 log.Fatal(err) 68 } 69 70 serviceInstanceAPI := client.ServiceInstances() 71 myService, err := serviceInstanceAPI.Create(mccpv2.ServiceInstanceCreateRequest{ 72 Name: "myservice", 73 PlanGUID: plan.GUID, 74 SpaceGUID: myspace.GUID, 75 }) 76 if err != nil { 77 log.Fatal(err) 78 } 79 80 updatedInstance, err := serviceInstanceAPI.Update(myService.Metadata.GUID, mccpv2.ServiceInstanceUpdateRequest{ 81 Name: helpers.String("New instance"), 82 }) 83 if err != nil { 84 log.Fatal(err) 85 } 86 87 serviceKeys := client.ServiceKeys() 88 mykeys, err := serviceKeys.Create(updatedInstance.Metadata.GUID, "mykey", nil) 89 if err != nil { 90 log.Fatal(err) 91 } 92 93 myRetrievedKeys, err := serviceKeys.FindByName(myService.Metadata.GUID, "mykey") 94 if err != nil { 95 log.Fatal(err) 96 } 97 98 log.Println(myorg.GUID, myspace.GUID, plan.GUID, myService.Metadata.GUID, mykeys.Metadata.GUID, myRetrievedKeys) 99 100 if !skipDeletion { 101 err = serviceKeys.Delete(myRetrievedKeys.GUID) 102 if err != nil { 103 log.Fatal(err) 104 } 105 106 err = serviceInstanceAPI.Delete(myService.Metadata.GUID) 107 if err != nil { 108 log.Fatal(err) 109 } 110 111 } 112 113 }