github.com/twilio/twilio-go@v1.20.1/rest/taskrouter/v1/workspaces_workers_statistics.go (about) 1 /* 2 * This code was generated by 3 * ___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __ 4 * | | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/ 5 * | |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \ 6 * 7 * Twilio - Taskrouter 8 * This is the public Twilio REST API. 9 * 10 * NOTE: This class is auto generated by OpenAPI Generator. 11 * https://openapi-generator.tech 12 * Do not edit the class manually. 13 */ 14 15 package openapi 16 17 import ( 18 "encoding/json" 19 "fmt" 20 "net/url" 21 "strings" 22 "time" 23 ) 24 25 // Optional parameters for the method 'FetchWorkerInstanceStatistics' 26 type FetchWorkerInstanceStatisticsParams struct { 27 // Only calculate statistics since this many minutes in the past. The default 15 minutes. This is helpful for displaying statistics for the last 15 minutes, 240 minutes (4 hours), and 480 minutes (8 hours) to see trends. 28 Minutes *int `json:"Minutes,omitempty"` 29 // Only calculate statistics from this date and time and later, specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. 30 StartDate *time.Time `json:"StartDate,omitempty"` 31 // Only include usage that occurred on or before this date, specified in GMT as an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time. 32 EndDate *time.Time `json:"EndDate,omitempty"` 33 // Only calculate statistics on this TaskChannel. Can be the TaskChannel's SID or its `unique_name`, such as `voice`, `sms`, or `default`. 34 TaskChannel *string `json:"TaskChannel,omitempty"` 35 } 36 37 func (params *FetchWorkerInstanceStatisticsParams) SetMinutes(Minutes int) *FetchWorkerInstanceStatisticsParams { 38 params.Minutes = &Minutes 39 return params 40 } 41 func (params *FetchWorkerInstanceStatisticsParams) SetStartDate(StartDate time.Time) *FetchWorkerInstanceStatisticsParams { 42 params.StartDate = &StartDate 43 return params 44 } 45 func (params *FetchWorkerInstanceStatisticsParams) SetEndDate(EndDate time.Time) *FetchWorkerInstanceStatisticsParams { 46 params.EndDate = &EndDate 47 return params 48 } 49 func (params *FetchWorkerInstanceStatisticsParams) SetTaskChannel(TaskChannel string) *FetchWorkerInstanceStatisticsParams { 50 params.TaskChannel = &TaskChannel 51 return params 52 } 53 54 // 55 func (c *ApiService) FetchWorkerInstanceStatistics(WorkspaceSid string, WorkerSid string, params *FetchWorkerInstanceStatisticsParams) (*TaskrouterV1WorkerInstanceStatistics, error) { 56 path := "/v1/Workspaces/{WorkspaceSid}/Workers/{WorkerSid}/Statistics" 57 path = strings.Replace(path, "{"+"WorkspaceSid"+"}", WorkspaceSid, -1) 58 path = strings.Replace(path, "{"+"WorkerSid"+"}", WorkerSid, -1) 59 60 data := url.Values{} 61 headers := make(map[string]interface{}) 62 63 if params != nil && params.Minutes != nil { 64 data.Set("Minutes", fmt.Sprint(*params.Minutes)) 65 } 66 if params != nil && params.StartDate != nil { 67 data.Set("StartDate", fmt.Sprint((*params.StartDate).Format(time.RFC3339))) 68 } 69 if params != nil && params.EndDate != nil { 70 data.Set("EndDate", fmt.Sprint((*params.EndDate).Format(time.RFC3339))) 71 } 72 if params != nil && params.TaskChannel != nil { 73 data.Set("TaskChannel", *params.TaskChannel) 74 } 75 76 resp, err := c.requestHandler.Get(c.baseURL+path, data, headers) 77 if err != nil { 78 return nil, err 79 } 80 81 defer resp.Body.Close() 82 83 ps := &TaskrouterV1WorkerInstanceStatistics{} 84 if err := json.NewDecoder(resp.Body).Decode(ps); err != nil { 85 return nil, err 86 } 87 88 return ps, err 89 } 90 91 // Optional parameters for the method 'FetchWorkerStatistics' 92 type FetchWorkerStatisticsParams struct { 93 // Only calculate statistics since this many minutes in the past. The default 15 minutes. This is helpful for displaying statistics for the last 15 minutes, 240 minutes (4 hours), and 480 minutes (8 hours) to see trends. 94 Minutes *int `json:"Minutes,omitempty"` 95 // Only calculate statistics from this date and time and later, specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. 96 StartDate *time.Time `json:"StartDate,omitempty"` 97 // Only calculate statistics from this date and time and earlier, specified in GMT as an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time. 98 EndDate *time.Time `json:"EndDate,omitempty"` 99 // The SID of the TaskQueue for which to fetch Worker statistics. 100 TaskQueueSid *string `json:"TaskQueueSid,omitempty"` 101 // The `friendly_name` of the TaskQueue for which to fetch Worker statistics. 102 TaskQueueName *string `json:"TaskQueueName,omitempty"` 103 // Only include Workers with `friendly_name` values that match this parameter. 104 FriendlyName *string `json:"FriendlyName,omitempty"` 105 // Only calculate statistics on this TaskChannel. Can be the TaskChannel's SID or its `unique_name`, such as `voice`, `sms`, or `default`. 106 TaskChannel *string `json:"TaskChannel,omitempty"` 107 } 108 109 func (params *FetchWorkerStatisticsParams) SetMinutes(Minutes int) *FetchWorkerStatisticsParams { 110 params.Minutes = &Minutes 111 return params 112 } 113 func (params *FetchWorkerStatisticsParams) SetStartDate(StartDate time.Time) *FetchWorkerStatisticsParams { 114 params.StartDate = &StartDate 115 return params 116 } 117 func (params *FetchWorkerStatisticsParams) SetEndDate(EndDate time.Time) *FetchWorkerStatisticsParams { 118 params.EndDate = &EndDate 119 return params 120 } 121 func (params *FetchWorkerStatisticsParams) SetTaskQueueSid(TaskQueueSid string) *FetchWorkerStatisticsParams { 122 params.TaskQueueSid = &TaskQueueSid 123 return params 124 } 125 func (params *FetchWorkerStatisticsParams) SetTaskQueueName(TaskQueueName string) *FetchWorkerStatisticsParams { 126 params.TaskQueueName = &TaskQueueName 127 return params 128 } 129 func (params *FetchWorkerStatisticsParams) SetFriendlyName(FriendlyName string) *FetchWorkerStatisticsParams { 130 params.FriendlyName = &FriendlyName 131 return params 132 } 133 func (params *FetchWorkerStatisticsParams) SetTaskChannel(TaskChannel string) *FetchWorkerStatisticsParams { 134 params.TaskChannel = &TaskChannel 135 return params 136 } 137 138 // 139 func (c *ApiService) FetchWorkerStatistics(WorkspaceSid string, params *FetchWorkerStatisticsParams) (*TaskrouterV1WorkerStatistics, error) { 140 path := "/v1/Workspaces/{WorkspaceSid}/Workers/Statistics" 141 path = strings.Replace(path, "{"+"WorkspaceSid"+"}", WorkspaceSid, -1) 142 143 data := url.Values{} 144 headers := make(map[string]interface{}) 145 146 if params != nil && params.Minutes != nil { 147 data.Set("Minutes", fmt.Sprint(*params.Minutes)) 148 } 149 if params != nil && params.StartDate != nil { 150 data.Set("StartDate", fmt.Sprint((*params.StartDate).Format(time.RFC3339))) 151 } 152 if params != nil && params.EndDate != nil { 153 data.Set("EndDate", fmt.Sprint((*params.EndDate).Format(time.RFC3339))) 154 } 155 if params != nil && params.TaskQueueSid != nil { 156 data.Set("TaskQueueSid", *params.TaskQueueSid) 157 } 158 if params != nil && params.TaskQueueName != nil { 159 data.Set("TaskQueueName", *params.TaskQueueName) 160 } 161 if params != nil && params.FriendlyName != nil { 162 data.Set("FriendlyName", *params.FriendlyName) 163 } 164 if params != nil && params.TaskChannel != nil { 165 data.Set("TaskChannel", *params.TaskChannel) 166 } 167 168 resp, err := c.requestHandler.Get(c.baseURL+path, data, headers) 169 if err != nil { 170 return nil, err 171 } 172 173 defer resp.Body.Close() 174 175 ps := &TaskrouterV1WorkerStatistics{} 176 if err := json.NewDecoder(resp.Body).Decode(ps); err != nil { 177 return nil, err 178 } 179 180 return ps, err 181 }