github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/autoscaling/v1/activitylogs/requests.go (about)

     1  package activitylogs
     2  
     3  import (
     4  	"github.com/chnsz/golangsdk"
     5  	"github.com/chnsz/golangsdk/pagination"
     6  )
     7  
     8  // ListOpts is the structure that used to query the activity logs of scaling group.
     9  type ListOpts struct {
    10  	// Starting time of query.
    11  	StartTime string `q:"start_time"`
    12  	// Ending time of query.
    13  	EndTime string `q:"end_time"`
    14  	// Number of records displayed per page.
    15  	// The value must be a positive integer.
    16  	Limit int `q:"limit"`
    17  	// Start number value. The value must be a positive integer.
    18  	StartNumber int `q:"start_number"`
    19  }
    20  
    21  // List is a method used to query the activity logs of scaling group with given parameters.
    22  func List(client *golangsdk.ServiceClient, groupID string, opts ListOpts) ([]ActivityLog, error) {
    23  	url := listURL(client, groupID)
    24  	query, err := golangsdk.BuildQueryString(opts)
    25  	if err != nil {
    26  		return nil, err
    27  	}
    28  	url += query.String()
    29  
    30  	pages, err := pagination.NewPager(client, url, func(r pagination.PageResult) pagination.Page {
    31  		p := ActivityLogPage{pagination.OffsetPageBase{PageResult: r}}
    32  		return p
    33  	}).AllPages()
    34  
    35  	if err != nil {
    36  		return nil, err
    37  	}
    38  	return ExtractActivityLogs(pages)
    39  }