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.
@@ -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 network.
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
- @transport.request(:put, "/v2.2/numbers/#{number}/route", body: body)
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
- @transport.request(:put, "/v2.2/numbers/#{number}/translation", body: body)
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
- @transport.request(:put, "/v2.2/numbers/#{number}/cnam", body: body)
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
- @transport.request(:put, "/v2.2/numbers/#{number}/lidb", body: body)
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
- @transport.request(:put, "/v2.2/numbers/#{number}/fax", body: body)
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
- @transport.request(:put, "/v2.2/numbers/#{number}/forward", body: body)
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
- @transport.request(:put, "/v2.2/numbers/#{number}/sms", body: body)
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
- @transport.request(:patch, "/v2.2/numbers/#{number}/messaging", body: body)
99
- end
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
- @transport.request(:put, "/v2.2/numbers/#{number}/messaging-campaign", body: body)
176
+ Models::NumberMessagingCampaignAssignData.build(
177
+ @transport.request(:put, "/v2.2/numbers/#{number}/messaging-campaign", body: payload(body))
178
+ )
103
179
  end
104
180
 
105
- # Returns response data (200 with body, not 204).
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
- @transport.request(:delete, "/v2.2/numbers/#{number}/messaging-campaign")
186
+ Models::NumberMessagingCampaignUnassignData.build(
187
+ @transport.request(:delete, "/v2.2/numbers/#{number}/messaging-campaign")
188
+ )
108
189
  end
109
190
 
110
- # Returns response data (200 with body, not 204).
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
- @transport.request(:delete, "/v2.2/numbers/messaging-campaign", body: { numbers: numbers })
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
- @transport.request(:patch, "/v2.2/numbers/#{number}/port-out-pin", body: body)
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.number is a ticket sequence integer
10
- # (1015, 2114, ...), NOT a phone number. When the spec uses `number`
11
- # in this context, that's the ticket id.
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
- @transport.request(:post, "/v2.2/support/tickets", body: body)
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
- @transport.request(:put, "/v2.2/support/tickets/#{id}", body: body)
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
- @transport.request(:get, "/v2.2/support/tickets/#{id}/messages")
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
- @transport.request(:post, "/v2.2/support/tickets/#{id}/replies", body: body)
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
@@ -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.10).
6
- VERSION = "2.2.10"
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.10"
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
@@ -2,6 +2,7 @@
2
2
 
3
3
  require_relative "voicetel/version"
4
4
  require_relative "voicetel/api_error"
5
+ require_relative "voicetel/models"
5
6
  require_relative "voicetel/internal/transport"
6
7
  require_relative "voicetel/resources/account"
7
8
  require_relative "voicetel/resources/acl"