-
Notifications
You must be signed in to change notification settings - Fork 5
/
api_op_update.go
164 lines (148 loc) · 10.8 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
163
164
// Package configuration contains auto-generated files. DO NOT MODIFY
package configuration
import (
"context"
"net/http"
"time"
"github.com/RJPearson94/twilio-sdk-go/client"
)
type UpdateConfigurationInputIntegration 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 UpdateConfigurationInputSkill struct {
Maximum bool `json:"maximum"`
Minimum int `validate:"required" json:"minimum"`
MultiValue bool `json:"multivalue"`
Name string `validate:"required" json:"name"`
}
type UpdateConfigurationInputTaskQueue struct {
Sid string `validate:"required" json:"sid"`
Targettable bool `json:"targettable"`
}
type UpdateConfigurationInputWorkerChannel 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 *[]UpdateConfigurationInputIntegration `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 *[]UpdateConfigurationInputSkill `json:"taskrouter_skills,omitempty"`
TaskRouterTargetTaskQueueSid *string `json:"taskrouter_target_taskqueue_sid,omitempty"`
TaskRouterTargetWorkflowSid *string `json:"taskrouter_target_workflow_sid,omitempty"`
TaskRouterTaskQueues *[]UpdateConfigurationInputTaskQueue `json:"taskrouter_taskqueues,omitempty"`
TaskRouterWorkerAttributes *map[string]interface{} `json:"taskrouter_worker_attributes,omitempty"`
TaskRouterWorkerChannels *map[string][]UpdateConfigurationInputWorkerChannel `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"`
WfmIntegrations *[]UpdateConfigurationInputIntegration `json:"wfm_integrations,omitempty"`
}
type UpdateConfigurationResponseIntegration 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 UpdateConfigurationResponseSkill struct {
Maximum bool `json:"maximum"`
Minimum int `json:"minimum"`
MultiValue bool `json:"multivalue"`
Name string `json:"name"`
}
type UpdateConfigurationResponseTaskQueue struct {
Sid string `json:"sid"`
Targettable bool `json:"targettable"`
}
type UpdateConfigurationResponseWorkerChannel 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 *[]UpdateConfigurationResponseIntegration `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 *[]UpdateConfigurationResponseSkill `json:"taskrouter_skills,omitempty"`
TaskRouterTargetTaskQueueSid string `json:"taskrouter_target_taskqueue_sid"`
TaskRouterTargetWorkflowSid string `json:"taskrouter_target_workflow_sid"`
TaskRouterTaskQueues *[]UpdateConfigurationResponseTaskQueue `json:"taskrouter_taskqueues,omitempty"`
TaskRouterWorkerAttributes *map[string]interface{} `json:"taskrouter_worker_attributes,omitempty"`
TaskRouterWorkerChannels *map[string][]UpdateConfigurationResponseWorkerChannel `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"`
WfmIntegrations *[]UpdateConfigurationResponseIntegration `json:"wfm_integrations,omitempty"`
}
// 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
}