github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/openstack/containerinfra/v1/quotas/requests.go (about) 1 package quotas 2 3 import ( 4 "context" 5 6 "github.com/vnpaycloud-console/gophercloud/v2" 7 ) 8 9 // CreateOptsBuilder Builder. 10 type CreateOptsBuilder interface { 11 ToQuotaCreateMap() (map[string]any, error) 12 } 13 14 // CreateOpts params 15 type CreateOpts struct { 16 ProjectID string `json:"project_id"` 17 Resource string `json:"resource"` 18 HardLimit int `json:"hard_limit"` 19 } 20 21 // ToQuotaCreateMap constructs a request body from CreateOpts. 22 func (opts CreateOpts) ToQuotaCreateMap() (map[string]any, error) { 23 return gophercloud.BuildRequestBody(opts, "") 24 } 25 26 // Create requests the creation of a new quota. 27 func Create(ctx context.Context, client *gophercloud.ServiceClient, opts CreateOptsBuilder) (r CreateResult) { 28 b, err := opts.ToQuotaCreateMap() 29 if err != nil { 30 r.Err = err 31 return 32 } 33 resp, err := client.Post(ctx, createURL(client), b, &r.Body, &gophercloud.RequestOpts{ 34 OkCodes: []int{201}, 35 }) 36 _, r.Header, r.Err = gophercloud.ParseResponse(resp, err) 37 return 38 }