github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/lts/v2/streams/CreateLogStream.go (about)

     1  package streams
     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  	// ID of a created log group
    11  	GroupId string `json:"-" required:"true"`
    12  	// Name of the log stream to be created.
    13  	// Minimum length: 1 character
    14  	// Maximum length: 64 characters
    15  	// Enumerated value:
    16  	// lts-stream-13ci
    17  	LogStreamName string `json:"log_stream_name" required:"true"`
    18  }
    19  
    20  func CreateLogStream(client *golangsdk.ServiceClient, opts CreateOpts) (string, error) {
    21  	b, err := build.RequestBody(opts, "")
    22  	if err != nil {
    23  		return "", err
    24  	}
    25  
    26  	// POST /v2/{project_id}/groups/{log_group_id}/streams
    27  	raw, err := client.Post(client.ServiceURL("groups", opts.GroupId, "streams"), b, nil, nil)
    28  	if err != nil {
    29  		return "", err
    30  	}
    31  
    32  	var res struct {
    33  		ID string `json:"log_stream_id"`
    34  	}
    35  	err = extract.Into(raw.Body, &res)
    36  	return res.ID, err
    37  }