github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/apigw/v2/group/Create.go (about) 1 package group 2 3 import ( 4 "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 GatewayID string `json:"-"` 11 Name string `json:"name" required:"true"` 12 Description string `json:"remark,omitempty"` 13 } 14 15 func Create(client *golangsdk.ServiceClient, opts CreateOpts) (*GroupResp, error) { 16 b, err := build.RequestBody(opts, "") 17 if err != nil { 18 return nil, err 19 } 20 21 raw, err := client.Post(client.ServiceURL("apigw", "instances", opts.GatewayID, "api-groups"), b, 22 nil, &golangsdk.RequestOpts{ 23 OkCodes: []int{201}, 24 }) 25 if err != nil { 26 return nil, err 27 } 28 29 var res GroupResp 30 31 err = extract.Into(raw.Body, &res) 32 return &res, err 33 } 34 35 type GroupResp struct { 36 ID string `json:"id"` 37 Name string `json:"name"` 38 Status int `json:"status"` 39 SlDomain string `json:"sl_domain"` 40 RegisterTime string `json:"register_time"` 41 UpdateTime string `json:"update_time"` 42 OnSellStatus int `json:"on_sell_status"` 43 UrlDomains []UrlDomains `json:"url_domains"` 44 SlDomains []string `json:"sl_domains"` 45 Description string `json:"remark"` 46 } 47 48 type UrlDomains struct { 49 DomainId string `json:"id"` 50 DomainName string `json:"name"` 51 CnameStatus int `json:"cname_status"` 52 SslID string `json:"ssl_id"` 53 SslName string `json:"ssl_name"` 54 MinSslVersion string `json:"min_ssl_version"` 55 VfClientCertEnabled bool `json:"verified_client_certificate_enabled"` 56 HasTrustedCa bool `json:"is_has_trusted_root_ca"` 57 }