github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/lts/v2/groups/CreateLogGroup.go (about) 1 package groups 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 // CreateOpts is a struct that contains all the parameters. 10 type CreateOpts struct { 11 // Name of the log group to be created. 12 // Minimum length: 1 character 13 // Maximum length: 64 characters 14 // Enumerated value: 15 // lts-group-01nh 16 LogGroupName string `json:"log_group_name" required:"true"` 17 // Log retention duration, in days (fixed to 7 days). 18 TTLInDays int `json:"ttl_in_days"` 19 } 20 21 func CreateLogGroup(client *golangsdk.ServiceClient, opts CreateOpts) (string, error) { 22 b, err := build.RequestBody(opts, "") 23 if err != nil { 24 return "", err 25 } 26 27 // POST /v2/{project_id}/groups 28 raw, err := client.Post(client.ServiceURL("groups"), b, nil, nil) 29 if err != nil { 30 return "", err 31 } 32 33 var res struct { 34 ID string `json:"log_group_id"` 35 } 36 err = extract.Into(raw.Body, &res) 37 return res.ID, err 38 }