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

     1  package virtual_interface
     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  	TenantID          string `json:"tenant_id,omitempty"`
    11  	Name              string `json:"name,omitempty"`
    12  	Description       string `json:"description,omitempty"`
    13  	DirectConnectID   string `json:"direct_connect_id"  required:"true"`
    14  	VgwID             string `json:"vgw_id" required:"true"`
    15  	Type              string `json:"type" required:"true"`
    16  	ServiceType       string `json:"service_type" required:"true"`
    17  	VLAN              int    `json:"vlan" required:"true"`
    18  	Bandwidth         int    `json:"bandwidth" required:"true"`
    19  	LocalGatewayV4IP  string `json:"local_gateway_v4_ip" required:"true"`
    20  	RemoteGatewayV4IP string `json:"remote_gateway_v4_ip" required:"true"`
    21  	RouteMode         string `json:"route_mode" required:"true"`
    22  	BGPASN            int    `json:"bgp_asn,omitempty"`
    23  	BGPMD5            string `json:"bgp_md5,omitempty"`
    24  	RemoteEPGroupID   string `json:"remote_ep_group_id" required:"true"`
    25  	AdminStateUp      bool   `json:"admin_state_up,omitempty"`
    26  }
    27  
    28  func Create(c *golangsdk.ServiceClient, opts CreateOpts) (*VirtualInterface, error) {
    29  	b, err := build.RequestBody(opts, "virtual_interface")
    30  	if err != nil {
    31  		return nil, err
    32  	}
    33  	raw, err := c.Post(c.ServiceURL("dcaas", "virtual-interfaces"), b, nil, &golangsdk.RequestOpts{
    34  		OkCodes: []int{201},
    35  	})
    36  	if err != nil {
    37  		return nil, err
    38  	}
    39  
    40  	var res VirtualInterface
    41  	err = extract.IntoStructPtr(raw.Body, &res, "virtual_interface")
    42  	return &res, err
    43  }