katapult-ruby 0.0.4 → 0.0.5

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 (184) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +121 -57
  3. data/lib/katapult-ruby/models/{interface_not_found_response.rb → api_authenticator400_schema.rb} +5 -17
  4. data/lib/katapult-ruby/models/certificate_not_found_enum.rb +39 -0
  5. data/lib/katapult-ruby/models/country_not_found_enum.rb +39 -0
  6. data/lib/katapult-ruby/models/country_state_not_found_enum.rb +39 -0
  7. data/lib/katapult-ruby/models/currency_not_found_enum.rb +39 -0
  8. data/lib/katapult-ruby/models/data_center_not_found_enum.rb +39 -0
  9. data/lib/katapult-ruby/models/{location_required_response.rb → data_center_not_found_schema.rb} +5 -17
  10. data/lib/katapult-ruby/models/delete_ip_address409_response.rb +1 -13
  11. data/lib/katapult-ruby/models/delete_ssh_key404_response.rb +1 -13
  12. data/lib/katapult-ruby/models/delete_ssh_key409_response.rb +1 -13
  13. data/lib/katapult-ruby/models/deletion_restricted_enum.rb +39 -0
  14. data/lib/katapult-ruby/models/disk_backup_policy_not_found_enum.rb +39 -0
  15. data/lib/katapult-ruby/models/disk_not_found_enum.rb +39 -0
  16. data/lib/katapult-ruby/models/disk_template_not_found_enum.rb +39 -0
  17. data/lib/katapult-ruby/models/{ip_already_allocated_response.rb → disk_template_not_found_schema.rb} +5 -17
  18. data/lib/katapult-ruby/models/disk_template_version_not_found_enum.rb +39 -0
  19. data/lib/katapult-ruby/models/dns_record_not_found_enum.rb +39 -0
  20. data/lib/katapult-ruby/models/dns_zone_already_verified_enum.rb +39 -0
  21. data/lib/katapult-ruby/models/dns_zone_not_found_enum.rb +39 -0
  22. data/lib/katapult-ruby/models/dns_zone_not_verified_enum.rb +39 -0
  23. data/lib/katapult-ruby/models/file_storage_volume_not_found_enum.rb +39 -0
  24. data/lib/katapult-ruby/models/flexible_resources_unavailable_to_organization_enum.rb +39 -0
  25. data/lib/katapult-ruby/models/{flexible_resources_unavailable_to_organization_response.rb → flexible_resources_unavailable_to_organization_schema.rb} +4 -16
  26. data/lib/katapult-ruby/models/get_certificate404_response.rb +1 -13
  27. data/lib/katapult-ruby/models/get_country404_response.rb +1 -13
  28. data/lib/katapult-ruby/models/get_country_state404_response.rb +1 -13
  29. data/lib/katapult-ruby/models/get_currency404_response.rb +1 -13
  30. data/lib/katapult-ruby/models/get_data_center404_response.rb +1 -13
  31. data/lib/katapult-ruby/models/get_data_centers400_response.rb +1 -13
  32. data/lib/katapult-ruby/models/get_data_centers429_response.rb +1 -13
  33. data/lib/katapult-ruby/models/get_disk404_response.rb +1 -13
  34. data/lib/katapult-ruby/models/get_disk_backup_policy404_response.rb +1 -13
  35. data/lib/katapult-ruby/models/get_disk_template404_response.rb +1 -13
  36. data/lib/katapult-ruby/models/get_disk_template_version404_response.rb +1 -13
  37. data/lib/katapult-ruby/models/get_dns_records_dns_record404_response.rb +1 -13
  38. data/lib/katapult-ruby/models/get_dns_zones_dns_zone404_response.rb +1 -13
  39. data/lib/katapult-ruby/models/get_dns_zones_dns_zone_verification_details422_response.rb +1 -13
  40. data/lib/katapult-ruby/models/get_file_storage_volume404_response.rb +1 -13
  41. data/lib/katapult-ruby/models/get_gpu_type404_response.rb +1 -13
  42. data/lib/katapult-ruby/models/get_ip_address404_response.rb +1 -13
  43. data/lib/katapult-ruby/models/get_load_balancer404_response.rb +1 -13
  44. data/lib/katapult-ruby/models/get_load_balancers_rules_load_balancer_rule404_response.rb +1 -13
  45. data/lib/katapult-ruby/models/get_network404_response.rb +1 -13
  46. data/lib/katapult-ruby/models/get_operating_system404_response.rb +1 -13
  47. data/lib/katapult-ruby/models/get_organization404_response.rb +1 -13
  48. data/lib/katapult-ruby/models/get_security_group404_response.rb +1 -13
  49. data/lib/katapult-ruby/models/get_security_groups_rules_security_group_rule404_response.rb +1 -13
  50. data/lib/katapult-ruby/models/get_tag404_response.rb +1 -13
  51. data/lib/katapult-ruby/models/get_task404_response.rb +1 -13
  52. data/lib/katapult-ruby/models/get_trash_object404_response.rb +1 -13
  53. data/lib/katapult-ruby/models/get_users_current404_response.rb +1 -13
  54. data/lib/katapult-ruby/models/get_virtual_machine_disks404_response.rb +1 -13
  55. data/lib/katapult-ruby/models/get_virtual_machine_disks406_response.rb +1 -13
  56. data/lib/katapult-ruby/models/get_virtual_machine_group404_response.rb +1 -13
  57. data/lib/katapult-ruby/models/get_virtual_machine_package404_response.rb +1 -13
  58. data/lib/katapult-ruby/models/get_virtual_machines_builds_virtual_machine_build404_response.rb +1 -13
  59. data/lib/katapult-ruby/models/get_vmnivmni404_response.rb +1 -13
  60. data/lib/katapult-ruby/models/get_zone404_response.rb +1 -13
  61. data/lib/katapult-ruby/models/gpu_type_not_found_enum.rb +39 -0
  62. data/lib/katapult-ruby/models/identity_not_linked_to_web_session_enum.rb +39 -0
  63. data/lib/katapult-ruby/models/{network_speed_profile_not_found_response.rb → identity_not_linked_to_web_session_schema.rb} +5 -17
  64. data/lib/katapult-ruby/models/infrastructure_dns_zone_cannot_be_edited_enum.rb +39 -0
  65. data/lib/katapult-ruby/models/{infrastructure_dns_zone_cannot_be_edited_response.rb → infrastructure_dns_zone_cannot_be_edited_schema.rb} +4 -16
  66. data/lib/katapult-ruby/models/interface_not_found_enum.rb +39 -0
  67. data/lib/katapult-ruby/models/{network_not_found_response.rb → interface_not_found_schema.rb} +5 -17
  68. data/lib/katapult-ruby/models/invalid_api_token_enum.rb +39 -0
  69. data/lib/katapult-ruby/models/{invalid_api_token_response.rb → invalid_api_token_schema.rb} +4 -16
  70. data/lib/katapult-ruby/models/invalid_ip_enum.rb +39 -0
  71. data/lib/katapult-ruby/models/{invalid_ip_response.rb → invalid_ip_schema.rb} +4 -16
  72. data/lib/katapult-ruby/models/invalid_spec_xml_enum.rb +39 -0
  73. data/lib/katapult-ruby/models/invalid_spec_xml_schema.rb +255 -0
  74. data/lib/katapult-ruby/models/invalid_timestamp_enum.rb +39 -0
  75. data/lib/katapult-ruby/models/{invalid_spec_xml_response.rb → invalid_timestamp_schema.rb} +6 -18
  76. data/lib/katapult-ruby/models/ip_address_not_found_enum.rb +39 -0
  77. data/lib/katapult-ruby/models/{ip_address_not_found_response.rb → ip_address_not_found_schema.rb} +4 -16
  78. data/lib/katapult-ruby/models/ip_already_allocated_enum.rb +39 -0
  79. data/lib/katapult-ruby/models/ip_already_allocated_schema.rb +255 -0
  80. data/lib/katapult-ruby/models/load_balancer_not_found_enum.rb +39 -0
  81. data/lib/katapult-ruby/models/load_balancer_rule_not_found_enum.rb +39 -0
  82. data/lib/katapult-ruby/models/location_required_enum.rb +39 -0
  83. data/lib/katapult-ruby/models/location_required_schema.rb +255 -0
  84. data/lib/katapult-ruby/models/missing_api_token_enum.rb +39 -0
  85. data/lib/katapult-ruby/models/network_not_found_enum.rb +39 -0
  86. data/lib/katapult-ruby/models/network_not_found_schema.rb +255 -0
  87. data/lib/katapult-ruby/models/network_speed_profile_not_found_enum.rb +39 -0
  88. data/lib/katapult-ruby/models/network_speed_profile_not_found_schema.rb +255 -0
  89. data/lib/katapult-ruby/models/no_allocation_enum.rb +39 -0
  90. data/lib/katapult-ruby/models/no_available_addresses_enum.rb +39 -0
  91. data/lib/katapult-ruby/models/no_interface_available_enum.rb +39 -0
  92. data/lib/katapult-ruby/models/{data_center_not_found_response.rb → no_interface_available_schema.rb} +5 -17
  93. data/lib/katapult-ruby/models/no_user_associated_with_identity_enum.rb +39 -0
  94. data/lib/katapult-ruby/models/object_in_trash_enum.rb +39 -0
  95. data/lib/katapult-ruby/models/{object_in_trash_response.rb → object_in_trash_schema.rb} +4 -16
  96. data/lib/katapult-ruby/models/one_of_api_authenticator403_response.rb +3 -3
  97. data/lib/katapult-ruby/models/{one_of_data_center_not_found_virtual_machine_package_not_found_zone_not_found404_error.rb → one_of_data_center_not_found_virtual_machine_package_not_found_zone_not_found404_res.rb} +7 -7
  98. data/lib/katapult-ruby/models/{one_of_flexible_resources_unavailable_to_organization_permission_denied403_error.rb → one_of_flexible_resources_unavailable_to_organization_permission_denied403_res.rb} +6 -6
  99. data/lib/katapult-ruby/models/one_of_identity_not_linked_to_web_session400_res.rb +105 -0
  100. data/lib/katapult-ruby/models/one_of_infrastructure_dns_zone_cannot_be_edited403_res.rb +107 -0
  101. data/lib/katapult-ruby/models/{one_of_interface_not_found_network_not_found_virtual_machine_not_found404_error.rb → one_of_interface_not_found_network_not_found_virtual_machine_not_found404_res.rb} +4 -4
  102. data/lib/katapult-ruby/models/{one_of_invalid_spec_xml400_error.rb → one_of_invalid_spec_xml400_res.rb} +3 -3
  103. data/lib/katapult-ruby/models/{one_of_invalid_timestamp400_error.rb → one_of_invalid_timestamp400_res.rb} +3 -3
  104. data/lib/katapult-ruby/models/{one_of_ip_address_not_found_virtual_machine_network_interface_not_found404_error.rb → one_of_ip_address_not_found_virtual_machine_network_interface_not_found404_res.rb} +3 -3
  105. data/lib/katapult-ruby/models/one_of_ip_address_not_found_virtual_machine_not_found404_res.rb +105 -0
  106. data/lib/katapult-ruby/models/{one_of_ip_already_allocated_invalid_ip422_error.rb → one_of_ip_already_allocated_invalid_ip422_res.rb} +3 -3
  107. data/lib/katapult-ruby/models/one_of_ip_already_allocated_no_interface_available422_res.rb +105 -0
  108. data/lib/katapult-ruby/models/{one_of_object_in_trash_task_queueing_error406_error.rb → one_of_location_required_validation_error422_res.rb} +3 -3
  109. data/lib/katapult-ruby/models/{one_of_location_required_validation_error422_error.rb → one_of_network_not_found_organization_not_found404_res.rb} +3 -3
  110. data/lib/katapult-ruby/models/{one_of_network_speed_profile_not_found_virtual_machine_network_interface_not_found404_error.rb → one_of_network_speed_profile_not_found_virtual_machine_network_interface_not_found404_res.rb} +3 -3
  111. data/lib/katapult-ruby/models/one_of_object_in_trash_task_queueing_error406_res.rb +105 -0
  112. data/lib/katapult-ruby/models/one_of_object_in_trash_virtual_machine_must_be_started406_res.rb +105 -0
  113. data/lib/katapult-ruby/models/{one_of_ip_address_not_found_virtual_machine_not_found404_error.rb → one_of_operating_system_not_found_organization_not_found404_res.rb} +3 -3
  114. data/lib/katapult-ruby/models/one_of_organization_limit_reached_validation_error422_res.rb +105 -0
  115. data/lib/katapult-ruby/models/{one_of_infrastructure_dns_zone_cannot_be_edited403_error.rb → one_of_organization_not_activated_organization_suspended403_res.rb} +6 -5
  116. data/lib/katapult-ruby/models/{one_of_organization_not_activated_organization_suspended_permission_denied403_error.rb → one_of_organization_not_activated_organization_suspended_permission_denied403_res.rb} +7 -7
  117. data/lib/katapult-ruby/models/{one_of_organization_not_activated_permission_denied_resource_creation_restricted403_error.rb → one_of_organization_not_activated_permission_denied_resource_creation_restricted403_res.rb} +8 -8
  118. data/lib/katapult-ruby/models/{one_of_identity_not_linked_to_web_session400_error.rb → one_of_permission_denied403_res.rb} +5 -3
  119. data/lib/katapult-ruby/models/{one_of_virtual_machine_not_found_virtual_machine_package_not_found404_error.rb → one_of_virtual_machine_not_found_virtual_machine_package_not_found404_res.rb} +3 -3
  120. data/lib/katapult-ruby/models/operating_system_not_found_enum.rb +39 -0
  121. data/lib/katapult-ruby/models/{organization_suspended_response.rb → operating_system_not_found_schema.rb} +5 -17
  122. data/lib/katapult-ruby/models/organization_limit_reached_enum.rb +39 -0
  123. data/lib/katapult-ruby/models/{virtual_machine_not_found_response.rb → organization_limit_reached_schema.rb} +5 -17
  124. data/lib/katapult-ruby/models/organization_not_activated_enum.rb +39 -0
  125. data/lib/katapult-ruby/models/{organization_not_activated_response.rb → organization_not_activated_schema.rb} +4 -16
  126. data/lib/katapult-ruby/models/organization_not_found_enum.rb +39 -0
  127. data/lib/katapult-ruby/models/organization_not_found_schema.rb +255 -0
  128. data/lib/katapult-ruby/models/organization_suspended_enum.rb +39 -0
  129. data/lib/katapult-ruby/models/{api_authenticator400_response.rb → organization_suspended_schema.rb} +5 -17
  130. data/lib/katapult-ruby/models/patch_virtual_machine_network_interface_update_speed_profile406_response.rb +1 -13
  131. data/lib/katapult-ruby/models/patch_virtual_machine_network_interface_update_speed_profile422_response.rb +1 -13
  132. data/lib/katapult-ruby/models/permission_denied_enum.rb +39 -0
  133. data/lib/katapult-ruby/models/{permission_denied_response.rb → permission_denied_schema.rb} +4 -16
  134. data/lib/katapult-ruby/models/post_dns_zones_dns_zone_verify422_response.rb +1 -13
  135. data/lib/katapult-ruby/models/post_ip_address_unallocate422_response.rb +1 -13
  136. data/lib/katapult-ruby/models/post_organization_ip_addresses503_response.rb +1 -13
  137. data/lib/katapult-ruby/models/post_organization_virtual_machines_build_from_spec422_response.rb +1 -13
  138. data/lib/katapult-ruby/models/rate_limit_reached_enum.rb +39 -0
  139. data/lib/katapult-ruby/models/resource_creation_restricted_enum.rb +39 -0
  140. data/lib/katapult-ruby/models/{organization_limit_reached_response.rb → resource_creation_restricted_schema.rb} +6 -18
  141. data/lib/katapult-ruby/models/resource_does_not_support_unallocation_enum.rb +39 -0
  142. data/lib/katapult-ruby/models/scope_not_granted_error_enum.rb +39 -0
  143. data/lib/katapult-ruby/models/{scope_not_granted_error_response.rb → scope_not_granted_error_schema.rb} +4 -16
  144. data/lib/katapult-ruby/models/security_group_not_found_enum.rb +39 -0
  145. data/lib/katapult-ruby/models/security_group_rule_not_found_enum.rb +39 -0
  146. data/lib/katapult-ruby/models/speed_profile_already_assigned_enum.rb +39 -0
  147. data/lib/katapult-ruby/models/ssh_key_not_found_enum.rb +39 -0
  148. data/lib/katapult-ruby/models/tag_not_found_enum.rb +39 -0
  149. data/lib/katapult-ruby/models/task_not_found_enum.rb +39 -0
  150. data/lib/katapult-ruby/models/task_queueing_error_enum.rb +39 -0
  151. data/lib/katapult-ruby/models/{task_queueing_error_response.rb → task_queueing_error_schema.rb} +4 -16
  152. data/lib/katapult-ruby/models/trash_object_not_found_enum.rb +39 -0
  153. data/lib/katapult-ruby/models/unauthorized_network_for_api_token_enum.rb +39 -0
  154. data/lib/katapult-ruby/models/{unauthorized_network_for_api_token_response.rb → unauthorized_network_for_api_token_schema.rb} +4 -16
  155. data/lib/katapult-ruby/models/validation_error_enum.rb +39 -0
  156. data/lib/katapult-ruby/models/{validation_error_response.rb → validation_error_schema.rb} +4 -16
  157. data/lib/katapult-ruby/models/virtual_machine_build_not_found_enum.rb +39 -0
  158. data/lib/katapult-ruby/models/virtual_machine_group_not_found_enum.rb +39 -0
  159. data/lib/katapult-ruby/models/virtual_machine_must_be_started_enum.rb +39 -0
  160. data/lib/katapult-ruby/models/{virtual_machine_must_be_started_response.rb → virtual_machine_must_be_started_schema.rb} +4 -16
  161. data/lib/katapult-ruby/models/virtual_machine_network_interface_not_found_enum.rb +39 -0
  162. data/lib/katapult-ruby/models/{virtual_machine_network_interface_not_found_response.rb → virtual_machine_network_interface_not_found_schema.rb} +4 -16
  163. data/lib/katapult-ruby/models/virtual_machine_not_found_enum.rb +39 -0
  164. data/lib/katapult-ruby/models/{organization_not_found_response.rb → virtual_machine_not_found_schema.rb} +5 -17
  165. data/lib/katapult-ruby/models/virtual_machine_package_not_found_enum.rb +39 -0
  166. data/lib/katapult-ruby/models/{virtual_machine_package_not_found_response.rb → virtual_machine_package_not_found_schema.rb} +4 -16
  167. data/lib/katapult-ruby/models/zone_not_found_enum.rb +39 -0
  168. data/lib/katapult-ruby/models/{zone_not_found_response.rb → zone_not_found_schema.rb} +4 -16
  169. data/lib/katapult-ruby/version.rb +1 -1
  170. data/lib/katapult-ruby.rb +121 -57
  171. metadata +123 -59
  172. data/lib/katapult-ruby/models/disk_template_not_found_response.rb +0 -267
  173. data/lib/katapult-ruby/models/identity_not_linked_to_web_session_response.rb +0 -267
  174. data/lib/katapult-ruby/models/invalid_timestamp_response.rb +0 -267
  175. data/lib/katapult-ruby/models/no_interface_available_response.rb +0 -267
  176. data/lib/katapult-ruby/models/one_of_ip_already_allocated_no_interface_available422_error.rb +0 -105
  177. data/lib/katapult-ruby/models/one_of_network_not_found_organization_not_found404_error.rb +0 -105
  178. data/lib/katapult-ruby/models/one_of_object_in_trash_virtual_machine_must_be_started406_error.rb +0 -105
  179. data/lib/katapult-ruby/models/one_of_operating_system_not_found_organization_not_found404_error.rb +0 -105
  180. data/lib/katapult-ruby/models/one_of_organization_limit_reached_validation_error422_error.rb +0 -105
  181. data/lib/katapult-ruby/models/one_of_organization_not_activated_organization_suspended403_error.rb +0 -108
  182. data/lib/katapult-ruby/models/one_of_permission_denied403_error.rb +0 -107
  183. data/lib/katapult-ruby/models/operating_system_not_found_response.rb +0 -267
  184. data/lib/katapult-ruby/models/resource_creation_restricted_response.rb +0 -267
@@ -0,0 +1,105 @@
1
+ =begin
2
+ #Katapult Core API
3
+
4
+ #Welcome to the documentation for the Katapult Core API
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 7.1.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module KatapultAPI
17
+ module OneOfObjectInTrashVirtualMachineMustBeStarted406Res
18
+ class << self
19
+ # List of class defined in oneOf (OpenAPI v3)
20
+ def openapi_one_of
21
+ [
22
+ :'ObjectInTrashSchema',
23
+ :'VirtualMachineMustBeStartedSchema'
24
+ ]
25
+ end
26
+
27
+ # Builds the object
28
+ # @param [Mixed] Data to be matched against the list of oneOf items
29
+ # @return [Object] Returns the model or the data itself
30
+ def build(data)
31
+ # Go through the list of oneOf items and attempt to identify the appropriate one.
32
+ # Note:
33
+ # - We do not attempt to check whether exactly one item matches.
34
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
35
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
36
+ # - TODO: scalar values are de facto behaving as if they were nullable.
37
+ # - TODO: logging when debugging is set.
38
+ openapi_one_of.each do |klass|
39
+ begin
40
+ next if klass == :AnyType # "nullable: true"
41
+ typed_data = find_and_cast_into_type(klass, data)
42
+ return typed_data if typed_data
43
+ rescue # rescue all errors so we keep iterating even if the current item lookup raises
44
+ end
45
+ end
46
+
47
+ openapi_one_of.include?(:AnyType) ? data : nil
48
+ end
49
+
50
+ private
51
+
52
+ SchemaMismatchError = Class.new(StandardError)
53
+
54
+ # Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
55
+ def find_and_cast_into_type(klass, data)
56
+ return if data.nil?
57
+
58
+ case klass.to_s
59
+ when 'Boolean'
60
+ return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
61
+ when 'Float'
62
+ return data if data.instance_of?(Float)
63
+ when 'Integer'
64
+ return data if data.instance_of?(Integer)
65
+ when 'Time'
66
+ return Time.parse(data)
67
+ when 'Date'
68
+ return Date.parse(data)
69
+ when 'String'
70
+ return data if data.instance_of?(String)
71
+ when 'Object' # "type: object"
72
+ return data if data.instance_of?(Hash)
73
+ when /\AArray<(?<sub_type>.+)>\z/ # "type: array"
74
+ if data.instance_of?(Array)
75
+ sub_type = Regexp.last_match[:sub_type]
76
+ return data.map { |item| find_and_cast_into_type(sub_type, item) }
77
+ end
78
+ when /\AHash<String, (?<sub_type>.+)>\z/ # "type: object" with "additionalProperties: { ... }"
79
+ if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
80
+ sub_type = Regexp.last_match[:sub_type]
81
+ return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
82
+ end
83
+ else # model
84
+ const = KatapultAPI.const_get(klass)
85
+ if const
86
+ if const.respond_to?(:openapi_one_of) # nested oneOf model
87
+ model = const.build(data)
88
+ return model if model
89
+ else
90
+ # raise if data contains keys that are not known to the model
91
+ raise unless (data.keys - const.acceptable_attributes).empty?
92
+ model = const.build_from_hash(data)
93
+ return model if model
94
+ end
95
+ end
96
+ end
97
+
98
+ raise # if no match by now, raise
99
+ rescue
100
+ raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
101
+ end
102
+ end
103
+ end
104
+
105
+ end
@@ -14,13 +14,13 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module KatapultAPI
17
- module OneOfIPAddressNotFoundVirtualMachineNotFound404Error
17
+ module OneOfOperatingSystemNotFoundOrganizationNotFound404Res
18
18
  class << self
19
19
  # List of class defined in oneOf (OpenAPI v3)
20
20
  def openapi_one_of
21
21
  [
22
- :'IPAddressNotFoundResponse',
23
- :'VirtualMachineNotFoundResponse'
22
+ :'OperatingSystemNotFoundSchema',
23
+ :'OrganizationNotFoundSchema'
24
24
  ]
25
25
  end
26
26
 
@@ -0,0 +1,105 @@
1
+ =begin
2
+ #Katapult Core API
3
+
4
+ #Welcome to the documentation for the Katapult Core API
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 7.1.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module KatapultAPI
17
+ module OneOfOrganizationLimitReachedValidationError422Res
18
+ class << self
19
+ # List of class defined in oneOf (OpenAPI v3)
20
+ def openapi_one_of
21
+ [
22
+ :'OrganizationLimitReachedSchema',
23
+ :'ValidationErrorSchema'
24
+ ]
25
+ end
26
+
27
+ # Builds the object
28
+ # @param [Mixed] Data to be matched against the list of oneOf items
29
+ # @return [Object] Returns the model or the data itself
30
+ def build(data)
31
+ # Go through the list of oneOf items and attempt to identify the appropriate one.
32
+ # Note:
33
+ # - We do not attempt to check whether exactly one item matches.
34
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
35
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
36
+ # - TODO: scalar values are de facto behaving as if they were nullable.
37
+ # - TODO: logging when debugging is set.
38
+ openapi_one_of.each do |klass|
39
+ begin
40
+ next if klass == :AnyType # "nullable: true"
41
+ typed_data = find_and_cast_into_type(klass, data)
42
+ return typed_data if typed_data
43
+ rescue # rescue all errors so we keep iterating even if the current item lookup raises
44
+ end
45
+ end
46
+
47
+ openapi_one_of.include?(:AnyType) ? data : nil
48
+ end
49
+
50
+ private
51
+
52
+ SchemaMismatchError = Class.new(StandardError)
53
+
54
+ # Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
55
+ def find_and_cast_into_type(klass, data)
56
+ return if data.nil?
57
+
58
+ case klass.to_s
59
+ when 'Boolean'
60
+ return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
61
+ when 'Float'
62
+ return data if data.instance_of?(Float)
63
+ when 'Integer'
64
+ return data if data.instance_of?(Integer)
65
+ when 'Time'
66
+ return Time.parse(data)
67
+ when 'Date'
68
+ return Date.parse(data)
69
+ when 'String'
70
+ return data if data.instance_of?(String)
71
+ when 'Object' # "type: object"
72
+ return data if data.instance_of?(Hash)
73
+ when /\AArray<(?<sub_type>.+)>\z/ # "type: array"
74
+ if data.instance_of?(Array)
75
+ sub_type = Regexp.last_match[:sub_type]
76
+ return data.map { |item| find_and_cast_into_type(sub_type, item) }
77
+ end
78
+ when /\AHash<String, (?<sub_type>.+)>\z/ # "type: object" with "additionalProperties: { ... }"
79
+ if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
80
+ sub_type = Regexp.last_match[:sub_type]
81
+ return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
82
+ end
83
+ else # model
84
+ const = KatapultAPI.const_get(klass)
85
+ if const
86
+ if const.respond_to?(:openapi_one_of) # nested oneOf model
87
+ model = const.build(data)
88
+ return model if model
89
+ else
90
+ # raise if data contains keys that are not known to the model
91
+ raise unless (data.keys - const.acceptable_attributes).empty?
92
+ model = const.build_from_hash(data)
93
+ return model if model
94
+ end
95
+ end
96
+ end
97
+
98
+ raise # if no match by now, raise
99
+ rescue
100
+ raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
101
+ end
102
+ end
103
+ end
104
+
105
+ end
@@ -14,15 +14,16 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module KatapultAPI
17
- module OneOfInfrastructureDNSZoneCannotBeEdited403Error
17
+ module OneOfOrganizationNotActivatedOrganizationSuspended403Res
18
18
  class << self
19
19
  # List of class defined in oneOf (OpenAPI v3)
20
20
  def openapi_one_of
21
21
  [
22
- :'InfrastructureDNSZoneCannotBeEditedResponse',
23
- :'InvalidAPITokenResponse',
24
- :'ScopeNotGrantedErrorResponse',
25
- :'UnauthorizedNetworkForAPITokenResponse'
22
+ :'InvalidAPITokenSchema',
23
+ :'OrganizationNotActivatedSchema',
24
+ :'OrganizationSuspendedSchema',
25
+ :'ScopeNotGrantedErrorSchema',
26
+ :'UnauthorizedNetworkForAPITokenSchema'
26
27
  ]
27
28
  end
28
29
 
@@ -14,17 +14,17 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module KatapultAPI
17
- module OneOfOrganizationNotActivatedOrganizationSuspendedPermissionDenied403Error
17
+ module OneOfOrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res
18
18
  class << self
19
19
  # List of class defined in oneOf (OpenAPI v3)
20
20
  def openapi_one_of
21
21
  [
22
- :'InvalidAPITokenResponse',
23
- :'OrganizationNotActivatedResponse',
24
- :'OrganizationSuspendedResponse',
25
- :'PermissionDeniedResponse',
26
- :'ScopeNotGrantedErrorResponse',
27
- :'UnauthorizedNetworkForAPITokenResponse'
22
+ :'InvalidAPITokenSchema',
23
+ :'OrganizationNotActivatedSchema',
24
+ :'OrganizationSuspendedSchema',
25
+ :'PermissionDeniedSchema',
26
+ :'ScopeNotGrantedErrorSchema',
27
+ :'UnauthorizedNetworkForAPITokenSchema'
28
28
  ]
29
29
  end
30
30
 
@@ -14,18 +14,18 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module KatapultAPI
17
- module OneOfOrganizationNotActivatedPermissionDeniedResourceCreationRestricted403Error
17
+ module OneOfOrganizationNotActivatedPermissionDeniedResourceCreationRestricted403Res
18
18
  class << self
19
19
  # List of class defined in oneOf (OpenAPI v3)
20
20
  def openapi_one_of
21
21
  [
22
- :'InvalidAPITokenResponse',
23
- :'OrganizationNotActivatedResponse',
24
- :'OrganizationSuspendedResponse',
25
- :'PermissionDeniedResponse',
26
- :'ResourceCreationRestrictedResponse',
27
- :'ScopeNotGrantedErrorResponse',
28
- :'UnauthorizedNetworkForAPITokenResponse'
22
+ :'InvalidAPITokenSchema',
23
+ :'OrganizationNotActivatedSchema',
24
+ :'OrganizationSuspendedSchema',
25
+ :'PermissionDeniedSchema',
26
+ :'ResourceCreationRestrictedSchema',
27
+ :'ScopeNotGrantedErrorSchema',
28
+ :'UnauthorizedNetworkForAPITokenSchema'
29
29
  ]
30
30
  end
31
31
 
@@ -14,13 +14,15 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module KatapultAPI
17
- module OneOfIdentityNotLinkedToWebSession400Error
17
+ module OneOfPermissionDenied403Res
18
18
  class << self
19
19
  # List of class defined in oneOf (OpenAPI v3)
20
20
  def openapi_one_of
21
21
  [
22
- :'APIAuthenticator400Response',
23
- :'IdentityNotLinkedToWebSessionResponse'
22
+ :'InvalidAPITokenSchema',
23
+ :'PermissionDeniedSchema',
24
+ :'ScopeNotGrantedErrorSchema',
25
+ :'UnauthorizedNetworkForAPITokenSchema'
24
26
  ]
25
27
  end
26
28
 
@@ -14,13 +14,13 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module KatapultAPI
17
- module OneOfVirtualMachineNotFoundVirtualMachinePackageNotFound404Error
17
+ module OneOfVirtualMachineNotFoundVirtualMachinePackageNotFound404Res
18
18
  class << self
19
19
  # List of class defined in oneOf (OpenAPI v3)
20
20
  def openapi_one_of
21
21
  [
22
- :'VirtualMachineNotFoundResponse',
23
- :'VirtualMachinePackageNotFoundResponse'
22
+ :'VirtualMachineNotFoundSchema',
23
+ :'VirtualMachinePackageNotFoundSchema'
24
24
  ]
25
25
  end
26
26
 
@@ -0,0 +1,39 @@
1
+ =begin
2
+ #Katapult Core API
3
+
4
+ #Welcome to the documentation for the Katapult Core API
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 7.1.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module KatapultAPI
17
+ class OperatingSystemNotFoundEnum
18
+ OPERATING_SYSTEM_NOT_FOUND = "operating_system_not_found".freeze
19
+
20
+ def self.all_vars
21
+ @all_vars ||= [OPERATING_SYSTEM_NOT_FOUND].freeze
22
+ end
23
+
24
+ # Builds the enum from string
25
+ # @param [String] The enum value in the form of the string
26
+ # @return [String] The enum value
27
+ def self.build_from_hash(value)
28
+ new.build_from_hash(value)
29
+ end
30
+
31
+ # Builds the enum from string
32
+ # @param [String] The enum value in the form of the string
33
+ # @return [String] The enum value
34
+ def build_from_hash(value)
35
+ return value if OperatingSystemNotFoundEnum.all_vars.include?(value)
36
+ raise "Invalid ENUM value #{value} for class #OperatingSystemNotFoundEnum"
37
+ end
38
+ end
39
+ end
@@ -14,8 +14,8 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module KatapultAPI
17
- # An organization was found from the arguments provided but it was suspended
18
- class OrganizationSuspendedResponse
17
+ # No operating system was found matching any of the criteria provided in the arguments
18
+ class OperatingSystemNotFoundSchema
19
19
  attr_accessor :code
20
20
 
21
21
  attr_accessor :description
@@ -61,7 +61,7 @@ module KatapultAPI
61
61
  # Attribute type mapping.
62
62
  def self.openapi_types
63
63
  {
64
- :'code' => :'String',
64
+ :'code' => :'OperatingSystemNotFoundEnum',
65
65
  :'description' => :'String',
66
66
  :'detail' => :'Object'
67
67
  }
@@ -77,13 +77,13 @@ module KatapultAPI
77
77
  # @param [Hash] attributes Model attributes in the form of hash
78
78
  def initialize(attributes = {})
79
79
  if (!attributes.is_a?(Hash))
80
- fail ArgumentError, "The input argument (attributes) must be a hash in `KatapultAPI::OrganizationSuspendedResponse` initialize method"
80
+ fail ArgumentError, "The input argument (attributes) must be a hash in `KatapultAPI::OperatingSystemNotFoundSchema` initialize method"
81
81
  end
82
82
 
83
83
  # check to see if the attribute exists and convert string to symbol for hash key
84
84
  attributes = attributes.each_with_object({}) { |(k, v), h|
85
85
  if (!self.class.attribute_map.key?(k.to_sym))
86
- fail ArgumentError, "`#{k}` is not a valid attribute in `KatapultAPI::OrganizationSuspendedResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
86
+ fail ArgumentError, "`#{k}` is not a valid attribute in `KatapultAPI::OperatingSystemNotFoundSchema`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
87
87
  end
88
88
  h[k.to_sym] = v
89
89
  }
@@ -113,21 +113,9 @@ module KatapultAPI
113
113
  # @return true if the model is valid
114
114
  def valid?
115
115
  warn '[DEPRECATED] the `valid?` method is obsolete'
116
- code_validator = EnumAttributeValidator.new('String', ["organization_suspended"])
117
- return false unless code_validator.valid?(@code)
118
116
  true
119
117
  end
120
118
 
121
- # Custom attribute writer method checking allowed values (enum).
122
- # @param [Object] code Object to be assigned
123
- def code=(code)
124
- validator = EnumAttributeValidator.new('String', ["organization_suspended"])
125
- unless validator.valid?(code)
126
- fail ArgumentError, "invalid value for \"code\", must be one of #{validator.allowable_values}."
127
- end
128
- @code = code
129
- end
130
-
131
119
  # Checks equality by comparing each attribute.
132
120
  # @param [Object] Object to be compared
133
121
  def ==(o)
@@ -0,0 +1,39 @@
1
+ =begin
2
+ #Katapult Core API
3
+
4
+ #Welcome to the documentation for the Katapult Core API
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 7.1.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module KatapultAPI
17
+ class OrganizationLimitReachedEnum
18
+ ORGANIZATION_LIMIT_REACHED = "organization_limit_reached".freeze
19
+
20
+ def self.all_vars
21
+ @all_vars ||= [ORGANIZATION_LIMIT_REACHED].freeze
22
+ end
23
+
24
+ # Builds the enum from string
25
+ # @param [String] The enum value in the form of the string
26
+ # @return [String] The enum value
27
+ def self.build_from_hash(value)
28
+ new.build_from_hash(value)
29
+ end
30
+
31
+ # Builds the enum from string
32
+ # @param [String] The enum value in the form of the string
33
+ # @return [String] The enum value
34
+ def build_from_hash(value)
35
+ return value if OrganizationLimitReachedEnum.all_vars.include?(value)
36
+ raise "Invalid ENUM value #{value} for class #OrganizationLimitReachedEnum"
37
+ end
38
+ end
39
+ end
@@ -14,8 +14,8 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module KatapultAPI
17
- # No virtual machine was found matching any of the criteria provided in the arguments
18
- class VirtualMachineNotFoundResponse
17
+ # The maxmium number of organizations that can be created has been reached
18
+ class OrganizationLimitReachedSchema
19
19
  attr_accessor :code
20
20
 
21
21
  attr_accessor :description
@@ -61,7 +61,7 @@ module KatapultAPI
61
61
  # Attribute type mapping.
62
62
  def self.openapi_types
63
63
  {
64
- :'code' => :'String',
64
+ :'code' => :'OrganizationLimitReachedEnum',
65
65
  :'description' => :'String',
66
66
  :'detail' => :'Object'
67
67
  }
@@ -77,13 +77,13 @@ module KatapultAPI
77
77
  # @param [Hash] attributes Model attributes in the form of hash
78
78
  def initialize(attributes = {})
79
79
  if (!attributes.is_a?(Hash))
80
- fail ArgumentError, "The input argument (attributes) must be a hash in `KatapultAPI::VirtualMachineNotFoundResponse` initialize method"
80
+ fail ArgumentError, "The input argument (attributes) must be a hash in `KatapultAPI::OrganizationLimitReachedSchema` initialize method"
81
81
  end
82
82
 
83
83
  # check to see if the attribute exists and convert string to symbol for hash key
84
84
  attributes = attributes.each_with_object({}) { |(k, v), h|
85
85
  if (!self.class.attribute_map.key?(k.to_sym))
86
- fail ArgumentError, "`#{k}` is not a valid attribute in `KatapultAPI::VirtualMachineNotFoundResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
86
+ fail ArgumentError, "`#{k}` is not a valid attribute in `KatapultAPI::OrganizationLimitReachedSchema`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
87
87
  end
88
88
  h[k.to_sym] = v
89
89
  }
@@ -113,21 +113,9 @@ module KatapultAPI
113
113
  # @return true if the model is valid
114
114
  def valid?
115
115
  warn '[DEPRECATED] the `valid?` method is obsolete'
116
- code_validator = EnumAttributeValidator.new('String', ["virtual_machine_not_found"])
117
- return false unless code_validator.valid?(@code)
118
116
  true
119
117
  end
120
118
 
121
- # Custom attribute writer method checking allowed values (enum).
122
- # @param [Object] code Object to be assigned
123
- def code=(code)
124
- validator = EnumAttributeValidator.new('String', ["virtual_machine_not_found"])
125
- unless validator.valid?(code)
126
- fail ArgumentError, "invalid value for \"code\", must be one of #{validator.allowable_values}."
127
- end
128
- @code = code
129
- end
130
-
131
119
  # Checks equality by comparing each attribute.
132
120
  # @param [Object] Object to be compared
133
121
  def ==(o)
@@ -0,0 +1,39 @@
1
+ =begin
2
+ #Katapult Core API
3
+
4
+ #Welcome to the documentation for the Katapult Core API
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 7.1.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module KatapultAPI
17
+ class OrganizationNotActivatedEnum
18
+ ORGANIZATION_NOT_ACTIVATED = "organization_not_activated".freeze
19
+
20
+ def self.all_vars
21
+ @all_vars ||= [ORGANIZATION_NOT_ACTIVATED].freeze
22
+ end
23
+
24
+ # Builds the enum from string
25
+ # @param [String] The enum value in the form of the string
26
+ # @return [String] The enum value
27
+ def self.build_from_hash(value)
28
+ new.build_from_hash(value)
29
+ end
30
+
31
+ # Builds the enum from string
32
+ # @param [String] The enum value in the form of the string
33
+ # @return [String] The enum value
34
+ def build_from_hash(value)
35
+ return value if OrganizationNotActivatedEnum.all_vars.include?(value)
36
+ raise "Invalid ENUM value #{value} for class #OrganizationNotActivatedEnum"
37
+ end
38
+ end
39
+ end
@@ -15,7 +15,7 @@ require 'time'
15
15
 
16
16
  module KatapultAPI
17
17
  # An organization was found from the arguments provided but it wasn't activated yet
18
- class OrganizationNotActivatedResponse
18
+ class OrganizationNotActivatedSchema
19
19
  attr_accessor :code
20
20
 
21
21
  attr_accessor :description
@@ -61,7 +61,7 @@ module KatapultAPI
61
61
  # Attribute type mapping.
62
62
  def self.openapi_types
63
63
  {
64
- :'code' => :'String',
64
+ :'code' => :'OrganizationNotActivatedEnum',
65
65
  :'description' => :'String',
66
66
  :'detail' => :'Object'
67
67
  }
@@ -77,13 +77,13 @@ module KatapultAPI
77
77
  # @param [Hash] attributes Model attributes in the form of hash
78
78
  def initialize(attributes = {})
79
79
  if (!attributes.is_a?(Hash))
80
- fail ArgumentError, "The input argument (attributes) must be a hash in `KatapultAPI::OrganizationNotActivatedResponse` initialize method"
80
+ fail ArgumentError, "The input argument (attributes) must be a hash in `KatapultAPI::OrganizationNotActivatedSchema` initialize method"
81
81
  end
82
82
 
83
83
  # check to see if the attribute exists and convert string to symbol for hash key
84
84
  attributes = attributes.each_with_object({}) { |(k, v), h|
85
85
  if (!self.class.attribute_map.key?(k.to_sym))
86
- fail ArgumentError, "`#{k}` is not a valid attribute in `KatapultAPI::OrganizationNotActivatedResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
86
+ fail ArgumentError, "`#{k}` is not a valid attribute in `KatapultAPI::OrganizationNotActivatedSchema`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
87
87
  end
88
88
  h[k.to_sym] = v
89
89
  }
@@ -113,21 +113,9 @@ module KatapultAPI
113
113
  # @return true if the model is valid
114
114
  def valid?
115
115
  warn '[DEPRECATED] the `valid?` method is obsolete'
116
- code_validator = EnumAttributeValidator.new('String', ["organization_not_activated"])
117
- return false unless code_validator.valid?(@code)
118
116
  true
119
117
  end
120
118
 
121
- # Custom attribute writer method checking allowed values (enum).
122
- # @param [Object] code Object to be assigned
123
- def code=(code)
124
- validator = EnumAttributeValidator.new('String', ["organization_not_activated"])
125
- unless validator.valid?(code)
126
- fail ArgumentError, "invalid value for \"code\", must be one of #{validator.allowable_values}."
127
- end
128
- @code = code
129
- end
130
-
131
119
  # Checks equality by comparing each attribute.
132
120
  # @param [Object] Object to be compared
133
121
  def ==(o)
@@ -0,0 +1,39 @@
1
+ =begin
2
+ #Katapult Core API
3
+
4
+ #Welcome to the documentation for the Katapult Core API
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 7.1.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module KatapultAPI
17
+ class OrganizationNotFoundEnum
18
+ ORGANIZATION_NOT_FOUND = "organization_not_found".freeze
19
+
20
+ def self.all_vars
21
+ @all_vars ||= [ORGANIZATION_NOT_FOUND].freeze
22
+ end
23
+
24
+ # Builds the enum from string
25
+ # @param [String] The enum value in the form of the string
26
+ # @return [String] The enum value
27
+ def self.build_from_hash(value)
28
+ new.build_from_hash(value)
29
+ end
30
+
31
+ # Builds the enum from string
32
+ # @param [String] The enum value in the form of the string
33
+ # @return [String] The enum value
34
+ def build_from_hash(value)
35
+ return value if OrganizationNotFoundEnum.all_vars.include?(value)
36
+ raise "Invalid ENUM value #{value} for class #OrganizationNotFoundEnum"
37
+ end
38
+ end
39
+ end