relentless_identity 1.0.0

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.
Files changed (101) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +143 -0
  4. data/Rakefile +10 -0
  5. data/docs/AccountApi.md +219 -0
  6. data/docs/AliasInfo.md +20 -0
  7. data/docs/BatchSummary.md +26 -0
  8. data/docs/ClientBackgroundJobDetailResponse.md +30 -0
  9. data/docs/ClientBackgroundJobItemResponse.md +48 -0
  10. data/docs/ClientBackgroundJobPageResponse.md +26 -0
  11. data/docs/ClientBackgroundJobResponse.md +76 -0
  12. data/docs/ClientBatchIdentityResponse.md +20 -0
  13. data/docs/ClientFinderResponse.md +34 -0
  14. data/docs/ClientFinderResponseAlias.md +20 -0
  15. data/docs/ClientIdentityResponse.md +34 -0
  16. data/docs/ClientRequestHistoryItem.md +52 -0
  17. data/docs/ClientRequestHistoryPageResponse.md +26 -0
  18. data/docs/ClientTokenStatusResponse.md +28 -0
  19. data/docs/ClientUsageResponse.md +54 -0
  20. data/docs/ErrorResponse.md +24 -0
  21. data/docs/FinderApi.md +77 -0
  22. data/docs/FinderBatchJobRequest.md +22 -0
  23. data/docs/FinderBatchJobRequestInputsInner.md +20 -0
  24. data/docs/FinderRequest.md +20 -0
  25. data/docs/HTTPValidationError.md +18 -0
  26. data/docs/IdentityProvider.md +20 -0
  27. data/docs/JobsApi.md +529 -0
  28. data/docs/LocationInner.md +15 -0
  29. data/docs/ProbeApi.md +147 -0
  30. data/docs/ProbeBatchJobBackgroundRequest.md +22 -0
  31. data/docs/ProbeBatchRequest.md +18 -0
  32. data/docs/ProbeRequest.md +18 -0
  33. data/docs/ValidationError.md +26 -0
  34. data/git_push.sh +57 -0
  35. data/lib/relentless_identity/api/account_api.rb +225 -0
  36. data/lib/relentless_identity/api/finder_api.rb +90 -0
  37. data/lib/relentless_identity/api/jobs_api.rb +535 -0
  38. data/lib/relentless_identity/api/probe_api.rb +158 -0
  39. data/lib/relentless_identity/api_client.rb +397 -0
  40. data/lib/relentless_identity/api_error.rb +58 -0
  41. data/lib/relentless_identity/api_model_base.rb +88 -0
  42. data/lib/relentless_identity/configuration.rb +309 -0
  43. data/lib/relentless_identity/models/alias_info.rb +159 -0
  44. data/lib/relentless_identity/models/batch_summary.rb +318 -0
  45. data/lib/relentless_identity/models/client_background_job_detail_response.rb +307 -0
  46. data/lib/relentless_identity/models/client_background_job_item_response.rb +455 -0
  47. data/lib/relentless_identity/models/client_background_job_page_response.rb +271 -0
  48. data/lib/relentless_identity/models/client_background_job_response.rb +745 -0
  49. data/lib/relentless_identity/models/client_batch_identity_response.rb +194 -0
  50. data/lib/relentless_identity/models/client_finder_response.rb +285 -0
  51. data/lib/relentless_identity/models/client_finder_response_alias.rb +104 -0
  52. data/lib/relentless_identity/models/client_identity_response.rb +285 -0
  53. data/lib/relentless_identity/models/client_request_history_item.rb +450 -0
  54. data/lib/relentless_identity/models/client_request_history_page_response.rb +271 -0
  55. data/lib/relentless_identity/models/client_token_status_response.rb +259 -0
  56. data/lib/relentless_identity/models/client_usage_response.rb +506 -0
  57. data/lib/relentless_identity/models/error_response.rb +178 -0
  58. data/lib/relentless_identity/models/finder_batch_job_request.rb +206 -0
  59. data/lib/relentless_identity/models/finder_batch_job_request_inputs_inner.rb +192 -0
  60. data/lib/relentless_identity/models/finder_request.rb +193 -0
  61. data/lib/relentless_identity/models/http_validation_error.rb +149 -0
  62. data/lib/relentless_identity/models/identity_provider.rb +157 -0
  63. data/lib/relentless_identity/models/location_inner.rb +103 -0
  64. data/lib/relentless_identity/models/probe_batch_job_background_request.rb +206 -0
  65. data/lib/relentless_identity/models/probe_batch_request.rb +186 -0
  66. data/lib/relentless_identity/models/probe_request.rb +166 -0
  67. data/lib/relentless_identity/models/validation_error.rb +237 -0
  68. data/lib/relentless_identity/version.rb +15 -0
  69. data/lib/relentless_identity.rb +69 -0
  70. data/relentless_identity.gemspec +39 -0
  71. data/spec/api/account_api_spec.rb +72 -0
  72. data/spec/api/finder_api_spec.rb +47 -0
  73. data/spec/api/jobs_api_spec.rb +130 -0
  74. data/spec/api/probe_api_spec.rb +59 -0
  75. data/spec/models/alias_info_spec.rb +42 -0
  76. data/spec/models/batch_summary_spec.rb +60 -0
  77. data/spec/models/client_background_job_detail_response_spec.rb +72 -0
  78. data/spec/models/client_background_job_item_response_spec.rb +138 -0
  79. data/spec/models/client_background_job_page_response_spec.rb +60 -0
  80. data/spec/models/client_background_job_response_spec.rb +222 -0
  81. data/spec/models/client_batch_identity_response_spec.rb +42 -0
  82. data/spec/models/client_finder_response_alias_spec.rb +21 -0
  83. data/spec/models/client_finder_response_spec.rb +92 -0
  84. data/spec/models/client_identity_response_spec.rb +92 -0
  85. data/spec/models/client_request_history_item_spec.rb +150 -0
  86. data/spec/models/client_request_history_page_response_spec.rb +60 -0
  87. data/spec/models/client_token_status_response_spec.rb +70 -0
  88. data/spec/models/client_usage_response_spec.rb +144 -0
  89. data/spec/models/error_response_spec.rb +54 -0
  90. data/spec/models/finder_batch_job_request_inputs_inner_spec.rb +42 -0
  91. data/spec/models/finder_batch_job_request_spec.rb +48 -0
  92. data/spec/models/finder_request_spec.rb +42 -0
  93. data/spec/models/http_validation_error_spec.rb +36 -0
  94. data/spec/models/identity_provider_spec.rb +42 -0
  95. data/spec/models/location_inner_spec.rb +21 -0
  96. data/spec/models/probe_batch_job_background_request_spec.rb +48 -0
  97. data/spec/models/probe_batch_request_spec.rb +36 -0
  98. data/spec/models/probe_request_spec.rb +36 -0
  99. data/spec/models/validation_error_spec.rb +60 -0
  100. data/spec/spec_helper.rb +111 -0
  101. metadata +213 -0
@@ -0,0 +1,506 @@
1
+ =begin
2
+ #Relentless Identity API
3
+
4
+ #Public client API for Finder and Probe workflows. This spec is generated from the FastAPI app, then narrowed to the supported bearer-authenticated routes used by SDKs and the API reference.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.21.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module RelentlessIdentity
17
+ # Current authenticated account usage, free-tier windows, and paid balance snapshot.
18
+ class ClientUsageResponse < ApiModelBase
19
+ # Current plan family, such as free or paid.
20
+ attr_accessor :plan_tier
21
+
22
+ attr_accessor :billing_mode
23
+
24
+ attr_accessor :billing_status
25
+
26
+ attr_accessor :free_window_limit
27
+
28
+ attr_accessor :free_window_hours
29
+
30
+ attr_accessor :free_weekly_limit
31
+
32
+ attr_accessor :window_requests_used
33
+
34
+ attr_accessor :weekly_requests_used
35
+
36
+ attr_accessor :window_requests_remaining
37
+
38
+ attr_accessor :weekly_requests_remaining
39
+
40
+ attr_accessor :billing_cycle_value_micros
41
+
42
+ attr_accessor :billing_extra_value_micros
43
+
44
+ attr_accessor :billing_value_micros_used
45
+
46
+ # Paid usage value currently reserved by queued or running background jobs.
47
+ attr_accessor :billing_value_micros_reserved
48
+
49
+ attr_accessor :billing_value_micros_remaining
50
+
51
+ attr_accessor :usage_percent_remaining
52
+
53
+ attr_accessor :current_plan_finder_deliverable_cost_micros
54
+
55
+ attr_accessor :current_plan_finder_undeliverable_cost_micros
56
+
57
+ attr_accessor :current_plan_probe_cost_micros
58
+
59
+ # Attribute mapping from ruby-style variable name to JSON key.
60
+ def self.attribute_map
61
+ {
62
+ :'plan_tier' => :'plan_tier',
63
+ :'billing_mode' => :'billing_mode',
64
+ :'billing_status' => :'billing_status',
65
+ :'free_window_limit' => :'free_window_limit',
66
+ :'free_window_hours' => :'free_window_hours',
67
+ :'free_weekly_limit' => :'free_weekly_limit',
68
+ :'window_requests_used' => :'window_requests_used',
69
+ :'weekly_requests_used' => :'weekly_requests_used',
70
+ :'window_requests_remaining' => :'window_requests_remaining',
71
+ :'weekly_requests_remaining' => :'weekly_requests_remaining',
72
+ :'billing_cycle_value_micros' => :'billing_cycle_value_micros',
73
+ :'billing_extra_value_micros' => :'billing_extra_value_micros',
74
+ :'billing_value_micros_used' => :'billing_value_micros_used',
75
+ :'billing_value_micros_reserved' => :'billing_value_micros_reserved',
76
+ :'billing_value_micros_remaining' => :'billing_value_micros_remaining',
77
+ :'usage_percent_remaining' => :'usage_percent_remaining',
78
+ :'current_plan_finder_deliverable_cost_micros' => :'current_plan_finder_deliverable_cost_micros',
79
+ :'current_plan_finder_undeliverable_cost_micros' => :'current_plan_finder_undeliverable_cost_micros',
80
+ :'current_plan_probe_cost_micros' => :'current_plan_probe_cost_micros'
81
+ }
82
+ end
83
+
84
+ # Returns attribute mapping this model knows about
85
+ def self.acceptable_attribute_map
86
+ attribute_map
87
+ end
88
+
89
+ # Returns all the JSON keys this model knows about
90
+ def self.acceptable_attributes
91
+ acceptable_attribute_map.values
92
+ end
93
+
94
+ # Attribute type mapping.
95
+ def self.openapi_types
96
+ {
97
+ :'plan_tier' => :'String',
98
+ :'billing_mode' => :'String',
99
+ :'billing_status' => :'String',
100
+ :'free_window_limit' => :'Integer',
101
+ :'free_window_hours' => :'Integer',
102
+ :'free_weekly_limit' => :'Integer',
103
+ :'window_requests_used' => :'Integer',
104
+ :'weekly_requests_used' => :'Integer',
105
+ :'window_requests_remaining' => :'Integer',
106
+ :'weekly_requests_remaining' => :'Integer',
107
+ :'billing_cycle_value_micros' => :'Integer',
108
+ :'billing_extra_value_micros' => :'Integer',
109
+ :'billing_value_micros_used' => :'Integer',
110
+ :'billing_value_micros_reserved' => :'Integer',
111
+ :'billing_value_micros_remaining' => :'Integer',
112
+ :'usage_percent_remaining' => :'Float',
113
+ :'current_plan_finder_deliverable_cost_micros' => :'Integer',
114
+ :'current_plan_finder_undeliverable_cost_micros' => :'Integer',
115
+ :'current_plan_probe_cost_micros' => :'Integer'
116
+ }
117
+ end
118
+
119
+ # List of attributes with nullable: true
120
+ def self.openapi_nullable
121
+ Set.new([
122
+ :'billing_status',
123
+ :'billing_cycle_value_micros',
124
+ :'billing_value_micros_remaining',
125
+ :'usage_percent_remaining',
126
+ :'current_plan_finder_deliverable_cost_micros',
127
+ :'current_plan_finder_undeliverable_cost_micros',
128
+ :'current_plan_probe_cost_micros'
129
+ ])
130
+ end
131
+
132
+ # Initializes the object
133
+ # @param [Hash] attributes Model attributes in the form of hash
134
+ def initialize(attributes = {})
135
+ if (!attributes.is_a?(Hash))
136
+ fail ArgumentError, "The input argument (attributes) must be a hash in `RelentlessIdentity::ClientUsageResponse` initialize method"
137
+ end
138
+
139
+ # check to see if the attribute exists and convert string to symbol for hash key
140
+ acceptable_attribute_map = self.class.acceptable_attribute_map
141
+ attributes = attributes.each_with_object({}) { |(k, v), h|
142
+ if (!acceptable_attribute_map.key?(k.to_sym))
143
+ fail ArgumentError, "`#{k}` is not a valid attribute in `RelentlessIdentity::ClientUsageResponse`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
144
+ end
145
+ h[k.to_sym] = v
146
+ }
147
+
148
+ if attributes.key?(:'plan_tier')
149
+ self.plan_tier = attributes[:'plan_tier']
150
+ else
151
+ self.plan_tier = nil
152
+ end
153
+
154
+ if attributes.key?(:'billing_mode')
155
+ self.billing_mode = attributes[:'billing_mode']
156
+ else
157
+ self.billing_mode = nil
158
+ end
159
+
160
+ if attributes.key?(:'billing_status')
161
+ self.billing_status = attributes[:'billing_status']
162
+ end
163
+
164
+ if attributes.key?(:'free_window_limit')
165
+ self.free_window_limit = attributes[:'free_window_limit']
166
+ else
167
+ self.free_window_limit = nil
168
+ end
169
+
170
+ if attributes.key?(:'free_window_hours')
171
+ self.free_window_hours = attributes[:'free_window_hours']
172
+ else
173
+ self.free_window_hours = nil
174
+ end
175
+
176
+ if attributes.key?(:'free_weekly_limit')
177
+ self.free_weekly_limit = attributes[:'free_weekly_limit']
178
+ else
179
+ self.free_weekly_limit = nil
180
+ end
181
+
182
+ if attributes.key?(:'window_requests_used')
183
+ self.window_requests_used = attributes[:'window_requests_used']
184
+ else
185
+ self.window_requests_used = nil
186
+ end
187
+
188
+ if attributes.key?(:'weekly_requests_used')
189
+ self.weekly_requests_used = attributes[:'weekly_requests_used']
190
+ else
191
+ self.weekly_requests_used = nil
192
+ end
193
+
194
+ if attributes.key?(:'window_requests_remaining')
195
+ self.window_requests_remaining = attributes[:'window_requests_remaining']
196
+ else
197
+ self.window_requests_remaining = nil
198
+ end
199
+
200
+ if attributes.key?(:'weekly_requests_remaining')
201
+ self.weekly_requests_remaining = attributes[:'weekly_requests_remaining']
202
+ else
203
+ self.weekly_requests_remaining = nil
204
+ end
205
+
206
+ if attributes.key?(:'billing_cycle_value_micros')
207
+ self.billing_cycle_value_micros = attributes[:'billing_cycle_value_micros']
208
+ end
209
+
210
+ if attributes.key?(:'billing_extra_value_micros')
211
+ self.billing_extra_value_micros = attributes[:'billing_extra_value_micros']
212
+ else
213
+ self.billing_extra_value_micros = nil
214
+ end
215
+
216
+ if attributes.key?(:'billing_value_micros_used')
217
+ self.billing_value_micros_used = attributes[:'billing_value_micros_used']
218
+ else
219
+ self.billing_value_micros_used = nil
220
+ end
221
+
222
+ if attributes.key?(:'billing_value_micros_reserved')
223
+ self.billing_value_micros_reserved = attributes[:'billing_value_micros_reserved']
224
+ end
225
+
226
+ if attributes.key?(:'billing_value_micros_remaining')
227
+ self.billing_value_micros_remaining = attributes[:'billing_value_micros_remaining']
228
+ end
229
+
230
+ if attributes.key?(:'usage_percent_remaining')
231
+ self.usage_percent_remaining = attributes[:'usage_percent_remaining']
232
+ end
233
+
234
+ if attributes.key?(:'current_plan_finder_deliverable_cost_micros')
235
+ self.current_plan_finder_deliverable_cost_micros = attributes[:'current_plan_finder_deliverable_cost_micros']
236
+ end
237
+
238
+ if attributes.key?(:'current_plan_finder_undeliverable_cost_micros')
239
+ self.current_plan_finder_undeliverable_cost_micros = attributes[:'current_plan_finder_undeliverable_cost_micros']
240
+ end
241
+
242
+ if attributes.key?(:'current_plan_probe_cost_micros')
243
+ self.current_plan_probe_cost_micros = attributes[:'current_plan_probe_cost_micros']
244
+ end
245
+ end
246
+
247
+ # Show invalid properties with the reasons. Usually used together with valid?
248
+ # @return Array for valid properties with the reasons
249
+ def list_invalid_properties
250
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
251
+ invalid_properties = Array.new
252
+ if @plan_tier.nil?
253
+ invalid_properties.push('invalid value for "plan_tier", plan_tier cannot be nil.')
254
+ end
255
+
256
+ if @billing_mode.nil?
257
+ invalid_properties.push('invalid value for "billing_mode", billing_mode cannot be nil.')
258
+ end
259
+
260
+ if @free_window_limit.nil?
261
+ invalid_properties.push('invalid value for "free_window_limit", free_window_limit cannot be nil.')
262
+ end
263
+
264
+ if @free_window_hours.nil?
265
+ invalid_properties.push('invalid value for "free_window_hours", free_window_hours cannot be nil.')
266
+ end
267
+
268
+ if @free_weekly_limit.nil?
269
+ invalid_properties.push('invalid value for "free_weekly_limit", free_weekly_limit cannot be nil.')
270
+ end
271
+
272
+ if @window_requests_used.nil?
273
+ invalid_properties.push('invalid value for "window_requests_used", window_requests_used cannot be nil.')
274
+ end
275
+
276
+ if @weekly_requests_used.nil?
277
+ invalid_properties.push('invalid value for "weekly_requests_used", weekly_requests_used cannot be nil.')
278
+ end
279
+
280
+ if @window_requests_remaining.nil?
281
+ invalid_properties.push('invalid value for "window_requests_remaining", window_requests_remaining cannot be nil.')
282
+ end
283
+
284
+ if @weekly_requests_remaining.nil?
285
+ invalid_properties.push('invalid value for "weekly_requests_remaining", weekly_requests_remaining cannot be nil.')
286
+ end
287
+
288
+ if @billing_extra_value_micros.nil?
289
+ invalid_properties.push('invalid value for "billing_extra_value_micros", billing_extra_value_micros cannot be nil.')
290
+ end
291
+
292
+ if @billing_value_micros_used.nil?
293
+ invalid_properties.push('invalid value for "billing_value_micros_used", billing_value_micros_used cannot be nil.')
294
+ end
295
+
296
+ invalid_properties
297
+ end
298
+
299
+ # Check to see if the all the properties in the model are valid
300
+ # @return true if the model is valid
301
+ def valid?
302
+ warn '[DEPRECATED] the `valid?` method is obsolete'
303
+ return false if @plan_tier.nil?
304
+ return false if @billing_mode.nil?
305
+ return false if @free_window_limit.nil?
306
+ return false if @free_window_hours.nil?
307
+ return false if @free_weekly_limit.nil?
308
+ return false if @window_requests_used.nil?
309
+ return false if @weekly_requests_used.nil?
310
+ return false if @window_requests_remaining.nil?
311
+ return false if @weekly_requests_remaining.nil?
312
+ return false if @billing_extra_value_micros.nil?
313
+ return false if @billing_value_micros_used.nil?
314
+ true
315
+ end
316
+
317
+ # Custom attribute writer method with validation
318
+ # @param [Object] plan_tier Value to be assigned
319
+ def plan_tier=(plan_tier)
320
+ if plan_tier.nil?
321
+ fail ArgumentError, 'plan_tier cannot be nil'
322
+ end
323
+
324
+ @plan_tier = plan_tier
325
+ end
326
+
327
+ # Custom attribute writer method with validation
328
+ # @param [Object] billing_mode Value to be assigned
329
+ def billing_mode=(billing_mode)
330
+ if billing_mode.nil?
331
+ fail ArgumentError, 'billing_mode cannot be nil'
332
+ end
333
+
334
+ @billing_mode = billing_mode
335
+ end
336
+
337
+ # Custom attribute writer method with validation
338
+ # @param [Object] free_window_limit Value to be assigned
339
+ def free_window_limit=(free_window_limit)
340
+ if free_window_limit.nil?
341
+ fail ArgumentError, 'free_window_limit cannot be nil'
342
+ end
343
+
344
+ @free_window_limit = free_window_limit
345
+ end
346
+
347
+ # Custom attribute writer method with validation
348
+ # @param [Object] free_window_hours Value to be assigned
349
+ def free_window_hours=(free_window_hours)
350
+ if free_window_hours.nil?
351
+ fail ArgumentError, 'free_window_hours cannot be nil'
352
+ end
353
+
354
+ @free_window_hours = free_window_hours
355
+ end
356
+
357
+ # Custom attribute writer method with validation
358
+ # @param [Object] free_weekly_limit Value to be assigned
359
+ def free_weekly_limit=(free_weekly_limit)
360
+ if free_weekly_limit.nil?
361
+ fail ArgumentError, 'free_weekly_limit cannot be nil'
362
+ end
363
+
364
+ @free_weekly_limit = free_weekly_limit
365
+ end
366
+
367
+ # Custom attribute writer method with validation
368
+ # @param [Object] window_requests_used Value to be assigned
369
+ def window_requests_used=(window_requests_used)
370
+ if window_requests_used.nil?
371
+ fail ArgumentError, 'window_requests_used cannot be nil'
372
+ end
373
+
374
+ @window_requests_used = window_requests_used
375
+ end
376
+
377
+ # Custom attribute writer method with validation
378
+ # @param [Object] weekly_requests_used Value to be assigned
379
+ def weekly_requests_used=(weekly_requests_used)
380
+ if weekly_requests_used.nil?
381
+ fail ArgumentError, 'weekly_requests_used cannot be nil'
382
+ end
383
+
384
+ @weekly_requests_used = weekly_requests_used
385
+ end
386
+
387
+ # Custom attribute writer method with validation
388
+ # @param [Object] window_requests_remaining Value to be assigned
389
+ def window_requests_remaining=(window_requests_remaining)
390
+ if window_requests_remaining.nil?
391
+ fail ArgumentError, 'window_requests_remaining cannot be nil'
392
+ end
393
+
394
+ @window_requests_remaining = window_requests_remaining
395
+ end
396
+
397
+ # Custom attribute writer method with validation
398
+ # @param [Object] weekly_requests_remaining Value to be assigned
399
+ def weekly_requests_remaining=(weekly_requests_remaining)
400
+ if weekly_requests_remaining.nil?
401
+ fail ArgumentError, 'weekly_requests_remaining cannot be nil'
402
+ end
403
+
404
+ @weekly_requests_remaining = weekly_requests_remaining
405
+ end
406
+
407
+ # Custom attribute writer method with validation
408
+ # @param [Object] billing_extra_value_micros Value to be assigned
409
+ def billing_extra_value_micros=(billing_extra_value_micros)
410
+ if billing_extra_value_micros.nil?
411
+ fail ArgumentError, 'billing_extra_value_micros cannot be nil'
412
+ end
413
+
414
+ @billing_extra_value_micros = billing_extra_value_micros
415
+ end
416
+
417
+ # Custom attribute writer method with validation
418
+ # @param [Object] billing_value_micros_used Value to be assigned
419
+ def billing_value_micros_used=(billing_value_micros_used)
420
+ if billing_value_micros_used.nil?
421
+ fail ArgumentError, 'billing_value_micros_used cannot be nil'
422
+ end
423
+
424
+ @billing_value_micros_used = billing_value_micros_used
425
+ end
426
+
427
+ # Checks equality by comparing each attribute.
428
+ # @param [Object] Object to be compared
429
+ def ==(o)
430
+ return true if self.equal?(o)
431
+ self.class == o.class &&
432
+ plan_tier == o.plan_tier &&
433
+ billing_mode == o.billing_mode &&
434
+ billing_status == o.billing_status &&
435
+ free_window_limit == o.free_window_limit &&
436
+ free_window_hours == o.free_window_hours &&
437
+ free_weekly_limit == o.free_weekly_limit &&
438
+ window_requests_used == o.window_requests_used &&
439
+ weekly_requests_used == o.weekly_requests_used &&
440
+ window_requests_remaining == o.window_requests_remaining &&
441
+ weekly_requests_remaining == o.weekly_requests_remaining &&
442
+ billing_cycle_value_micros == o.billing_cycle_value_micros &&
443
+ billing_extra_value_micros == o.billing_extra_value_micros &&
444
+ billing_value_micros_used == o.billing_value_micros_used &&
445
+ billing_value_micros_reserved == o.billing_value_micros_reserved &&
446
+ billing_value_micros_remaining == o.billing_value_micros_remaining &&
447
+ usage_percent_remaining == o.usage_percent_remaining &&
448
+ current_plan_finder_deliverable_cost_micros == o.current_plan_finder_deliverable_cost_micros &&
449
+ current_plan_finder_undeliverable_cost_micros == o.current_plan_finder_undeliverable_cost_micros &&
450
+ current_plan_probe_cost_micros == o.current_plan_probe_cost_micros
451
+ end
452
+
453
+ # @see the `==` method
454
+ # @param [Object] Object to be compared
455
+ def eql?(o)
456
+ self == o
457
+ end
458
+
459
+ # Calculates hash code according to all attributes.
460
+ # @return [Integer] Hash code
461
+ def hash
462
+ [plan_tier, billing_mode, billing_status, free_window_limit, free_window_hours, free_weekly_limit, window_requests_used, weekly_requests_used, window_requests_remaining, weekly_requests_remaining, billing_cycle_value_micros, billing_extra_value_micros, billing_value_micros_used, billing_value_micros_reserved, billing_value_micros_remaining, usage_percent_remaining, current_plan_finder_deliverable_cost_micros, current_plan_finder_undeliverable_cost_micros, current_plan_probe_cost_micros].hash
463
+ end
464
+
465
+ # Builds the object from hash
466
+ # @param [Hash] attributes Model attributes in the form of hash
467
+ # @return [Object] Returns the model itself
468
+ def self.build_from_hash(attributes)
469
+ return nil unless attributes.is_a?(Hash)
470
+ attributes = attributes.transform_keys(&:to_sym)
471
+ transformed_hash = {}
472
+ openapi_types.each_pair do |key, type|
473
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
474
+ transformed_hash["#{key}"] = nil
475
+ elsif type =~ /\AArray<(.*)>/i
476
+ # check to ensure the input is an array given that the attribute
477
+ # is documented as an array but the input is not
478
+ if attributes[attribute_map[key]].is_a?(Array)
479
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
480
+ end
481
+ elsif !attributes[attribute_map[key]].nil?
482
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
483
+ end
484
+ end
485
+ new(transformed_hash)
486
+ end
487
+
488
+ # Returns the object in the form of hash
489
+ # @return [Hash] Returns the object in the form of hash
490
+ def to_hash
491
+ hash = {}
492
+ self.class.attribute_map.each_pair do |attr, param|
493
+ value = self.send(attr)
494
+ if value.nil?
495
+ is_nullable = self.class.openapi_nullable.include?(attr)
496
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
497
+ end
498
+
499
+ hash[param] = _to_hash(value)
500
+ end
501
+ hash
502
+ end
503
+
504
+ end
505
+
506
+ end
@@ -0,0 +1,178 @@
1
+ =begin
2
+ #Relentless Identity API
3
+
4
+ #Public client API for Finder and Probe workflows. This spec is generated from the FastAPI app, then narrowed to the supported bearer-authenticated routes used by SDKs and the API reference.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.21.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module RelentlessIdentity
17
+ class ErrorResponse < ApiModelBase
18
+ # Stable machine-readable error key.
19
+ attr_accessor :error
20
+
21
+ # Human-friendly error summary safe to show to an operator or end user.
22
+ attr_accessor :message
23
+
24
+ # Optional raw backend detail when available.
25
+ attr_accessor :detail
26
+
27
+ attr_accessor :retry_after_seconds
28
+
29
+ # Attribute mapping from ruby-style variable name to JSON key.
30
+ def self.attribute_map
31
+ {
32
+ :'error' => :'error',
33
+ :'message' => :'message',
34
+ :'detail' => :'detail',
35
+ :'retry_after_seconds' => :'retry_after_seconds'
36
+ }
37
+ end
38
+
39
+ # Returns attribute mapping this model knows about
40
+ def self.acceptable_attribute_map
41
+ attribute_map
42
+ end
43
+
44
+ # Returns all the JSON keys this model knows about
45
+ def self.acceptable_attributes
46
+ acceptable_attribute_map.values
47
+ end
48
+
49
+ # Attribute type mapping.
50
+ def self.openapi_types
51
+ {
52
+ :'error' => :'String',
53
+ :'message' => :'String',
54
+ :'detail' => :'String',
55
+ :'retry_after_seconds' => :'Integer'
56
+ }
57
+ end
58
+
59
+ # List of attributes with nullable: true
60
+ def self.openapi_nullable
61
+ Set.new([
62
+ :'retry_after_seconds'
63
+ ])
64
+ end
65
+
66
+ # Initializes the object
67
+ # @param [Hash] attributes Model attributes in the form of hash
68
+ def initialize(attributes = {})
69
+ if (!attributes.is_a?(Hash))
70
+ fail ArgumentError, "The input argument (attributes) must be a hash in `RelentlessIdentity::ErrorResponse` initialize method"
71
+ end
72
+
73
+ # check to see if the attribute exists and convert string to symbol for hash key
74
+ acceptable_attribute_map = self.class.acceptable_attribute_map
75
+ attributes = attributes.each_with_object({}) { |(k, v), h|
76
+ if (!acceptable_attribute_map.key?(k.to_sym))
77
+ fail ArgumentError, "`#{k}` is not a valid attribute in `RelentlessIdentity::ErrorResponse`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
78
+ end
79
+ h[k.to_sym] = v
80
+ }
81
+
82
+ if attributes.key?(:'error')
83
+ self.error = attributes[:'error']
84
+ end
85
+
86
+ if attributes.key?(:'message')
87
+ self.message = attributes[:'message']
88
+ end
89
+
90
+ if attributes.key?(:'detail')
91
+ self.detail = attributes[:'detail']
92
+ end
93
+
94
+ if attributes.key?(:'retry_after_seconds')
95
+ self.retry_after_seconds = attributes[:'retry_after_seconds']
96
+ end
97
+ end
98
+
99
+ # Show invalid properties with the reasons. Usually used together with valid?
100
+ # @return Array for valid properties with the reasons
101
+ def list_invalid_properties
102
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
103
+ invalid_properties = Array.new
104
+ invalid_properties
105
+ end
106
+
107
+ # Check to see if the all the properties in the model are valid
108
+ # @return true if the model is valid
109
+ def valid?
110
+ warn '[DEPRECATED] the `valid?` method is obsolete'
111
+ true
112
+ end
113
+
114
+ # Checks equality by comparing each attribute.
115
+ # @param [Object] Object to be compared
116
+ def ==(o)
117
+ return true if self.equal?(o)
118
+ self.class == o.class &&
119
+ error == o.error &&
120
+ message == o.message &&
121
+ detail == o.detail &&
122
+ retry_after_seconds == o.retry_after_seconds
123
+ end
124
+
125
+ # @see the `==` method
126
+ # @param [Object] Object to be compared
127
+ def eql?(o)
128
+ self == o
129
+ end
130
+
131
+ # Calculates hash code according to all attributes.
132
+ # @return [Integer] Hash code
133
+ def hash
134
+ [error, message, detail, retry_after_seconds].hash
135
+ end
136
+
137
+ # Builds the object from hash
138
+ # @param [Hash] attributes Model attributes in the form of hash
139
+ # @return [Object] Returns the model itself
140
+ def self.build_from_hash(attributes)
141
+ return nil unless attributes.is_a?(Hash)
142
+ attributes = attributes.transform_keys(&:to_sym)
143
+ transformed_hash = {}
144
+ openapi_types.each_pair do |key, type|
145
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
146
+ transformed_hash["#{key}"] = nil
147
+ elsif type =~ /\AArray<(.*)>/i
148
+ # check to ensure the input is an array given that the attribute
149
+ # is documented as an array but the input is not
150
+ if attributes[attribute_map[key]].is_a?(Array)
151
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
152
+ end
153
+ elsif !attributes[attribute_map[key]].nil?
154
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
155
+ end
156
+ end
157
+ new(transformed_hash)
158
+ end
159
+
160
+ # Returns the object in the form of hash
161
+ # @return [Hash] Returns the object in the form of hash
162
+ def to_hash
163
+ hash = {}
164
+ self.class.attribute_map.each_pair do |attr, param|
165
+ value = self.send(attr)
166
+ if value.nil?
167
+ is_nullable = self.class.openapi_nullable.include?(attr)
168
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
169
+ end
170
+
171
+ hash[param] = _to_hash(value)
172
+ end
173
+ hash
174
+ end
175
+
176
+ end
177
+
178
+ end