nodeum_sdk 1.85.1 → 1.86.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 (168) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +69 -14
  3. data/docs/ByDateFacet.md +4 -0
  4. data/docs/ByFileExtensionFacet.md +2 -2
  5. data/docs/ByFileExtensionFacetAllOf.md +2 -2
  6. data/docs/ByGroupOwnerFacet.md +2 -2
  7. data/docs/ByGroupOwnerFacetAllOf.md +2 -2
  8. data/docs/ByPrimaryCloudFacet.md +21 -0
  9. data/docs/ByPrimaryCloudFacetAllOf.md +21 -0
  10. data/docs/ByPrimaryFacet.md +2 -2
  11. data/docs/ByPrimaryFacetAllOf.md +2 -2
  12. data/docs/ByPrimaryNasFacet.md +21 -0
  13. data/docs/ByPrimaryNasFacetAllOf.md +21 -0
  14. data/docs/ByPrimaryStorageFacet.md +31 -0
  15. data/docs/ByPrimaryTypeFacet.md +41 -0
  16. data/docs/BySecondaryCloudFacet.md +21 -0
  17. data/docs/BySecondaryCloudFacetAllOf.md +21 -0
  18. data/docs/BySecondaryNasFacet.md +21 -0
  19. data/docs/BySecondaryNasFacetAllOf.md +21 -0
  20. data/docs/BySecondaryStorageFacet.md +35 -0
  21. data/docs/BySecondaryTapeFacet.md +21 -0
  22. data/docs/BySecondaryTapeFacetAllOf.md +21 -0
  23. data/docs/BySecondaryTypeFacet.md +2 -2
  24. data/docs/BySecondaryTypeFacetAllOf.md +2 -2
  25. data/docs/BySizeFacet.md +4 -0
  26. data/docs/ByTaskStatusFacet.md +17 -0
  27. data/docs/ByTaskStatusFacetAllOf.md +17 -0
  28. data/docs/ByTaskStorageFacet.md +19 -0
  29. data/docs/ByTaskStorageFacetAllOf.md +19 -0
  30. data/docs/ByTaskWorkflowFacet.md +17 -0
  31. data/docs/ByTaskWorkflowFacetAllOf.md +17 -0
  32. data/docs/ByTypeFacetBucket.md +19 -0
  33. data/docs/ByTypeFacetBuckets.md +17 -0
  34. data/docs/ByUserOwnerFacet.md +2 -2
  35. data/docs/ByUserOwnerFacetAllOf.md +2 -2
  36. data/docs/Container.md +4 -0
  37. data/docs/DefaultFacet.md +17 -0
  38. data/docs/FileFacet.md +5 -3
  39. data/docs/FileFacetAllOf.md +21 -0
  40. data/docs/StatisticsApi.md +805 -42
  41. data/docs/StorageByTypeFacets.md +25 -0
  42. data/docs/StorageCloudBucketByTypeFacets.md +19 -0
  43. data/docs/StorageCloudBucketFacets.md +21 -0
  44. data/docs/StorageFacet.md +27 -0
  45. data/docs/StorageNasShareByTypeFacets.md +19 -0
  46. data/docs/StorageNasShareFacets.md +21 -0
  47. data/docs/StoragePoolByTypeFacets.md +19 -0
  48. data/docs/StoragePoolFacets.md +21 -0
  49. data/docs/StorageTapeByTypeFacets.md +21 -0
  50. data/docs/StorageTapeFacets.md +23 -0
  51. data/docs/TaskByWorkflowBucket.md +19 -0
  52. data/docs/TaskByWorkflowBucketAllOf.md +19 -0
  53. data/docs/TaskByWorkflowBuckets.md +17 -0
  54. data/docs/TaskFacet.md +27 -0
  55. data/docs/TaskFacetAllOf.md +27 -0
  56. data/docs/TaskFacetBucket.md +31 -0
  57. data/docs/TaskFacetBuckets.md +17 -0
  58. data/docs/TypeToPrimaryFacets.md +23 -0
  59. data/docs/TypeToSecondaryFacets.md +2 -0
  60. data/docs/UserConfiguration.md +21 -0
  61. data/docs/UserConfigurationCollection.md +19 -0
  62. data/docs/UsersApi.md +300 -0
  63. data/lib/nodeum_sdk.rb +43 -4
  64. data/lib/nodeum_sdk/api/statistics_api.rb +910 -51
  65. data/lib/nodeum_sdk/api/users_api.rb +318 -0
  66. data/lib/nodeum_sdk/models/by_date_facet.rb +19 -1
  67. data/lib/nodeum_sdk/models/by_file_extension_facet.rb +7 -7
  68. data/lib/nodeum_sdk/models/by_file_extension_facet_all_of.rb +7 -7
  69. data/lib/nodeum_sdk/models/by_group_owner_facet.rb +7 -7
  70. data/lib/nodeum_sdk/models/by_group_owner_facet_all_of.rb +7 -7
  71. data/lib/nodeum_sdk/models/by_primary_cloud_facet.rb +236 -0
  72. data/lib/nodeum_sdk/models/by_primary_cloud_facet_all_of.rb +224 -0
  73. data/lib/nodeum_sdk/models/by_primary_facet.rb +7 -7
  74. data/lib/nodeum_sdk/models/by_primary_facet_all_of.rb +7 -7
  75. data/lib/nodeum_sdk/models/by_primary_nas_facet.rb +236 -0
  76. data/lib/nodeum_sdk/models/by_primary_nas_facet_all_of.rb +224 -0
  77. data/lib/nodeum_sdk/models/by_primary_storage_facet.rb +277 -0
  78. data/lib/nodeum_sdk/models/by_primary_type_facet.rb +322 -0
  79. data/lib/nodeum_sdk/models/by_secondary_cloud_facet.rb +236 -0
  80. data/lib/nodeum_sdk/models/by_secondary_cloud_facet_all_of.rb +224 -0
  81. data/lib/nodeum_sdk/models/by_secondary_nas_facet.rb +236 -0
  82. data/lib/nodeum_sdk/models/by_secondary_nas_facet_all_of.rb +224 -0
  83. data/lib/nodeum_sdk/models/by_secondary_storage_facet.rb +295 -0
  84. data/lib/nodeum_sdk/models/by_secondary_tape_facet.rb +236 -0
  85. data/lib/nodeum_sdk/models/by_secondary_tape_facet_all_of.rb +224 -0
  86. data/lib/nodeum_sdk/models/by_secondary_type_facet.rb +7 -7
  87. data/lib/nodeum_sdk/models/by_secondary_type_facet_all_of.rb +7 -7
  88. data/lib/nodeum_sdk/models/by_size_facet.rb +19 -1
  89. data/lib/nodeum_sdk/models/by_task_status_facet.rb +218 -0
  90. data/lib/nodeum_sdk/models/by_task_status_facet_all_of.rb +206 -0
  91. data/lib/nodeum_sdk/models/by_task_storage_facet.rb +227 -0
  92. data/lib/nodeum_sdk/models/by_task_storage_facet_all_of.rb +215 -0
  93. data/lib/nodeum_sdk/models/by_task_workflow_facet.rb +218 -0
  94. data/lib/nodeum_sdk/models/by_task_workflow_facet_all_of.rb +206 -0
  95. data/lib/nodeum_sdk/models/by_type_facet_bucket.rb +223 -0
  96. data/lib/nodeum_sdk/models/by_type_facet_buckets.rb +208 -0
  97. data/lib/nodeum_sdk/models/by_user_owner_facet.rb +7 -7
  98. data/lib/nodeum_sdk/models/by_user_owner_facet_all_of.rb +7 -7
  99. data/lib/nodeum_sdk/models/container.rb +19 -1
  100. data/lib/nodeum_sdk/models/default_facet.rb +206 -0
  101. data/lib/nodeum_sdk/models/file_facet.rb +35 -14
  102. data/lib/nodeum_sdk/models/file_facet_all_of.rb +224 -0
  103. data/lib/nodeum_sdk/models/storage_by_type_facets.rb +242 -0
  104. data/lib/nodeum_sdk/models/storage_cloud_bucket_by_type_facets.rb +215 -0
  105. data/lib/nodeum_sdk/models/storage_cloud_bucket_facets.rb +232 -0
  106. data/lib/nodeum_sdk/models/storage_facet.rb +259 -0
  107. data/lib/nodeum_sdk/models/storage_nas_share_by_type_facets.rb +215 -0
  108. data/lib/nodeum_sdk/models/storage_nas_share_facets.rb +232 -0
  109. data/lib/nodeum_sdk/models/storage_pool_by_type_facets.rb +215 -0
  110. data/lib/nodeum_sdk/models/storage_pool_facets.rb +232 -0
  111. data/lib/nodeum_sdk/models/storage_tape_by_type_facets.rb +224 -0
  112. data/lib/nodeum_sdk/models/storage_tape_facets.rb +241 -0
  113. data/lib/nodeum_sdk/models/task_by_workflow_bucket.rb +227 -0
  114. data/lib/nodeum_sdk/models/task_by_workflow_bucket_all_of.rb +215 -0
  115. data/lib/nodeum_sdk/models/task_by_workflow_buckets.rb +208 -0
  116. data/lib/nodeum_sdk/models/task_facet.rb +263 -0
  117. data/lib/nodeum_sdk/models/task_facet_all_of.rb +251 -0
  118. data/lib/nodeum_sdk/models/task_facet_bucket.rb +277 -0
  119. data/lib/nodeum_sdk/models/task_facet_buckets.rb +208 -0
  120. data/lib/nodeum_sdk/models/type_to_primary_facets.rb +233 -0
  121. data/lib/nodeum_sdk/models/type_to_secondary_facets.rb +10 -1
  122. data/lib/nodeum_sdk/models/user_configuration.rb +224 -0
  123. data/lib/nodeum_sdk/models/user_configuration_collection.rb +217 -0
  124. data/lib/nodeum_sdk/version.rb +1 -1
  125. data/spec/models/by_primary_cloud_facet_all_of_spec.rb +53 -0
  126. data/spec/models/by_primary_cloud_facet_spec.rb +53 -0
  127. data/spec/models/by_primary_nas_facet_all_of_spec.rb +53 -0
  128. data/spec/models/by_primary_nas_facet_spec.rb +53 -0
  129. data/spec/models/by_primary_storage_facet_spec.rb +83 -0
  130. data/spec/models/by_primary_type_facet_spec.rb +113 -0
  131. data/spec/models/by_secondary_cloud_facet_all_of_spec.rb +53 -0
  132. data/spec/models/by_secondary_cloud_facet_spec.rb +53 -0
  133. data/spec/models/by_secondary_nas_facet_all_of_spec.rb +53 -0
  134. data/spec/models/by_secondary_nas_facet_spec.rb +53 -0
  135. data/spec/models/by_secondary_storage_facet_spec.rb +95 -0
  136. data/spec/models/by_secondary_tape_facet_all_of_spec.rb +53 -0
  137. data/spec/models/by_secondary_tape_facet_spec.rb +53 -0
  138. data/spec/models/by_task_status_facet_all_of_spec.rb +41 -0
  139. data/spec/models/by_task_status_facet_spec.rb +41 -0
  140. data/spec/models/by_task_storage_facet_all_of_spec.rb +47 -0
  141. data/spec/models/by_task_storage_facet_spec.rb +47 -0
  142. data/spec/models/by_task_workflow_facet_all_of_spec.rb +41 -0
  143. data/spec/models/by_task_workflow_facet_spec.rb +41 -0
  144. data/spec/models/by_type_facet_bucket_spec.rb +47 -0
  145. data/spec/models/by_type_facet_buckets_spec.rb +41 -0
  146. data/spec/models/default_facet_spec.rb +41 -0
  147. data/spec/models/file_facet_all_of_spec.rb +53 -0
  148. data/spec/models/storage_by_type_facets_spec.rb +65 -0
  149. data/spec/models/storage_cloud_bucket_by_type_facets_spec.rb +47 -0
  150. data/spec/models/storage_cloud_bucket_facets_spec.rb +53 -0
  151. data/spec/models/storage_facet_spec.rb +71 -0
  152. data/spec/models/storage_nas_share_by_type_facets_spec.rb +47 -0
  153. data/spec/models/storage_nas_share_facets_spec.rb +53 -0
  154. data/spec/models/storage_pool_by_type_facets_spec.rb +47 -0
  155. data/spec/models/storage_pool_facets_spec.rb +53 -0
  156. data/spec/models/storage_tape_by_type_facets_spec.rb +53 -0
  157. data/spec/models/storage_tape_facets_spec.rb +59 -0
  158. data/spec/models/task_by_workflow_bucket_all_of_spec.rb +47 -0
  159. data/spec/models/task_by_workflow_bucket_spec.rb +47 -0
  160. data/spec/models/task_by_workflow_buckets_spec.rb +41 -0
  161. data/spec/models/task_facet_all_of_spec.rb +71 -0
  162. data/spec/models/task_facet_bucket_spec.rb +83 -0
  163. data/spec/models/task_facet_buckets_spec.rb +41 -0
  164. data/spec/models/task_facet_spec.rb +71 -0
  165. data/spec/models/type_to_primary_facets_spec.rb +59 -0
  166. data/spec/models/user_configuration_collection_spec.rb +47 -0
  167. data/spec/models/user_configuration_spec.rb +53 -0
  168. metadata +174 -2
@@ -0,0 +1,277 @@
1
+ =begin
2
+ #Nodeum API
3
+
4
+ #The Nodeum API makes it easy to tap into the digital data mesh that runs across your organisation. Make requests to our API endpoints and we’ll give you everything you need to interconnect your business workflows with your storage. All production API requests are made to: http://nodeumhostname/api/ The current production version of the API is v1. **REST** The Nodeum API is a RESTful API. This means that the API is designed to allow you to get, create, update, & delete objects with the HTTP verbs GET, POST, PUT, PATCH, & DELETE. **JSON** The Nodeum API speaks exclusively in JSON. This means that you should always set the Content-Type header to application/json to ensure that your requests are properly accepted and processed by the API. **Authentication** All API calls require user-password authentication. **Cross-Origin Resource Sharing** The Nodeum API supports CORS for communicating from Javascript for these endpoints. You will need to specify an Origin URI when creating your application to allow for CORS to be whitelisted for your domain. **Pagination** Some endpoints such as File Listing return a potentially lengthy array of objects. In order to keep the response sizes manageable the API will take advantage of pagination. Pagination is a mechanism for returning a subset of the results for a request and allowing for subsequent requests to “page” through the rest of the results until the end is reached. Paginated endpoints follow a standard interface that accepts two query parameters, limit and offset, and return a payload that follows a standard form. These parameters names and their behavior are borrowed from SQL LIMIT and OFFSET keywords. **Versioning** The Nodeum API is constantly being worked on to add features, make improvements, and fix bugs. This means that you should expect changes to be introduced and documented. However, there are some changes or additions that are considered backwards-compatible and your applications should be flexible enough to handle them. These include: - Adding new endpoints to the API - Adding new attributes to the response of an existing endpoint - Changing the order of attributes of responses (JSON by definition is an object of unordered key/value pairs) **Filter parameters** When browsing a list of items, multiple filter parameters may be applied. Some operators can be added to the value as a prefix: - `=` value is equal. Default operator, may be omitted - `!=` value is different - `>` greater than - `>=` greater than or equal - `<` lower than - `>=` lower than or equal - `><` included in list, items should be separated by `|` - `!><` not included in list, items should be separated by `|` - `~` pattern matching, may include `%` (any characters) and `_` (one character) - `!~` pattern not matching, may include `%` (any characters) and `_` (one character)
5
+
6
+ The version of the OpenAPI document: 2.1.0
7
+ Contact: info@nodeum.io
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Nodeum
16
+ class ByPrimaryStorageFacet
17
+ attr_accessor :count
18
+
19
+ attr_accessor :files_count
20
+
21
+ attr_accessor :file_size_sum
22
+
23
+ attr_accessor :cost
24
+
25
+ attr_accessor :on_primary_container
26
+
27
+ attr_accessor :on_primary_nas
28
+
29
+ attr_accessor :on_primary_public_cloud
30
+
31
+ attr_accessor :on_primary_object_cloud
32
+
33
+ # Attribute mapping from ruby-style variable name to JSON key.
34
+ def self.attribute_map
35
+ {
36
+ :'count' => :'count',
37
+ :'files_count' => :'files_count',
38
+ :'file_size_sum' => :'file_size_sum',
39
+ :'cost' => :'cost',
40
+ :'on_primary_container' => :'on_primary_container',
41
+ :'on_primary_nas' => :'on_primary_nas',
42
+ :'on_primary_public_cloud' => :'on_primary_public_cloud',
43
+ :'on_primary_object_cloud' => :'on_primary_object_cloud'
44
+ }
45
+ end
46
+
47
+ # Attribute type mapping.
48
+ def self.openapi_types
49
+ {
50
+ :'count' => :'Integer',
51
+ :'files_count' => :'Integer',
52
+ :'file_size_sum' => :'Integer',
53
+ :'cost' => :'Float',
54
+ :'on_primary_container' => :'ByPrimaryTypeFacet',
55
+ :'on_primary_nas' => :'ByPrimaryTypeFacet',
56
+ :'on_primary_public_cloud' => :'ByPrimaryTypeFacet',
57
+ :'on_primary_object_cloud' => :'ByPrimaryTypeFacet'
58
+ }
59
+ end
60
+
61
+ # List of attributes with nullable: true
62
+ def self.openapi_nullable
63
+ Set.new([
64
+ ])
65
+ end
66
+
67
+ # List of class defined in allOf (OpenAPI v3)
68
+ def self.openapi_all_of
69
+ [
70
+ :'FileFacet',
71
+ :'TypeToPrimaryFacets'
72
+ ]
73
+ end
74
+
75
+ # Initializes the object
76
+ # @param [Hash] attributes Model attributes in the form of hash
77
+ def initialize(attributes = {})
78
+ if (!attributes.is_a?(Hash))
79
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Nodeum::ByPrimaryStorageFacet` initialize method"
80
+ end
81
+
82
+ # check to see if the attribute exists and convert string to symbol for hash key
83
+ attributes = attributes.each_with_object({}) { |(k, v), h|
84
+ if (!self.class.attribute_map.key?(k.to_sym))
85
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Nodeum::ByPrimaryStorageFacet`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
86
+ end
87
+ h[k.to_sym] = v
88
+ }
89
+
90
+ if attributes.key?(:'count')
91
+ self.count = attributes[:'count']
92
+ end
93
+
94
+ if attributes.key?(:'files_count')
95
+ self.files_count = attributes[:'files_count']
96
+ end
97
+
98
+ if attributes.key?(:'file_size_sum')
99
+ self.file_size_sum = attributes[:'file_size_sum']
100
+ end
101
+
102
+ if attributes.key?(:'cost')
103
+ self.cost = attributes[:'cost']
104
+ end
105
+
106
+ if attributes.key?(:'on_primary_container')
107
+ self.on_primary_container = attributes[:'on_primary_container']
108
+ end
109
+
110
+ if attributes.key?(:'on_primary_nas')
111
+ self.on_primary_nas = attributes[:'on_primary_nas']
112
+ end
113
+
114
+ if attributes.key?(:'on_primary_public_cloud')
115
+ self.on_primary_public_cloud = attributes[:'on_primary_public_cloud']
116
+ end
117
+
118
+ if attributes.key?(:'on_primary_object_cloud')
119
+ self.on_primary_object_cloud = attributes[:'on_primary_object_cloud']
120
+ end
121
+ end
122
+
123
+ # Show invalid properties with the reasons. Usually used together with valid?
124
+ # @return Array for valid properties with the reasons
125
+ def list_invalid_properties
126
+ invalid_properties = Array.new
127
+ invalid_properties
128
+ end
129
+
130
+ # Check to see if the all the properties in the model are valid
131
+ # @return true if the model is valid
132
+ def valid?
133
+ true
134
+ end
135
+
136
+ # Checks equality by comparing each attribute.
137
+ # @param [Object] Object to be compared
138
+ def ==(o)
139
+ return true if self.equal?(o)
140
+ self.class == o.class &&
141
+ count == o.count &&
142
+ files_count == o.files_count &&
143
+ file_size_sum == o.file_size_sum &&
144
+ cost == o.cost &&
145
+ on_primary_container == o.on_primary_container &&
146
+ on_primary_nas == o.on_primary_nas &&
147
+ on_primary_public_cloud == o.on_primary_public_cloud &&
148
+ on_primary_object_cloud == o.on_primary_object_cloud
149
+ end
150
+
151
+ # @see the `==` method
152
+ # @param [Object] Object to be compared
153
+ def eql?(o)
154
+ self == o
155
+ end
156
+
157
+ # Calculates hash code according to all attributes.
158
+ # @return [Integer] Hash code
159
+ def hash
160
+ [count, files_count, file_size_sum, cost, on_primary_container, on_primary_nas, on_primary_public_cloud, on_primary_object_cloud].hash
161
+ end
162
+
163
+ # Builds the object from hash
164
+ # @param [Hash] attributes Model attributes in the form of hash
165
+ # @return [Object] Returns the model itself
166
+ def self.build_from_hash(attributes)
167
+ new.build_from_hash(attributes)
168
+ end
169
+
170
+ # Builds the object from hash
171
+ # @param [Hash] attributes Model attributes in the form of hash
172
+ # @return [Object] Returns the model itself
173
+ def build_from_hash(attributes)
174
+ return nil unless attributes.is_a?(Hash)
175
+ self.class.openapi_types.each_pair do |key, type|
176
+ if type =~ /\AArray<(.*)>/i
177
+ # check to ensure the input is an array given that the attribute
178
+ # is documented as an array but the input is not
179
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
180
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
181
+ end
182
+ elsif !attributes[self.class.attribute_map[key]].nil?
183
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
184
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
185
+ end
186
+
187
+ self
188
+ end
189
+
190
+ # Deserializes the data based on type
191
+ # @param string type Data type
192
+ # @param string value Value to be deserialized
193
+ # @return [Object] Deserialized data
194
+ def _deserialize(type, value)
195
+ case type.to_sym
196
+ when :DateTime
197
+ DateTime.parse(value)
198
+ when :Date
199
+ Date.parse(value)
200
+ when :String
201
+ value.to_s
202
+ when :Integer
203
+ value.to_i
204
+ when :Float
205
+ value.to_f
206
+ when :Boolean
207
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
208
+ true
209
+ else
210
+ false
211
+ end
212
+ when :Object
213
+ # generic object (usually a Hash), return directly
214
+ value
215
+ when /\AArray<(?<inner_type>.+)>\z/
216
+ inner_type = Regexp.last_match[:inner_type]
217
+ value.map { |v| _deserialize(inner_type, v) }
218
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
219
+ k_type = Regexp.last_match[:k_type]
220
+ v_type = Regexp.last_match[:v_type]
221
+ {}.tap do |hash|
222
+ value.each do |k, v|
223
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
224
+ end
225
+ end
226
+ else # model
227
+ Nodeum.const_get(type).build_from_hash(value)
228
+ end
229
+ end
230
+
231
+ # Returns the string representation of the object
232
+ # @return [String] String presentation of the object
233
+ def to_s
234
+ to_hash.to_s
235
+ end
236
+
237
+ # to_body is an alias to to_hash (backward compatibility)
238
+ # @return [Hash] Returns the object in the form of hash
239
+ def to_body
240
+ to_hash
241
+ end
242
+
243
+ # Returns the object in the form of hash
244
+ # @return [Hash] Returns the object in the form of hash
245
+ def to_hash
246
+ hash = {}
247
+ self.class.attribute_map.each_pair do |attr, param|
248
+ value = self.send(attr)
249
+ if value.nil?
250
+ is_nullable = self.class.openapi_nullable.include?(attr)
251
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
252
+ end
253
+
254
+ hash[param] = _to_hash(value)
255
+ end
256
+ hash
257
+ end
258
+
259
+ # Outputs non-array value in the form of hash
260
+ # For object, use to_hash. Otherwise, just return the value
261
+ # @param [Object] value Any valid value
262
+ # @return [Hash] Returns the value in the form of hash
263
+ def _to_hash(value)
264
+ if value.is_a?(Array)
265
+ value.compact.map { |v| _to_hash(v) }
266
+ elsif value.is_a?(Hash)
267
+ {}.tap do |hash|
268
+ value.each { |k, v| hash[k] = _to_hash(v) }
269
+ end
270
+ elsif value.respond_to? :to_hash
271
+ value.to_hash
272
+ else
273
+ value
274
+ end
275
+ end
276
+ end
277
+ end
@@ -0,0 +1,322 @@
1
+ =begin
2
+ #Nodeum API
3
+
4
+ #The Nodeum API makes it easy to tap into the digital data mesh that runs across your organisation. Make requests to our API endpoints and we’ll give you everything you need to interconnect your business workflows with your storage. All production API requests are made to: http://nodeumhostname/api/ The current production version of the API is v1. **REST** The Nodeum API is a RESTful API. This means that the API is designed to allow you to get, create, update, & delete objects with the HTTP verbs GET, POST, PUT, PATCH, & DELETE. **JSON** The Nodeum API speaks exclusively in JSON. This means that you should always set the Content-Type header to application/json to ensure that your requests are properly accepted and processed by the API. **Authentication** All API calls require user-password authentication. **Cross-Origin Resource Sharing** The Nodeum API supports CORS for communicating from Javascript for these endpoints. You will need to specify an Origin URI when creating your application to allow for CORS to be whitelisted for your domain. **Pagination** Some endpoints such as File Listing return a potentially lengthy array of objects. In order to keep the response sizes manageable the API will take advantage of pagination. Pagination is a mechanism for returning a subset of the results for a request and allowing for subsequent requests to “page” through the rest of the results until the end is reached. Paginated endpoints follow a standard interface that accepts two query parameters, limit and offset, and return a payload that follows a standard form. These parameters names and their behavior are borrowed from SQL LIMIT and OFFSET keywords. **Versioning** The Nodeum API is constantly being worked on to add features, make improvements, and fix bugs. This means that you should expect changes to be introduced and documented. However, there are some changes or additions that are considered backwards-compatible and your applications should be flexible enough to handle them. These include: - Adding new endpoints to the API - Adding new attributes to the response of an existing endpoint - Changing the order of attributes of responses (JSON by definition is an object of unordered key/value pairs) **Filter parameters** When browsing a list of items, multiple filter parameters may be applied. Some operators can be added to the value as a prefix: - `=` value is equal. Default operator, may be omitted - `!=` value is different - `>` greater than - `>=` greater than or equal - `<` lower than - `>=` lower than or equal - `><` included in list, items should be separated by `|` - `!><` not included in list, items should be separated by `|` - `~` pattern matching, may include `%` (any characters) and `_` (one character) - `!~` pattern not matching, may include `%` (any characters) and `_` (one character)
5
+
6
+ The version of the OpenAPI document: 2.1.0
7
+ Contact: info@nodeum.io
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Nodeum
16
+ class ByPrimaryTypeFacet
17
+ attr_accessor :count
18
+
19
+ attr_accessor :files_count
20
+
21
+ attr_accessor :file_size_sum
22
+
23
+ attr_accessor :cost
24
+
25
+ attr_accessor :in_cache
26
+
27
+ attr_accessor :less_1_week
28
+
29
+ attr_accessor :less_1_month
30
+
31
+ attr_accessor :less_3_months
32
+
33
+ attr_accessor :less_6_months
34
+
35
+ attr_accessor :less_1_year
36
+
37
+ attr_accessor :less_2_years
38
+
39
+ attr_accessor :more_2_years
40
+
41
+ attr_accessor :prim_name_s
42
+
43
+ # Attribute mapping from ruby-style variable name to JSON key.
44
+ def self.attribute_map
45
+ {
46
+ :'count' => :'count',
47
+ :'files_count' => :'files_count',
48
+ :'file_size_sum' => :'file_size_sum',
49
+ :'cost' => :'cost',
50
+ :'in_cache' => :'in_cache',
51
+ :'less_1_week' => :'less_1_week',
52
+ :'less_1_month' => :'less_1_month',
53
+ :'less_3_months' => :'less_3_months',
54
+ :'less_6_months' => :'less_6_months',
55
+ :'less_1_year' => :'less_1_year',
56
+ :'less_2_years' => :'less_2_years',
57
+ :'more_2_years' => :'more_2_years',
58
+ :'prim_name_s' => :'prim_name_s'
59
+ }
60
+ end
61
+
62
+ # Attribute type mapping.
63
+ def self.openapi_types
64
+ {
65
+ :'count' => :'Integer',
66
+ :'files_count' => :'Integer',
67
+ :'file_size_sum' => :'Integer',
68
+ :'cost' => :'Float',
69
+ :'in_cache' => :'FileFacet',
70
+ :'less_1_week' => :'FileFacet',
71
+ :'less_1_month' => :'FileFacet',
72
+ :'less_3_months' => :'FileFacet',
73
+ :'less_6_months' => :'FileFacet',
74
+ :'less_1_year' => :'FileFacet',
75
+ :'less_2_years' => :'FileFacet',
76
+ :'more_2_years' => :'FileFacet',
77
+ :'prim_name_s' => :'ByDateFacetBuckets'
78
+ }
79
+ end
80
+
81
+ # List of attributes with nullable: true
82
+ def self.openapi_nullable
83
+ Set.new([
84
+ ])
85
+ end
86
+
87
+ # List of class defined in allOf (OpenAPI v3)
88
+ def self.openapi_all_of
89
+ [
90
+ :'ByDateFacet',
91
+ :'ByPrimaryFacetAllOf'
92
+ ]
93
+ end
94
+
95
+ # Initializes the object
96
+ # @param [Hash] attributes Model attributes in the form of hash
97
+ def initialize(attributes = {})
98
+ if (!attributes.is_a?(Hash))
99
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Nodeum::ByPrimaryTypeFacet` initialize method"
100
+ end
101
+
102
+ # check to see if the attribute exists and convert string to symbol for hash key
103
+ attributes = attributes.each_with_object({}) { |(k, v), h|
104
+ if (!self.class.attribute_map.key?(k.to_sym))
105
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Nodeum::ByPrimaryTypeFacet`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
106
+ end
107
+ h[k.to_sym] = v
108
+ }
109
+
110
+ if attributes.key?(:'count')
111
+ self.count = attributes[:'count']
112
+ end
113
+
114
+ if attributes.key?(:'files_count')
115
+ self.files_count = attributes[:'files_count']
116
+ end
117
+
118
+ if attributes.key?(:'file_size_sum')
119
+ self.file_size_sum = attributes[:'file_size_sum']
120
+ end
121
+
122
+ if attributes.key?(:'cost')
123
+ self.cost = attributes[:'cost']
124
+ end
125
+
126
+ if attributes.key?(:'in_cache')
127
+ self.in_cache = attributes[:'in_cache']
128
+ end
129
+
130
+ if attributes.key?(:'less_1_week')
131
+ self.less_1_week = attributes[:'less_1_week']
132
+ end
133
+
134
+ if attributes.key?(:'less_1_month')
135
+ self.less_1_month = attributes[:'less_1_month']
136
+ end
137
+
138
+ if attributes.key?(:'less_3_months')
139
+ self.less_3_months = attributes[:'less_3_months']
140
+ end
141
+
142
+ if attributes.key?(:'less_6_months')
143
+ self.less_6_months = attributes[:'less_6_months']
144
+ end
145
+
146
+ if attributes.key?(:'less_1_year')
147
+ self.less_1_year = attributes[:'less_1_year']
148
+ end
149
+
150
+ if attributes.key?(:'less_2_years')
151
+ self.less_2_years = attributes[:'less_2_years']
152
+ end
153
+
154
+ if attributes.key?(:'more_2_years')
155
+ self.more_2_years = attributes[:'more_2_years']
156
+ end
157
+
158
+ if attributes.key?(:'prim_name_s')
159
+ self.prim_name_s = attributes[:'prim_name_s']
160
+ end
161
+ end
162
+
163
+ # Show invalid properties with the reasons. Usually used together with valid?
164
+ # @return Array for valid properties with the reasons
165
+ def list_invalid_properties
166
+ invalid_properties = Array.new
167
+ invalid_properties
168
+ end
169
+
170
+ # Check to see if the all the properties in the model are valid
171
+ # @return true if the model is valid
172
+ def valid?
173
+ true
174
+ end
175
+
176
+ # Checks equality by comparing each attribute.
177
+ # @param [Object] Object to be compared
178
+ def ==(o)
179
+ return true if self.equal?(o)
180
+ self.class == o.class &&
181
+ count == o.count &&
182
+ files_count == o.files_count &&
183
+ file_size_sum == o.file_size_sum &&
184
+ cost == o.cost &&
185
+ in_cache == o.in_cache &&
186
+ less_1_week == o.less_1_week &&
187
+ less_1_month == o.less_1_month &&
188
+ less_3_months == o.less_3_months &&
189
+ less_6_months == o.less_6_months &&
190
+ less_1_year == o.less_1_year &&
191
+ less_2_years == o.less_2_years &&
192
+ more_2_years == o.more_2_years &&
193
+ prim_name_s == o.prim_name_s
194
+ end
195
+
196
+ # @see the `==` method
197
+ # @param [Object] Object to be compared
198
+ def eql?(o)
199
+ self == o
200
+ end
201
+
202
+ # Calculates hash code according to all attributes.
203
+ # @return [Integer] Hash code
204
+ def hash
205
+ [count, files_count, file_size_sum, cost, in_cache, less_1_week, less_1_month, less_3_months, less_6_months, less_1_year, less_2_years, more_2_years, prim_name_s].hash
206
+ end
207
+
208
+ # Builds the object from hash
209
+ # @param [Hash] attributes Model attributes in the form of hash
210
+ # @return [Object] Returns the model itself
211
+ def self.build_from_hash(attributes)
212
+ new.build_from_hash(attributes)
213
+ end
214
+
215
+ # Builds the object from hash
216
+ # @param [Hash] attributes Model attributes in the form of hash
217
+ # @return [Object] Returns the model itself
218
+ def build_from_hash(attributes)
219
+ return nil unless attributes.is_a?(Hash)
220
+ self.class.openapi_types.each_pair do |key, type|
221
+ if type =~ /\AArray<(.*)>/i
222
+ # check to ensure the input is an array given that the attribute
223
+ # is documented as an array but the input is not
224
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
225
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
226
+ end
227
+ elsif !attributes[self.class.attribute_map[key]].nil?
228
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
229
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
230
+ end
231
+
232
+ self
233
+ end
234
+
235
+ # Deserializes the data based on type
236
+ # @param string type Data type
237
+ # @param string value Value to be deserialized
238
+ # @return [Object] Deserialized data
239
+ def _deserialize(type, value)
240
+ case type.to_sym
241
+ when :DateTime
242
+ DateTime.parse(value)
243
+ when :Date
244
+ Date.parse(value)
245
+ when :String
246
+ value.to_s
247
+ when :Integer
248
+ value.to_i
249
+ when :Float
250
+ value.to_f
251
+ when :Boolean
252
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
253
+ true
254
+ else
255
+ false
256
+ end
257
+ when :Object
258
+ # generic object (usually a Hash), return directly
259
+ value
260
+ when /\AArray<(?<inner_type>.+)>\z/
261
+ inner_type = Regexp.last_match[:inner_type]
262
+ value.map { |v| _deserialize(inner_type, v) }
263
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
264
+ k_type = Regexp.last_match[:k_type]
265
+ v_type = Regexp.last_match[:v_type]
266
+ {}.tap do |hash|
267
+ value.each do |k, v|
268
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
269
+ end
270
+ end
271
+ else # model
272
+ Nodeum.const_get(type).build_from_hash(value)
273
+ end
274
+ end
275
+
276
+ # Returns the string representation of the object
277
+ # @return [String] String presentation of the object
278
+ def to_s
279
+ to_hash.to_s
280
+ end
281
+
282
+ # to_body is an alias to to_hash (backward compatibility)
283
+ # @return [Hash] Returns the object in the form of hash
284
+ def to_body
285
+ to_hash
286
+ end
287
+
288
+ # Returns the object in the form of hash
289
+ # @return [Hash] Returns the object in the form of hash
290
+ def to_hash
291
+ hash = {}
292
+ self.class.attribute_map.each_pair do |attr, param|
293
+ value = self.send(attr)
294
+ if value.nil?
295
+ is_nullable = self.class.openapi_nullable.include?(attr)
296
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
297
+ end
298
+
299
+ hash[param] = _to_hash(value)
300
+ end
301
+ hash
302
+ end
303
+
304
+ # Outputs non-array value in the form of hash
305
+ # For object, use to_hash. Otherwise, just return the value
306
+ # @param [Object] value Any valid value
307
+ # @return [Hash] Returns the value in the form of hash
308
+ def _to_hash(value)
309
+ if value.is_a?(Array)
310
+ value.compact.map { |v| _to_hash(v) }
311
+ elsif value.is_a?(Hash)
312
+ {}.tap do |hash|
313
+ value.each { |k, v| hash[k] = _to_hash(v) }
314
+ end
315
+ elsif value.respond_to? :to_hash
316
+ value.to_hash
317
+ else
318
+ value
319
+ end
320
+ end
321
+ end
322
+ end