github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/dcaas/v2/direct-connect/Create.go (about)

     1  package direct_connect
     2  
     3  import (
     4  	golangsdk "github.com/opentelekomcloud/gophertelekomcloud"
     5  	"github.com/opentelekomcloud/gophertelekomcloud/internal/build"
     6  	"github.com/opentelekomcloud/gophertelekomcloud/internal/extract"
     7  )
     8  
     9  type CreateOpts struct {
    10  	Name           string `json:"name,omitempty"`
    11  	Description    string `json:"description,omitempty"`
    12  	PortType       string `json:"port_type" required:"true"`
    13  	Bandwidth      int    `json:"bandwidth" required:"true"`
    14  	Location       string `json:"location" required:"true"`
    15  	PeerLocation   string `json:"peer_location,omitempty"`
    16  	DeviceID       string `json:"device_id,omitempty"`
    17  	InterfaceName  string `json:"interface_name,omitempty"`
    18  	RedundantID    string `json:"redundant_id,omitempty"`
    19  	Provider       string `json:"provider" required:"true"`
    20  	ProviderStatus string `json:"provider_status,omitempty"`
    21  	Type           string `json:"type,omitempty"`
    22  	HostingID      string `json:"hosting_id,omitempty"`
    23  	ChargeMode     string `json:"charge_mode,omitempty"`
    24  	OrderID        string `json:"order_id,omitempty"`
    25  	ProductID      string `json:"product_id,omitempty"`
    26  	Status         string `json:"status,omitempty"`
    27  	AdminStateUp   bool   `json:"admin_state_up,omitempty"`
    28  }
    29  
    30  func Create(c *golangsdk.ServiceClient, opts CreateOpts) (*DirectConnect, error) {
    31  	b, err := build.RequestBody(opts, "direct_connect")
    32  	if err != nil {
    33  		return nil, err
    34  	}
    35  	raw, err := c.Post(c.ServiceURL("dcaas", "direct-connects"), b, nil, &golangsdk.RequestOpts{
    36  		OkCodes: []int{201},
    37  	})
    38  	if err != nil {
    39  		return nil, err
    40  	}
    41  
    42  	var res DirectConnect
    43  	err = extract.IntoStructPtr(raw.Body, &res, "direct_connect")
    44  	return &res, err
    45  }