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  }