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 }