dialmycalls_client 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (162) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +201 -0
  3. data/README.md +186 -0
  4. data/dialmycalls_client-1.0.0.gem +0 -0
  5. data/dialmycalls_client.gemspec +55 -0
  6. data/docs/Accessaccount.md +12 -0
  7. data/docs/Account.md +9 -0
  8. data/docs/AccountsApi.md +324 -0
  9. data/docs/CallRecipient.md +19 -0
  10. data/docs/CallerIdsApi.md +386 -0
  11. data/docs/Callerid.md +13 -0
  12. data/docs/CallsApi.md +278 -0
  13. data/docs/Callservice.md +17 -0
  14. data/docs/Contact.md +18 -0
  15. data/docs/ContactAttributes.md +11 -0
  16. data/docs/ContactsApi.md +330 -0
  17. data/docs/CreateAccessAccountParameters.md +10 -0
  18. data/docs/CreateCallParameters.md +18 -0
  19. data/docs/CreateCallerIdParameters.md +9 -0
  20. data/docs/CreateContactParameters.md +14 -0
  21. data/docs/CreateGroupParameters.md +8 -0
  22. data/docs/CreateRecordingByPhoneParameters.md +12 -0
  23. data/docs/CreateRecordingByUrlParameters.md +9 -0
  24. data/docs/CreateRecordingParameters.md +11 -0
  25. data/docs/CreateTextParameters.md +17 -0
  26. data/docs/CreateUnverifiedCallerIdParameters.md +9 -0
  27. data/docs/DoNotContactsApi.md +62 -0
  28. data/docs/Donotcontact.md +12 -0
  29. data/docs/Group.md +12 -0
  30. data/docs/GroupsApi.md +277 -0
  31. data/docs/Identifier.md +8 -0
  32. data/docs/Incomingtext.md +13 -0
  33. data/docs/Keyword.md +12 -0
  34. data/docs/KeywordsApi.md +168 -0
  35. data/docs/Polling.md +10 -0
  36. data/docs/PushToListenAgain.md +9 -0
  37. data/docs/PushToOptOut.md +9 -0
  38. data/docs/PushToRecord.md +9 -0
  39. data/docs/PushToTalk.md +12 -0
  40. data/docs/Recording.md +15 -0
  41. data/docs/RecordingsApi.md +383 -0
  42. data/docs/Service.md +16 -0
  43. data/docs/Shortcode.md +11 -0
  44. data/docs/TextRecipient.md +13 -0
  45. data/docs/TextsApi.md +492 -0
  46. data/docs/UpdateAccessAccountByIdParameters.md +10 -0
  47. data/docs/UpdateCallerIdByIdParameters.md +8 -0
  48. data/docs/UpdateContactByIdParameters.md +14 -0
  49. data/docs/UpdateGroupByIdParameters.md +8 -0
  50. data/docs/UpdateRecordingByIdParameters.md +8 -0
  51. data/docs/UpdateVanityNumberByIdParameters.md +12 -0
  52. data/docs/VanityNumbersApi.md +224 -0
  53. data/docs/Vanitynumber.md +16 -0
  54. data/docs/VerifyCallerIdByIdParameters.md +8 -0
  55. data/git_push.sh +67 -0
  56. data/lib/dialmycalls_client/api/accounts_api.rb +375 -0
  57. data/lib/dialmycalls_client/api/caller_ids_api.rb +440 -0
  58. data/lib/dialmycalls_client/api/calls_api.rb +321 -0
  59. data/lib/dialmycalls_client/api/contacts_api.rb +379 -0
  60. data/lib/dialmycalls_client/api/do_not_contacts_api.rb +90 -0
  61. data/lib/dialmycalls_client/api/groups_api.rb +322 -0
  62. data/lib/dialmycalls_client/api/keywords_api.rb +204 -0
  63. data/lib/dialmycalls_client/api/recordings_api.rb +436 -0
  64. data/lib/dialmycalls_client/api/texts_api.rb +547 -0
  65. data/lib/dialmycalls_client/api/vanity_numbers_api.rb +265 -0
  66. data/lib/dialmycalls_client/api_client.rb +379 -0
  67. data/lib/dialmycalls_client/api_error.rb +47 -0
  68. data/lib/dialmycalls_client/configuration.rb +214 -0
  69. data/lib/dialmycalls_client/models/accessaccount.rb +240 -0
  70. data/lib/dialmycalls_client/models/account.rb +210 -0
  71. data/lib/dialmycalls_client/models/call_recipient.rb +310 -0
  72. data/lib/dialmycalls_client/models/callerid.rb +250 -0
  73. data/lib/dialmycalls_client/models/callservice.rb +290 -0
  74. data/lib/dialmycalls_client/models/contact.rb +300 -0
  75. data/lib/dialmycalls_client/models/contact_attributes.rb +230 -0
  76. data/lib/dialmycalls_client/models/create_access_account_parameters.rb +220 -0
  77. data/lib/dialmycalls_client/models/create_call_parameters.rb +304 -0
  78. data/lib/dialmycalls_client/models/create_caller_id_parameters.rb +210 -0
  79. data/lib/dialmycalls_client/models/create_contact_parameters.rb +262 -0
  80. data/lib/dialmycalls_client/models/create_group_parameters.rb +200 -0
  81. data/lib/dialmycalls_client/models/create_recording_by_phone_parameters.rb +240 -0
  82. data/lib/dialmycalls_client/models/create_recording_by_url_parameters.rb +210 -0
  83. data/lib/dialmycalls_client/models/create_recording_parameters.rb +230 -0
  84. data/lib/dialmycalls_client/models/create_text_parameters.rb +294 -0
  85. data/lib/dialmycalls_client/models/create_unverified_caller_id_parameters.rb +210 -0
  86. data/lib/dialmycalls_client/models/donotcontact.rb +240 -0
  87. data/lib/dialmycalls_client/models/group.rb +240 -0
  88. data/lib/dialmycalls_client/models/identifier.rb +200 -0
  89. data/lib/dialmycalls_client/models/incomingtext.rb +250 -0
  90. data/lib/dialmycalls_client/models/keyword.rb +240 -0
  91. data/lib/dialmycalls_client/models/polling.rb +220 -0
  92. data/lib/dialmycalls_client/models/push_to_listen_again.rb +210 -0
  93. data/lib/dialmycalls_client/models/push_to_opt_out.rb +210 -0
  94. data/lib/dialmycalls_client/models/push_to_record.rb +210 -0
  95. data/lib/dialmycalls_client/models/push_to_talk.rb +240 -0
  96. data/lib/dialmycalls_client/models/recording.rb +270 -0
  97. data/lib/dialmycalls_client/models/service.rb +280 -0
  98. data/lib/dialmycalls_client/models/shortcode.rb +230 -0
  99. data/lib/dialmycalls_client/models/text_recipient.rb +250 -0
  100. data/lib/dialmycalls_client/models/update_access_account_by_id_parameters.rb +220 -0
  101. data/lib/dialmycalls_client/models/update_caller_id_by_id_parameters.rb +200 -0
  102. data/lib/dialmycalls_client/models/update_contact_by_id_parameters.rb +262 -0
  103. data/lib/dialmycalls_client/models/update_group_by_id_parameters.rb +200 -0
  104. data/lib/dialmycalls_client/models/update_recording_by_id_parameters.rb +200 -0
  105. data/lib/dialmycalls_client/models/update_vanity_number_by_id_parameters.rb +242 -0
  106. data/lib/dialmycalls_client/models/vanitynumber.rb +280 -0
  107. data/lib/dialmycalls_client/models/verify_caller_id_by_id_parameters.rb +200 -0
  108. data/lib/dialmycalls_client/version.rb +26 -0
  109. data/lib/dialmycalls_client.rb +99 -0
  110. data/spec/api/accounts_api_spec.rb +118 -0
  111. data/spec/api/caller_ids_api_spec.rb +132 -0
  112. data/spec/api/calls_api_spec.rb +107 -0
  113. data/spec/api/contacts_api_spec.rb +119 -0
  114. data/spec/api/do_not_contacts_api_spec.rb +58 -0
  115. data/spec/api/groups_api_spec.rb +107 -0
  116. data/spec/api/keywords_api_spec.rb +82 -0
  117. data/spec/api/recordings_api_spec.rb +131 -0
  118. data/spec/api/texts_api_spec.rb +155 -0
  119. data/spec/api/vanity_numbers_api_spec.rb +95 -0
  120. data/spec/api_client_spec.rb +237 -0
  121. data/spec/configuration_spec.rb +53 -0
  122. data/spec/models/accessaccount_spec.rb +77 -0
  123. data/spec/models/account_spec.rb +59 -0
  124. data/spec/models/call_recipient_spec.rb +119 -0
  125. data/spec/models/callerid_spec.rb +83 -0
  126. data/spec/models/callservice_spec.rb +107 -0
  127. data/spec/models/contact_attributes_spec.rb +71 -0
  128. data/spec/models/contact_spec.rb +113 -0
  129. data/spec/models/create_access_account_parameters_spec.rb +65 -0
  130. data/spec/models/create_call_parameters_spec.rb +113 -0
  131. data/spec/models/create_caller_id_parameters_spec.rb +59 -0
  132. data/spec/models/create_contact_parameters_spec.rb +89 -0
  133. data/spec/models/create_group_parameters_spec.rb +53 -0
  134. data/spec/models/create_recording_by_phone_parameters_spec.rb +77 -0
  135. data/spec/models/create_recording_by_url_parameters_spec.rb +59 -0
  136. data/spec/models/create_recording_parameters_spec.rb +71 -0
  137. data/spec/models/create_text_parameters_spec.rb +107 -0
  138. data/spec/models/create_unverified_caller_id_parameters_spec.rb +59 -0
  139. data/spec/models/donotcontact_spec.rb +77 -0
  140. data/spec/models/group_spec.rb +77 -0
  141. data/spec/models/identifier_spec.rb +53 -0
  142. data/spec/models/incomingtext_spec.rb +83 -0
  143. data/spec/models/keyword_spec.rb +77 -0
  144. data/spec/models/polling_spec.rb +65 -0
  145. data/spec/models/push_to_listen_again_spec.rb +59 -0
  146. data/spec/models/push_to_opt_out_spec.rb +59 -0
  147. data/spec/models/push_to_record_spec.rb +59 -0
  148. data/spec/models/push_to_talk_spec.rb +77 -0
  149. data/spec/models/recording_spec.rb +95 -0
  150. data/spec/models/service_spec.rb +101 -0
  151. data/spec/models/shortcode_spec.rb +71 -0
  152. data/spec/models/text_recipient_spec.rb +83 -0
  153. data/spec/models/update_access_account_by_id_parameters_spec.rb +65 -0
  154. data/spec/models/update_caller_id_by_id_parameters_spec.rb +53 -0
  155. data/spec/models/update_contact_by_id_parameters_spec.rb +89 -0
  156. data/spec/models/update_group_by_id_parameters_spec.rb +53 -0
  157. data/spec/models/update_recording_by_id_parameters_spec.rb +53 -0
  158. data/spec/models/update_vanity_number_by_id_parameters_spec.rb +77 -0
  159. data/spec/models/vanitynumber_spec.rb +101 -0
  160. data/spec/models/verify_caller_id_by_id_parameters_spec.rb +53 -0
  161. data/spec/spec_helper.rb +122 -0
  162. metadata +436 -0
@@ -0,0 +1,324 @@
1
+ # DialMyCalls::AccountsApi
2
+
3
+ All URIs are relative to *https://api.dialmycalls.com/2.0*
4
+
5
+ Method | HTTP request | Description
6
+ ------------- | ------------- | -------------
7
+ [**create_access_account**](AccountsApi.md#create_access_account) | **POST** /accessaccount | Add Access Account
8
+ [**delete_access_account_by_id**](AccountsApi.md#delete_access_account_by_id) | **DELETE** /accessaccount/{AccessAccountId} | Delete Access Account
9
+ [**get_access_account_by_id**](AccountsApi.md#get_access_account_by_id) | **GET** /accessaccount/{AccessAccountId} | Get Access Account
10
+ [**get_access_accounts**](AccountsApi.md#get_access_accounts) | **GET** /accessaccounts | List Access Accounts
11
+ [**get_account**](AccountsApi.md#get_account) | **GET** /account | Get Account
12
+ [**update_access_account_by_id**](AccountsApi.md#update_access_account_by_id) | **PUT** /accessaccount/{AccessAccountId} | Update Access Account
13
+
14
+
15
+ # **create_access_account**
16
+ > Object create_access_account(create_access_account_parameters)
17
+
18
+ Add Access Account
19
+
20
+ Add a access account. <br><br> Returns a access account object on success, and returns an error otherwise. <br><br> ``` curl -i -H \"Content-Type: application/json\" -X POST -d \"{\\\"email\\\": \\\"test@test.com\\\", \\\"password\\\": \\\"1234A5678\\\", \\\"name\\\": \\\"John Doe\\\"}\" https://$API_KEY@api.dialmycalls.com/2.0/accessaccount ```
21
+
22
+ ### Example
23
+ ```ruby
24
+ # load the gem
25
+ require 'dialmycalls_client'
26
+ # setup authorization
27
+ DialMyCalls.configure do |config|
28
+ # Configure API key authorization: api_key
29
+ config.api_key['X-Auth-ApiKey'] = 'YOUR API KEY'
30
+ end
31
+
32
+ api_instance = DialMyCalls::AccountsApi.new
33
+
34
+ create_access_account_parameters = DialMyCalls::CreateAccessAccountParameters.new # CreateAccessAccountParameters | Request body
35
+
36
+
37
+ begin
38
+ #Add Access Account
39
+ result = api_instance.create_access_account(create_access_account_parameters)
40
+ p result
41
+ rescue DialMyCalls::ApiError => e
42
+ puts "Exception when calling AccountsApi->create_access_account: #{e}"
43
+ end
44
+ ```
45
+
46
+ ### Parameters
47
+
48
+ Name | Type | Description | Notes
49
+ ------------- | ------------- | ------------- | -------------
50
+ **create_access_account_parameters** | [**CreateAccessAccountParameters**](CreateAccessAccountParameters.md)| Request body |
51
+
52
+ ### Return type
53
+
54
+ **Object**
55
+
56
+ ### Authorization
57
+
58
+ [api_key](../README.md#api_key)
59
+
60
+ ### HTTP request headers
61
+
62
+ - **Content-Type**: application/json, application/xml
63
+ - **Accept**: application/json, application/xml
64
+
65
+
66
+
67
+ # **delete_access_account_by_id**
68
+ > Object delete_access_account_by_id(access_account_id)
69
+
70
+ Delete Access Account
71
+
72
+ Delete a access account. <br><br> Returns the following if a valid identifier was provided, and returns an error otherwise. <br><br> ``` curl -i -H \"Content-Type: application/json\" -X DELETE https://$API_KEY@api.dialmycalls.com/2.0/accessaccount/$ACCESSACCOUNT_ID ```
73
+
74
+ ### Example
75
+ ```ruby
76
+ # load the gem
77
+ require 'dialmycalls_client'
78
+ # setup authorization
79
+ DialMyCalls.configure do |config|
80
+ # Configure API key authorization: api_key
81
+ config.api_key['X-Auth-ApiKey'] = 'YOUR API KEY'
82
+ end
83
+
84
+ api_instance = DialMyCalls::AccountsApi.new
85
+
86
+ access_account_id = "access_account_id_example" # String | AccessAccountId
87
+
88
+
89
+ begin
90
+ #Delete Access Account
91
+ result = api_instance.delete_access_account_by_id(access_account_id)
92
+ p result
93
+ rescue DialMyCalls::ApiError => e
94
+ puts "Exception when calling AccountsApi->delete_access_account_by_id: #{e}"
95
+ end
96
+ ```
97
+
98
+ ### Parameters
99
+
100
+ Name | Type | Description | Notes
101
+ ------------- | ------------- | ------------- | -------------
102
+ **access_account_id** | **String**| AccessAccountId |
103
+
104
+ ### Return type
105
+
106
+ **Object**
107
+
108
+ ### Authorization
109
+
110
+ [api_key](../README.md#api_key)
111
+
112
+ ### HTTP request headers
113
+
114
+ - **Content-Type**: application/json, application/xml
115
+ - **Accept**: application/json, application/xml
116
+
117
+
118
+
119
+ # **get_access_account_by_id**
120
+ > Object get_access_account_by_id(access_account_id)
121
+
122
+ Get Access Account
123
+
124
+ Retrieve an access account. <br><br> Returns a access account object if a valid identifier was provided, and returns an error otherwise. <br><br> ``` curl -i -H \"Content-Type: application/json\" -X GET https://$API_KEY@api.dialmycalls.com/2.0/accessaccount/$ACCESSACCOUNT_ID ```
125
+
126
+ ### Example
127
+ ```ruby
128
+ # load the gem
129
+ require 'dialmycalls_client'
130
+ # setup authorization
131
+ DialMyCalls.configure do |config|
132
+ # Configure API key authorization: api_key
133
+ config.api_key['X-Auth-ApiKey'] = 'YOUR API KEY'
134
+ end
135
+
136
+ api_instance = DialMyCalls::AccountsApi.new
137
+
138
+ access_account_id = "access_account_id_example" # String | AccessAccountId
139
+
140
+
141
+ begin
142
+ #Get Access Account
143
+ result = api_instance.get_access_account_by_id(access_account_id)
144
+ p result
145
+ rescue DialMyCalls::ApiError => e
146
+ puts "Exception when calling AccountsApi->get_access_account_by_id: #{e}"
147
+ end
148
+ ```
149
+
150
+ ### Parameters
151
+
152
+ Name | Type | Description | Notes
153
+ ------------- | ------------- | ------------- | -------------
154
+ **access_account_id** | **String**| AccessAccountId |
155
+
156
+ ### Return type
157
+
158
+ **Object**
159
+
160
+ ### Authorization
161
+
162
+ [api_key](../README.md#api_key)
163
+
164
+ ### HTTP request headers
165
+
166
+ - **Content-Type**: application/json, application/xml
167
+ - **Accept**: application/json, application/xml
168
+
169
+
170
+
171
+ # **get_access_accounts**
172
+ > Object get_access_accounts(opts)
173
+
174
+ List Access Accounts
175
+
176
+ Retrieve a list of access accounts. <br><br> Returns a list of access account objects. <br><br> ``` curl -i -H \"Content-Type: application/json\" -X GET https://$API_KEY@api.dialmycalls.com/2.0/accessaccounts ```
177
+
178
+ ### Example
179
+ ```ruby
180
+ # load the gem
181
+ require 'dialmycalls_client'
182
+ # setup authorization
183
+ DialMyCalls.configure do |config|
184
+ # Configure API key authorization: api_key
185
+ config.api_key['X-Auth-ApiKey'] = 'YOUR API KEY'
186
+ end
187
+
188
+ api_instance = DialMyCalls::AccountsApi.new
189
+
190
+ opts = {
191
+ range: "range_example" # String | Range (ie \"records=201-300\") of accessaccounts requested
192
+ }
193
+
194
+ begin
195
+ #List Access Accounts
196
+ result = api_instance.get_access_accounts(opts)
197
+ p result
198
+ rescue DialMyCalls::ApiError => e
199
+ puts "Exception when calling AccountsApi->get_access_accounts: #{e}"
200
+ end
201
+ ```
202
+
203
+ ### Parameters
204
+
205
+ Name | Type | Description | Notes
206
+ ------------- | ------------- | ------------- | -------------
207
+ **range** | **String**| Range (ie \&quot;records&#x3D;201-300\&quot;) of accessaccounts requested | [optional]
208
+
209
+ ### Return type
210
+
211
+ **Object**
212
+
213
+ ### Authorization
214
+
215
+ [api_key](../README.md#api_key)
216
+
217
+ ### HTTP request headers
218
+
219
+ - **Content-Type**: application/json, application/xml
220
+ - **Accept**: application/json, application/xml
221
+
222
+
223
+
224
+ # **get_account**
225
+ > Object get_account
226
+
227
+ Get Account
228
+
229
+ Retrieve account details. <br><br> Returns a account object if a valid identifier was provided, and returns an error otherwise. <br><br> ``` curl -i -H \"Content-Type: application/json\" -X GET https://$API_KEY@api.dialmycalls.com/2.0/account ```
230
+
231
+ ### Example
232
+ ```ruby
233
+ # load the gem
234
+ require 'dialmycalls_client'
235
+ # setup authorization
236
+ DialMyCalls.configure do |config|
237
+ # Configure API key authorization: api_key
238
+ config.api_key['X-Auth-ApiKey'] = 'YOUR API KEY'
239
+ end
240
+
241
+ api_instance = DialMyCalls::AccountsApi.new
242
+
243
+ begin
244
+ #Get Account
245
+ result = api_instance.get_account
246
+ p result
247
+ rescue DialMyCalls::ApiError => e
248
+ puts "Exception when calling AccountsApi->get_account: #{e}"
249
+ end
250
+ ```
251
+
252
+ ### Parameters
253
+ This endpoint does not need any parameter.
254
+
255
+ ### Return type
256
+
257
+ **Object**
258
+
259
+ ### Authorization
260
+
261
+ [api_key](../README.md#api_key)
262
+
263
+ ### HTTP request headers
264
+
265
+ - **Content-Type**: application/json, application/xml
266
+ - **Accept**: application/json, application/xml
267
+
268
+
269
+
270
+ # **update_access_account_by_id**
271
+ > Object update_access_account_by_id(update_access_account_by_id_parameters, access_account_id)
272
+
273
+ Update Access Account
274
+
275
+ Update an existing access account. <br><br> Returns a access account object if a valid identifier was provided and input validation passed, and returns an error otherwise. <br><br> ``` curl -i -H \"Content-Type: application/json\" -X PUT -d \"{\\\"name\\\": \\\"New Name\\\"}\" https://$API_KEY@api.dialmycalls.com/2.0/accessaccount/$ACCESSACCOUNT_ID ```
276
+
277
+ ### Example
278
+ ```ruby
279
+ # load the gem
280
+ require 'dialmycalls_client'
281
+ # setup authorization
282
+ DialMyCalls.configure do |config|
283
+ # Configure API key authorization: api_key
284
+ config.api_key['X-Auth-ApiKey'] = 'YOUR API KEY'
285
+ end
286
+
287
+ api_instance = DialMyCalls::AccountsApi.new
288
+
289
+ update_access_account_by_id_parameters = DialMyCalls::UpdateAccessAccountByIdParameters.new # UpdateAccessAccountByIdParameters | Request body
290
+
291
+ access_account_id = "access_account_id_example" # String | AccessAccountId
292
+
293
+
294
+ begin
295
+ #Update Access Account
296
+ result = api_instance.update_access_account_by_id(update_access_account_by_id_parameters, access_account_id)
297
+ p result
298
+ rescue DialMyCalls::ApiError => e
299
+ puts "Exception when calling AccountsApi->update_access_account_by_id: #{e}"
300
+ end
301
+ ```
302
+
303
+ ### Parameters
304
+
305
+ Name | Type | Description | Notes
306
+ ------------- | ------------- | ------------- | -------------
307
+ **update_access_account_by_id_parameters** | [**UpdateAccessAccountByIdParameters**](UpdateAccessAccountByIdParameters.md)| Request body |
308
+ **access_account_id** | **String**| AccessAccountId |
309
+
310
+ ### Return type
311
+
312
+ **Object**
313
+
314
+ ### Authorization
315
+
316
+ [api_key](../README.md#api_key)
317
+
318
+ ### HTTP request headers
319
+
320
+ - **Content-Type**: application/json, application/xml
321
+ - **Accept**: application/json, application/xml
322
+
323
+
324
+
@@ -0,0 +1,19 @@
1
+ # DialMyCalls::CallRecipient
2
+
3
+ ## Properties
4
+ Name | Type | Description | Notes
5
+ ------------ | ------------- | ------------- | -------------
6
+ **firstname** | **String** | The recipient&#39;s first name. | [optional]
7
+ **lastname** | **String** | The recipient&#39;s last name. | [optional]
8
+ **miscellaneous** | **String** | Miscellaneous information. | [optional]
9
+ **email** | **String** | The recipient&#39;s email address. | [optional]
10
+ **phone** | **String** | The recipient&#39;s phone number. | [optional]
11
+ **extension** | **String** | The recipient&#39;s phone extension. | [optional]
12
+ **status** | **String** | Status of the call. Options: live_answer, vm, busy, no_answer, dialing, not_connected, queued | [optional]
13
+ **duration** | **Integer** | Duration of the call in seconds. | [optional]
14
+ **add_on** | **String** | Result from add-on feature. | [optional]
15
+ **attempts** | **String** | Number of attempts to call was made. | [optional]
16
+ **successful** | **BOOLEAN** | Whether the call was successful or not. | [optional]
17
+ **called_at** | **String** | When the recipient was contacted. | [optional]
18
+
19
+