license_manager 0.1.1 → 0.3.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 (129) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +152 -0
  3. data/README.md +3 -3
  4. data/docs/BillingPortalSession.md +18 -0
  5. data/docs/CancelLicense.md +22 -0
  6. data/docs/CancellationReason.md +15 -0
  7. data/docs/CancellationStats.md +30 -0
  8. data/docs/CancellationStatsByReasonInner.md +20 -0
  9. data/docs/ConnectStripe.md +1 -1
  10. data/docs/CreateBillingPortalSession.md +18 -0
  11. data/docs/CreateIntegrationMapping.md +1 -1
  12. data/docs/CreateLicense.md +2 -0
  13. data/docs/CreatePolicy.md +3 -1
  14. data/docs/CreateProductWithPolicy.md +1 -1
  15. data/docs/CreateToken.md +1 -1
  16. data/docs/EventActorOneOf.md +1 -1
  17. data/docs/Integration.md +11 -1
  18. data/docs/IntegrationMapping.md +2 -0
  19. data/docs/IntegrationMappingRecurring.md +20 -0
  20. data/docs/IntegrationsApi.md +74 -0
  21. data/docs/License.md +12 -0
  22. data/docs/LicenseSubscription.md +34 -0
  23. data/docs/LicensesApi.md +80 -3
  24. data/docs/Machine.md +3 -1
  25. data/docs/MachinesApi.md +1 -1
  26. data/docs/Mrr.md +26 -0
  27. data/docs/MrrByIntervalInner.md +24 -0
  28. data/docs/MrrByPolicyInner.md +22 -0
  29. data/docs/Policy.md +2 -0
  30. data/docs/PolicySettings.md +3 -1
  31. data/docs/PortalApi.md +80 -1
  32. data/docs/PortalLink.md +2 -2
  33. data/docs/Product.md +2 -0
  34. data/docs/ProductStats.md +8 -4
  35. data/docs/ProductsApi.md +2 -2
  36. data/docs/Revenue.md +10 -2
  37. data/docs/StripeIntegration.md +1 -1
  38. data/docs/StripePermission.md +5 -1
  39. data/docs/StripePrice.md +2 -0
  40. data/docs/StripePriceRecurring.md +20 -0
  41. data/docs/SubscriptionStats.md +38 -0
  42. data/docs/UpdateIntegration.md +20 -0
  43. data/docs/UpdateLicense.md +3 -1
  44. data/docs/UpdatePolicy.md +3 -1
  45. data/docs/UpdateProduct.md +3 -1
  46. data/lib/license_manager/api/integrations_api.rb +74 -0
  47. data/lib/license_manager/api/licenses_api.rb +80 -6
  48. data/lib/license_manager/api/machines_api.rb +3 -3
  49. data/lib/license_manager/api/portal_api.rb +72 -2
  50. data/lib/license_manager/api/products_api.rb +4 -4
  51. data/lib/license_manager/models/billing_portal_session.rb +178 -0
  52. data/lib/license_manager/models/cancel_license.rb +238 -0
  53. data/lib/license_manager/models/cancellation_reason.rb +45 -0
  54. data/lib/license_manager/models/cancellation_stats.rb +347 -0
  55. data/lib/license_manager/models/cancellation_stats_by_reason_inner.rb +225 -0
  56. data/lib/license_manager/models/connect_stripe.rb +1 -1
  57. data/lib/license_manager/models/create_billing_portal_session.rb +161 -0
  58. data/lib/license_manager/models/create_integration_mapping.rb +1 -1
  59. data/lib/license_manager/models/create_license.rb +12 -1
  60. data/lib/license_manager/models/create_policy.rb +40 -5
  61. data/lib/license_manager/models/create_product_with_policy.rb +1 -1
  62. data/lib/license_manager/models/create_token.rb +1 -1
  63. data/lib/license_manager/models/event_type.rb +7 -1
  64. data/lib/license_manager/models/integration.rb +136 -1
  65. data/lib/license_manager/models/integration_mapping.rb +13 -1
  66. data/lib/license_manager/models/integration_mapping_recurring.rb +228 -0
  67. data/lib/license_manager/models/license.rb +91 -1
  68. data/lib/license_manager/models/license_status.rb +2 -1
  69. data/lib/license_manager/models/license_subscription.rb +388 -0
  70. data/lib/license_manager/models/machine.rb +17 -4
  71. data/lib/license_manager/models/mrr.rb +291 -0
  72. data/lib/license_manager/models/mrr_by_interval_inner.rb +279 -0
  73. data/lib/license_manager/models/mrr_by_policy_inner.rb +229 -0
  74. data/lib/license_manager/models/policy.rb +14 -1
  75. data/lib/license_manager/models/policy_settings.rb +40 -5
  76. data/lib/license_manager/models/portal_link.rb +1 -1
  77. data/lib/license_manager/models/product.rb +28 -1
  78. data/lib/license_manager/models/product_stats.rb +31 -5
  79. data/lib/license_manager/models/revenue.rb +112 -4
  80. data/lib/license_manager/models/stripe_integration.rb +1 -1
  81. data/lib/license_manager/models/stripe_permission.rb +58 -4
  82. data/lib/license_manager/models/stripe_price.rb +13 -1
  83. data/lib/license_manager/models/stripe_price_recurring.rb +228 -0
  84. data/lib/license_manager/models/subscription_stats.rb +456 -0
  85. data/lib/license_manager/models/update_integration.rb +199 -0
  86. data/lib/license_manager/models/update_license.rb +16 -5
  87. data/lib/license_manager/models/update_policy.rb +40 -5
  88. data/lib/license_manager/models/update_product.rb +14 -4
  89. data/lib/license_manager/version.rb +1 -1
  90. data/lib/license_manager.rb +14 -0
  91. data/openapi.json +1146 -59
  92. data/spec/api/integrations_api_spec.rb +13 -0
  93. data/spec/api/licenses_api_spec.rb +16 -3
  94. data/spec/api/machines_api_spec.rb +1 -1
  95. data/spec/api/portal_api_spec.rb +14 -1
  96. data/spec/api/products_api_spec.rb +2 -2
  97. data/spec/models/billing_portal_session_spec.rb +36 -0
  98. data/spec/models/cancel_license_spec.rb +48 -0
  99. data/spec/models/cancellation_reason_spec.rb +30 -0
  100. data/spec/models/cancellation_stats_by_reason_inner_spec.rb +42 -0
  101. data/spec/models/cancellation_stats_spec.rb +72 -0
  102. data/spec/models/create_billing_portal_session_spec.rb +36 -0
  103. data/spec/models/create_license_spec.rb +6 -0
  104. data/spec/models/create_policy_spec.rb +6 -0
  105. data/spec/models/create_token_spec.rb +1 -1
  106. data/spec/models/integration_mapping_recurring_spec.rb +46 -0
  107. data/spec/models/integration_mapping_spec.rb +6 -0
  108. data/spec/models/integration_spec.rb +30 -0
  109. data/spec/models/license_spec.rb +36 -0
  110. data/spec/models/license_subscription_spec.rb +88 -0
  111. data/spec/models/machine_spec.rb +7 -1
  112. data/spec/models/mrr_by_interval_inner_spec.rb +58 -0
  113. data/spec/models/mrr_by_policy_inner_spec.rb +48 -0
  114. data/spec/models/mrr_spec.rb +60 -0
  115. data/spec/models/policy_settings_spec.rb +6 -0
  116. data/spec/models/policy_spec.rb +6 -0
  117. data/spec/models/product_spec.rb +6 -0
  118. data/spec/models/product_stats_spec.rb +12 -0
  119. data/spec/models/revenue_spec.rb +24 -0
  120. data/spec/models/stripe_permission_spec.rb +12 -0
  121. data/spec/models/stripe_price_recurring_spec.rb +46 -0
  122. data/spec/models/stripe_price_spec.rb +6 -0
  123. data/spec/models/subscription_stats_spec.rb +96 -0
  124. data/spec/models/token_spec.rb +1 -1
  125. data/spec/models/update_integration_spec.rb +42 -0
  126. data/spec/models/update_license_spec.rb +6 -0
  127. data/spec/models/update_policy_spec.rb +6 -0
  128. data/spec/models/update_product_spec.rb +6 -0
  129. metadata +57 -1
@@ -0,0 +1,228 @@
1
+ =begin
2
+ #LicenseManager API
3
+
4
+ #Public API. Authenticate with an organization API key, or with a token scoped to a customer, license or machine on the endpoints that accept one. ## Conventions - **Errors** answer `{ \"error\": { \"code\", \"message\" } }`. Branch on `code`, which is stable, not on `message`. Each response lists the codes it can return, except `404`, which answers `not_found` unless it says otherwise. Unexpected errors answer `500` with `internal_error`. - **Validation** errors answer `422`, not `400`, with the `validation_error` code and an `issues` array giving the `path` and `message` of each invalid value. - **Unknown body fields are ignored**, not rejected: sending a field an endpoint doesn't accept, like `policyId` to `updateLicense`, changes nothing and doesn't fail. - **Strings** are trimmed before they're validated and stored. Emails are stored lower cased. - **Updates** only change the fields that are sent. A field sent as `null` is cleared, when it can be. - **Dates** can be sent with any offset, and are always returned in UTC, like `2026-01-15T09:30:00.000Z`. Calendar months and days are counted in UTC. - **Ids** are 8 letters and digits, after `test_` for test products and their resources. - **Lists** are paginated with `page` and `pageSize`. Items with the same value for the `sort` field are ordered by id, so pages are stable, but items created or deleted between two requests shift the pages. Items without a value for the `sort` field come last in ascending order, and first in descending order, unless the endpoint says otherwise. - **Test products** are sandboxes of a live product. Test API keys only reach test products, live API keys only live ones: the others answer `404`, as if they didn't exist. Sessions and tokens reach both.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.26.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module LicenseManager
17
+ # Billing period of a recurring price, `null` for a one-time price. Subscribing to a recurring price creates one subscription license, valid while it's paid.
18
+ class IntegrationMappingRecurring < ApiModelBase
19
+ attr_accessor :interval
20
+
21
+ attr_accessor :interval_count
22
+
23
+ class EnumAttributeValidator
24
+ attr_reader :datatype
25
+ attr_reader :allowable_values
26
+
27
+ def initialize(datatype, allowable_values)
28
+ @allowable_values = allowable_values.map do |value|
29
+ case datatype.to_s
30
+ when /Integer/i
31
+ value.to_i
32
+ when /Float/i
33
+ value.to_f
34
+ else
35
+ value
36
+ end
37
+ end
38
+ end
39
+
40
+ def valid?(value)
41
+ !value || allowable_values.include?(value)
42
+ end
43
+ end
44
+
45
+ # Attribute mapping from ruby-style variable name to JSON key.
46
+ def self.attribute_map
47
+ {
48
+ :'interval' => :'interval',
49
+ :'interval_count' => :'intervalCount'
50
+ }
51
+ end
52
+
53
+ # Returns attribute mapping this model knows about
54
+ def self.acceptable_attribute_map
55
+ attribute_map
56
+ end
57
+
58
+ # Returns all the JSON keys this model knows about
59
+ def self.acceptable_attributes
60
+ acceptable_attribute_map.values
61
+ end
62
+
63
+ # Attribute type mapping.
64
+ def self.openapi_types
65
+ {
66
+ :'interval' => :'String',
67
+ :'interval_count' => :'Integer'
68
+ }
69
+ end
70
+
71
+ # List of attributes with nullable: true
72
+ def self.openapi_nullable
73
+ Set.new([
74
+ ])
75
+ end
76
+
77
+ # Returns attribute type mapping
78
+ def self.acceptable_openapi_types
79
+ openapi_types
80
+ end
81
+
82
+ # Returns the nullable attributes
83
+ def self.acceptable_openapi_nullable
84
+ openapi_nullable
85
+ end
86
+
87
+ # Initializes the object
88
+ # @param [Hash] attributes Model attributes in the form of hash
89
+ def initialize(attributes = {})
90
+ if (!attributes.is_a?(Hash))
91
+ fail ArgumentError, "The input argument (attributes) must be a hash in `LicenseManager::IntegrationMappingRecurring` initialize method"
92
+ end
93
+
94
+ # check to see if the attribute exists and convert string to symbol for hash key
95
+ acceptable_attribute_map = self.class.acceptable_attribute_map
96
+ attributes = attributes.each_with_object({}) { |(k, v), h|
97
+ if (!acceptable_attribute_map.key?(k.to_sym))
98
+ fail ArgumentError, "`#{k}` is not a valid attribute in `LicenseManager::IntegrationMappingRecurring`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
99
+ end
100
+ h[k.to_sym] = v
101
+ }
102
+
103
+ if attributes.key?(:'interval')
104
+ self.interval = attributes[:'interval']
105
+ else
106
+ self.interval = nil
107
+ end
108
+
109
+ if attributes.key?(:'interval_count')
110
+ self.interval_count = attributes[:'interval_count']
111
+ else
112
+ self.interval_count = nil
113
+ end
114
+ end
115
+
116
+ # Show invalid properties with the reasons. Usually used together with valid?
117
+ # @return Array for valid properties with the reasons
118
+ def list_invalid_properties
119
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
120
+ invalid_properties = Array.new
121
+ if @interval.nil?
122
+ invalid_properties.push('invalid value for "interval", interval cannot be nil.')
123
+ end
124
+
125
+ if @interval_count.nil?
126
+ invalid_properties.push('invalid value for "interval_count", interval_count cannot be nil.')
127
+ end
128
+
129
+ invalid_properties
130
+ end
131
+
132
+ # Check to see if the all the properties in the model are valid
133
+ # @return true if the model is valid
134
+ def valid?
135
+ warn '[DEPRECATED] the `valid?` method is obsolete'
136
+ return false if @interval.nil?
137
+ interval_validator = EnumAttributeValidator.new('String', ["day", "week", "month", "year", "unknown_default_open_api"])
138
+ return false unless interval_validator.valid?(@interval)
139
+ return false if @interval_count.nil?
140
+ true
141
+ end
142
+
143
+ # Custom attribute writer method checking allowed values (enum).
144
+ # @param [Object] interval Object to be assigned
145
+ def interval=(interval)
146
+ validator = EnumAttributeValidator.new('String', ["day", "week", "month", "year", "unknown_default_open_api"])
147
+ unless validator.valid?(interval)
148
+ fail ArgumentError, "invalid value for \"interval\", must be one of #{validator.allowable_values}."
149
+ end
150
+ @interval = interval
151
+ end
152
+
153
+ # Custom attribute writer method with validation
154
+ # @param [Object] interval_count Value to be assigned
155
+ def interval_count=(interval_count)
156
+ if interval_count.nil?
157
+ fail ArgumentError, 'interval_count cannot be nil'
158
+ end
159
+
160
+ @interval_count = interval_count
161
+ end
162
+
163
+ # Checks equality by comparing each attribute.
164
+ # @param [Object] Object to be compared
165
+ def ==(o)
166
+ return true if self.equal?(o)
167
+ self.class == o.class &&
168
+ interval == o.interval &&
169
+ interval_count == o.interval_count
170
+ end
171
+
172
+ # @see the `==` method
173
+ # @param [Object] Object to be compared
174
+ def eql?(o)
175
+ self == o
176
+ end
177
+
178
+ # Calculates hash code according to all attributes.
179
+ # @return [Integer] Hash code
180
+ def hash
181
+ [interval, interval_count].hash
182
+ end
183
+
184
+ # Builds the object from hash
185
+ # @param [Hash] attributes Model attributes in the form of hash
186
+ # @return [Object] Returns the model itself
187
+ def self.build_from_hash(attributes)
188
+ return nil unless attributes.is_a?(Hash)
189
+ attributes = attributes.transform_keys(&:to_sym)
190
+ # include attributes inherited from allOf parents (the nearest declaration wins)
191
+ map = acceptable_attribute_map
192
+ transformed_hash = {}
193
+ acceptable_openapi_types.each_pair do |key, type|
194
+ if attributes.key?(map[key]) && attributes[map[key]].nil?
195
+ transformed_hash["#{key}"] = nil
196
+ elsif type =~ /\AArray<(.*)>/i
197
+ # check to ensure the input is an array given that the attribute
198
+ # is documented as an array but the input is not
199
+ if attributes[map[key]].is_a?(Array)
200
+ transformed_hash["#{key}"] = attributes[map[key]].map { |v| _deserialize($1, v) }
201
+ end
202
+ elsif !attributes[map[key]].nil?
203
+ transformed_hash["#{key}"] = _deserialize(type, attributes[map[key]])
204
+ end
205
+ end
206
+ new(transformed_hash)
207
+ end
208
+
209
+ # Returns the object in the form of hash
210
+ # @return [Hash] Returns the object in the form of hash
211
+ def to_hash
212
+ hash = {}
213
+ # include attributes inherited from allOf parents (the nearest declaration wins)
214
+ self.class.acceptable_attribute_map.each_pair do |attr, param|
215
+ value = self.send(attr)
216
+ if value.nil?
217
+ is_nullable = self.class.acceptable_openapi_nullable.include?(attr)
218
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
219
+ end
220
+
221
+ hash[param] = _to_hash(value)
222
+ end
223
+ hash
224
+ end
225
+
226
+ end
227
+
228
+ end
@@ -55,6 +55,22 @@ module LicenseManager
55
55
 
56
56
  attr_accessor :status
57
57
 
58
+ # End of the money back guarantee: until then, the customer can cancel the license from the customer portal, or with a token. Set from the policy's `moneyBackGuaranteeDays` when the license is created. `null` when the customer can't cancel it.
59
+ attr_accessor :cancellable_until
60
+
61
+ # When the license was canceled: validating its key fails since. `null` when it wasn't.
62
+ attr_accessor :canceled_at
63
+
64
+ attr_accessor :cancellation_reason
65
+
66
+ attr_accessor :subscription
67
+
68
+ # Comment given when the license was canceled. `null` when there's none.
69
+ attr_accessor :cancellation_comment
70
+
71
+ # Id of the Stripe refund of the license's payment once it was canceled, through the Stripe integration. `null` otherwise.
72
+ attr_accessor :stripe_refund_id
73
+
58
74
  # Last time the license's settings were edited, not when its key was validated.
59
75
  attr_accessor :updated_at
60
76
 
@@ -99,6 +115,12 @@ module LicenseManager
99
115
  :'max_version' => :'maxVersion',
100
116
  :'price' => :'price',
101
117
  :'status' => :'status',
118
+ :'cancellable_until' => :'cancellableUntil',
119
+ :'canceled_at' => :'canceledAt',
120
+ :'cancellation_reason' => :'cancellationReason',
121
+ :'subscription' => :'subscription',
122
+ :'cancellation_comment' => :'cancellationComment',
123
+ :'stripe_refund_id' => :'stripeRefundId',
102
124
  :'updated_at' => :'updatedAt'
103
125
  }
104
126
  end
@@ -132,6 +154,12 @@ module LicenseManager
132
154
  :'max_version' => :'LicenseMaxVersion',
133
155
  :'price' => :'Price',
134
156
  :'status' => :'LicenseStatus',
157
+ :'cancellable_until' => :'Time',
158
+ :'canceled_at' => :'Time',
159
+ :'cancellation_reason' => :'CancellationReason',
160
+ :'subscription' => :'LicenseSubscription',
161
+ :'cancellation_comment' => :'String',
162
+ :'stripe_refund_id' => :'String',
135
163
  :'updated_at' => :'Time'
136
164
  }
137
165
  end
@@ -145,6 +173,11 @@ module LicenseManager
145
173
  :'max_machines',
146
174
  :'last_activated_at',
147
175
  :'price',
176
+ :'cancellable_until',
177
+ :'canceled_at',
178
+ :'subscription',
179
+ :'cancellation_comment',
180
+ :'stripe_refund_id',
148
181
  ])
149
182
  end
150
183
 
@@ -272,6 +305,42 @@ module LicenseManager
272
305
  self.status = nil
273
306
  end
274
307
 
308
+ if attributes.key?(:'cancellable_until')
309
+ self.cancellable_until = attributes[:'cancellable_until']
310
+ else
311
+ self.cancellable_until = nil
312
+ end
313
+
314
+ if attributes.key?(:'canceled_at')
315
+ self.canceled_at = attributes[:'canceled_at']
316
+ else
317
+ self.canceled_at = nil
318
+ end
319
+
320
+ if attributes.key?(:'cancellation_reason')
321
+ self.cancellation_reason = attributes[:'cancellation_reason']
322
+ else
323
+ self.cancellation_reason = nil
324
+ end
325
+
326
+ if attributes.key?(:'subscription')
327
+ self.subscription = attributes[:'subscription']
328
+ else
329
+ self.subscription = nil
330
+ end
331
+
332
+ if attributes.key?(:'cancellation_comment')
333
+ self.cancellation_comment = attributes[:'cancellation_comment']
334
+ else
335
+ self.cancellation_comment = nil
336
+ end
337
+
338
+ if attributes.key?(:'stripe_refund_id')
339
+ self.stripe_refund_id = attributes[:'stripe_refund_id']
340
+ else
341
+ self.stripe_refund_id = nil
342
+ end
343
+
275
344
  if attributes.key?(:'updated_at')
276
345
  self.updated_at = attributes[:'updated_at']
277
346
  else
@@ -324,6 +393,10 @@ module LicenseManager
324
393
  invalid_properties.push('invalid value for "status", status cannot be nil.')
325
394
  end
326
395
 
396
+ if @cancellation_reason.nil?
397
+ invalid_properties.push('invalid value for "cancellation_reason", cancellation_reason cannot be nil.')
398
+ end
399
+
327
400
  if @updated_at.nil?
328
401
  invalid_properties.push('invalid value for "updated_at", updated_at cannot be nil.')
329
402
  end
@@ -345,6 +418,7 @@ module LicenseManager
345
418
  return false if @active_machine_count.nil?
346
419
  return false if @max_version.nil?
347
420
  return false if @status.nil?
421
+ return false if @cancellation_reason.nil?
348
422
  return false if @updated_at.nil?
349
423
  true
350
424
  end
@@ -449,6 +523,16 @@ module LicenseManager
449
523
  @status = status
450
524
  end
451
525
 
526
+ # Custom attribute writer method with validation
527
+ # @param [Object] cancellation_reason Value to be assigned
528
+ def cancellation_reason=(cancellation_reason)
529
+ if cancellation_reason.nil?
530
+ fail ArgumentError, 'cancellation_reason cannot be nil'
531
+ end
532
+
533
+ @cancellation_reason = cancellation_reason
534
+ end
535
+
452
536
  # Custom attribute writer method with validation
453
537
  # @param [Object] updated_at Value to be assigned
454
538
  def updated_at=(updated_at)
@@ -480,6 +564,12 @@ module LicenseManager
480
564
  max_version == o.max_version &&
481
565
  price == o.price &&
482
566
  status == o.status &&
567
+ cancellable_until == o.cancellable_until &&
568
+ canceled_at == o.canceled_at &&
569
+ cancellation_reason == o.cancellation_reason &&
570
+ subscription == o.subscription &&
571
+ cancellation_comment == o.cancellation_comment &&
572
+ stripe_refund_id == o.stripe_refund_id &&
483
573
  updated_at == o.updated_at
484
574
  end
485
575
 
@@ -492,7 +582,7 @@ module LicenseManager
492
582
  # Calculates hash code according to all attributes.
493
583
  # @return [Integer] Hash code
494
584
  def hash
495
- [id, product_id, policy_id, customer_id, key, created_at, expires_at, meta, stripe_payment_intent_id, max_machines, max_offline_duration_seconds, active_machine_count, last_activated_at, max_version, price, status, updated_at].hash
585
+ [id, product_id, policy_id, customer_id, key, created_at, expires_at, meta, stripe_payment_intent_id, max_machines, max_offline_duration_seconds, active_machine_count, last_activated_at, max_version, price, status, cancellable_until, canceled_at, cancellation_reason, subscription, cancellation_comment, stripe_refund_id, updated_at].hash
496
586
  end
497
587
 
498
588
  # Builds the object from hash
@@ -18,10 +18,11 @@ module LicenseManager
18
18
  ACTIVE = "active".freeze
19
19
  INACTIVE = "inactive".freeze
20
20
  EXPIRED = "expired".freeze
21
+ CANCELED = "canceled".freeze
21
22
  UNKNOWN_DEFAULT_OPEN_API = "unknown_default_open_api".freeze
22
23
 
23
24
  def self.all_vars
24
- @all_vars ||= [ACTIVE, INACTIVE, EXPIRED, UNKNOWN_DEFAULT_OPEN_API].freeze
25
+ @all_vars ||= [ACTIVE, INACTIVE, EXPIRED, CANCELED, UNKNOWN_DEFAULT_OPEN_API].freeze
25
26
  end
26
27
 
27
28
  # Builds the enum from string