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

     1  package transfers
     2  
     3  import (
     4  	"github.com/opentelekomcloud/gophertelekomcloud"
     5  	"github.com/opentelekomcloud/gophertelekomcloud/internal/extract"
     6  )
     7  
     8  type ListTransfersOpts struct {
     9  	// Log transfer type. You can transfer logs to OBS, DIS, and DMS.
    10  	//
    11  	// Enumerated values:
    12  	//
    13  	// OBS
    14  	// DIS
    15  	// DMS
    16  	LogTransferType string `json:"log_transfer_type,omitempty"`
    17  	// Log group name.
    18  	//
    19  	// Minimum length: 1 character
    20  	//
    21  	// Maximum length: 64 characters
    22  	LogGroupName string `json:"log_group_name,omitempty"`
    23  	// Log stream name.
    24  	//
    25  	// Minimum length: 1 character
    26  	//
    27  	// Maximum length: 64 characters
    28  	LogStreamName string `json:"log_stream_name,omitempty"`
    29  	// Query cursor. Set the value to 0 in the first query. In subsequent queries, obtain the value from the response to the last request.
    30  	//
    31  	// Minimum value: 0
    32  	//
    33  	// Maximum value: 1024
    34  	Offset int32 `json:"offset,omitempty"`
    35  	//
    36  	// Number of records on each page.
    37  	//
    38  	// Minimum value: 0
    39  	//
    40  	// Maximum value: 100
    41  	Limit int32 `json:"limit,omitempty"`
    42  }
    43  
    44  func ListTransfers(client *golangsdk.ServiceClient, opts ListTransfersOpts) ([]Transfer, error) {
    45  	url, err := golangsdk.NewURLBuilder().WithEndpoints("transfers").WithQueryParams(&opts).Build()
    46  	if err != nil {
    47  		return nil, err
    48  	}
    49  
    50  	// GET /v2/{project_id}/transfers
    51  	raw, err := client.Get(client.ServiceURL(url.String()), nil, &golangsdk.RequestOpts{
    52  		MoreHeaders: map[string]string{"Content-Type": "application/json"},
    53  	})
    54  	if err != nil {
    55  		return nil, err
    56  	}
    57  
    58  	var res []Transfer
    59  	err = extract.IntoSlicePtr(raw.Body, &res, "log_transfers")
    60  	return res, err
    61  }
    62  
    63  type Transfer struct {
    64  	// Log group ID.
    65  	//
    66  	// Minimum length: 36 characters
    67  	//
    68  	// Maximum length: 36 characters
    69  	LogGroupId string `json:"log_group_id"`
    70  	//
    71  	// Log group name.
    72  	//
    73  	// Minimum length: 1 character
    74  	//
    75  	// Maximum length: 64 characters
    76  	LogGroupName string `json:"log_group_name"`
    77  	// Log stream list.
    78  	LogStreams []LogStreams `json:"log_streams"`
    79  	//
    80  	// Log transfer task ID.
    81  	//
    82  	// Minimum length: 36 characters
    83  	//
    84  	// Maximum length: 36 characters
    85  	LogTransferId string `json:"log_transfer_id"`
    86  	// Log transfer information.
    87  	LogTransferInfo LogTransferInfo `json:"log_transfer_info"`
    88  }