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  }