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  }