/
api_op_update.go
162 lines (146 loc) · 10.5 KB
/
api_op_update.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
// Package configuration contains auto-generated files. DO NOT MODIFY
package configuration
import (
"context"
"net/http"
"time"
"github.com/RJPearson94/twilio-sdk-go/client"
)
type UpdateConfigurationIntegrationInput struct {
Active bool `json:"active"`
Author *string `json:"author,omitempty"`
Config string `validate:"required" json:"config"`
Logo *string `json:"logo,omitempty"`
Name string `validate:"required" json:"name"`
Type string `validate:"required" json:"type"`
}
type UpdateConfigurationSkillInput struct {
Maximum bool `json:"maximum"`
Minimum int `validate:"required" json:"minimum"`
MultiValue bool `json:"multivalue"`
Name string `validate:"required" json:"name"`
}
type UpdateConfigurationTaskQueueInput struct {
Sid string `validate:"required" json:"sid"`
Targettable bool `json:"targettable"`
}
type UpdateConfigurationWorkerChannelInput struct {
Availability bool `json:"availability"`
Capacity int `validate:"required" json:"capacity"`
Name string `validate:"required" json:"name"`
}
// UpdateConfigurationInput defines input fields for updating a configuration resource
type UpdateConfigurationInput struct {
AccountSid string `validate:"required" json:"account_sid"`
Attributes *interface{} `json:"attributes,omitempty"`
CallRecordingEnabled *bool `json:"call_recording_enabled,omitempty"`
CallRecordingWebhookURL *string `json:"call_recording_webhook_url,omitempty"`
ChatServiceInstanceSid *string `json:"chat_service_instance_sid,omitempty"`
CrmAttributes *interface{} `json:"crm_attributes,omitempty"`
CrmCallbackURL *string `json:"crm_callback_url,omitempty"`
CrmEnabled *bool `json:"crm_enabled,omitempty"`
CrmFallbackURL *string `json:"crm_fallback_url,omitempty"`
CrmType *string `json:"crm_type,omitempty"`
Integrations *[]UpdateConfigurationIntegrationInput `json:"integrations,omitempty"`
MessagingServiceInstanceSid *string `json:"messaging_service_instance_sid,omitempty"`
OutboundCallFlows *interface{} `json:"outbound_call_flows,omitempty"`
PluginServiceAttributes *interface{} `json:"plugin_service_attributes,omitempty"`
PluginServiceEnabled *bool `json:"plugin_service_enabled,omitempty"`
PublicAttributes *interface{} `json:"public_attributes,omitempty"`
QueueStatsConfiguration *interface{} `json:"queue_stats_configuration,omitempty"`
ServerlessServiceSids *[]string `json:"serverless_service_sids,omitempty"`
TaskRouterSkills *[]UpdateConfigurationSkillInput `json:"taskrouter_skills,omitempty"`
TaskRouterTargetTaskQueueSid *string `json:"taskrouter_target_taskqueue_sid,omitempty"`
TaskRouterTargetWorkflowSid *string `json:"taskrouter_target_workflow_sid,omitempty"`
TaskRouterTaskQueues *[]UpdateConfigurationTaskQueueInput `json:"taskrouter_taskqueues,omitempty"`
TaskRouterWorkerAttributes *map[string]interface{} `json:"taskrouter_worker_attributes,omitempty"`
TaskRouterWorkerChannels *map[string][]UpdateConfigurationWorkerChannelInput `json:"taskrouter_worker_channels,omitempty"`
UiAttributes *interface{} `json:"ui_attributes,omitempty"`
UiDependencies *interface{} `json:"ui_dependencies,omitempty"`
UiLanguage *string `json:"ui_language,omitempty"`
UiVersion *string `json:"ui_version,omitempty"`
}
type UpdateConfigurationIntegrationResponse struct {
Active bool `json:"active"`
Author *string `json:"author,omitempty"`
Config string `json:"config"`
Logo *string `json:"logo,omitempty"`
Name string `json:"name"`
Type string `json:"type"`
}
type UpdateConfigurationSkillResponse struct {
Maximum bool `json:"maximum"`
Minimum int `json:"minimum"`
MultiValue bool `json:"multivalue"`
Name string `json:"name"`
}
type UpdateConfigurationTaskQueueResponse struct {
Sid string `json:"sid"`
Targettable bool `json:"targettable"`
}
type UpdateConfigurationWorkerChannelResponse struct {
Availability bool `json:"availability"`
Capacity int `json:"capacity"`
Name string `json:"name"`
}
// UpdateConfigurationResponse defines the response fields for the updated configuration
type UpdateConfigurationResponse struct {
AccountSid string `json:"account_sid"`
Attributes *interface{} `json:"attributes,omitempty"`
CallRecordingEnabled *bool `json:"call_recording_enabled,omitempty"`
CallRecordingWebhookURL *string `json:"call_recording_webhook_url,omitempty"`
ChatServiceInstanceSid *string `json:"chat_service_instance_sid,omitempty"`
CrmAttributes *interface{} `json:"crm_attributes,omitempty"`
CrmCallbackURL *string `json:"crm_callback_url,omitempty"`
CrmEnabled *bool `json:"crm_enabled,omitempty"`
CrmFallbackURL *string `json:"crm_fallback_url,omitempty"`
CrmType *string `json:"crm_type,omitempty"`
DateCreated time.Time `json:"date_created"`
DateUpdated *time.Time `json:"date_updated,omitempty"`
FlexServiceInstanceSid string `json:"flex_service_instance_sid"`
Integrations *[]UpdateConfigurationIntegrationResponse `json:"integrations,omitempty"`
MessagingServiceInstanceSid *string `json:"messaging_service_instance_sid,omitempty"`
OutboundCallFlows *interface{} `json:"outbound_call_flows,omitempty"`
PluginServiceAttributes *interface{} `json:"plugin_service_attributes,omitempty"`
PluginServiceEnabled *bool `json:"plugin_service_enabled,omitempty"`
PublicAttributes *interface{} `json:"public_attributes,omitempty"`
QueueStatsConfiguration *interface{} `json:"queue_stats_configuration,omitempty"`
RuntimeDomain string `json:"runtime_domain"`
ServerlessServiceSids *[]string `json:"serverless_service_sids,omitempty"`
ServiceVersion *string `json:"service_version,omitempty"`
Status string `json:"status"`
TaskRouterOfflineActivitySid string `json:"taskrouter_offline_activity_sid"`
TaskRouterSkills *[]UpdateConfigurationSkillResponse `json:"taskrouter_skills,omitempty"`
TaskRouterTargetTaskQueueSid string `json:"taskrouter_target_taskqueue_sid"`
TaskRouterTargetWorkflowSid string `json:"taskrouter_target_workflow_sid"`
TaskRouterTaskQueues *[]UpdateConfigurationTaskQueueResponse `json:"taskrouter_taskqueues,omitempty"`
TaskRouterWorkerAttributes *map[string]interface{} `json:"taskrouter_worker_attributes,omitempty"`
TaskRouterWorkerChannels *map[string][]UpdateConfigurationWorkerChannelResponse `json:"taskrouter_worker_channels,omitempty"`
TaskRouterWorkspaceSid string `json:"taskrouter_workspace_sid"`
URL string `json:"url"`
UiAttributes *interface{} `json:"ui_attributes,omitempty"`
UiDependencies *interface{} `json:"ui_dependencies,omitempty"`
UiLanguage *string `json:"ui_language,omitempty"`
UiVersion string `json:"ui_version"`
}
// Update modifies a configuration resource
// Context is defaulted to Background. See https://golang.org/pkg/context/#Background for more information
func (c Client) Update(input *UpdateConfigurationInput) (*UpdateConfigurationResponse, error) {
return c.UpdateWithContext(context.Background(), input)
}
// UpdateWithContext modifies a configuration resource
func (c Client) UpdateWithContext(context context.Context, input *UpdateConfigurationInput) (*UpdateConfigurationResponse, error) {
op := client.Operation{
Method: http.MethodPost,
URI: "/Configuration",
ContentType: client.JSON,
}
if input == nil {
input = &UpdateConfigurationInput{}
}
response := &UpdateConfigurationResponse{}
if err := c.client.Send(context, op, input, response); err != nil {
return nil, err
}
return response, nil
}