voicetel 2.2.10 → 2.2.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +12 -11
- data/lib/voicetel/internal/transport.rb +4 -2
- data/lib/voicetel/models/account.rb +168 -0
- data/lib/voicetel/models/acl.rb +59 -0
- data/lib/voicetel/models/authentication.rb +52 -0
- data/lib/voicetel/models/base.rb +94 -0
- data/lib/voicetel/models/common.rb +20 -0
- data/lib/voicetel/models/e911.rb +72 -0
- data/lib/voicetel/models/gateways.rb +52 -0
- data/lib/voicetel/models/i_numbering.rb +140 -0
- data/lib/voicetel/models/lookups.rb +29 -0
- data/lib/voicetel/models/messaging.rb +143 -0
- data/lib/voicetel/models/numbers.rb +276 -0
- data/lib/voicetel/models/support.rb +191 -0
- data/lib/voicetel/models.rb +18 -0
- data/lib/voicetel/resources/account.rb +35 -12
- data/lib/voicetel/resources/acl.rb +14 -5
- data/lib/voicetel/resources/authentication.rb +14 -7
- data/lib/voicetel/resources/base.rb +6 -0
- data/lib/voicetel/resources/e911.rb +22 -6
- data/lib/voicetel/resources/gateways.rb +23 -6
- data/lib/voicetel/resources/i_numbering.rb +23 -8
- data/lib/voicetel/resources/lookups.rb +8 -2
- data/lib/voicetel/resources/messaging.rb +28 -8
- data/lib/voicetel/resources/numbers.rb +121 -28
- data/lib/voicetel/resources/support.rb +36 -10
- data/lib/voicetel/version.rb +3 -3
- data/lib/voicetel.rb +1 -0
- data/sig/voicetel.rbs +1252 -79
- data/voicetel.gemspec +3 -3
- metadata +18 -5
|
@@ -12,108 +12,201 @@ module VoiceTel
|
|
|
12
12
|
# DELETE /v2.2/numbers/messaging-campaign — return 200 with a body and
|
|
13
13
|
# are exposed via #unassign_campaign and #bulk_unassign_campaign.
|
|
14
14
|
class Numbers < Base
|
|
15
|
+
# GET /v2.2/numbers — every TN on the account.
|
|
16
|
+
#
|
|
17
|
+
# @return [Models::NumbersListData]
|
|
15
18
|
def list
|
|
16
|
-
@transport.request(:get, "/v2.2/numbers")
|
|
19
|
+
Models::NumbersListData.build(@transport.request(:get, "/v2.2/numbers"))
|
|
17
20
|
end
|
|
18
21
|
|
|
22
|
+
# POST /v2.2/numbers — attach a TN to the account.
|
|
23
|
+
#
|
|
24
|
+
# @return [Models::NumberAddData]
|
|
19
25
|
def add(body)
|
|
20
|
-
@transport.request(:post, "/v2.2/numbers", body: body)
|
|
26
|
+
Models::NumberAddData.build(@transport.request(:post, "/v2.2/numbers", body: payload(body)))
|
|
21
27
|
end
|
|
22
28
|
|
|
29
|
+
# GET /v2.2/numbers/{number} — routing/feature state for one TN.
|
|
30
|
+
#
|
|
31
|
+
# @return [Models::NumberDetail]
|
|
23
32
|
def get(number)
|
|
24
|
-
@transport.request(:get, "/v2.2/numbers/#{number}")
|
|
33
|
+
Models::NumberDetail.build(@transport.request(:get, "/v2.2/numbers/#{number}"))
|
|
25
34
|
end
|
|
26
35
|
|
|
27
|
-
# Returns nil on 204 No Content.
|
|
36
|
+
# DELETE /v2.2/numbers/{number}. Returns nil on 204 No Content.
|
|
28
37
|
def remove(number)
|
|
29
38
|
@transport.request(:delete, "/v2.2/numbers/#{number}")
|
|
30
39
|
end
|
|
31
40
|
|
|
32
41
|
# PATCH /v2.2/numbers/{number} — move a TN to another account.
|
|
42
|
+
#
|
|
43
|
+
# @return [Models::NumberMoveData]
|
|
33
44
|
def move(number, body)
|
|
34
|
-
@transport.request(:patch, "/v2.2/numbers/#{number}", body: body)
|
|
45
|
+
Models::NumberMoveData.build(@transport.request(:patch, "/v2.2/numbers/#{number}", body: payload(body)))
|
|
35
46
|
end
|
|
36
47
|
|
|
37
|
-
# POST /v2.2/numbers/{number}/release — release a TN back to the
|
|
48
|
+
# POST /v2.2/numbers/{number}/release — release a TN back to the
|
|
49
|
+
# network. Returns nil on 204 No Content.
|
|
38
50
|
def release(number)
|
|
39
51
|
@transport.request(:post, "/v2.2/numbers/#{number}/release")
|
|
40
52
|
end
|
|
41
53
|
|
|
54
|
+
# PUT /v2.2/numbers/{number}/route.
|
|
55
|
+
#
|
|
56
|
+
# @return [Models::NumberRouteData]
|
|
42
57
|
def set_route(number, body)
|
|
43
|
-
|
|
58
|
+
Models::NumberRouteData.build(
|
|
59
|
+
@transport.request(:put, "/v2.2/numbers/#{number}/route", body: payload(body))
|
|
60
|
+
)
|
|
44
61
|
end
|
|
45
62
|
|
|
63
|
+
# PUT /v2.2/numbers/{number}/translation.
|
|
64
|
+
#
|
|
65
|
+
# @return [Models::NumberTranslationData]
|
|
46
66
|
def set_translation(number, body)
|
|
47
|
-
|
|
67
|
+
Models::NumberTranslationData.build(
|
|
68
|
+
@transport.request(:put, "/v2.2/numbers/#{number}/translation", body: payload(body))
|
|
69
|
+
)
|
|
48
70
|
end
|
|
49
71
|
|
|
72
|
+
# PUT /v2.2/numbers/{number}/cnam — inbound CNAM toggle.
|
|
73
|
+
#
|
|
74
|
+
# @return [Models::NumberCnamData]
|
|
50
75
|
def set_cnam(number, body)
|
|
51
|
-
|
|
76
|
+
Models::NumberCnamData.build(
|
|
77
|
+
@transport.request(:put, "/v2.2/numbers/#{number}/cnam", body: payload(body))
|
|
78
|
+
)
|
|
52
79
|
end
|
|
53
80
|
|
|
81
|
+
# PUT /v2.2/numbers/{number}/lidb — outbound caller name.
|
|
82
|
+
#
|
|
83
|
+
# @return [Models::NumberLidbData]
|
|
54
84
|
def set_lidb(number, body)
|
|
55
|
-
|
|
85
|
+
Models::NumberLidbData.build(
|
|
86
|
+
@transport.request(:put, "/v2.2/numbers/#{number}/lidb", body: payload(body))
|
|
87
|
+
)
|
|
56
88
|
end
|
|
57
89
|
|
|
90
|
+
# GET /v2.2/numbers/{number}/fax.
|
|
91
|
+
#
|
|
92
|
+
# @return [Models::NumberFaxData]
|
|
58
93
|
def get_fax(number)
|
|
59
|
-
@transport.request(:get, "/v2.2/numbers/#{number}/fax")
|
|
94
|
+
Models::NumberFaxData.build(@transport.request(:get, "/v2.2/numbers/#{number}/fax"))
|
|
60
95
|
end
|
|
61
96
|
|
|
97
|
+
# PUT /v2.2/numbers/{number}/fax.
|
|
98
|
+
#
|
|
99
|
+
# @return [Models::NumberFaxData]
|
|
62
100
|
def set_fax(number, body)
|
|
63
|
-
|
|
101
|
+
Models::NumberFaxData.build(
|
|
102
|
+
@transport.request(:put, "/v2.2/numbers/#{number}/fax", body: payload(body))
|
|
103
|
+
)
|
|
64
104
|
end
|
|
65
105
|
|
|
66
|
-
# Returns nil on 204 No Content.
|
|
106
|
+
# DELETE /v2.2/numbers/{number}/fax. Returns nil on 204 No Content.
|
|
67
107
|
def remove_fax(number)
|
|
68
108
|
@transport.request(:delete, "/v2.2/numbers/#{number}/fax")
|
|
69
109
|
end
|
|
70
110
|
|
|
111
|
+
# PUT /v2.2/numbers/{number}/forward.
|
|
112
|
+
#
|
|
113
|
+
# @return [Models::NumberForwardData]
|
|
71
114
|
def set_forward(number, body)
|
|
72
|
-
|
|
115
|
+
Models::NumberForwardData.build(
|
|
116
|
+
@transport.request(:put, "/v2.2/numbers/#{number}/forward", body: payload(body))
|
|
117
|
+
)
|
|
73
118
|
end
|
|
74
119
|
|
|
75
|
-
# Returns nil on 204 No Content.
|
|
120
|
+
# DELETE /v2.2/numbers/{number}/forward. Returns nil on 204 No Content.
|
|
76
121
|
def remove_forward(number)
|
|
77
122
|
@transport.request(:delete, "/v2.2/numbers/#{number}/forward")
|
|
78
123
|
end
|
|
79
124
|
|
|
125
|
+
# GET /v2.2/numbers/{number}/sms.
|
|
126
|
+
#
|
|
127
|
+
# @return [Models::NumberSmsData]
|
|
80
128
|
def get_sms(number)
|
|
81
|
-
@transport.request(:get, "/v2.2/numbers/#{number}/sms")
|
|
129
|
+
Models::NumberSmsData.build(@transport.request(:get, "/v2.2/numbers/#{number}/sms"))
|
|
82
130
|
end
|
|
83
131
|
|
|
132
|
+
# PUT /v2.2/numbers/{number}/sms.
|
|
133
|
+
#
|
|
134
|
+
# @return [Models::NumberSmsData]
|
|
84
135
|
def set_sms(number, body)
|
|
85
|
-
|
|
136
|
+
Models::NumberSmsData.build(
|
|
137
|
+
@transport.request(:put, "/v2.2/numbers/#{number}/sms", body: payload(body))
|
|
138
|
+
)
|
|
86
139
|
end
|
|
87
140
|
|
|
88
|
-
# Returns nil on 204 No Content.
|
|
141
|
+
# DELETE /v2.2/numbers/{number}/sms. Returns nil on 204 No Content.
|
|
89
142
|
def remove_sms(number)
|
|
90
143
|
@transport.request(:delete, "/v2.2/numbers/#{number}/sms")
|
|
91
144
|
end
|
|
92
145
|
|
|
146
|
+
# GET /v2.2/numbers/{number}/messaging — current messaging routing
|
|
147
|
+
# state, including an async path-C enablement job in `pending` while
|
|
148
|
+
# one is in flight.
|
|
149
|
+
#
|
|
150
|
+
# @return [Models::NumberMessagingState]
|
|
93
151
|
def get_messaging(number)
|
|
94
|
-
@transport.request(:get, "/v2.2/numbers/#{number}/messaging")
|
|
152
|
+
Models::NumberMessagingState.build(@transport.request(:get, "/v2.2/numbers/#{number}/messaging"))
|
|
95
153
|
end
|
|
96
154
|
|
|
155
|
+
# PATCH /v2.2/numbers/{number}/messaging — update inbound and/or
|
|
156
|
+
# outbound routing.
|
|
157
|
+
#
|
|
158
|
+
# @return [Models::NumberMessagingPatchData]
|
|
97
159
|
def patch_messaging(number, body)
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
160
|
+
Models::NumberMessagingPatchData.build(
|
|
161
|
+
@transport.request(:patch, "/v2.2/numbers/#{number}/messaging", body: payload(body))
|
|
162
|
+
)
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
# PUT /v2.2/numbers/{number}/messaging-campaign — bind a number to a
|
|
166
|
+
# 10DLC campaign. The campaign must be available to the account and
|
|
167
|
+
# ACTIVE; the number is enabled on the messaging path the campaign
|
|
168
|
+
# lives on. Idempotent: a number already bound to the campaign reports
|
|
169
|
+
# status "already". Path-B assignments complete synchronously (status
|
|
170
|
+
# "enabled"); path-C assignments are provisioned asynchronously
|
|
171
|
+
# (status "pending" — poll #get_messaging until pending.state is
|
|
172
|
+
# "done" or "failed").
|
|
173
|
+
#
|
|
174
|
+
# @return [Models::NumberMessagingCampaignAssignData]
|
|
101
175
|
def assign_campaign(number, body)
|
|
102
|
-
|
|
176
|
+
Models::NumberMessagingCampaignAssignData.build(
|
|
177
|
+
@transport.request(:put, "/v2.2/numbers/#{number}/messaging-campaign", body: payload(body))
|
|
178
|
+
)
|
|
103
179
|
end
|
|
104
180
|
|
|
105
|
-
#
|
|
181
|
+
# DELETE /v2.2/numbers/{number}/messaging-campaign — returns 200 with
|
|
182
|
+
# a body, not 204.
|
|
183
|
+
#
|
|
184
|
+
# @return [Models::NumberMessagingCampaignUnassignData]
|
|
106
185
|
def unassign_campaign(number)
|
|
107
|
-
|
|
186
|
+
Models::NumberMessagingCampaignUnassignData.build(
|
|
187
|
+
@transport.request(:delete, "/v2.2/numbers/#{number}/messaging-campaign")
|
|
188
|
+
)
|
|
108
189
|
end
|
|
109
190
|
|
|
110
|
-
#
|
|
191
|
+
# DELETE /v2.2/numbers/messaging-campaign — bulk unassign; returns 200
|
|
192
|
+
# with a body, not 204.
|
|
193
|
+
#
|
|
194
|
+
# @return [Models::NumbersMessagingCampaignUnassignData]
|
|
111
195
|
def bulk_unassign_campaign(numbers)
|
|
112
|
-
|
|
196
|
+
Models::NumbersMessagingCampaignUnassignData.build(
|
|
197
|
+
@transport.request(:delete, "/v2.2/numbers/messaging-campaign", body: { numbers: numbers })
|
|
198
|
+
)
|
|
113
199
|
end
|
|
114
200
|
|
|
201
|
+
# PATCH /v2.2/numbers/{number}/port-out-pin — set the port-out PIN.
|
|
202
|
+
# Idempotent: a PIN already on file is locked for 30 days and returned
|
|
203
|
+
# unchanged with changed=false.
|
|
204
|
+
#
|
|
205
|
+
# @return [Models::PortOutPinUpdateData]
|
|
115
206
|
def set_port_out_pin(number, body)
|
|
116
|
-
|
|
207
|
+
Models::PortOutPinUpdateData.build(
|
|
208
|
+
@transport.request(:patch, "/v2.2/numbers/#{number}/port-out-pin", body: payload(body))
|
|
209
|
+
)
|
|
117
210
|
end
|
|
118
211
|
end
|
|
119
212
|
end
|
|
@@ -6,37 +6,63 @@ module VoiceTel
|
|
|
6
6
|
module Resources
|
|
7
7
|
# SupportService — support tickets (create, read, update, delete, reply).
|
|
8
8
|
#
|
|
9
|
-
# On the wire, SupportConversation
|
|
10
|
-
# (1015, 2114, ...), NOT a phone number
|
|
11
|
-
#
|
|
9
|
+
# On the wire, SupportConversation's `number` field is the ticket
|
|
10
|
+
# sequence integer (1015, 2114, ...), NOT a phone number; the model
|
|
11
|
+
# exposes it as Models::SupportConversation#ticket_number.
|
|
12
12
|
class Support < Base
|
|
13
|
+
# GET /v2.2/support/tickets — every ticket on the account.
|
|
14
|
+
#
|
|
15
|
+
# @return [Models::TicketsListData]
|
|
13
16
|
def list
|
|
14
|
-
@transport.request(:get, "/v2.2/support/tickets")
|
|
17
|
+
Models::TicketsListData.build(@transport.request(:get, "/v2.2/support/tickets"))
|
|
15
18
|
end
|
|
16
19
|
|
|
20
|
+
# POST /v2.2/support/tickets — open a ticket.
|
|
21
|
+
#
|
|
22
|
+
# @return [Models::TicketData]
|
|
17
23
|
def create(body)
|
|
18
|
-
|
|
24
|
+
Models::TicketData.build(
|
|
25
|
+
@transport.request(:post, "/v2.2/support/tickets", body: payload(body))
|
|
26
|
+
)
|
|
19
27
|
end
|
|
20
28
|
|
|
29
|
+
# GET /v2.2/support/tickets/{id} — one ticket.
|
|
30
|
+
#
|
|
31
|
+
# @return [Models::TicketData]
|
|
21
32
|
def get(id)
|
|
22
|
-
@transport.request(:get, "/v2.2/support/tickets/#{id}")
|
|
33
|
+
Models::TicketData.build(@transport.request(:get, "/v2.2/support/tickets/#{id}"))
|
|
23
34
|
end
|
|
24
35
|
|
|
36
|
+
# PUT /v2.2/support/tickets/{id} — update a ticket.
|
|
37
|
+
#
|
|
38
|
+
# @return [Models::TicketUpdateData]
|
|
25
39
|
def update(id, body)
|
|
26
|
-
|
|
40
|
+
Models::TicketUpdateData.build(
|
|
41
|
+
@transport.request(:put, "/v2.2/support/tickets/#{id}", body: payload(body))
|
|
42
|
+
)
|
|
27
43
|
end
|
|
28
44
|
|
|
29
|
-
# Returns nil on 204 No Content.
|
|
45
|
+
# DELETE /v2.2/support/tickets/{id}. Returns nil on 204 No Content.
|
|
30
46
|
def delete(id)
|
|
31
47
|
@transport.request(:delete, "/v2.2/support/tickets/#{id}")
|
|
32
48
|
end
|
|
33
49
|
|
|
50
|
+
# GET /v2.2/support/tickets/{id}/messages — the ticket's threads.
|
|
51
|
+
#
|
|
52
|
+
# @return [Models::TicketThreadsData]
|
|
34
53
|
def messages(id)
|
|
35
|
-
|
|
54
|
+
Models::TicketThreadsData.build(
|
|
55
|
+
@transport.request(:get, "/v2.2/support/tickets/#{id}/messages")
|
|
56
|
+
)
|
|
36
57
|
end
|
|
37
58
|
|
|
59
|
+
# POST /v2.2/support/tickets/{id}/replies — reply to a ticket.
|
|
60
|
+
#
|
|
61
|
+
# @return [Models::TicketReplyData]
|
|
38
62
|
def reply(id, body)
|
|
39
|
-
|
|
63
|
+
Models::TicketReplyData.build(
|
|
64
|
+
@transport.request(:post, "/v2.2/support/tickets/#{id}/replies", body: payload(body))
|
|
65
|
+
)
|
|
40
66
|
end
|
|
41
67
|
end
|
|
42
68
|
end
|
data/lib/voicetel/version.rb
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
module VoiceTel
|
|
4
4
|
# The semantic version of the VoiceTel Ruby SDK. This tracks the API version
|
|
5
|
-
# it targets (currently v2.2.
|
|
6
|
-
VERSION = "2.2.
|
|
5
|
+
# it targets (currently v2.2.14).
|
|
6
|
+
VERSION = "2.2.14"
|
|
7
7
|
|
|
8
8
|
# The VoiceTel REST API version this SDK targets.
|
|
9
|
-
API_VERSION = "v2.2.
|
|
9
|
+
API_VERSION = "v2.2.14"
|
|
10
10
|
|
|
11
11
|
# Default production API endpoint.
|
|
12
12
|
DEFAULT_BASE_URL = "https://api.voicetel.com"
|
data/lib/voicetel.rb
CHANGED