didww-v3 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +313 -0
  5. data/.travis.yml +5 -0
  6. data/Gemfile +6 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +57 -0
  9. data/Rakefile +6 -0
  10. data/bin/console +19 -0
  11. data/bin/setup +8 -0
  12. data/didww-v3.gemspec +46 -0
  13. data/lib/didww.rb +3 -0
  14. data/lib/didww/client.rb +120 -0
  15. data/lib/didww/complex_objects/base.rb +89 -0
  16. data/lib/didww/complex_objects/cdr_export_filter.rb +23 -0
  17. data/lib/didww/complex_objects/configurations.rb +11 -0
  18. data/lib/didww/complex_objects/configurations/base.rb +11 -0
  19. data/lib/didww/complex_objects/configurations/const.rb +149 -0
  20. data/lib/didww/complex_objects/configurations/h323_configuration.rb +35 -0
  21. data/lib/didww/complex_objects/configurations/iax2_configuration.rb +45 -0
  22. data/lib/didww/complex_objects/configurations/pstn_configuration.rb +16 -0
  23. data/lib/didww/complex_objects/configurations/sip_configuration.rb +203 -0
  24. data/lib/didww/complex_objects/did_order_item.rb +14 -0
  25. data/lib/didww/middleware.rb +18 -0
  26. data/lib/didww/resources/balance.rb +20 -0
  27. data/lib/didww/resources/base.rb +29 -0
  28. data/lib/didww/resources/cdr_export.rb +47 -0
  29. data/lib/didww/resources/city.rb +9 -0
  30. data/lib/didww/resources/country.rb +17 -0
  31. data/lib/didww/resources/did.rb +49 -0
  32. data/lib/didww/resources/did_group.rb +66 -0
  33. data/lib/didww/resources/did_group_type.rb +9 -0
  34. data/lib/didww/resources/order.rb +67 -0
  35. data/lib/didww/resources/region.rb +9 -0
  36. data/lib/didww/resources/stock_keeping_unit.rb +19 -0
  37. data/lib/didww/resources/trunk.rb +70 -0
  38. data/lib/didww/resources/trunk/const.rb +61 -0
  39. data/lib/didww/resources/trunk_group.rb +23 -0
  40. data/lib/didww/version.rb +3 -0
  41. metadata +307 -0
@@ -0,0 +1,17 @@
1
+ module DIDWW
2
+ module Resource
3
+ class Country < Base
4
+ property :name, type: :string
5
+ # Type: String
6
+ # Description: Country name
7
+
8
+ property :prefix, type: :string
9
+ # Type: String
10
+ # Description: Country prefix (country calling code)
11
+
12
+ property :iso, type: :string
13
+ # Type: String
14
+ # Description: Country ISO code
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,49 @@
1
+ module DIDWW
2
+ module Resource
3
+ class Did < Base
4
+ has_one :trunk
5
+ has_one :trunk_group
6
+
7
+ property :blocked, type: :boolean
8
+ # Type: Boolean
9
+ # Description: Identifier for a blocked DID. Blocked DIDs are numbers that have expired, have been cancelled or have been suspended by DIDWW.
10
+
11
+ property :awaiting_registration, type: :boolean
12
+ # Type: Boolean
13
+ # Description: Identifier for a DID that is awaiting registration.
14
+
15
+ property :terminated, type: :boolean
16
+ # Type: Boolean
17
+ # Description: Identifier for terminated DIDs that will be removed from service at the end of the billing cycle.
18
+
19
+ property :pending_removal, type: :boolean
20
+ # Type: Boolean
21
+ # Description: Identifier for DIDs that are pending removal from your account.
22
+
23
+ property :description, type: :string
24
+ # Type: String
25
+ # Description: DID custom description
26
+
27
+ property :number, type: :string
28
+ # Type: String
29
+ # Description: The actual DID number in the format [country code][area code][subscriber number].
30
+
31
+ property :capacity_limit, type: :integer
32
+ # Type: Integer
33
+ # Description: The capacity limit (maximum number of simultaneous calls) for this DID.
34
+
35
+ property :channels_included_count, type: :integer
36
+ # Type: Integer
37
+ # Description: The number of channels included with this DID.
38
+
39
+ property :expires_at, type: :time
40
+ # Type: DateTime
41
+ # Description: DateTime when the DID expired or will expire. DateTime is in the ISO 8601 format "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", where "SSS" are milliseconds and 'Z' denotes Zulu time (UTC).
42
+
43
+ property :created_at, type: :time
44
+ # Type: DateTime
45
+ # Description: DID created at DateTime
46
+
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,66 @@
1
+ module DIDWW
2
+ module Resource
3
+ class DidGroup < Base
4
+ module CONST
5
+ # Possible values for did_group.features array
6
+ FEATURE_VOICE = 'voice' .freeze
7
+ FEATURE_T38 = 't38' .freeze
8
+ FEATURE_SMS = 'sms' .freeze
9
+ FEATURES = {
10
+ FEATURE_VOICE => 'Voice' .freeze,
11
+ FEATURE_T38 => 'T.38 Fax' .freeze,
12
+ FEATURE_SMS => 'SMS' .freeze
13
+ }.freeze
14
+
15
+ def features_human
16
+ Array.wrap(features).map { |f| FEATURES[f] }
17
+ end
18
+ end
19
+
20
+ include CONST
21
+
22
+ has_one :country, class: Country
23
+ has_one :city, class: City
24
+
25
+ property :area_name, type: :string
26
+ # Type: String
27
+ # Description: DID Group area name. This will be the name of the city, or a designation applicable to the area code such as "National".
28
+
29
+ property :prefix, type: :string
30
+ # Type: String
31
+ # Description: DID Group prefix (city or area calling code)
32
+
33
+ property :local_prefix, type: :string
34
+ # Type: String
35
+ # Description: DID Group local prefix
36
+
37
+ property :features, type: :complex_object # TODO implement array of strings?
38
+ # Type: Array of strings
39
+ # Description: Features available for the DID Group, including voice, sms and t38. A DID Group may have multiple features.
40
+
41
+ property :is_metered, type: :boolean
42
+ # Type: Boolean
43
+ # Description: Defines if the DID Group supports metered services (per-minute billing).
44
+
45
+ property :allow_additional_channels, type: :boolean
46
+ # Type: Boolean
47
+ # Description: Defines if channel capacity may be added to this DID Group.
48
+
49
+ # TODO
50
+ # Meta attributes
51
+ #
52
+ # needs_registration
53
+ # Type: Boolean
54
+ # Description: Defines if end-user registration is required for this DID Group.
55
+ #
56
+ # is_available
57
+ # Type: Boolean
58
+ # Description: Defines if numbers in this DID Group are currently in stock.
59
+ #
60
+ # restrictions
61
+ # Type: String
62
+ # Description: Describes possible restrictions for the DID Group, such as "End User Registration is Required".
63
+
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,9 @@
1
+ module DIDWW
2
+ module Resource
3
+ class DidGroupType < Base
4
+ property :name, type: :string
5
+ # Type: String
6
+ # Description: DID Group Type name, such as "Local", "Mobile" or "Toll-free".
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,67 @@
1
+ require 'didww/complex_objects/did_order_item'
2
+
3
+ module DIDWW
4
+ module Resource
5
+ class Order < Base
6
+ module CONST
7
+ # Possible values for order.status
8
+ STATUS_PENDING = 'Pending' .freeze
9
+ STATUS_COMPLETED = 'Completed' .freeze
10
+ STATUS_CANCELLED = 'Canceled' .freeze
11
+ STATUSES = [
12
+ STATUS_PENDING,
13
+ STATUS_COMPLETED,
14
+ STATUS_CANCELLED
15
+ ].freeze
16
+ end
17
+
18
+ include CONST
19
+
20
+ property :reference, type: :string
21
+ # Type: String
22
+ # Description: Order Reference
23
+
24
+ property :amount, type: :decimal
25
+ # Type: String
26
+ # Description: Order Amount
27
+
28
+ property :status, type: :string
29
+ # Type: Enum
30
+ # Description: Order status. One of "Pending", "Completed", "Canceled".
31
+
32
+ property :description, type: :string
33
+ # Type: String
34
+ # Description: Order description
35
+
36
+ property :created_at, type: :time
37
+ # Type: DateTime
38
+ # Description: Order created at DateTime
39
+
40
+ property :items, type: :complex_object
41
+ # Type: Array<OrderItem>
42
+ # Description: Order items array
43
+
44
+ property :allow_back_ordering, type: :boolean
45
+ # Type: Boolean
46
+ # Description: Allowing back ordering
47
+
48
+ def initialize(*args)
49
+ super
50
+ self.items ||= []
51
+ end
52
+
53
+ def pending?
54
+ STATUS_PENDING == status
55
+ end
56
+
57
+ def completed?
58
+ STATUS_COMPLETED == status
59
+ end
60
+
61
+ def cancelled?
62
+ STATUS_CANCELLED == status
63
+ end
64
+
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,9 @@
1
+ module DIDWW
2
+ module Resource
3
+ class Region < Base
4
+ property :name, type: :string
5
+ # Type: String
6
+ # Description: Region name
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,19 @@
1
+ module DIDWW
2
+ module Resource
3
+ class StockKeepingUnit < Base
4
+ belongs_to :did_group
5
+
6
+ property :setup_price, type: :decimal
7
+ # Type: String
8
+ # Description: price for Order creation
9
+
10
+ property :monthly_price, type: :decimal
11
+ # Type: String
12
+ # Description: monthly price for order renew
13
+
14
+ property :channels_included_count, type: :integer
15
+ # Type: Integer
16
+ # Description: included channels capacity for each DID
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,70 @@
1
+ require 'didww/complex_objects/configurations'
2
+ require 'didww/resources/trunk/const'
3
+
4
+ module DIDWW
5
+ module Resource
6
+ class Trunk < Base
7
+ include CONST
8
+
9
+ has_one :trunk_group
10
+
11
+ property :priority, type: :integer
12
+ # Type: Integer
13
+ # Description: The priority of this target host. DIDWW will attempt to contact the target trunk with the lowest-numbered priority; target trunk with the same priority will be tried in an order defined by the weight field. The range is 0-65535. See RFC 2782 for more details
14
+
15
+ property :weight, type: :integer
16
+ # Type: Integer
17
+ # Description: A trunk selection mechanism. The weight field specifies a relative weight for entries with the same priority. Larger weights will be given a proportionately higher probability of being selected. The range of this number is 0-65535. In the presence of records containing weights greater than 0, records with weight 0 will have a very small chance of being selected. See RFC 2782 for more details
18
+
19
+ property :capacity_limit, type: :integer
20
+ # Type: Integer
21
+ # Description: Maximum number of simultaneous calls for the trunk
22
+
23
+ property :ringing_timeout, type: :integer
24
+ # Type: Integer
25
+ # Description: After which it will be end transaction with internal disconnect code 'Ringing timeout' if the call was not connected.
26
+
27
+ property :name, type: :string
28
+ # Type: String
29
+ # Description: Friendly name of the trunk
30
+
31
+ property :cli_format, type: :string
32
+ # Type: String
33
+ # Description:
34
+ # RAW - Do not alter CLI (default)
35
+ # 164 - Attempt to convert CLI to E.164 format
36
+ # Local - Attempt to convert CLI to Localized format
37
+ # * CLI format conversion may not work correctly for phone calls originating from outside the country of that specific DID
38
+
39
+ property :cli_prefix, type: :string
40
+ # Type: String
41
+ # Description: You may prefix the CLI with an optional '+' sign followed by up to 6 characters, including digits and '#'
42
+
43
+ property :description, type: :string
44
+ # Type: String
45
+ # Description: Optional description of trunk
46
+
47
+ property :preferred_server, type: :string
48
+ # Type: String
49
+ # Description: Preferred server for your voice route. In general, you should choose the server that is the closest to your location ["LOCAL", "USA", "DE"] or omit.
50
+
51
+ property :configuration, type: :complex_object
52
+ # Type: one of
53
+ # sip_configurations
54
+ # pstn_configurations
55
+ # iax2_configurations
56
+ # h323_configurations
57
+ # Description: Trunk configuration complex object
58
+
59
+ property :created_at, type: :time
60
+ # Type: DateTime
61
+ # Description: Trunk created at DateTime
62
+
63
+ def initialize(*args)
64
+ super
65
+ attribute_will_change!(:configuration) if configuration
66
+ end
67
+
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,61 @@
1
+ module DIDWW
2
+ module Resource
3
+ class Trunk < Base
4
+ module CONST
5
+ # Allowed values for trunk.preferred_server
6
+ PREFERRED_SERVER_LOCAL = 'LOCAL' .freeze
7
+ PREFERRED_SERVER_USA = 'USA' .freeze
8
+ PREFERRED_SERVER_EUROPE = 'Europe' .freeze
9
+
10
+ PREFERRED_SERVERS = {
11
+ PREFERRED_SERVER_LOCAL => 'Local' .freeze,
12
+ PREFERRED_SERVER_USA => 'United States' .freeze,
13
+ PREFERRED_SERVER_EUROPE => 'Europe' .freeze
14
+ }.freeze
15
+
16
+ # Allowed values for trunk.cli_format
17
+ CLI_FORMAT_RAW = 'raw' .freeze
18
+ CLI_FORMAT_E164 = 'e164' .freeze
19
+ CLI_FORMAT_LOCAL = 'local' .freeze
20
+
21
+ CLI_FORMATS = {
22
+ CLI_FORMAT_RAW => 'Raw' .freeze,
23
+ CLI_FORMAT_E164 => 'E.164' .freeze,
24
+ CLI_FORMAT_LOCAL => 'Local' .freeze
25
+ }.freeze
26
+
27
+ # Configuration types
28
+ CONF_TYPE_SIP = 'sip_configurations' .freeze
29
+ CONF_TYPE_H323 = 'h323_configurations' .freeze
30
+ CONF_TYPE_IAX2 = 'iax2_configurations' .freeze
31
+ CONF_TYPE_PSTN = 'pstn_configurations' .freeze
32
+
33
+ CONF_TYPES = {
34
+ CONF_TYPE_SIP => 'SIP' .freeze,
35
+ CONF_TYPE_H323 => 'H323' .freeze,
36
+ CONF_TYPE_IAX2 => 'IAX2' .freeze,
37
+ CONF_TYPE_PSTN => 'PSTN' .freeze
38
+ }.freeze
39
+
40
+ CONF_TYPE_CLASSES = {
41
+ CONF_TYPE_SIP => DIDWW::ComplexObject::SipConfiguration,
42
+ CONF_TYPE_H323 => DIDWW::ComplexObject::H323Configuration,
43
+ CONF_TYPE_IAX2 => DIDWW::ComplexObject::Iax2Configuration,
44
+ CONF_TYPE_PSTN => DIDWW::ComplexObject::PstnConfiguration
45
+ }.freeze
46
+
47
+ def preferred_server_human
48
+ PREFERRED_SERVERS[preferred_server]
49
+ end
50
+
51
+ def cli_format_human
52
+ CLI_FORMATS[cli_format]
53
+ end
54
+
55
+ def configuration_type_human
56
+ CONF_TYPES[configuration.type] if configuration
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,23 @@
1
+ module DIDWW
2
+ module Resource
3
+ class TrunkGroup < Base
4
+ has_many :trunks
5
+
6
+ property :name, type: :string
7
+ # Type: String
8
+ # Description: Trunk Group name
9
+
10
+ property :capacity_limit, type: :integer
11
+ # Type: Integer
12
+ # Description: maximum number of simultaneous calls for the trunk
13
+
14
+ property :created_at, type: :time
15
+ # Type: DateTime
16
+ # Description: Trunk Group created at DateTime
17
+
18
+ def trunks_count
19
+ meta[:trunks_count]
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,3 @@
1
+ module DIDWW
2
+ VERSION = '1.0.0'.freeze
3
+ end
metadata ADDED
@@ -0,0 +1,307 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: didww-v3
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Alex Korobeinikov
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2018-01-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.16'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: byebug
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: awesome_print
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: http_logger
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: simplecov
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: smart_rspec
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: webmock
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: activesupport
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: faraday
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: json_api_client
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :runtime
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: http
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: down
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :runtime
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ description: Ruby client for DIDWW API v3
238
+ email:
239
+ - alex.k@didww.com
240
+ executables: []
241
+ extensions: []
242
+ extra_rdoc_files: []
243
+ files:
244
+ - ".gitignore"
245
+ - ".rspec"
246
+ - ".rubocop.yml"
247
+ - ".travis.yml"
248
+ - Gemfile
249
+ - LICENSE.txt
250
+ - README.md
251
+ - Rakefile
252
+ - bin/console
253
+ - bin/setup
254
+ - didww-v3.gemspec
255
+ - lib/didww.rb
256
+ - lib/didww/client.rb
257
+ - lib/didww/complex_objects/base.rb
258
+ - lib/didww/complex_objects/cdr_export_filter.rb
259
+ - lib/didww/complex_objects/configurations.rb
260
+ - lib/didww/complex_objects/configurations/base.rb
261
+ - lib/didww/complex_objects/configurations/const.rb
262
+ - lib/didww/complex_objects/configurations/h323_configuration.rb
263
+ - lib/didww/complex_objects/configurations/iax2_configuration.rb
264
+ - lib/didww/complex_objects/configurations/pstn_configuration.rb
265
+ - lib/didww/complex_objects/configurations/sip_configuration.rb
266
+ - lib/didww/complex_objects/did_order_item.rb
267
+ - lib/didww/middleware.rb
268
+ - lib/didww/resources/balance.rb
269
+ - lib/didww/resources/base.rb
270
+ - lib/didww/resources/cdr_export.rb
271
+ - lib/didww/resources/city.rb
272
+ - lib/didww/resources/country.rb
273
+ - lib/didww/resources/did.rb
274
+ - lib/didww/resources/did_group.rb
275
+ - lib/didww/resources/did_group_type.rb
276
+ - lib/didww/resources/order.rb
277
+ - lib/didww/resources/region.rb
278
+ - lib/didww/resources/stock_keeping_unit.rb
279
+ - lib/didww/resources/trunk.rb
280
+ - lib/didww/resources/trunk/const.rb
281
+ - lib/didww/resources/trunk_group.rb
282
+ - lib/didww/version.rb
283
+ homepage: https://github.com/didww/didww-v3-ruby
284
+ licenses:
285
+ - MIT
286
+ metadata: {}
287
+ post_install_message:
288
+ rdoc_options: []
289
+ require_paths:
290
+ - lib
291
+ required_ruby_version: !ruby/object:Gem::Requirement
292
+ requirements:
293
+ - - ">="
294
+ - !ruby/object:Gem::Version
295
+ version: '0'
296
+ required_rubygems_version: !ruby/object:Gem::Requirement
297
+ requirements:
298
+ - - ">="
299
+ - !ruby/object:Gem::Version
300
+ version: '0'
301
+ requirements: []
302
+ rubyforge_project:
303
+ rubygems_version: 2.6.14
304
+ signing_key:
305
+ specification_version: 4
306
+ summary: Ruby client for DIDWW API v3
307
+ test_files: []