github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/evs/v1/volumetypes/create.go (about) 1 package volumetypes 2 3 import ( 4 "github.com/opentelekomcloud/gophertelekomcloud" 5 "github.com/opentelekomcloud/gophertelekomcloud/internal/extract" 6 ) 7 8 type CreateOpts struct { 9 // See VolumeType. 10 ExtraSpecs map[string]interface{} `json:"extra_specs,omitempty"` 11 // See VolumeType. 12 Name string `json:"name,omitempty"` 13 } 14 15 func Create(client *golangsdk.ServiceClient, opts CreateOpts) (*VolumeType, error) { 16 b, err := golangsdk.BuildRequestBody(opts, "volume_type") 17 if err != nil { 18 return nil, err 19 } 20 21 raw, err := client.Post(client.ServiceURL("types"), b, nil, &golangsdk.RequestOpts{ 22 OkCodes: []int{200, 201}, 23 }) 24 if err != nil { 25 return nil, err 26 } 27 28 var res VolumeType 29 err = extract.IntoStructPtr(raw.Body, &res, "volume_type") 30 return &res, err 31 }