license_manager 0.1.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 (323) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +5 -0
  3. data/Gemfile +9 -0
  4. data/LICENSE +201 -0
  5. data/README.md +96 -0
  6. data/Rakefile +10 -0
  7. data/docs/ConnectStripe.md +18 -0
  8. data/docs/CreateCustomer.md +20 -0
  9. data/docs/CreateIntegrationMapping.md +20 -0
  10. data/docs/CreateLicense.md +36 -0
  11. data/docs/CreatePolicy.md +30 -0
  12. data/docs/CreatePortalLink.md +18 -0
  13. data/docs/CreateProduct.md +20 -0
  14. data/docs/CreateProductWithPolicy.md +24 -0
  15. data/docs/CreateRelease.md +20 -0
  16. data/docs/CreateToken.md +20 -0
  17. data/docs/Customer.md +30 -0
  18. data/docs/CustomerList.md +20 -0
  19. data/docs/CustomersApi.md +385 -0
  20. data/docs/Error.md +18 -0
  21. data/docs/ErrorError.md +22 -0
  22. data/docs/ErrorErrorIssuesInner.md +20 -0
  23. data/docs/ErrorErrorIssuesInnerPathInner.md +15 -0
  24. data/docs/Event.md +34 -0
  25. data/docs/EventActor.md +55 -0
  26. data/docs/EventActorOneOf.md +26 -0
  27. data/docs/EventActorOneOf1.md +24 -0
  28. data/docs/EventActorOneOf2.md +22 -0
  29. data/docs/EventActorOneOf3.md +18 -0
  30. data/docs/EventActorOneOf4.md +22 -0
  31. data/docs/EventList.md +20 -0
  32. data/docs/EventMachine.md +22 -0
  33. data/docs/EventType.md +15 -0
  34. data/docs/EventsApi.md +173 -0
  35. data/docs/FixedMaxVersion.md +20 -0
  36. data/docs/Integration.md +38 -0
  37. data/docs/IntegrationMapping.md +38 -0
  38. data/docs/IntegrationStatus.md +15 -0
  39. data/docs/IntegrationsApi.md +587 -0
  40. data/docs/License.md +50 -0
  41. data/docs/LicenseList.md +20 -0
  42. data/docs/LicenseMaxVersion.md +22 -0
  43. data/docs/LicenseMaxVersionInput.md +22 -0
  44. data/docs/LicenseStats.md +26 -0
  45. data/docs/LicenseStatsActivationsByMachineInner.md +24 -0
  46. data/docs/LicenseStatsActivationsByVersionInner.md +20 -0
  47. data/docs/LicenseStatus.md +15 -0
  48. data/docs/LicenseToken.md +18 -0
  49. data/docs/LicensesApi.md +817 -0
  50. data/docs/ListPolicyEventsTypeParameter.md +15 -0
  51. data/docs/ListStripePrices200Response.md +18 -0
  52. data/docs/LockMaxVersion.md +22 -0
  53. data/docs/LockMaxVersionMajorAfter.md +49 -0
  54. data/docs/LockMaxVersionMajorAfterOneOf.md +20 -0
  55. data/docs/LockMaxVersionMajorAfterOneOf1.md +20 -0
  56. data/docs/LockMaxVersionMinorAfter.md +20 -0
  57. data/docs/Machine.md +36 -0
  58. data/docs/MachineList.md +20 -0
  59. data/docs/MachinesApi.md +246 -0
  60. data/docs/Pagination.md +24 -0
  61. data/docs/PoliciesApi.md +388 -0
  62. data/docs/Policy.md +40 -0
  63. data/docs/PolicyDuration.md +20 -0
  64. data/docs/PolicyList.md +20 -0
  65. data/docs/PolicyMaxVersion.md +24 -0
  66. data/docs/PolicySettings.md +24 -0
  67. data/docs/PolicySettingsDuration.md +20 -0
  68. data/docs/PolicySettingsDurationAnyOf.md +20 -0
  69. data/docs/PolicySettingsDurationAnyOf1.md +20 -0
  70. data/docs/PolicySettingsMaxVersion.md +24 -0
  71. data/docs/Portal.md +30 -0
  72. data/docs/PortalApi.md +289 -0
  73. data/docs/PortalLink.md +22 -0
  74. data/docs/PortalNotFound.md +22 -0
  75. data/docs/PortalSettings.md +26 -0
  76. data/docs/Price.md +20 -0
  77. data/docs/PriceInput.md +20 -0
  78. data/docs/Product.md +32 -0
  79. data/docs/ProductList.md +20 -0
  80. data/docs/ProductStats.md +54 -0
  81. data/docs/ProductStatsActivationsByVersionInner.md +20 -0
  82. data/docs/ProductStatsActiveMachinesByPlatformInner.md +20 -0
  83. data/docs/ProductStatsActiveMachinesByVersionInner.md +20 -0
  84. data/docs/ProductStatsNewLicensesByPolicyInner.md +22 -0
  85. data/docs/ProductsApi.md +666 -0
  86. data/docs/Release.md +28 -0
  87. data/docs/ReleaseList.md +20 -0
  88. data/docs/ReleasesApi.md +388 -0
  89. data/docs/RequestPortalLink.md +20 -0
  90. data/docs/Revenue.md +34 -0
  91. data/docs/SendLicenseKeys.md +18 -0
  92. data/docs/SendPortalLink.md +18 -0
  93. data/docs/SigningKey.md +27 -0
  94. data/docs/StripeIntegration.md +26 -0
  95. data/docs/StripePermission.md +22 -0
  96. data/docs/StripePrice.md +28 -0
  97. data/docs/Token.md +24 -0
  98. data/docs/TokensApi.md +235 -0
  99. data/docs/UpdateCustomer.md +20 -0
  100. data/docs/UpdateIntegrationMapping.md +18 -0
  101. data/docs/UpdateLicense.md +28 -0
  102. data/docs/UpdatePolicy.md +30 -0
  103. data/docs/UpdateProduct.md +22 -0
  104. data/docs/UpdateProductPortal.md +26 -0
  105. data/docs/UpdateRelease.md +20 -0
  106. data/docs/ValidateKey.md +26 -0
  107. data/docs/ValidateKeyError.md +18 -0
  108. data/docs/ValidateKeyErrorError.md +24 -0
  109. data/git_push.sh +54 -0
  110. data/lib/license_manager/api/customers_api.rb +398 -0
  111. data/lib/license_manager/api/events_api.rb +207 -0
  112. data/lib/license_manager/api/integrations_api.rb +559 -0
  113. data/lib/license_manager/api/licenses_api.rb +885 -0
  114. data/lib/license_manager/api/machines_api.rb +257 -0
  115. data/lib/license_manager/api/policies_api.rb +412 -0
  116. data/lib/license_manager/api/portal_api.rb +310 -0
  117. data/lib/license_manager/api/products_api.rb +653 -0
  118. data/lib/license_manager/api/releases_api.rb +408 -0
  119. data/lib/license_manager/api/tokens_api.rb +244 -0
  120. data/lib/license_manager/api_client.rb +441 -0
  121. data/lib/license_manager/api_error.rb +58 -0
  122. data/lib/license_manager/api_model_base.rb +88 -0
  123. data/lib/license_manager/configuration.rb +400 -0
  124. data/lib/license_manager/models/connect_stripe.rb +187 -0
  125. data/lib/license_manager/models/create_customer.rb +222 -0
  126. data/lib/license_manager/models/create_integration_mapping.rb +222 -0
  127. data/lib/license_manager/models/create_license.rb +361 -0
  128. data/lib/license_manager/models/create_policy.rb +347 -0
  129. data/lib/license_manager/models/create_portal_link.rb +196 -0
  130. data/lib/license_manager/models/create_product.rb +244 -0
  131. data/lib/license_manager/models/create_product_with_policy.rb +270 -0
  132. data/lib/license_manager/models/create_release.rb +208 -0
  133. data/lib/license_manager/models/create_token.rb +237 -0
  134. data/lib/license_manager/models/customer.rb +308 -0
  135. data/lib/license_manager/models/customer_list.rb +206 -0
  136. data/lib/license_manager/models/error.rb +177 -0
  137. data/lib/license_manager/models/error_error.rb +215 -0
  138. data/lib/license_manager/models/error_error_issues_inner.rb +205 -0
  139. data/lib/license_manager/models/error_error_issues_inner_path_inner.rb +103 -0
  140. data/lib/license_manager/models/event.rb +340 -0
  141. data/lib/license_manager/models/event_actor.rb +108 -0
  142. data/lib/license_manager/models/event_actor_one_of.rb +251 -0
  143. data/lib/license_manager/models/event_actor_one_of1.rb +239 -0
  144. data/lib/license_manager/models/event_actor_one_of2.rb +257 -0
  145. data/lib/license_manager/models/event_actor_one_of3.rb +201 -0
  146. data/lib/license_manager/models/event_actor_one_of4.rb +243 -0
  147. data/lib/license_manager/models/event_list.rb +206 -0
  148. data/lib/license_manager/models/event_machine.rb +216 -0
  149. data/lib/license_manager/models/event_type.rb +46 -0
  150. data/lib/license_manager/models/fixed_max_version.rb +240 -0
  151. data/lib/license_manager/models/integration.rb +412 -0
  152. data/lib/license_manager/models/integration_mapping.rb +435 -0
  153. data/lib/license_manager/models/integration_status.rb +42 -0
  154. data/lib/license_manager/models/license.rb +542 -0
  155. data/lib/license_manager/models/license_list.rb +206 -0
  156. data/lib/license_manager/models/license_max_version.rb +208 -0
  157. data/lib/license_manager/models/license_max_version_input.rb +202 -0
  158. data/lib/license_manager/models/license_stats.rb +292 -0
  159. data/lib/license_manager/models/license_stats_activations_by_machine_inner.rb +244 -0
  160. data/lib/license_manager/models/license_stats_activations_by_version_inner.rb +206 -0
  161. data/lib/license_manager/models/license_status.rb +42 -0
  162. data/lib/license_manager/models/license_token.rb +178 -0
  163. data/lib/license_manager/models/list_policy_events_type_parameter.rb +104 -0
  164. data/lib/license_manager/models/list_stripe_prices200_response.rb +179 -0
  165. data/lib/license_manager/models/lock_max_version.rb +240 -0
  166. data/lib/license_manager/models/lock_max_version_major_after.rb +105 -0
  167. data/lib/license_manager/models/lock_max_version_major_after_one_of.rb +245 -0
  168. data/lib/license_manager/models/lock_max_version_major_after_one_of1.rb +246 -0
  169. data/lib/license_manager/models/lock_max_version_minor_after.rb +104 -0
  170. data/lib/license_manager/models/machine.rb +383 -0
  171. data/lib/license_manager/models/machine_list.rb +206 -0
  172. data/lib/license_manager/models/pagination.rb +260 -0
  173. data/lib/license_manager/models/policy.rb +425 -0
  174. data/lib/license_manager/models/policy_duration.rb +104 -0
  175. data/lib/license_manager/models/policy_list.rb +206 -0
  176. data/lib/license_manager/models/policy_max_version.rb +104 -0
  177. data/lib/license_manager/models/policy_settings.rb +244 -0
  178. data/lib/license_manager/models/policy_settings_duration.rb +104 -0
  179. data/lib/license_manager/models/policy_settings_duration_any_of.rb +245 -0
  180. data/lib/license_manager/models/policy_settings_duration_any_of1.rb +246 -0
  181. data/lib/license_manager/models/policy_settings_max_version.rb +104 -0
  182. data/lib/license_manager/models/portal.rb +281 -0
  183. data/lib/license_manager/models/portal_link.rb +232 -0
  184. data/lib/license_manager/models/portal_not_found.rb +204 -0
  185. data/lib/license_manager/models/portal_settings.rb +304 -0
  186. data/lib/license_manager/models/price.rb +206 -0
  187. data/lib/license_manager/models/price_input.rb +224 -0
  188. data/lib/license_manager/models/product.rb +333 -0
  189. data/lib/license_manager/models/product_list.rb +206 -0
  190. data/lib/license_manager/models/product_stats.rb +682 -0
  191. data/lib/license_manager/models/product_stats_activations_by_version_inner.rb +193 -0
  192. data/lib/license_manager/models/product_stats_active_machines_by_platform_inner.rb +190 -0
  193. data/lib/license_manager/models/product_stats_active_machines_by_version_inner.rb +190 -0
  194. data/lib/license_manager/models/product_stats_new_licenses_by_policy_inner.rb +235 -0
  195. data/lib/license_manager/models/release.rb +308 -0
  196. data/lib/license_manager/models/release_list.rb +206 -0
  197. data/lib/license_manager/models/request_portal_link.rb +216 -0
  198. data/lib/license_manager/models/revenue.rb +401 -0
  199. data/lib/license_manager/models/send_license_keys.rb +198 -0
  200. data/lib/license_manager/models/send_portal_link.rb +187 -0
  201. data/lib/license_manager/models/signing_key.rb +282 -0
  202. data/lib/license_manager/models/stripe_integration.rb +276 -0
  203. data/lib/license_manager/models/stripe_permission.rb +253 -0
  204. data/lib/license_manager/models/stripe_price.rb +280 -0
  205. data/lib/license_manager/models/token.rb +274 -0
  206. data/lib/license_manager/models/update_customer.rb +215 -0
  207. data/lib/license_manager/models/update_integration_mapping.rb +186 -0
  208. data/lib/license_manager/models/update_license.rb +268 -0
  209. data/lib/license_manager/models/update_policy.rb +340 -0
  210. data/lib/license_manager/models/update_product.rb +246 -0
  211. data/lib/license_manager/models/update_product_portal.rb +274 -0
  212. data/lib/license_manager/models/update_release.rb +201 -0
  213. data/lib/license_manager/models/validate_key.rb +362 -0
  214. data/lib/license_manager/models/validate_key_error.rb +177 -0
  215. data/lib/license_manager/models/validate_key_error_error.rb +226 -0
  216. data/lib/license_manager/version.rb +15 -0
  217. data/lib/license_manager.rb +142 -0
  218. data/license_manager.gemspec +41 -0
  219. data/openapi.json +9825 -0
  220. data/spec/api/customers_api_spec.rb +102 -0
  221. data/spec/api/events_api_spec.rb +68 -0
  222. data/spec/api/integrations_api_spec.rb +134 -0
  223. data/spec/api/licenses_api_spec.rb +200 -0
  224. data/spec/api/machines_api_spec.rb +77 -0
  225. data/spec/api/policies_api_spec.rb +105 -0
  226. data/spec/api/portal_api_spec.rb +87 -0
  227. data/spec/api/products_api_spec.rb +148 -0
  228. data/spec/api/releases_api_spec.rb +105 -0
  229. data/spec/api/tokens_api_spec.rb +74 -0
  230. data/spec/models/connect_stripe_spec.rb +36 -0
  231. data/spec/models/create_customer_spec.rb +42 -0
  232. data/spec/models/create_integration_mapping_spec.rb +42 -0
  233. data/spec/models/create_license_spec.rb +90 -0
  234. data/spec/models/create_policy_spec.rb +72 -0
  235. data/spec/models/create_portal_link_spec.rb +36 -0
  236. data/spec/models/create_product_spec.rb +42 -0
  237. data/spec/models/create_product_with_policy_spec.rb +54 -0
  238. data/spec/models/create_release_spec.rb +42 -0
  239. data/spec/models/create_token_spec.rb +46 -0
  240. data/spec/models/customer_list_spec.rb +42 -0
  241. data/spec/models/customer_spec.rb +72 -0
  242. data/spec/models/error_error_issues_inner_path_inner_spec.rb +21 -0
  243. data/spec/models/error_error_issues_inner_spec.rb +42 -0
  244. data/spec/models/error_error_spec.rb +48 -0
  245. data/spec/models/error_spec.rb +36 -0
  246. data/spec/models/event_actor_one_of1_spec.rb +58 -0
  247. data/spec/models/event_actor_one_of2_spec.rb +56 -0
  248. data/spec/models/event_actor_one_of3_spec.rb +40 -0
  249. data/spec/models/event_actor_one_of4_spec.rb +56 -0
  250. data/spec/models/event_actor_one_of_spec.rb +64 -0
  251. data/spec/models/event_actor_spec.rb +32 -0
  252. data/spec/models/event_list_spec.rb +42 -0
  253. data/spec/models/event_machine_spec.rb +48 -0
  254. data/spec/models/event_spec.rb +84 -0
  255. data/spec/models/event_type_spec.rb +30 -0
  256. data/spec/models/fixed_max_version_spec.rb +46 -0
  257. data/spec/models/integration_mapping_spec.rb +100 -0
  258. data/spec/models/integration_spec.rb +100 -0
  259. data/spec/models/integration_status_spec.rb +30 -0
  260. data/spec/models/license_list_spec.rb +42 -0
  261. data/spec/models/license_max_version_input_spec.rb +48 -0
  262. data/spec/models/license_max_version_spec.rb +48 -0
  263. data/spec/models/license_spec.rb +132 -0
  264. data/spec/models/license_stats_activations_by_machine_inner_spec.rb +54 -0
  265. data/spec/models/license_stats_activations_by_version_inner_spec.rb +42 -0
  266. data/spec/models/license_stats_spec.rb +60 -0
  267. data/spec/models/license_status_spec.rb +30 -0
  268. data/spec/models/license_token_spec.rb +36 -0
  269. data/spec/models/list_policy_events_type_parameter_spec.rb +21 -0
  270. data/spec/models/list_stripe_prices200_response_spec.rb +36 -0
  271. data/spec/models/lock_max_version_major_after_one_of1_spec.rb +46 -0
  272. data/spec/models/lock_max_version_major_after_one_of_spec.rb +46 -0
  273. data/spec/models/lock_max_version_major_after_spec.rb +32 -0
  274. data/spec/models/lock_max_version_minor_after_spec.rb +21 -0
  275. data/spec/models/lock_max_version_spec.rb +52 -0
  276. data/spec/models/machine_list_spec.rb +42 -0
  277. data/spec/models/machine_spec.rb +94 -0
  278. data/spec/models/pagination_spec.rb +54 -0
  279. data/spec/models/policy_duration_spec.rb +21 -0
  280. data/spec/models/policy_list_spec.rb +42 -0
  281. data/spec/models/policy_max_version_spec.rb +21 -0
  282. data/spec/models/policy_settings_duration_any_of1_spec.rb +46 -0
  283. data/spec/models/policy_settings_duration_any_of_spec.rb +46 -0
  284. data/spec/models/policy_settings_duration_spec.rb +21 -0
  285. data/spec/models/policy_settings_max_version_spec.rb +21 -0
  286. data/spec/models/policy_settings_spec.rb +54 -0
  287. data/spec/models/policy_spec.rb +102 -0
  288. data/spec/models/portal_link_spec.rb +48 -0
  289. data/spec/models/portal_not_found_spec.rb +48 -0
  290. data/spec/models/portal_settings_spec.rb +60 -0
  291. data/spec/models/portal_spec.rb +72 -0
  292. data/spec/models/price_input_spec.rb +42 -0
  293. data/spec/models/price_spec.rb +42 -0
  294. data/spec/models/product_list_spec.rb +42 -0
  295. data/spec/models/product_spec.rb +78 -0
  296. data/spec/models/product_stats_activations_by_version_inner_spec.rb +42 -0
  297. data/spec/models/product_stats_active_machines_by_platform_inner_spec.rb +42 -0
  298. data/spec/models/product_stats_active_machines_by_version_inner_spec.rb +42 -0
  299. data/spec/models/product_stats_new_licenses_by_policy_inner_spec.rb +48 -0
  300. data/spec/models/product_stats_spec.rb +144 -0
  301. data/spec/models/release_list_spec.rb +42 -0
  302. data/spec/models/release_spec.rb +66 -0
  303. data/spec/models/request_portal_link_spec.rb +42 -0
  304. data/spec/models/revenue_spec.rb +84 -0
  305. data/spec/models/send_license_keys_spec.rb +36 -0
  306. data/spec/models/send_portal_link_spec.rb +36 -0
  307. data/spec/models/signing_key_spec.rb +58 -0
  308. data/spec/models/stripe_integration_spec.rb +60 -0
  309. data/spec/models/stripe_permission_spec.rb +52 -0
  310. data/spec/models/stripe_price_spec.rb +66 -0
  311. data/spec/models/token_spec.rb +62 -0
  312. data/spec/models/update_customer_spec.rb +42 -0
  313. data/spec/models/update_integration_mapping_spec.rb +36 -0
  314. data/spec/models/update_license_spec.rb +66 -0
  315. data/spec/models/update_policy_spec.rb +72 -0
  316. data/spec/models/update_product_portal_spec.rb +60 -0
  317. data/spec/models/update_product_spec.rb +48 -0
  318. data/spec/models/update_release_spec.rb +42 -0
  319. data/spec/models/validate_key_error_error_spec.rb +54 -0
  320. data/spec/models/validate_key_error_spec.rb +36 -0
  321. data/spec/models/validate_key_spec.rb +60 -0
  322. data/spec/spec_helper.rb +111 -0
  323. metadata +532 -0
@@ -0,0 +1,542 @@
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
+ class License < ApiModelBase
18
+ attr_accessor :id
19
+
20
+ attr_accessor :product_id
21
+
22
+ attr_accessor :policy_id
23
+
24
+ attr_accessor :customer_id
25
+
26
+ # Unique within the product. Case sensitive: `validateKey` compares keys exactly.
27
+ attr_accessor :key
28
+
29
+ attr_accessor :created_at
30
+
31
+ # `null` when the license never expires.
32
+ attr_accessor :expires_at
33
+
34
+ # Free-form JSON object.
35
+ attr_accessor :meta
36
+
37
+ # Id of the Stripe payment intent that paid the license, when it was bought through the Stripe integration. `null` otherwise, or when nothing was paid.
38
+ attr_accessor :stripe_payment_intent_id
39
+
40
+ # Maximum number of active machines the license can be used on. `null` when there's no limit. Can be lower than `activeMachineCount` after it was lowered: machines aren't deactivated to match it.
41
+ attr_accessor :max_machines
42
+
43
+ # Longest the applications can run offline with the license: the license tokens returned by `validateKey` expire this long after they're issued, unless the license expires sooner.
44
+ attr_accessor :max_offline_duration_seconds
45
+
46
+ # Number of active machines the license is used on.
47
+ attr_accessor :active_machine_count
48
+
49
+ # Last time a machine validated the license key. `null` when it was never validated.
50
+ attr_accessor :last_activated_at
51
+
52
+ attr_accessor :max_version
53
+
54
+ attr_accessor :price
55
+
56
+ attr_accessor :status
57
+
58
+ # Last time the license's settings were edited, not when its key was validated.
59
+ attr_accessor :updated_at
60
+
61
+ class EnumAttributeValidator
62
+ attr_reader :datatype
63
+ attr_reader :allowable_values
64
+
65
+ def initialize(datatype, allowable_values)
66
+ @allowable_values = allowable_values.map do |value|
67
+ case datatype.to_s
68
+ when /Integer/i
69
+ value.to_i
70
+ when /Float/i
71
+ value.to_f
72
+ else
73
+ value
74
+ end
75
+ end
76
+ end
77
+
78
+ def valid?(value)
79
+ !value || allowable_values.include?(value)
80
+ end
81
+ end
82
+
83
+ # Attribute mapping from ruby-style variable name to JSON key.
84
+ def self.attribute_map
85
+ {
86
+ :'id' => :'id',
87
+ :'product_id' => :'productId',
88
+ :'policy_id' => :'policyId',
89
+ :'customer_id' => :'customerId',
90
+ :'key' => :'key',
91
+ :'created_at' => :'createdAt',
92
+ :'expires_at' => :'expiresAt',
93
+ :'meta' => :'meta',
94
+ :'stripe_payment_intent_id' => :'stripePaymentIntentId',
95
+ :'max_machines' => :'maxMachines',
96
+ :'max_offline_duration_seconds' => :'maxOfflineDurationSeconds',
97
+ :'active_machine_count' => :'activeMachineCount',
98
+ :'last_activated_at' => :'lastActivatedAt',
99
+ :'max_version' => :'maxVersion',
100
+ :'price' => :'price',
101
+ :'status' => :'status',
102
+ :'updated_at' => :'updatedAt'
103
+ }
104
+ end
105
+
106
+ # Returns attribute mapping this model knows about
107
+ def self.acceptable_attribute_map
108
+ attribute_map
109
+ end
110
+
111
+ # Returns all the JSON keys this model knows about
112
+ def self.acceptable_attributes
113
+ acceptable_attribute_map.values
114
+ end
115
+
116
+ # Attribute type mapping.
117
+ def self.openapi_types
118
+ {
119
+ :'id' => :'String',
120
+ :'product_id' => :'String',
121
+ :'policy_id' => :'String',
122
+ :'customer_id' => :'String',
123
+ :'key' => :'String',
124
+ :'created_at' => :'Time',
125
+ :'expires_at' => :'Time',
126
+ :'meta' => :'Hash<String, Object>',
127
+ :'stripe_payment_intent_id' => :'String',
128
+ :'max_machines' => :'Integer',
129
+ :'max_offline_duration_seconds' => :'Integer',
130
+ :'active_machine_count' => :'Integer',
131
+ :'last_activated_at' => :'Time',
132
+ :'max_version' => :'LicenseMaxVersion',
133
+ :'price' => :'Price',
134
+ :'status' => :'LicenseStatus',
135
+ :'updated_at' => :'Time'
136
+ }
137
+ end
138
+
139
+ # List of attributes with nullable: true
140
+ def self.openapi_nullable
141
+ Set.new([
142
+ :'expires_at',
143
+ :'meta',
144
+ :'stripe_payment_intent_id',
145
+ :'max_machines',
146
+ :'last_activated_at',
147
+ :'price',
148
+ ])
149
+ end
150
+
151
+ # Returns attribute type mapping
152
+ def self.acceptable_openapi_types
153
+ openapi_types
154
+ end
155
+
156
+ # Returns the nullable attributes
157
+ def self.acceptable_openapi_nullable
158
+ openapi_nullable
159
+ end
160
+
161
+ # Initializes the object
162
+ # @param [Hash] attributes Model attributes in the form of hash
163
+ def initialize(attributes = {})
164
+ if (!attributes.is_a?(Hash))
165
+ fail ArgumentError, "The input argument (attributes) must be a hash in `LicenseManager::License` initialize method"
166
+ end
167
+
168
+ # check to see if the attribute exists and convert string to symbol for hash key
169
+ acceptable_attribute_map = self.class.acceptable_attribute_map
170
+ attributes = attributes.each_with_object({}) { |(k, v), h|
171
+ if (!acceptable_attribute_map.key?(k.to_sym))
172
+ fail ArgumentError, "`#{k}` is not a valid attribute in `LicenseManager::License`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
173
+ end
174
+ h[k.to_sym] = v
175
+ }
176
+
177
+ if attributes.key?(:'id')
178
+ self.id = attributes[:'id']
179
+ else
180
+ self.id = nil
181
+ end
182
+
183
+ if attributes.key?(:'product_id')
184
+ self.product_id = attributes[:'product_id']
185
+ else
186
+ self.product_id = nil
187
+ end
188
+
189
+ if attributes.key?(:'policy_id')
190
+ self.policy_id = attributes[:'policy_id']
191
+ else
192
+ self.policy_id = nil
193
+ end
194
+
195
+ if attributes.key?(:'customer_id')
196
+ self.customer_id = attributes[:'customer_id']
197
+ else
198
+ self.customer_id = nil
199
+ end
200
+
201
+ if attributes.key?(:'key')
202
+ self.key = attributes[:'key']
203
+ else
204
+ self.key = nil
205
+ end
206
+
207
+ if attributes.key?(:'created_at')
208
+ self.created_at = attributes[:'created_at']
209
+ else
210
+ self.created_at = nil
211
+ end
212
+
213
+ if attributes.key?(:'expires_at')
214
+ self.expires_at = attributes[:'expires_at']
215
+ else
216
+ self.expires_at = nil
217
+ end
218
+
219
+ if attributes.key?(:'meta')
220
+ if (value = attributes[:'meta']).is_a?(Hash)
221
+ self.meta = value
222
+ end
223
+ else
224
+ self.meta = nil
225
+ end
226
+
227
+ if attributes.key?(:'stripe_payment_intent_id')
228
+ self.stripe_payment_intent_id = attributes[:'stripe_payment_intent_id']
229
+ else
230
+ self.stripe_payment_intent_id = nil
231
+ end
232
+
233
+ if attributes.key?(:'max_machines')
234
+ self.max_machines = attributes[:'max_machines']
235
+ else
236
+ self.max_machines = nil
237
+ end
238
+
239
+ if attributes.key?(:'max_offline_duration_seconds')
240
+ self.max_offline_duration_seconds = attributes[:'max_offline_duration_seconds']
241
+ else
242
+ self.max_offline_duration_seconds = nil
243
+ end
244
+
245
+ if attributes.key?(:'active_machine_count')
246
+ self.active_machine_count = attributes[:'active_machine_count']
247
+ else
248
+ self.active_machine_count = nil
249
+ end
250
+
251
+ if attributes.key?(:'last_activated_at')
252
+ self.last_activated_at = attributes[:'last_activated_at']
253
+ else
254
+ self.last_activated_at = nil
255
+ end
256
+
257
+ if attributes.key?(:'max_version')
258
+ self.max_version = attributes[:'max_version']
259
+ else
260
+ self.max_version = nil
261
+ end
262
+
263
+ if attributes.key?(:'price')
264
+ self.price = attributes[:'price']
265
+ else
266
+ self.price = nil
267
+ end
268
+
269
+ if attributes.key?(:'status')
270
+ self.status = attributes[:'status']
271
+ else
272
+ self.status = nil
273
+ end
274
+
275
+ if attributes.key?(:'updated_at')
276
+ self.updated_at = attributes[:'updated_at']
277
+ else
278
+ self.updated_at = nil
279
+ end
280
+ end
281
+
282
+ # Show invalid properties with the reasons. Usually used together with valid?
283
+ # @return Array for valid properties with the reasons
284
+ def list_invalid_properties
285
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
286
+ invalid_properties = Array.new
287
+ if @id.nil?
288
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
289
+ end
290
+
291
+ if @product_id.nil?
292
+ invalid_properties.push('invalid value for "product_id", product_id cannot be nil.')
293
+ end
294
+
295
+ if @policy_id.nil?
296
+ invalid_properties.push('invalid value for "policy_id", policy_id cannot be nil.')
297
+ end
298
+
299
+ if @customer_id.nil?
300
+ invalid_properties.push('invalid value for "customer_id", customer_id cannot be nil.')
301
+ end
302
+
303
+ if @key.nil?
304
+ invalid_properties.push('invalid value for "key", key cannot be nil.')
305
+ end
306
+
307
+ if @created_at.nil?
308
+ invalid_properties.push('invalid value for "created_at", created_at cannot be nil.')
309
+ end
310
+
311
+ if @max_offline_duration_seconds.nil?
312
+ invalid_properties.push('invalid value for "max_offline_duration_seconds", max_offline_duration_seconds cannot be nil.')
313
+ end
314
+
315
+ if @active_machine_count.nil?
316
+ invalid_properties.push('invalid value for "active_machine_count", active_machine_count cannot be nil.')
317
+ end
318
+
319
+ if @max_version.nil?
320
+ invalid_properties.push('invalid value for "max_version", max_version cannot be nil.')
321
+ end
322
+
323
+ if @status.nil?
324
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
325
+ end
326
+
327
+ if @updated_at.nil?
328
+ invalid_properties.push('invalid value for "updated_at", updated_at cannot be nil.')
329
+ end
330
+
331
+ invalid_properties
332
+ end
333
+
334
+ # Check to see if the all the properties in the model are valid
335
+ # @return true if the model is valid
336
+ def valid?
337
+ warn '[DEPRECATED] the `valid?` method is obsolete'
338
+ return false if @id.nil?
339
+ return false if @product_id.nil?
340
+ return false if @policy_id.nil?
341
+ return false if @customer_id.nil?
342
+ return false if @key.nil?
343
+ return false if @created_at.nil?
344
+ return false if @max_offline_duration_seconds.nil?
345
+ return false if @active_machine_count.nil?
346
+ return false if @max_version.nil?
347
+ return false if @status.nil?
348
+ return false if @updated_at.nil?
349
+ true
350
+ end
351
+
352
+ # Custom attribute writer method with validation
353
+ # @param [Object] id Value to be assigned
354
+ def id=(id)
355
+ if id.nil?
356
+ fail ArgumentError, 'id cannot be nil'
357
+ end
358
+
359
+ @id = id
360
+ end
361
+
362
+ # Custom attribute writer method with validation
363
+ # @param [Object] product_id Value to be assigned
364
+ def product_id=(product_id)
365
+ if product_id.nil?
366
+ fail ArgumentError, 'product_id cannot be nil'
367
+ end
368
+
369
+ @product_id = product_id
370
+ end
371
+
372
+ # Custom attribute writer method with validation
373
+ # @param [Object] policy_id Value to be assigned
374
+ def policy_id=(policy_id)
375
+ if policy_id.nil?
376
+ fail ArgumentError, 'policy_id cannot be nil'
377
+ end
378
+
379
+ @policy_id = policy_id
380
+ end
381
+
382
+ # Custom attribute writer method with validation
383
+ # @param [Object] customer_id Value to be assigned
384
+ def customer_id=(customer_id)
385
+ if customer_id.nil?
386
+ fail ArgumentError, 'customer_id cannot be nil'
387
+ end
388
+
389
+ @customer_id = customer_id
390
+ end
391
+
392
+ # Custom attribute writer method with validation
393
+ # @param [Object] key Value to be assigned
394
+ def key=(key)
395
+ if key.nil?
396
+ fail ArgumentError, 'key cannot be nil'
397
+ end
398
+
399
+ @key = key
400
+ end
401
+
402
+ # Custom attribute writer method with validation
403
+ # @param [Object] created_at Value to be assigned
404
+ def created_at=(created_at)
405
+ if created_at.nil?
406
+ fail ArgumentError, 'created_at cannot be nil'
407
+ end
408
+
409
+ @created_at = created_at
410
+ end
411
+
412
+ # Custom attribute writer method with validation
413
+ # @param [Object] max_offline_duration_seconds Value to be assigned
414
+ def max_offline_duration_seconds=(max_offline_duration_seconds)
415
+ if max_offline_duration_seconds.nil?
416
+ fail ArgumentError, 'max_offline_duration_seconds cannot be nil'
417
+ end
418
+
419
+ @max_offline_duration_seconds = max_offline_duration_seconds
420
+ end
421
+
422
+ # Custom attribute writer method with validation
423
+ # @param [Object] active_machine_count Value to be assigned
424
+ def active_machine_count=(active_machine_count)
425
+ if active_machine_count.nil?
426
+ fail ArgumentError, 'active_machine_count cannot be nil'
427
+ end
428
+
429
+ @active_machine_count = active_machine_count
430
+ end
431
+
432
+ # Custom attribute writer method with validation
433
+ # @param [Object] max_version Value to be assigned
434
+ def max_version=(max_version)
435
+ if max_version.nil?
436
+ fail ArgumentError, 'max_version cannot be nil'
437
+ end
438
+
439
+ @max_version = max_version
440
+ end
441
+
442
+ # Custom attribute writer method with validation
443
+ # @param [Object] status Value to be assigned
444
+ def status=(status)
445
+ if status.nil?
446
+ fail ArgumentError, 'status cannot be nil'
447
+ end
448
+
449
+ @status = status
450
+ end
451
+
452
+ # Custom attribute writer method with validation
453
+ # @param [Object] updated_at Value to be assigned
454
+ def updated_at=(updated_at)
455
+ if updated_at.nil?
456
+ fail ArgumentError, 'updated_at cannot be nil'
457
+ end
458
+
459
+ @updated_at = updated_at
460
+ end
461
+
462
+ # Checks equality by comparing each attribute.
463
+ # @param [Object] Object to be compared
464
+ def ==(o)
465
+ return true if self.equal?(o)
466
+ self.class == o.class &&
467
+ id == o.id &&
468
+ product_id == o.product_id &&
469
+ policy_id == o.policy_id &&
470
+ customer_id == o.customer_id &&
471
+ key == o.key &&
472
+ created_at == o.created_at &&
473
+ expires_at == o.expires_at &&
474
+ meta == o.meta &&
475
+ stripe_payment_intent_id == o.stripe_payment_intent_id &&
476
+ max_machines == o.max_machines &&
477
+ max_offline_duration_seconds == o.max_offline_duration_seconds &&
478
+ active_machine_count == o.active_machine_count &&
479
+ last_activated_at == o.last_activated_at &&
480
+ max_version == o.max_version &&
481
+ price == o.price &&
482
+ status == o.status &&
483
+ updated_at == o.updated_at
484
+ end
485
+
486
+ # @see the `==` method
487
+ # @param [Object] Object to be compared
488
+ def eql?(o)
489
+ self == o
490
+ end
491
+
492
+ # Calculates hash code according to all attributes.
493
+ # @return [Integer] Hash code
494
+ 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
496
+ end
497
+
498
+ # Builds the object from hash
499
+ # @param [Hash] attributes Model attributes in the form of hash
500
+ # @return [Object] Returns the model itself
501
+ def self.build_from_hash(attributes)
502
+ return nil unless attributes.is_a?(Hash)
503
+ attributes = attributes.transform_keys(&:to_sym)
504
+ # include attributes inherited from allOf parents (the nearest declaration wins)
505
+ map = acceptable_attribute_map
506
+ transformed_hash = {}
507
+ acceptable_openapi_types.each_pair do |key, type|
508
+ if attributes.key?(map[key]) && attributes[map[key]].nil?
509
+ transformed_hash["#{key}"] = nil
510
+ elsif type =~ /\AArray<(.*)>/i
511
+ # check to ensure the input is an array given that the attribute
512
+ # is documented as an array but the input is not
513
+ if attributes[map[key]].is_a?(Array)
514
+ transformed_hash["#{key}"] = attributes[map[key]].map { |v| _deserialize($1, v) }
515
+ end
516
+ elsif !attributes[map[key]].nil?
517
+ transformed_hash["#{key}"] = _deserialize(type, attributes[map[key]])
518
+ end
519
+ end
520
+ new(transformed_hash)
521
+ end
522
+
523
+ # Returns the object in the form of hash
524
+ # @return [Hash] Returns the object in the form of hash
525
+ def to_hash
526
+ hash = {}
527
+ # include attributes inherited from allOf parents (the nearest declaration wins)
528
+ self.class.acceptable_attribute_map.each_pair do |attr, param|
529
+ value = self.send(attr)
530
+ if value.nil?
531
+ is_nullable = self.class.acceptable_openapi_nullable.include?(attr)
532
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
533
+ end
534
+
535
+ hash[param] = _to_hash(value)
536
+ end
537
+ hash
538
+ end
539
+
540
+ end
541
+
542
+ end