github.com/cloudfoundry-community/cloudfoundry-cli@v6.44.1-0.20240130060226-cda5ed8e89a5+incompatible/api/cloudcontroller/ccv3/service_credential_binding.go (about) 1 package ccv3 2 3 import ( 4 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/internal" 5 "code.cloudfoundry.org/cli/resources" 6 "code.cloudfoundry.org/cli/util/lookuptable" 7 ) 8 9 func (client *Client) CreateServiceCredentialBinding(binding resources.ServiceCredentialBinding) (JobURL, Warnings, error) { 10 return client.MakeRequest(RequestParams{ 11 RequestName: internal.PostServiceCredentialBindingRequest, 12 RequestBody: binding, 13 }) 14 } 15 16 // CreateUserProvidedServiceCredentialBinding creates the binding for a user-provided service instance 17 // Does not return joburl 18 func (client *Client) CreateUserProvidedServiceCredentialBinding(binding resources.ServiceCredentialBinding) (resources.ServiceCredentialBinding, Warnings, error) { 19 var responseBody resources.ServiceCredentialBinding 20 _, warnings, err := client.MakeRequest(RequestParams{ 21 RequestName: internal.PostServiceCredentialBindingRequest, 22 RequestBody: binding, 23 ResponseBody: &responseBody, 24 }) 25 return responseBody, warnings, err 26 } 27 28 // GetServiceCredentialBindings queries the CC API with the specified query 29 // and returns a slice of ServiceCredentialBindings. Additionally if Apps are 30 // included in the API response (by having `include=app` in the query) then the 31 // App names will be added into each ServiceCredentialBinding for app bindings 32 func (client *Client) GetServiceCredentialBindings(query ...Query) ([]resources.ServiceCredentialBinding, Warnings, error) { 33 var result []resources.ServiceCredentialBinding 34 35 included, warnings, err := client.MakeListRequest(RequestParams{ 36 RequestName: internal.GetServiceCredentialBindingsRequest, 37 Query: query, 38 ResponseBody: resources.ServiceCredentialBinding{}, 39 AppendToList: func(item interface{}) error { 40 result = append(result, item.(resources.ServiceCredentialBinding)) 41 return nil 42 }, 43 }) 44 45 if len(included.Apps) > 0 { 46 appLookup := lookuptable.AppFromGUID(included.Apps) 47 48 for i := range result { 49 result[i].AppName = appLookup[result[i].AppGUID].Name 50 result[i].AppSpaceGUID = appLookup[result[i].AppGUID].SpaceGUID 51 } 52 } 53 54 return result, warnings, err 55 } 56 57 func (client *Client) DeleteServiceCredentialBinding(guid string) (JobURL, Warnings, error) { 58 return client.MakeRequest(RequestParams{ 59 RequestName: internal.DeleteServiceCredentialBindingRequest, 60 URIParams: internal.Params{"service_credential_binding_guid": guid}, 61 }) 62 } 63 64 func (client *Client) GetServiceCredentialBindingDetails(guid string) (details resources.ServiceCredentialBindingDetails, warnings Warnings, err error) { 65 _, warnings, err = client.MakeRequest(RequestParams{ 66 RequestName: internal.GetServiceCredentialBindingDetailsRequest, 67 URIParams: internal.Params{"service_credential_binding_guid": guid}, 68 ResponseBody: &details, 69 }) 70 71 return 72 }