github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/api/functions/functions.go (about) 1 package functions 2 3 import ( 4 "fmt" 5 6 "github.com/IBM-Cloud/bluemix-go/client" 7 ) 8 9 // const .. 10 const ( 11 NamespaceTypeCFBased = 1 12 NamespaceTypeIamMigrated = 2 13 NamespaceTypeIamBased = 3 14 15 DefaultServiceURL = "https://gateway.watsonplatform.net/servicebroker/API/v1" 16 DefaultServiceName = "ibm_cloud_functions_namespace_API" 17 ) 18 19 // functions 20 type functions struct { 21 client *client.Client 22 } 23 24 // Functions .. 25 type Functions interface { 26 GetCloudFoundaryNamespaces() (NamespaceResponseList, error) 27 DeleteNamespace(namespaceID string) (NamespaceResponse, error) 28 CreateNamespace(CreateNamespaceOptions) (NamespaceResponse, error) 29 GetNamespaces() (NamespaceResponseList, error) 30 GetNamespace(payload GetNamespaceOptions) (NamespaceResponse, error) 31 UpdateNamespace(payload UpdateNamespaceOptions) (NamespaceResponse, error) 32 } 33 34 func newFunctionsAPI(c *client.Client) Functions { 35 return &functions{ 36 client: c, 37 } 38 } 39 40 func (r *functions) GetCloudFoundaryNamespaces() (NamespaceResponseList, error) { 41 var successV NamespaceResponseList 42 formData := make(map[string]string) 43 formData["accessToken"] = r.client.Config.UAAAccessToken[7:len(r.client.Config.UAAAccessToken)] 44 formData["refreshToken"] = r.client.Config.UAARefreshToken 45 _, err := r.client.PostWithForm("/bluemix/v2/authenticate", formData, &successV) 46 return successV, err 47 } 48 49 func (r *functions) GetNamespaces() (NamespaceResponseList, error) { 50 var successV NamespaceResponseList 51 _, err := r.client.Get("/api/v1/namespaces", &successV) 52 return successV, err 53 } 54 55 func (r *functions) CreateNamespace(payload CreateNamespaceOptions) (NamespaceResponse, error) { 56 var successV NamespaceResponse 57 _, err := r.client.Post("/api/v1/namespaces", payload, &successV) 58 return successV, err 59 } 60 61 func (r *functions) GetNamespace(payload GetNamespaceOptions) (NamespaceResponse, error) { 62 var successV NamespaceResponse 63 _, err := r.client.Get(fmt.Sprintf("/api/v1/namespaces/%s", *payload.ID), &successV) 64 return successV, err 65 } 66 67 func (r *functions) DeleteNamespace(namespaceID string) (NamespaceResponse, error) { 68 var successV NamespaceResponse 69 _, err := r.client.Delete(fmt.Sprintf("/api/v1/namespaces/%s", namespaceID)) 70 return successV, err 71 } 72 73 func (r *functions) UpdateNamespace(payload UpdateNamespaceOptions) (NamespaceResponse, error) { 74 var successV NamespaceResponse 75 _, err := r.client.Patch(fmt.Sprintf("/api/v1/namespaces/%s", *payload.ID), payload, &successV) 76 return successV, err 77 }