github.com/LukasHeimann/cloudfoundrycli@v7.1.0+incompatible/api/cloudcontroller/ccv3/metadata.go (about)

     1  package ccv3
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/internal"
     7  	"code.cloudfoundry.org/cli/resources"
     8  )
     9  
    10  func (client *Client) UpdateResourceMetadata(resource string, resourceGUID string, metadata resources.Metadata) (JobURL, Warnings, error) {
    11  	var params RequestParams
    12  	requestMetadata := resources.ResourceMetadata{Metadata: &metadata}
    13  
    14  	switch resource {
    15  	case "app":
    16  		params = RequestParams{
    17  			RequestName: internal.PatchApplicationRequest,
    18  			RequestBody: requestMetadata,
    19  			URIParams:   internal.Params{"app_guid": resourceGUID},
    20  		}
    21  	case "buildpack":
    22  		params = RequestParams{
    23  			RequestName: internal.PatchBuildpackRequest,
    24  			RequestBody: requestMetadata,
    25  			URIParams:   internal.Params{"buildpack_guid": resourceGUID},
    26  		}
    27  	case "domain":
    28  		params = RequestParams{
    29  			RequestName: internal.PatchDomainRequest,
    30  			RequestBody: requestMetadata,
    31  			URIParams:   internal.Params{"domain_guid": resourceGUID},
    32  		}
    33  	case "org":
    34  		params = RequestParams{
    35  			RequestName: internal.PatchOrganizationRequest,
    36  			RequestBody: requestMetadata,
    37  			URIParams:   internal.Params{"organization_guid": resourceGUID},
    38  		}
    39  	case "route":
    40  		params = RequestParams{
    41  			RequestName: internal.PatchRouteRequest,
    42  			RequestBody: requestMetadata,
    43  			URIParams:   internal.Params{"route_guid": resourceGUID},
    44  		}
    45  	case "service-broker":
    46  		params = RequestParams{
    47  			RequestName: internal.PatchServiceBrokerRequest,
    48  			URIParams:   internal.Params{"service_broker_guid": resourceGUID},
    49  			RequestBody: resources.ResourceMetadata{Metadata: &metadata},
    50  		}
    51  	case "service-offering":
    52  		params = RequestParams{
    53  			RequestName: internal.PatchServiceOfferingRequest,
    54  			RequestBody: requestMetadata,
    55  			URIParams:   internal.Params{"service_offering_guid": resourceGUID},
    56  		}
    57  	case "service-plan":
    58  		params = RequestParams{
    59  			RequestName: internal.PatchServicePlanRequest,
    60  			RequestBody: requestMetadata,
    61  			URIParams:   internal.Params{"service_plan_guid": resourceGUID},
    62  		}
    63  	case "space":
    64  		params = RequestParams{
    65  			RequestName: internal.PatchSpaceRequest,
    66  			RequestBody: requestMetadata,
    67  			URIParams:   internal.Params{"space_guid": resourceGUID},
    68  		}
    69  	case "stack":
    70  		params = RequestParams{
    71  			RequestName: internal.PatchStackRequest,
    72  			RequestBody: requestMetadata,
    73  			URIParams:   internal.Params{"stack_guid": resourceGUID},
    74  		}
    75  	default:
    76  		return "", nil, fmt.Errorf("unknown resource type (%s) requested", resource)
    77  	}
    78  
    79  	return client.MakeRequest(params)
    80  }