github.com/twilio/twilio-go@v1.20.1/rest/taskrouter/v1/workspaces_tasks_reservations.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 23 "github.com/twilio/twilio-go/client" 24 ) 25 26 // 27 func (c *ApiService) FetchTaskReservation(WorkspaceSid string, TaskSid string, Sid string) (*TaskrouterV1TaskReservation, error) { 28 path := "/v1/Workspaces/{WorkspaceSid}/Tasks/{TaskSid}/Reservations/{Sid}" 29 path = strings.Replace(path, "{"+"WorkspaceSid"+"}", WorkspaceSid, -1) 30 path = strings.Replace(path, "{"+"TaskSid"+"}", TaskSid, -1) 31 path = strings.Replace(path, "{"+"Sid"+"}", Sid, -1) 32 33 data := url.Values{} 34 headers := make(map[string]interface{}) 35 36 resp, err := c.requestHandler.Get(c.baseURL+path, data, headers) 37 if err != nil { 38 return nil, err 39 } 40 41 defer resp.Body.Close() 42 43 ps := &TaskrouterV1TaskReservation{} 44 if err := json.NewDecoder(resp.Body).Decode(ps); err != nil { 45 return nil, err 46 } 47 48 return ps, err 49 } 50 51 // Optional parameters for the method 'ListTaskReservation' 52 type ListTaskReservationParams struct { 53 // Returns the list of reservations for a task with a specified ReservationStatus. Can be: `pending`, `accepted`, `rejected`, or `timeout`. 54 ReservationStatus *string `json:"ReservationStatus,omitempty"` 55 // The SID of the reserved Worker resource to read. 56 WorkerSid *string `json:"WorkerSid,omitempty"` 57 // How many resources to return in each list page. The default is 50, and the maximum is 1000. 58 PageSize *int `json:"PageSize,omitempty"` 59 // Max number of records to return. 60 Limit *int `json:"limit,omitempty"` 61 } 62 63 func (params *ListTaskReservationParams) SetReservationStatus(ReservationStatus string) *ListTaskReservationParams { 64 params.ReservationStatus = &ReservationStatus 65 return params 66 } 67 func (params *ListTaskReservationParams) SetWorkerSid(WorkerSid string) *ListTaskReservationParams { 68 params.WorkerSid = &WorkerSid 69 return params 70 } 71 func (params *ListTaskReservationParams) SetPageSize(PageSize int) *ListTaskReservationParams { 72 params.PageSize = &PageSize 73 return params 74 } 75 func (params *ListTaskReservationParams) SetLimit(Limit int) *ListTaskReservationParams { 76 params.Limit = &Limit 77 return params 78 } 79 80 // Retrieve a single page of TaskReservation records from the API. Request is executed immediately. 81 func (c *ApiService) PageTaskReservation(WorkspaceSid string, TaskSid string, params *ListTaskReservationParams, pageToken, pageNumber string) (*ListTaskReservationResponse, error) { 82 path := "/v1/Workspaces/{WorkspaceSid}/Tasks/{TaskSid}/Reservations" 83 84 path = strings.Replace(path, "{"+"WorkspaceSid"+"}", WorkspaceSid, -1) 85 path = strings.Replace(path, "{"+"TaskSid"+"}", TaskSid, -1) 86 87 data := url.Values{} 88 headers := make(map[string]interface{}) 89 90 if params != nil && params.ReservationStatus != nil { 91 data.Set("ReservationStatus", *params.ReservationStatus) 92 } 93 if params != nil && params.WorkerSid != nil { 94 data.Set("WorkerSid", *params.WorkerSid) 95 } 96 if params != nil && params.PageSize != nil { 97 data.Set("PageSize", fmt.Sprint(*params.PageSize)) 98 } 99 100 if pageToken != "" { 101 data.Set("PageToken", pageToken) 102 } 103 if pageNumber != "" { 104 data.Set("Page", pageNumber) 105 } 106 107 resp, err := c.requestHandler.Get(c.baseURL+path, data, headers) 108 if err != nil { 109 return nil, err 110 } 111 112 defer resp.Body.Close() 113 114 ps := &ListTaskReservationResponse{} 115 if err := json.NewDecoder(resp.Body).Decode(ps); err != nil { 116 return nil, err 117 } 118 119 return ps, err 120 } 121 122 // Lists TaskReservation records from the API as a list. Unlike stream, this operation is eager and loads 'limit' records into memory before returning. 123 func (c *ApiService) ListTaskReservation(WorkspaceSid string, TaskSid string, params *ListTaskReservationParams) ([]TaskrouterV1TaskReservation, error) { 124 response, errors := c.StreamTaskReservation(WorkspaceSid, TaskSid, params) 125 126 records := make([]TaskrouterV1TaskReservation, 0) 127 for record := range response { 128 records = append(records, record) 129 } 130 131 if err := <-errors; err != nil { 132 return nil, err 133 } 134 135 return records, nil 136 } 137 138 // Streams TaskReservation records from the API as a channel stream. This operation lazily loads records as efficiently as possible until the limit is reached. 139 func (c *ApiService) StreamTaskReservation(WorkspaceSid string, TaskSid string, params *ListTaskReservationParams) (chan TaskrouterV1TaskReservation, chan error) { 140 if params == nil { 141 params = &ListTaskReservationParams{} 142 } 143 params.SetPageSize(client.ReadLimits(params.PageSize, params.Limit)) 144 145 recordChannel := make(chan TaskrouterV1TaskReservation, 1) 146 errorChannel := make(chan error, 1) 147 148 response, err := c.PageTaskReservation(WorkspaceSid, TaskSid, params, "", "") 149 if err != nil { 150 errorChannel <- err 151 close(recordChannel) 152 close(errorChannel) 153 } else { 154 go c.streamTaskReservation(response, params, recordChannel, errorChannel) 155 } 156 157 return recordChannel, errorChannel 158 } 159 160 func (c *ApiService) streamTaskReservation(response *ListTaskReservationResponse, params *ListTaskReservationParams, recordChannel chan TaskrouterV1TaskReservation, errorChannel chan error) { 161 curRecord := 1 162 163 for response != nil { 164 responseRecords := response.Reservations 165 for item := range responseRecords { 166 recordChannel <- responseRecords[item] 167 curRecord += 1 168 if params.Limit != nil && *params.Limit < curRecord { 169 close(recordChannel) 170 close(errorChannel) 171 return 172 } 173 } 174 175 record, err := client.GetNext(c.baseURL, response, c.getNextListTaskReservationResponse) 176 if err != nil { 177 errorChannel <- err 178 break 179 } else if record == nil { 180 break 181 } 182 183 response = record.(*ListTaskReservationResponse) 184 } 185 186 close(recordChannel) 187 close(errorChannel) 188 } 189 190 func (c *ApiService) getNextListTaskReservationResponse(nextPageUrl string) (interface{}, error) { 191 if nextPageUrl == "" { 192 return nil, nil 193 } 194 resp, err := c.requestHandler.Get(nextPageUrl, nil, nil) 195 if err != nil { 196 return nil, err 197 } 198 199 defer resp.Body.Close() 200 201 ps := &ListTaskReservationResponse{} 202 if err := json.NewDecoder(resp.Body).Decode(ps); err != nil { 203 return nil, err 204 } 205 return ps, nil 206 } 207 208 // Optional parameters for the method 'UpdateTaskReservation' 209 type UpdateTaskReservationParams struct { 210 // The If-Match HTTP request header 211 IfMatch *string `json:"If-Match,omitempty"` 212 // 213 ReservationStatus *string `json:"ReservationStatus,omitempty"` 214 // The new worker activity SID if rejecting a reservation. 215 WorkerActivitySid *string `json:"WorkerActivitySid,omitempty"` 216 // The assignment instruction for reservation. 217 Instruction *string `json:"Instruction,omitempty"` 218 // The SID of the Activity resource to start after executing a Dequeue instruction. 219 DequeuePostWorkActivitySid *string `json:"DequeuePostWorkActivitySid,omitempty"` 220 // The Caller ID of the call to the worker when executing a Dequeue instruction. 221 DequeueFrom *string `json:"DequeueFrom,omitempty"` 222 // Whether to record both legs of a call when executing a Dequeue instruction or which leg to record. 223 DequeueRecord *string `json:"DequeueRecord,omitempty"` 224 // Timeout for call when executing a Dequeue instruction. 225 DequeueTimeout *int `json:"DequeueTimeout,omitempty"` 226 // The Contact URI of the worker when executing a Dequeue instruction. Can be the URI of the Twilio Client, the SIP URI for Programmable SIP, or the [E.164](https://www.twilio.com/docs/glossary/what-e164) formatted phone number, depending on the destination. 227 DequeueTo *string `json:"DequeueTo,omitempty"` 228 // The Callback URL for completed call event when executing a Dequeue instruction. 229 DequeueStatusCallbackUrl *string `json:"DequeueStatusCallbackUrl,omitempty"` 230 // The Caller ID of the outbound call when executing a Call instruction. 231 CallFrom *string `json:"CallFrom,omitempty"` 232 // Whether to record both legs of a call when executing a Call instruction or which leg to record. 233 CallRecord *string `json:"CallRecord,omitempty"` 234 // Timeout for call when executing a Call instruction. 235 CallTimeout *int `json:"CallTimeout,omitempty"` 236 // The Contact URI of the worker when executing a Call instruction. Can be the URI of the Twilio Client, the SIP URI for Programmable SIP, or the [E.164](https://www.twilio.com/docs/glossary/what-e164) formatted phone number, depending on the destination. 237 CallTo *string `json:"CallTo,omitempty"` 238 // TwiML URI executed on answering the worker's leg as a result of the Call instruction. 239 CallUrl *string `json:"CallUrl,omitempty"` 240 // The URL to call for the completed call event when executing a Call instruction. 241 CallStatusCallbackUrl *string `json:"CallStatusCallbackUrl,omitempty"` 242 // Whether to accept a reservation when executing a Call instruction. 243 CallAccept *bool `json:"CallAccept,omitempty"` 244 // The Call SID of the call parked in the queue when executing a Redirect instruction. 245 RedirectCallSid *string `json:"RedirectCallSid,omitempty"` 246 // Whether the reservation should be accepted when executing a Redirect instruction. 247 RedirectAccept *bool `json:"RedirectAccept,omitempty"` 248 // TwiML URI to redirect the call to when executing the Redirect instruction. 249 RedirectUrl *string `json:"RedirectUrl,omitempty"` 250 // The Contact URI of the worker when executing a Conference instruction. Can be the URI of the Twilio Client, the SIP URI for Programmable SIP, or the [E.164](https://www.twilio.com/docs/glossary/what-e164) formatted phone number, depending on the destination. 251 To *string `json:"To,omitempty"` 252 // The Caller ID of the call to the worker when executing a Conference instruction. 253 From *string `json:"From,omitempty"` 254 // The URL we should call using the `status_callback_method` to send status information to your application. 255 StatusCallback *string `json:"StatusCallback,omitempty"` 256 // The HTTP method we should use to call `status_callback`. Can be: `POST` or `GET` and the default is `POST`. 257 StatusCallbackMethod *string `json:"StatusCallbackMethod,omitempty"` 258 // The call progress events that we will send to `status_callback`. Can be: `initiated`, `ringing`, `answered`, or `completed`. 259 StatusCallbackEvent *[]string `json:"StatusCallbackEvent,omitempty"` 260 // Timeout for call when executing a Conference instruction. 261 Timeout *int `json:"Timeout,omitempty"` 262 // Whether to record the participant and their conferences, including the time between conferences. The default is `false`. 263 Record *bool `json:"Record,omitempty"` 264 // Whether the agent is muted in the conference. The default is `false`. 265 Muted *bool `json:"Muted,omitempty"` 266 // Whether to play a notification beep when the participant joins or when to play a beep. Can be: `true`, `false`, `onEnter`, or `onExit`. The default value is `true`. 267 Beep *string `json:"Beep,omitempty"` 268 // Whether to start the conference when the participant joins, if it has not already started. The default is `true`. If `false` and the conference has not started, the participant is muted and hears background music until another participant starts the conference. 269 StartConferenceOnEnter *bool `json:"StartConferenceOnEnter,omitempty"` 270 // Whether to end the conference when the agent leaves. 271 EndConferenceOnExit *bool `json:"EndConferenceOnExit,omitempty"` 272 // The URL we should call using the `wait_method` for the music to play while participants are waiting for the conference to start. The default value is the URL of our standard hold music. [Learn more about hold music](https://www.twilio.com/labs/twimlets/holdmusic). 273 WaitUrl *string `json:"WaitUrl,omitempty"` 274 // The HTTP method we should use to call `wait_url`. Can be `GET` or `POST` and the default is `POST`. When using a static audio file, this should be `GET` so that we can cache the file. 275 WaitMethod *string `json:"WaitMethod,omitempty"` 276 // Whether to allow an agent to hear the state of the outbound call, including ringing or disconnect messages. The default is `true`. 277 EarlyMedia *bool `json:"EarlyMedia,omitempty"` 278 // The maximum number of participants in the conference. Can be a positive integer from `2` to `250`. The default value is `250`. 279 MaxParticipants *int `json:"MaxParticipants,omitempty"` 280 // The URL we should call using the `conference_status_callback_method` when the conference events in `conference_status_callback_event` occur. Only the value set by the first participant to join the conference is used. Subsequent `conference_status_callback` values are ignored. 281 ConferenceStatusCallback *string `json:"ConferenceStatusCallback,omitempty"` 282 // The HTTP method we should use to call `conference_status_callback`. Can be: `GET` or `POST` and defaults to `POST`. 283 ConferenceStatusCallbackMethod *string `json:"ConferenceStatusCallbackMethod,omitempty"` 284 // The conference status events that we will send to `conference_status_callback`. Can be: `start`, `end`, `join`, `leave`, `mute`, `hold`, `speaker`. 285 ConferenceStatusCallbackEvent *[]string `json:"ConferenceStatusCallbackEvent,omitempty"` 286 // Whether to record the conference the participant is joining or when to record the conference. Can be: `true`, `false`, `record-from-start`, and `do-not-record`. The default value is `false`. 287 ConferenceRecord *string `json:"ConferenceRecord,omitempty"` 288 // How to trim the leading and trailing silence from your recorded conference audio files. Can be: `trim-silence` or `do-not-trim` and defaults to `trim-silence`. 289 ConferenceTrim *string `json:"ConferenceTrim,omitempty"` 290 // The recording channels for the final recording. Can be: `mono` or `dual` and the default is `mono`. 291 RecordingChannels *string `json:"RecordingChannels,omitempty"` 292 // The URL that we should call using the `recording_status_callback_method` when the recording status changes. 293 RecordingStatusCallback *string `json:"RecordingStatusCallback,omitempty"` 294 // The HTTP method we should use when we call `recording_status_callback`. Can be: `GET` or `POST` and defaults to `POST`. 295 RecordingStatusCallbackMethod *string `json:"RecordingStatusCallbackMethod,omitempty"` 296 // The URL we should call using the `conference_recording_status_callback_method` when the conference recording is available. 297 ConferenceRecordingStatusCallback *string `json:"ConferenceRecordingStatusCallback,omitempty"` 298 // The HTTP method we should use to call `conference_recording_status_callback`. Can be: `GET` or `POST` and defaults to `POST`. 299 ConferenceRecordingStatusCallbackMethod *string `json:"ConferenceRecordingStatusCallbackMethod,omitempty"` 300 // The [region](https://support.twilio.com/hc/en-us/articles/223132167-How-global-low-latency-routing-and-region-selection-work-for-conferences-and-Client-calls) where we should mix the recorded audio. Can be:`us1`, `ie1`, `de1`, `sg1`, `br1`, `au1`, or `jp1`. 301 Region *string `json:"Region,omitempty"` 302 // The SIP username used for authentication. 303 SipAuthUsername *string `json:"SipAuthUsername,omitempty"` 304 // The SIP password for authentication. 305 SipAuthPassword *string `json:"SipAuthPassword,omitempty"` 306 // The Call progress events sent via webhooks as a result of a Dequeue instruction. 307 DequeueStatusCallbackEvent *[]string `json:"DequeueStatusCallbackEvent,omitempty"` 308 // The new worker activity SID after executing a Conference instruction. 309 PostWorkActivitySid *string `json:"PostWorkActivitySid,omitempty"` 310 // 311 SupervisorMode *string `json:"SupervisorMode,omitempty"` 312 // The Supervisor SID/URI when executing the Supervise instruction. 313 Supervisor *string `json:"Supervisor,omitempty"` 314 // Whether to end the conference when the customer leaves. 315 EndConferenceOnCustomerExit *bool `json:"EndConferenceOnCustomerExit,omitempty"` 316 // Whether to play a notification beep when the customer joins. 317 BeepOnCustomerEntrance *bool `json:"BeepOnCustomerEntrance,omitempty"` 318 // The jitter buffer size for conference. Can be: `small`, `medium`, `large`, `off`. 319 JitterBufferSize *string `json:"JitterBufferSize,omitempty"` 320 } 321 322 func (params *UpdateTaskReservationParams) SetIfMatch(IfMatch string) *UpdateTaskReservationParams { 323 params.IfMatch = &IfMatch 324 return params 325 } 326 func (params *UpdateTaskReservationParams) SetReservationStatus(ReservationStatus string) *UpdateTaskReservationParams { 327 params.ReservationStatus = &ReservationStatus 328 return params 329 } 330 func (params *UpdateTaskReservationParams) SetWorkerActivitySid(WorkerActivitySid string) *UpdateTaskReservationParams { 331 params.WorkerActivitySid = &WorkerActivitySid 332 return params 333 } 334 func (params *UpdateTaskReservationParams) SetInstruction(Instruction string) *UpdateTaskReservationParams { 335 params.Instruction = &Instruction 336 return params 337 } 338 func (params *UpdateTaskReservationParams) SetDequeuePostWorkActivitySid(DequeuePostWorkActivitySid string) *UpdateTaskReservationParams { 339 params.DequeuePostWorkActivitySid = &DequeuePostWorkActivitySid 340 return params 341 } 342 func (params *UpdateTaskReservationParams) SetDequeueFrom(DequeueFrom string) *UpdateTaskReservationParams { 343 params.DequeueFrom = &DequeueFrom 344 return params 345 } 346 func (params *UpdateTaskReservationParams) SetDequeueRecord(DequeueRecord string) *UpdateTaskReservationParams { 347 params.DequeueRecord = &DequeueRecord 348 return params 349 } 350 func (params *UpdateTaskReservationParams) SetDequeueTimeout(DequeueTimeout int) *UpdateTaskReservationParams { 351 params.DequeueTimeout = &DequeueTimeout 352 return params 353 } 354 func (params *UpdateTaskReservationParams) SetDequeueTo(DequeueTo string) *UpdateTaskReservationParams { 355 params.DequeueTo = &DequeueTo 356 return params 357 } 358 func (params *UpdateTaskReservationParams) SetDequeueStatusCallbackUrl(DequeueStatusCallbackUrl string) *UpdateTaskReservationParams { 359 params.DequeueStatusCallbackUrl = &DequeueStatusCallbackUrl 360 return params 361 } 362 func (params *UpdateTaskReservationParams) SetCallFrom(CallFrom string) *UpdateTaskReservationParams { 363 params.CallFrom = &CallFrom 364 return params 365 } 366 func (params *UpdateTaskReservationParams) SetCallRecord(CallRecord string) *UpdateTaskReservationParams { 367 params.CallRecord = &CallRecord 368 return params 369 } 370 func (params *UpdateTaskReservationParams) SetCallTimeout(CallTimeout int) *UpdateTaskReservationParams { 371 params.CallTimeout = &CallTimeout 372 return params 373 } 374 func (params *UpdateTaskReservationParams) SetCallTo(CallTo string) *UpdateTaskReservationParams { 375 params.CallTo = &CallTo 376 return params 377 } 378 func (params *UpdateTaskReservationParams) SetCallUrl(CallUrl string) *UpdateTaskReservationParams { 379 params.CallUrl = &CallUrl 380 return params 381 } 382 func (params *UpdateTaskReservationParams) SetCallStatusCallbackUrl(CallStatusCallbackUrl string) *UpdateTaskReservationParams { 383 params.CallStatusCallbackUrl = &CallStatusCallbackUrl 384 return params 385 } 386 func (params *UpdateTaskReservationParams) SetCallAccept(CallAccept bool) *UpdateTaskReservationParams { 387 params.CallAccept = &CallAccept 388 return params 389 } 390 func (params *UpdateTaskReservationParams) SetRedirectCallSid(RedirectCallSid string) *UpdateTaskReservationParams { 391 params.RedirectCallSid = &RedirectCallSid 392 return params 393 } 394 func (params *UpdateTaskReservationParams) SetRedirectAccept(RedirectAccept bool) *UpdateTaskReservationParams { 395 params.RedirectAccept = &RedirectAccept 396 return params 397 } 398 func (params *UpdateTaskReservationParams) SetRedirectUrl(RedirectUrl string) *UpdateTaskReservationParams { 399 params.RedirectUrl = &RedirectUrl 400 return params 401 } 402 func (params *UpdateTaskReservationParams) SetTo(To string) *UpdateTaskReservationParams { 403 params.To = &To 404 return params 405 } 406 func (params *UpdateTaskReservationParams) SetFrom(From string) *UpdateTaskReservationParams { 407 params.From = &From 408 return params 409 } 410 func (params *UpdateTaskReservationParams) SetStatusCallback(StatusCallback string) *UpdateTaskReservationParams { 411 params.StatusCallback = &StatusCallback 412 return params 413 } 414 func (params *UpdateTaskReservationParams) SetStatusCallbackMethod(StatusCallbackMethod string) *UpdateTaskReservationParams { 415 params.StatusCallbackMethod = &StatusCallbackMethod 416 return params 417 } 418 func (params *UpdateTaskReservationParams) SetStatusCallbackEvent(StatusCallbackEvent []string) *UpdateTaskReservationParams { 419 params.StatusCallbackEvent = &StatusCallbackEvent 420 return params 421 } 422 func (params *UpdateTaskReservationParams) SetTimeout(Timeout int) *UpdateTaskReservationParams { 423 params.Timeout = &Timeout 424 return params 425 } 426 func (params *UpdateTaskReservationParams) SetRecord(Record bool) *UpdateTaskReservationParams { 427 params.Record = &Record 428 return params 429 } 430 func (params *UpdateTaskReservationParams) SetMuted(Muted bool) *UpdateTaskReservationParams { 431 params.Muted = &Muted 432 return params 433 } 434 func (params *UpdateTaskReservationParams) SetBeep(Beep string) *UpdateTaskReservationParams { 435 params.Beep = &Beep 436 return params 437 } 438 func (params *UpdateTaskReservationParams) SetStartConferenceOnEnter(StartConferenceOnEnter bool) *UpdateTaskReservationParams { 439 params.StartConferenceOnEnter = &StartConferenceOnEnter 440 return params 441 } 442 func (params *UpdateTaskReservationParams) SetEndConferenceOnExit(EndConferenceOnExit bool) *UpdateTaskReservationParams { 443 params.EndConferenceOnExit = &EndConferenceOnExit 444 return params 445 } 446 func (params *UpdateTaskReservationParams) SetWaitUrl(WaitUrl string) *UpdateTaskReservationParams { 447 params.WaitUrl = &WaitUrl 448 return params 449 } 450 func (params *UpdateTaskReservationParams) SetWaitMethod(WaitMethod string) *UpdateTaskReservationParams { 451 params.WaitMethod = &WaitMethod 452 return params 453 } 454 func (params *UpdateTaskReservationParams) SetEarlyMedia(EarlyMedia bool) *UpdateTaskReservationParams { 455 params.EarlyMedia = &EarlyMedia 456 return params 457 } 458 func (params *UpdateTaskReservationParams) SetMaxParticipants(MaxParticipants int) *UpdateTaskReservationParams { 459 params.MaxParticipants = &MaxParticipants 460 return params 461 } 462 func (params *UpdateTaskReservationParams) SetConferenceStatusCallback(ConferenceStatusCallback string) *UpdateTaskReservationParams { 463 params.ConferenceStatusCallback = &ConferenceStatusCallback 464 return params 465 } 466 func (params *UpdateTaskReservationParams) SetConferenceStatusCallbackMethod(ConferenceStatusCallbackMethod string) *UpdateTaskReservationParams { 467 params.ConferenceStatusCallbackMethod = &ConferenceStatusCallbackMethod 468 return params 469 } 470 func (params *UpdateTaskReservationParams) SetConferenceStatusCallbackEvent(ConferenceStatusCallbackEvent []string) *UpdateTaskReservationParams { 471 params.ConferenceStatusCallbackEvent = &ConferenceStatusCallbackEvent 472 return params 473 } 474 func (params *UpdateTaskReservationParams) SetConferenceRecord(ConferenceRecord string) *UpdateTaskReservationParams { 475 params.ConferenceRecord = &ConferenceRecord 476 return params 477 } 478 func (params *UpdateTaskReservationParams) SetConferenceTrim(ConferenceTrim string) *UpdateTaskReservationParams { 479 params.ConferenceTrim = &ConferenceTrim 480 return params 481 } 482 func (params *UpdateTaskReservationParams) SetRecordingChannels(RecordingChannels string) *UpdateTaskReservationParams { 483 params.RecordingChannels = &RecordingChannels 484 return params 485 } 486 func (params *UpdateTaskReservationParams) SetRecordingStatusCallback(RecordingStatusCallback string) *UpdateTaskReservationParams { 487 params.RecordingStatusCallback = &RecordingStatusCallback 488 return params 489 } 490 func (params *UpdateTaskReservationParams) SetRecordingStatusCallbackMethod(RecordingStatusCallbackMethod string) *UpdateTaskReservationParams { 491 params.RecordingStatusCallbackMethod = &RecordingStatusCallbackMethod 492 return params 493 } 494 func (params *UpdateTaskReservationParams) SetConferenceRecordingStatusCallback(ConferenceRecordingStatusCallback string) *UpdateTaskReservationParams { 495 params.ConferenceRecordingStatusCallback = &ConferenceRecordingStatusCallback 496 return params 497 } 498 func (params *UpdateTaskReservationParams) SetConferenceRecordingStatusCallbackMethod(ConferenceRecordingStatusCallbackMethod string) *UpdateTaskReservationParams { 499 params.ConferenceRecordingStatusCallbackMethod = &ConferenceRecordingStatusCallbackMethod 500 return params 501 } 502 func (params *UpdateTaskReservationParams) SetRegion(Region string) *UpdateTaskReservationParams { 503 params.Region = &Region 504 return params 505 } 506 func (params *UpdateTaskReservationParams) SetSipAuthUsername(SipAuthUsername string) *UpdateTaskReservationParams { 507 params.SipAuthUsername = &SipAuthUsername 508 return params 509 } 510 func (params *UpdateTaskReservationParams) SetSipAuthPassword(SipAuthPassword string) *UpdateTaskReservationParams { 511 params.SipAuthPassword = &SipAuthPassword 512 return params 513 } 514 func (params *UpdateTaskReservationParams) SetDequeueStatusCallbackEvent(DequeueStatusCallbackEvent []string) *UpdateTaskReservationParams { 515 params.DequeueStatusCallbackEvent = &DequeueStatusCallbackEvent 516 return params 517 } 518 func (params *UpdateTaskReservationParams) SetPostWorkActivitySid(PostWorkActivitySid string) *UpdateTaskReservationParams { 519 params.PostWorkActivitySid = &PostWorkActivitySid 520 return params 521 } 522 func (params *UpdateTaskReservationParams) SetSupervisorMode(SupervisorMode string) *UpdateTaskReservationParams { 523 params.SupervisorMode = &SupervisorMode 524 return params 525 } 526 func (params *UpdateTaskReservationParams) SetSupervisor(Supervisor string) *UpdateTaskReservationParams { 527 params.Supervisor = &Supervisor 528 return params 529 } 530 func (params *UpdateTaskReservationParams) SetEndConferenceOnCustomerExit(EndConferenceOnCustomerExit bool) *UpdateTaskReservationParams { 531 params.EndConferenceOnCustomerExit = &EndConferenceOnCustomerExit 532 return params 533 } 534 func (params *UpdateTaskReservationParams) SetBeepOnCustomerEntrance(BeepOnCustomerEntrance bool) *UpdateTaskReservationParams { 535 params.BeepOnCustomerEntrance = &BeepOnCustomerEntrance 536 return params 537 } 538 func (params *UpdateTaskReservationParams) SetJitterBufferSize(JitterBufferSize string) *UpdateTaskReservationParams { 539 params.JitterBufferSize = &JitterBufferSize 540 return params 541 } 542 543 // 544 func (c *ApiService) UpdateTaskReservation(WorkspaceSid string, TaskSid string, Sid string, params *UpdateTaskReservationParams) (*TaskrouterV1TaskReservation, error) { 545 path := "/v1/Workspaces/{WorkspaceSid}/Tasks/{TaskSid}/Reservations/{Sid}" 546 path = strings.Replace(path, "{"+"WorkspaceSid"+"}", WorkspaceSid, -1) 547 path = strings.Replace(path, "{"+"TaskSid"+"}", TaskSid, -1) 548 path = strings.Replace(path, "{"+"Sid"+"}", Sid, -1) 549 550 data := url.Values{} 551 headers := make(map[string]interface{}) 552 553 if params != nil && params.ReservationStatus != nil { 554 data.Set("ReservationStatus", *params.ReservationStatus) 555 } 556 if params != nil && params.WorkerActivitySid != nil { 557 data.Set("WorkerActivitySid", *params.WorkerActivitySid) 558 } 559 if params != nil && params.Instruction != nil { 560 data.Set("Instruction", *params.Instruction) 561 } 562 if params != nil && params.DequeuePostWorkActivitySid != nil { 563 data.Set("DequeuePostWorkActivitySid", *params.DequeuePostWorkActivitySid) 564 } 565 if params != nil && params.DequeueFrom != nil { 566 data.Set("DequeueFrom", *params.DequeueFrom) 567 } 568 if params != nil && params.DequeueRecord != nil { 569 data.Set("DequeueRecord", *params.DequeueRecord) 570 } 571 if params != nil && params.DequeueTimeout != nil { 572 data.Set("DequeueTimeout", fmt.Sprint(*params.DequeueTimeout)) 573 } 574 if params != nil && params.DequeueTo != nil { 575 data.Set("DequeueTo", *params.DequeueTo) 576 } 577 if params != nil && params.DequeueStatusCallbackUrl != nil { 578 data.Set("DequeueStatusCallbackUrl", *params.DequeueStatusCallbackUrl) 579 } 580 if params != nil && params.CallFrom != nil { 581 data.Set("CallFrom", *params.CallFrom) 582 } 583 if params != nil && params.CallRecord != nil { 584 data.Set("CallRecord", *params.CallRecord) 585 } 586 if params != nil && params.CallTimeout != nil { 587 data.Set("CallTimeout", fmt.Sprint(*params.CallTimeout)) 588 } 589 if params != nil && params.CallTo != nil { 590 data.Set("CallTo", *params.CallTo) 591 } 592 if params != nil && params.CallUrl != nil { 593 data.Set("CallUrl", *params.CallUrl) 594 } 595 if params != nil && params.CallStatusCallbackUrl != nil { 596 data.Set("CallStatusCallbackUrl", *params.CallStatusCallbackUrl) 597 } 598 if params != nil && params.CallAccept != nil { 599 data.Set("CallAccept", fmt.Sprint(*params.CallAccept)) 600 } 601 if params != nil && params.RedirectCallSid != nil { 602 data.Set("RedirectCallSid", *params.RedirectCallSid) 603 } 604 if params != nil && params.RedirectAccept != nil { 605 data.Set("RedirectAccept", fmt.Sprint(*params.RedirectAccept)) 606 } 607 if params != nil && params.RedirectUrl != nil { 608 data.Set("RedirectUrl", *params.RedirectUrl) 609 } 610 if params != nil && params.To != nil { 611 data.Set("To", *params.To) 612 } 613 if params != nil && params.From != nil { 614 data.Set("From", *params.From) 615 } 616 if params != nil && params.StatusCallback != nil { 617 data.Set("StatusCallback", *params.StatusCallback) 618 } 619 if params != nil && params.StatusCallbackMethod != nil { 620 data.Set("StatusCallbackMethod", *params.StatusCallbackMethod) 621 } 622 if params != nil && params.StatusCallbackEvent != nil { 623 for _, item := range *params.StatusCallbackEvent { 624 data.Add("StatusCallbackEvent", item) 625 } 626 } 627 if params != nil && params.Timeout != nil { 628 data.Set("Timeout", fmt.Sprint(*params.Timeout)) 629 } 630 if params != nil && params.Record != nil { 631 data.Set("Record", fmt.Sprint(*params.Record)) 632 } 633 if params != nil && params.Muted != nil { 634 data.Set("Muted", fmt.Sprint(*params.Muted)) 635 } 636 if params != nil && params.Beep != nil { 637 data.Set("Beep", *params.Beep) 638 } 639 if params != nil && params.StartConferenceOnEnter != nil { 640 data.Set("StartConferenceOnEnter", fmt.Sprint(*params.StartConferenceOnEnter)) 641 } 642 if params != nil && params.EndConferenceOnExit != nil { 643 data.Set("EndConferenceOnExit", fmt.Sprint(*params.EndConferenceOnExit)) 644 } 645 if params != nil && params.WaitUrl != nil { 646 data.Set("WaitUrl", *params.WaitUrl) 647 } 648 if params != nil && params.WaitMethod != nil { 649 data.Set("WaitMethod", *params.WaitMethod) 650 } 651 if params != nil && params.EarlyMedia != nil { 652 data.Set("EarlyMedia", fmt.Sprint(*params.EarlyMedia)) 653 } 654 if params != nil && params.MaxParticipants != nil { 655 data.Set("MaxParticipants", fmt.Sprint(*params.MaxParticipants)) 656 } 657 if params != nil && params.ConferenceStatusCallback != nil { 658 data.Set("ConferenceStatusCallback", *params.ConferenceStatusCallback) 659 } 660 if params != nil && params.ConferenceStatusCallbackMethod != nil { 661 data.Set("ConferenceStatusCallbackMethod", *params.ConferenceStatusCallbackMethod) 662 } 663 if params != nil && params.ConferenceStatusCallbackEvent != nil { 664 for _, item := range *params.ConferenceStatusCallbackEvent { 665 data.Add("ConferenceStatusCallbackEvent", item) 666 } 667 } 668 if params != nil && params.ConferenceRecord != nil { 669 data.Set("ConferenceRecord", *params.ConferenceRecord) 670 } 671 if params != nil && params.ConferenceTrim != nil { 672 data.Set("ConferenceTrim", *params.ConferenceTrim) 673 } 674 if params != nil && params.RecordingChannels != nil { 675 data.Set("RecordingChannels", *params.RecordingChannels) 676 } 677 if params != nil && params.RecordingStatusCallback != nil { 678 data.Set("RecordingStatusCallback", *params.RecordingStatusCallback) 679 } 680 if params != nil && params.RecordingStatusCallbackMethod != nil { 681 data.Set("RecordingStatusCallbackMethod", *params.RecordingStatusCallbackMethod) 682 } 683 if params != nil && params.ConferenceRecordingStatusCallback != nil { 684 data.Set("ConferenceRecordingStatusCallback", *params.ConferenceRecordingStatusCallback) 685 } 686 if params != nil && params.ConferenceRecordingStatusCallbackMethod != nil { 687 data.Set("ConferenceRecordingStatusCallbackMethod", *params.ConferenceRecordingStatusCallbackMethod) 688 } 689 if params != nil && params.Region != nil { 690 data.Set("Region", *params.Region) 691 } 692 if params != nil && params.SipAuthUsername != nil { 693 data.Set("SipAuthUsername", *params.SipAuthUsername) 694 } 695 if params != nil && params.SipAuthPassword != nil { 696 data.Set("SipAuthPassword", *params.SipAuthPassword) 697 } 698 if params != nil && params.DequeueStatusCallbackEvent != nil { 699 for _, item := range *params.DequeueStatusCallbackEvent { 700 data.Add("DequeueStatusCallbackEvent", item) 701 } 702 } 703 if params != nil && params.PostWorkActivitySid != nil { 704 data.Set("PostWorkActivitySid", *params.PostWorkActivitySid) 705 } 706 if params != nil && params.SupervisorMode != nil { 707 data.Set("SupervisorMode", *params.SupervisorMode) 708 } 709 if params != nil && params.Supervisor != nil { 710 data.Set("Supervisor", *params.Supervisor) 711 } 712 if params != nil && params.EndConferenceOnCustomerExit != nil { 713 data.Set("EndConferenceOnCustomerExit", fmt.Sprint(*params.EndConferenceOnCustomerExit)) 714 } 715 if params != nil && params.BeepOnCustomerEntrance != nil { 716 data.Set("BeepOnCustomerEntrance", fmt.Sprint(*params.BeepOnCustomerEntrance)) 717 } 718 if params != nil && params.JitterBufferSize != nil { 719 data.Set("JitterBufferSize", *params.JitterBufferSize) 720 } 721 722 if params != nil && params.IfMatch != nil { 723 headers["If-Match"] = *params.IfMatch 724 } 725 resp, err := c.requestHandler.Post(c.baseURL+path, data, headers) 726 if err != nil { 727 return nil, err 728 } 729 730 defer resp.Body.Close() 731 732 ps := &TaskrouterV1TaskReservation{} 733 if err := json.NewDecoder(resp.Body).Decode(ps); err != nil { 734 return nil, err 735 } 736 737 return ps, err 738 }