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

     1  package ccv3
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/internal"
     5  	"code.cloudfoundry.org/cli/resources"
     6  )
     7  
     8  func (client Client) ApplySpaceQuota(quotaGUID string, spaceGUID string) (resources.RelationshipList, Warnings, error) {
     9  	var responseBody resources.RelationshipList
    10  
    11  	_, warnings, err := client.MakeRequest(RequestParams{
    12  		RequestName:  internal.PostSpaceQuotaRelationshipsRequest,
    13  		URIParams:    internal.Params{"quota_guid": quotaGUID},
    14  		RequestBody:  resources.RelationshipList{GUIDs: []string{spaceGUID}},
    15  		ResponseBody: &responseBody,
    16  	})
    17  
    18  	return responseBody, warnings, err
    19  }
    20  
    21  func (client Client) CreateSpaceQuota(spaceQuota resources.SpaceQuota) (resources.SpaceQuota, Warnings, error) {
    22  	var responseBody resources.SpaceQuota
    23  
    24  	_, warnings, err := client.MakeRequest(RequestParams{
    25  		RequestName:  internal.PostSpaceQuotaRequest,
    26  		RequestBody:  spaceQuota,
    27  		ResponseBody: &responseBody,
    28  	})
    29  
    30  	return responseBody, warnings, err
    31  }
    32  
    33  func (client Client) DeleteSpaceQuota(spaceQuotaGUID string) (JobURL, Warnings, error) {
    34  	jobURL, warnings, err := client.MakeRequest(RequestParams{
    35  		RequestName: internal.DeleteSpaceQuotaRequest,
    36  		URIParams:   internal.Params{"quota_guid": spaceQuotaGUID},
    37  	})
    38  
    39  	return jobURL, warnings, err
    40  }
    41  
    42  func (client Client) GetSpaceQuota(spaceQuotaGUID string) (resources.SpaceQuota, Warnings, error) {
    43  	var responseBody resources.SpaceQuota
    44  
    45  	_, warnings, err := client.MakeRequest(RequestParams{
    46  		RequestName:  internal.GetSpaceQuotaRequest,
    47  		URIParams:    internal.Params{"quota_guid": spaceQuotaGUID},
    48  		ResponseBody: &responseBody,
    49  	})
    50  
    51  	return responseBody, warnings, err
    52  }
    53  
    54  func (client *Client) GetSpaceQuotas(query ...Query) ([]resources.SpaceQuota, Warnings, error) {
    55  	var spaceQuotas []resources.SpaceQuota
    56  
    57  	_, warnings, err := client.MakeListRequest(RequestParams{
    58  		RequestName:  internal.GetSpaceQuotasRequest,
    59  		Query:        query,
    60  		ResponseBody: resources.SpaceQuota{},
    61  		AppendToList: func(item interface{}) error {
    62  			spaceQuotas = append(spaceQuotas, item.(resources.SpaceQuota))
    63  			return nil
    64  		},
    65  	})
    66  
    67  	return spaceQuotas, warnings, err
    68  }
    69  
    70  func (client *Client) UnsetSpaceQuota(spaceQuotaGUID, spaceGUID string) (Warnings, error) {
    71  	_, warnings, err := client.MakeRequest(RequestParams{
    72  		RequestName: internal.DeleteSpaceQuotaFromSpaceRequest,
    73  		URIParams:   internal.Params{"quota_guid": spaceQuotaGUID, "space_guid": spaceGUID},
    74  	})
    75  
    76  	return warnings, err
    77  }
    78  
    79  func (client *Client) UpdateSpaceQuota(spaceQuota resources.SpaceQuota) (resources.SpaceQuota, Warnings, error) {
    80  	spaceQuotaGUID := spaceQuota.GUID
    81  	spaceQuota.GUID = ""
    82  
    83  	var responseBody resources.SpaceQuota
    84  
    85  	_, warnings, err := client.MakeRequest(RequestParams{
    86  		RequestName:  internal.PatchSpaceQuotaRequest,
    87  		URIParams:    internal.Params{"quota_guid": spaceQuotaGUID},
    88  		RequestBody:  spaceQuota,
    89  		ResponseBody: &responseBody,
    90  	})
    91  
    92  	return responseBody, warnings, err
    93  }