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,236 @@
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 BySecondaryCloudFacet < FileFacet
17
+ attr_accessor :sec_cloud_connector_name_s
18
+
19
+ attr_accessor :sec_cloud_bucket_name_s
20
+
21
+ attr_accessor :sec_pool_name_s
22
+
23
+ # Attribute mapping from ruby-style variable name to JSON key.
24
+ def self.attribute_map
25
+ {
26
+ :'sec_cloud_connector_name_s' => :'sec_cloud_connector_name_s',
27
+ :'sec_cloud_bucket_name_s' => :'sec_cloud_bucket_name_s',
28
+ :'sec_pool_name_s' => :'sec_pool_name_s'
29
+ }
30
+ end
31
+
32
+ # Attribute type mapping.
33
+ def self.openapi_types
34
+ {
35
+ :'sec_cloud_connector_name_s' => :'ByDateFacetBuckets',
36
+ :'sec_cloud_bucket_name_s' => :'ByDateFacetBuckets',
37
+ :'sec_pool_name_s' => :'ByDateFacetBuckets'
38
+ }
39
+ end
40
+
41
+ # List of attributes with nullable: true
42
+ def self.openapi_nullable
43
+ Set.new([
44
+ ])
45
+ end
46
+
47
+ # List of class defined in allOf (OpenAPI v3)
48
+ def self.openapi_all_of
49
+ [
50
+ :'BySecondaryCloudFacetAllOf',
51
+ :'FileFacet'
52
+ ]
53
+ end
54
+
55
+ # Initializes the object
56
+ # @param [Hash] attributes Model attributes in the form of hash
57
+ def initialize(attributes = {})
58
+ if (!attributes.is_a?(Hash))
59
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Nodeum::BySecondaryCloudFacet` initialize method"
60
+ end
61
+
62
+ # check to see if the attribute exists and convert string to symbol for hash key
63
+ attributes = attributes.each_with_object({}) { |(k, v), h|
64
+ if (!self.class.attribute_map.key?(k.to_sym))
65
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Nodeum::BySecondaryCloudFacet`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
66
+ end
67
+ h[k.to_sym] = v
68
+ }
69
+
70
+ # call parent's initialize
71
+ super(attributes)
72
+
73
+ if attributes.key?(:'sec_cloud_connector_name_s')
74
+ self.sec_cloud_connector_name_s = attributes[:'sec_cloud_connector_name_s']
75
+ end
76
+
77
+ if attributes.key?(:'sec_cloud_bucket_name_s')
78
+ self.sec_cloud_bucket_name_s = attributes[:'sec_cloud_bucket_name_s']
79
+ end
80
+
81
+ if attributes.key?(:'sec_pool_name_s')
82
+ self.sec_pool_name_s = attributes[:'sec_pool_name_s']
83
+ end
84
+ end
85
+
86
+ # Show invalid properties with the reasons. Usually used together with valid?
87
+ # @return Array for valid properties with the reasons
88
+ def list_invalid_properties
89
+ invalid_properties = super
90
+ invalid_properties
91
+ end
92
+
93
+ # Check to see if the all the properties in the model are valid
94
+ # @return true if the model is valid
95
+ def valid?
96
+ true && super
97
+ end
98
+
99
+ # Checks equality by comparing each attribute.
100
+ # @param [Object] Object to be compared
101
+ def ==(o)
102
+ return true if self.equal?(o)
103
+ self.class == o.class &&
104
+ sec_cloud_connector_name_s == o.sec_cloud_connector_name_s &&
105
+ sec_cloud_bucket_name_s == o.sec_cloud_bucket_name_s &&
106
+ sec_pool_name_s == o.sec_pool_name_s && super(o)
107
+ end
108
+
109
+ # @see the `==` method
110
+ # @param [Object] Object to be compared
111
+ def eql?(o)
112
+ self == o
113
+ end
114
+
115
+ # Calculates hash code according to all attributes.
116
+ # @return [Integer] Hash code
117
+ def hash
118
+ [sec_cloud_connector_name_s, sec_cloud_bucket_name_s, sec_pool_name_s].hash
119
+ end
120
+
121
+ # Builds the object from hash
122
+ # @param [Hash] attributes Model attributes in the form of hash
123
+ # @return [Object] Returns the model itself
124
+ def self.build_from_hash(attributes)
125
+ new.build_from_hash(attributes)
126
+ end
127
+
128
+ # Builds the object from hash
129
+ # @param [Hash] attributes Model attributes in the form of hash
130
+ # @return [Object] Returns the model itself
131
+ def build_from_hash(attributes)
132
+ return nil unless attributes.is_a?(Hash)
133
+ super(attributes)
134
+ self.class.openapi_types.each_pair do |key, type|
135
+ if type =~ /\AArray<(.*)>/i
136
+ # check to ensure the input is an array given that the attribute
137
+ # is documented as an array but the input is not
138
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
139
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
140
+ end
141
+ elsif !attributes[self.class.attribute_map[key]].nil?
142
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
143
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
144
+ end
145
+
146
+ self
147
+ end
148
+
149
+ # Deserializes the data based on type
150
+ # @param string type Data type
151
+ # @param string value Value to be deserialized
152
+ # @return [Object] Deserialized data
153
+ def _deserialize(type, value)
154
+ case type.to_sym
155
+ when :DateTime
156
+ DateTime.parse(value)
157
+ when :Date
158
+ Date.parse(value)
159
+ when :String
160
+ value.to_s
161
+ when :Integer
162
+ value.to_i
163
+ when :Float
164
+ value.to_f
165
+ when :Boolean
166
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
167
+ true
168
+ else
169
+ false
170
+ end
171
+ when :Object
172
+ # generic object (usually a Hash), return directly
173
+ value
174
+ when /\AArray<(?<inner_type>.+)>\z/
175
+ inner_type = Regexp.last_match[:inner_type]
176
+ value.map { |v| _deserialize(inner_type, v) }
177
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
178
+ k_type = Regexp.last_match[:k_type]
179
+ v_type = Regexp.last_match[:v_type]
180
+ {}.tap do |hash|
181
+ value.each do |k, v|
182
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
183
+ end
184
+ end
185
+ else # model
186
+ Nodeum.const_get(type).build_from_hash(value)
187
+ end
188
+ end
189
+
190
+ # Returns the string representation of the object
191
+ # @return [String] String presentation of the object
192
+ def to_s
193
+ to_hash.to_s
194
+ end
195
+
196
+ # to_body is an alias to to_hash (backward compatibility)
197
+ # @return [Hash] Returns the object in the form of hash
198
+ def to_body
199
+ to_hash
200
+ end
201
+
202
+ # Returns the object in the form of hash
203
+ # @return [Hash] Returns the object in the form of hash
204
+ def to_hash
205
+ hash = super
206
+ self.class.attribute_map.each_pair do |attr, param|
207
+ value = self.send(attr)
208
+ if value.nil?
209
+ is_nullable = self.class.openapi_nullable.include?(attr)
210
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
211
+ end
212
+
213
+ hash[param] = _to_hash(value)
214
+ end
215
+ hash
216
+ end
217
+
218
+ # Outputs non-array value in the form of hash
219
+ # For object, use to_hash. Otherwise, just return the value
220
+ # @param [Object] value Any valid value
221
+ # @return [Hash] Returns the value in the form of hash
222
+ def _to_hash(value)
223
+ if value.is_a?(Array)
224
+ value.compact.map { |v| _to_hash(v) }
225
+ elsif value.is_a?(Hash)
226
+ {}.tap do |hash|
227
+ value.each { |k, v| hash[k] = _to_hash(v) }
228
+ end
229
+ elsif value.respond_to? :to_hash
230
+ value.to_hash
231
+ else
232
+ value
233
+ end
234
+ end
235
+ end
236
+ end
@@ -0,0 +1,224 @@
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 BySecondaryCloudFacetAllOf
17
+ attr_accessor :sec_cloud_connector_name_s
18
+
19
+ attr_accessor :sec_cloud_bucket_name_s
20
+
21
+ attr_accessor :sec_pool_name_s
22
+
23
+ # Attribute mapping from ruby-style variable name to JSON key.
24
+ def self.attribute_map
25
+ {
26
+ :'sec_cloud_connector_name_s' => :'sec_cloud_connector_name_s',
27
+ :'sec_cloud_bucket_name_s' => :'sec_cloud_bucket_name_s',
28
+ :'sec_pool_name_s' => :'sec_pool_name_s'
29
+ }
30
+ end
31
+
32
+ # Attribute type mapping.
33
+ def self.openapi_types
34
+ {
35
+ :'sec_cloud_connector_name_s' => :'ByDateFacetBuckets',
36
+ :'sec_cloud_bucket_name_s' => :'ByDateFacetBuckets',
37
+ :'sec_pool_name_s' => :'ByDateFacetBuckets'
38
+ }
39
+ end
40
+
41
+ # List of attributes with nullable: true
42
+ def self.openapi_nullable
43
+ Set.new([
44
+ ])
45
+ end
46
+
47
+ # Initializes the object
48
+ # @param [Hash] attributes Model attributes in the form of hash
49
+ def initialize(attributes = {})
50
+ if (!attributes.is_a?(Hash))
51
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Nodeum::BySecondaryCloudFacetAllOf` initialize method"
52
+ end
53
+
54
+ # check to see if the attribute exists and convert string to symbol for hash key
55
+ attributes = attributes.each_with_object({}) { |(k, v), h|
56
+ if (!self.class.attribute_map.key?(k.to_sym))
57
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Nodeum::BySecondaryCloudFacetAllOf`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
58
+ end
59
+ h[k.to_sym] = v
60
+ }
61
+
62
+ if attributes.key?(:'sec_cloud_connector_name_s')
63
+ self.sec_cloud_connector_name_s = attributes[:'sec_cloud_connector_name_s']
64
+ end
65
+
66
+ if attributes.key?(:'sec_cloud_bucket_name_s')
67
+ self.sec_cloud_bucket_name_s = attributes[:'sec_cloud_bucket_name_s']
68
+ end
69
+
70
+ if attributes.key?(:'sec_pool_name_s')
71
+ self.sec_pool_name_s = attributes[:'sec_pool_name_s']
72
+ end
73
+ end
74
+
75
+ # Show invalid properties with the reasons. Usually used together with valid?
76
+ # @return Array for valid properties with the reasons
77
+ def list_invalid_properties
78
+ invalid_properties = Array.new
79
+ invalid_properties
80
+ end
81
+
82
+ # Check to see if the all the properties in the model are valid
83
+ # @return true if the model is valid
84
+ def valid?
85
+ true
86
+ end
87
+
88
+ # Checks equality by comparing each attribute.
89
+ # @param [Object] Object to be compared
90
+ def ==(o)
91
+ return true if self.equal?(o)
92
+ self.class == o.class &&
93
+ sec_cloud_connector_name_s == o.sec_cloud_connector_name_s &&
94
+ sec_cloud_bucket_name_s == o.sec_cloud_bucket_name_s &&
95
+ sec_pool_name_s == o.sec_pool_name_s
96
+ end
97
+
98
+ # @see the `==` method
99
+ # @param [Object] Object to be compared
100
+ def eql?(o)
101
+ self == o
102
+ end
103
+
104
+ # Calculates hash code according to all attributes.
105
+ # @return [Integer] Hash code
106
+ def hash
107
+ [sec_cloud_connector_name_s, sec_cloud_bucket_name_s, sec_pool_name_s].hash
108
+ end
109
+
110
+ # Builds the object from hash
111
+ # @param [Hash] attributes Model attributes in the form of hash
112
+ # @return [Object] Returns the model itself
113
+ def self.build_from_hash(attributes)
114
+ new.build_from_hash(attributes)
115
+ end
116
+
117
+ # Builds the object from hash
118
+ # @param [Hash] attributes Model attributes in the form of hash
119
+ # @return [Object] Returns the model itself
120
+ def build_from_hash(attributes)
121
+ return nil unless attributes.is_a?(Hash)
122
+ self.class.openapi_types.each_pair do |key, type|
123
+ if type =~ /\AArray<(.*)>/i
124
+ # check to ensure the input is an array given that the attribute
125
+ # is documented as an array but the input is not
126
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
127
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
128
+ end
129
+ elsif !attributes[self.class.attribute_map[key]].nil?
130
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
131
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
132
+ end
133
+
134
+ self
135
+ end
136
+
137
+ # Deserializes the data based on type
138
+ # @param string type Data type
139
+ # @param string value Value to be deserialized
140
+ # @return [Object] Deserialized data
141
+ def _deserialize(type, value)
142
+ case type.to_sym
143
+ when :DateTime
144
+ DateTime.parse(value)
145
+ when :Date
146
+ Date.parse(value)
147
+ when :String
148
+ value.to_s
149
+ when :Integer
150
+ value.to_i
151
+ when :Float
152
+ value.to_f
153
+ when :Boolean
154
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
155
+ true
156
+ else
157
+ false
158
+ end
159
+ when :Object
160
+ # generic object (usually a Hash), return directly
161
+ value
162
+ when /\AArray<(?<inner_type>.+)>\z/
163
+ inner_type = Regexp.last_match[:inner_type]
164
+ value.map { |v| _deserialize(inner_type, v) }
165
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
166
+ k_type = Regexp.last_match[:k_type]
167
+ v_type = Regexp.last_match[:v_type]
168
+ {}.tap do |hash|
169
+ value.each do |k, v|
170
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
171
+ end
172
+ end
173
+ else # model
174
+ Nodeum.const_get(type).build_from_hash(value)
175
+ end
176
+ end
177
+
178
+ # Returns the string representation of the object
179
+ # @return [String] String presentation of the object
180
+ def to_s
181
+ to_hash.to_s
182
+ end
183
+
184
+ # to_body is an alias to to_hash (backward compatibility)
185
+ # @return [Hash] Returns the object in the form of hash
186
+ def to_body
187
+ to_hash
188
+ end
189
+
190
+ # Returns the object in the form of hash
191
+ # @return [Hash] Returns the object in the form of hash
192
+ def to_hash
193
+ hash = {}
194
+ self.class.attribute_map.each_pair do |attr, param|
195
+ value = self.send(attr)
196
+ if value.nil?
197
+ is_nullable = self.class.openapi_nullable.include?(attr)
198
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
199
+ end
200
+
201
+ hash[param] = _to_hash(value)
202
+ end
203
+ hash
204
+ end
205
+
206
+ # Outputs non-array value in the form of hash
207
+ # For object, use to_hash. Otherwise, just return the value
208
+ # @param [Object] value Any valid value
209
+ # @return [Hash] Returns the value in the form of hash
210
+ def _to_hash(value)
211
+ if value.is_a?(Array)
212
+ value.compact.map { |v| _to_hash(v) }
213
+ elsif value.is_a?(Hash)
214
+ {}.tap do |hash|
215
+ value.each { |k, v| hash[k] = _to_hash(v) }
216
+ end
217
+ elsif value.respond_to? :to_hash
218
+ value.to_hash
219
+ else
220
+ value
221
+ end
222
+ end
223
+ end
224
+ end