akeyless 5.0.7 → 5.0.9

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 (65) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +12 -1
  3. data/docs/Auth.md +4 -0
  4. data/docs/AuthOutput.md +2 -0
  5. data/docs/CreateRole.md +2 -0
  6. data/docs/DSProducerDetails.md +10 -0
  7. data/docs/DynamicSecretCreateOpenAI.md +40 -0
  8. data/docs/DynamicSecretUpdateOpenAI.md +42 -0
  9. data/docs/EsmGetSecretOutput.md +2 -0
  10. data/docs/EventForwarderCreateTeams.md +44 -0
  11. data/docs/EventForwarderUpdateTeams.md +46 -0
  12. data/docs/GatewayCreateAllowedAccess.md +1 -1
  13. data/docs/GatewayUpdateAllowedAccess.md +1 -1
  14. data/docs/GeminiTargetDetails.md +2 -2
  15. data/docs/GetCertChallenge.md +22 -0
  16. data/docs/GetCertChallengeOutput.md +18 -0
  17. data/docs/NotiForwarder.md +2 -0
  18. data/docs/OpenAITargetDetails.md +5 -5
  19. data/docs/PathRule.md +2 -0
  20. data/docs/ReverseRBACClient.md +2 -0
  21. data/docs/RoleAuthMethodAssociation.md +2 -0
  22. data/docs/SecretInfo.md +2 -0
  23. data/docs/SharingItemFullInfo.md +2 -0
  24. data/docs/TargetItemAssociation.md +2 -0
  25. data/docs/UpdateRole.md +2 -0
  26. data/docs/UscCreate.md +2 -0
  27. data/docs/UscGetSecretOutput.md +2 -0
  28. data/docs/UscUpdate.md +2 -0
  29. data/docs/V2Api.md +315 -0
  30. data/lib/akeyless/api/v2_api.rb +320 -0
  31. data/lib/akeyless/models/auth.rb +21 -1
  32. data/lib/akeyless/models/auth_output.rb +10 -1
  33. data/lib/akeyless/models/create_role.rb +11 -1
  34. data/lib/akeyless/models/ds_producer_details.rb +46 -1
  35. data/lib/akeyless/models/dynamic_secret_create_open_ai.rb +339 -0
  36. data/lib/akeyless/models/dynamic_secret_update_open_ai.rb +349 -0
  37. data/lib/akeyless/models/esm_get_secret_output.rb +10 -1
  38. data/lib/akeyless/models/event_forwarder_create_teams.rb +385 -0
  39. data/lib/akeyless/models/event_forwarder_update_teams.rb +391 -0
  40. data/lib/akeyless/models/gateway_create_allowed_access.rb +1 -1
  41. data/lib/akeyless/models/gateway_update_allowed_access.rb +1 -1
  42. data/lib/akeyless/models/gemini_target_details.rb +7 -7
  43. data/lib/akeyless/models/get_cert_challenge.rb +238 -0
  44. data/lib/akeyless/models/get_cert_challenge_output.rb +214 -0
  45. data/lib/akeyless/models/noti_forwarder.rb +10 -1
  46. data/lib/akeyless/models/open_ai_target_details.rb +19 -19
  47. data/lib/akeyless/models/path_rule.rb +11 -1
  48. data/lib/akeyless/models/reverse_rbac_client.rb +10 -1
  49. data/lib/akeyless/models/role_auth_method_association.rb +10 -1
  50. data/lib/akeyless/models/secret_info.rb +10 -1
  51. data/lib/akeyless/models/sharing_item_full_info.rb +11 -1
  52. data/lib/akeyless/models/target_item_association.rb +10 -1
  53. data/lib/akeyless/models/update_role.rb +11 -1
  54. data/lib/akeyless/models/usc_create.rb +11 -1
  55. data/lib/akeyless/models/usc_get_secret_output.rb +10 -1
  56. data/lib/akeyless/models/usc_update.rb +11 -1
  57. data/lib/akeyless/version.rb +1 -1
  58. data/lib/akeyless.rb +6 -0
  59. data/spec/models/dynamic_secret_create_open_ai_spec.rb +102 -0
  60. data/spec/models/dynamic_secret_update_open_ai_spec.rb +108 -0
  61. data/spec/models/event_forwarder_create_teams_spec.rb +114 -0
  62. data/spec/models/event_forwarder_update_teams_spec.rb +120 -0
  63. data/spec/models/get_cert_challenge_output_spec.rb +36 -0
  64. data/spec/models/get_cert_challenge_spec.rb +48 -0
  65. metadata +25 -1
@@ -0,0 +1,391 @@
1
+ =begin
2
+ #Akeyless API
3
+
4
+ #The purpose of this application is to provide access to Akeyless API.
5
+
6
+ The version of the OpenAPI document: 3.0
7
+ Contact: support@akeyless.io
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.10.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Akeyless
17
+ # eventForwarderUpdateTeams is a command that updates teams event forwarder
18
+ class EventForwarderUpdateTeams
19
+ # Auth Method Event sources
20
+ attr_accessor :auth_methods_event_source_locations
21
+
22
+ # Description of the object
23
+ attr_accessor :description
24
+
25
+ # Enable/Disable Event Forwarder [true/false]
26
+ attr_accessor :enable
27
+
28
+ # List of event types to notify about [request-access, certificate-pending-expiration, certificate-expired, certificate-provisioning-success, certificate-provisioning-failure, auth-method-pending-expiration, auth-method-expired, next-automatic-rotation, rotated-secret-success, rotated-secret-failure, dynamic-secret-failure, multi-auth-failure, uid-rotation-failure, apply-justification, email-auth-method-approved, usage, rotation-usage, gateway-inactive, static-secret-updated, rate-limiting, usage-report, secret-sync]
29
+ attr_accessor :event_types
30
+
31
+ # Event sources
32
+ attr_accessor :gateways_event_source_locations
33
+
34
+ # Items Event sources
35
+ attr_accessor :items_event_source_locations
36
+
37
+ # Set output format to JSON
38
+ attr_accessor :json
39
+
40
+ # Whether to keep previous version [true/false]. If not set, use default according to account settings
41
+ attr_accessor :keep_prev_version
42
+
43
+ # The name of a key that used to encrypt the EventForwarder secret value (if empty, the account default protectionKey key will be used)
44
+ attr_accessor :key
45
+
46
+ # EventForwarder name
47
+ attr_accessor :name
48
+
49
+ # New EventForwarder name
50
+ attr_accessor :new_name
51
+
52
+ # Targets Event sources
53
+ attr_accessor :targets_event_source_locations
54
+
55
+ # Authentication token (see `/auth` and `/configure`)
56
+ attr_accessor :token
57
+
58
+ # The universal identity token, Required only for universal_identity authentication
59
+ attr_accessor :uid_token
60
+
61
+ # Teams Webhook URL
62
+ attr_accessor :url
63
+
64
+ # Attribute mapping from ruby-style variable name to JSON key.
65
+ def self.attribute_map
66
+ {
67
+ :'auth_methods_event_source_locations' => :'auth-methods-event-source-locations',
68
+ :'description' => :'description',
69
+ :'enable' => :'enable',
70
+ :'event_types' => :'event-types',
71
+ :'gateways_event_source_locations' => :'gateways-event-source-locations',
72
+ :'items_event_source_locations' => :'items-event-source-locations',
73
+ :'json' => :'json',
74
+ :'keep_prev_version' => :'keep-prev-version',
75
+ :'key' => :'key',
76
+ :'name' => :'name',
77
+ :'new_name' => :'new-name',
78
+ :'targets_event_source_locations' => :'targets-event-source-locations',
79
+ :'token' => :'token',
80
+ :'uid_token' => :'uid-token',
81
+ :'url' => :'url'
82
+ }
83
+ end
84
+
85
+ # Returns all the JSON keys this model knows about
86
+ def self.acceptable_attributes
87
+ attribute_map.values
88
+ end
89
+
90
+ # Attribute type mapping.
91
+ def self.openapi_types
92
+ {
93
+ :'auth_methods_event_source_locations' => :'Array<String>',
94
+ :'description' => :'String',
95
+ :'enable' => :'String',
96
+ :'event_types' => :'Array<String>',
97
+ :'gateways_event_source_locations' => :'Array<String>',
98
+ :'items_event_source_locations' => :'Array<String>',
99
+ :'json' => :'Boolean',
100
+ :'keep_prev_version' => :'String',
101
+ :'key' => :'String',
102
+ :'name' => :'String',
103
+ :'new_name' => :'String',
104
+ :'targets_event_source_locations' => :'Array<String>',
105
+ :'token' => :'String',
106
+ :'uid_token' => :'String',
107
+ :'url' => :'String'
108
+ }
109
+ end
110
+
111
+ # List of attributes with nullable: true
112
+ def self.openapi_nullable
113
+ Set.new([
114
+ ])
115
+ end
116
+
117
+ # Initializes the object
118
+ # @param [Hash] attributes Model attributes in the form of hash
119
+ def initialize(attributes = {})
120
+ if (!attributes.is_a?(Hash))
121
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Akeyless::EventForwarderUpdateTeams` initialize method"
122
+ end
123
+
124
+ # check to see if the attribute exists and convert string to symbol for hash key
125
+ attributes = attributes.each_with_object({}) { |(k, v), h|
126
+ if (!self.class.attribute_map.key?(k.to_sym))
127
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Akeyless::EventForwarderUpdateTeams`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
128
+ end
129
+ h[k.to_sym] = v
130
+ }
131
+
132
+ if attributes.key?(:'auth_methods_event_source_locations')
133
+ if (value = attributes[:'auth_methods_event_source_locations']).is_a?(Array)
134
+ self.auth_methods_event_source_locations = value
135
+ end
136
+ end
137
+
138
+ if attributes.key?(:'description')
139
+ self.description = attributes[:'description']
140
+ end
141
+
142
+ if attributes.key?(:'enable')
143
+ self.enable = attributes[:'enable']
144
+ else
145
+ self.enable = 'true'
146
+ end
147
+
148
+ if attributes.key?(:'event_types')
149
+ if (value = attributes[:'event_types']).is_a?(Array)
150
+ self.event_types = value
151
+ end
152
+ end
153
+
154
+ if attributes.key?(:'gateways_event_source_locations')
155
+ if (value = attributes[:'gateways_event_source_locations']).is_a?(Array)
156
+ self.gateways_event_source_locations = value
157
+ end
158
+ else
159
+ self.gateways_event_source_locations = nil
160
+ end
161
+
162
+ if attributes.key?(:'items_event_source_locations')
163
+ if (value = attributes[:'items_event_source_locations']).is_a?(Array)
164
+ self.items_event_source_locations = value
165
+ end
166
+ end
167
+
168
+ if attributes.key?(:'json')
169
+ self.json = attributes[:'json']
170
+ else
171
+ self.json = false
172
+ end
173
+
174
+ if attributes.key?(:'keep_prev_version')
175
+ self.keep_prev_version = attributes[:'keep_prev_version']
176
+ end
177
+
178
+ if attributes.key?(:'key')
179
+ self.key = attributes[:'key']
180
+ end
181
+
182
+ if attributes.key?(:'name')
183
+ self.name = attributes[:'name']
184
+ else
185
+ self.name = nil
186
+ end
187
+
188
+ if attributes.key?(:'new_name')
189
+ self.new_name = attributes[:'new_name']
190
+ end
191
+
192
+ if attributes.key?(:'targets_event_source_locations')
193
+ if (value = attributes[:'targets_event_source_locations']).is_a?(Array)
194
+ self.targets_event_source_locations = value
195
+ end
196
+ end
197
+
198
+ if attributes.key?(:'token')
199
+ self.token = attributes[:'token']
200
+ end
201
+
202
+ if attributes.key?(:'uid_token')
203
+ self.uid_token = attributes[:'uid_token']
204
+ end
205
+
206
+ if attributes.key?(:'url')
207
+ self.url = attributes[:'url']
208
+ else
209
+ self.url = nil
210
+ end
211
+ end
212
+
213
+ # Show invalid properties with the reasons. Usually used together with valid?
214
+ # @return Array for valid properties with the reasons
215
+ def list_invalid_properties
216
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
217
+ invalid_properties = Array.new
218
+ if @gateways_event_source_locations.nil?
219
+ invalid_properties.push('invalid value for "gateways_event_source_locations", gateways_event_source_locations cannot be nil.')
220
+ end
221
+
222
+ if @name.nil?
223
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
224
+ end
225
+
226
+ if @url.nil?
227
+ invalid_properties.push('invalid value for "url", url cannot be nil.')
228
+ end
229
+
230
+ invalid_properties
231
+ end
232
+
233
+ # Check to see if the all the properties in the model are valid
234
+ # @return true if the model is valid
235
+ def valid?
236
+ warn '[DEPRECATED] the `valid?` method is obsolete'
237
+ return false if @gateways_event_source_locations.nil?
238
+ return false if @name.nil?
239
+ return false if @url.nil?
240
+ true
241
+ end
242
+
243
+ # Checks equality by comparing each attribute.
244
+ # @param [Object] Object to be compared
245
+ def ==(o)
246
+ return true if self.equal?(o)
247
+ self.class == o.class &&
248
+ auth_methods_event_source_locations == o.auth_methods_event_source_locations &&
249
+ description == o.description &&
250
+ enable == o.enable &&
251
+ event_types == o.event_types &&
252
+ gateways_event_source_locations == o.gateways_event_source_locations &&
253
+ items_event_source_locations == o.items_event_source_locations &&
254
+ json == o.json &&
255
+ keep_prev_version == o.keep_prev_version &&
256
+ key == o.key &&
257
+ name == o.name &&
258
+ new_name == o.new_name &&
259
+ targets_event_source_locations == o.targets_event_source_locations &&
260
+ token == o.token &&
261
+ uid_token == o.uid_token &&
262
+ url == o.url
263
+ end
264
+
265
+ # @see the `==` method
266
+ # @param [Object] Object to be compared
267
+ def eql?(o)
268
+ self == o
269
+ end
270
+
271
+ # Calculates hash code according to all attributes.
272
+ # @return [Integer] Hash code
273
+ def hash
274
+ [auth_methods_event_source_locations, description, enable, event_types, gateways_event_source_locations, items_event_source_locations, json, keep_prev_version, key, name, new_name, targets_event_source_locations, token, uid_token, url].hash
275
+ end
276
+
277
+ # Builds the object from hash
278
+ # @param [Hash] attributes Model attributes in the form of hash
279
+ # @return [Object] Returns the model itself
280
+ def self.build_from_hash(attributes)
281
+ return nil unless attributes.is_a?(Hash)
282
+ attributes = attributes.transform_keys(&:to_sym)
283
+ transformed_hash = {}
284
+ openapi_types.each_pair do |key, type|
285
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
286
+ transformed_hash["#{key}"] = nil
287
+ elsif type =~ /\AArray<(.*)>/i
288
+ # check to ensure the input is an array given that the attribute
289
+ # is documented as an array but the input is not
290
+ if attributes[attribute_map[key]].is_a?(Array)
291
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
292
+ end
293
+ elsif !attributes[attribute_map[key]].nil?
294
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
295
+ end
296
+ end
297
+ new(transformed_hash)
298
+ end
299
+
300
+ # Deserializes the data based on type
301
+ # @param string type Data type
302
+ # @param string value Value to be deserialized
303
+ # @return [Object] Deserialized data
304
+ def self._deserialize(type, value)
305
+ case type.to_sym
306
+ when :Time
307
+ Time.parse(value)
308
+ when :Date
309
+ Date.parse(value)
310
+ when :String
311
+ value.to_s
312
+ when :Integer
313
+ value.to_i
314
+ when :Float
315
+ value.to_f
316
+ when :Boolean
317
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
318
+ true
319
+ else
320
+ false
321
+ end
322
+ when :Object
323
+ # generic object (usually a Hash), return directly
324
+ value
325
+ when /\AArray<(?<inner_type>.+)>\z/
326
+ inner_type = Regexp.last_match[:inner_type]
327
+ value.map { |v| _deserialize(inner_type, v) }
328
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
329
+ k_type = Regexp.last_match[:k_type]
330
+ v_type = Regexp.last_match[:v_type]
331
+ {}.tap do |hash|
332
+ value.each do |k, v|
333
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
334
+ end
335
+ end
336
+ else # model
337
+ # models (e.g. Pet) or oneOf
338
+ klass = Akeyless.const_get(type)
339
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
340
+ end
341
+ end
342
+
343
+ # Returns the string representation of the object
344
+ # @return [String] String presentation of the object
345
+ def to_s
346
+ to_hash.to_s
347
+ end
348
+
349
+ # to_body is an alias to to_hash (backward compatibility)
350
+ # @return [Hash] Returns the object in the form of hash
351
+ def to_body
352
+ to_hash
353
+ end
354
+
355
+ # Returns the object in the form of hash
356
+ # @return [Hash] Returns the object in the form of hash
357
+ def to_hash
358
+ hash = {}
359
+ self.class.attribute_map.each_pair do |attr, param|
360
+ value = self.send(attr)
361
+ if value.nil?
362
+ is_nullable = self.class.openapi_nullable.include?(attr)
363
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
364
+ end
365
+
366
+ hash[param] = _to_hash(value)
367
+ end
368
+ hash
369
+ end
370
+
371
+ # Outputs non-array value in the form of hash
372
+ # For object, use to_hash. Otherwise, just return the value
373
+ # @param [Object] value Any valid value
374
+ # @return [Hash] Returns the value in the form of hash
375
+ def _to_hash(value)
376
+ if value.is_a?(Array)
377
+ value.compact.map { |v| _to_hash(v) }
378
+ elsif value.is_a?(Hash)
379
+ {}.tap do |hash|
380
+ value.each { |k, v| hash[k] = _to_hash(v) }
381
+ end
382
+ elsif value.respond_to? :to_hash
383
+ value.to_hash
384
+ else
385
+ value
386
+ end
387
+ end
388
+
389
+ end
390
+
391
+ end
@@ -33,7 +33,7 @@ module Akeyless
33
33
  # Allowed access name
34
34
  attr_accessor :name
35
35
 
36
- # Permissions Comma-seperated list of permissions for this allowed access. Available permissions: [defaults,targets,classic_keys,automatic_migration,ldap_auth,dynamic_secret,k8s_auth,log_forwarding,zero_knowledge_encryption,rotated_secret,caching,event_forwarding,admin,kmip,general]
36
+ # Permissions Comma-seperated list of permissions for this allowed access. Available permissions: [defaults,targets,classic_keys,automatic_migration,ldap_auth,dynamic_secret,k8s_auth,log_forwarding,zero_knowledge_encryption,rotated_secret,caching,event_forwarding,admin,kmip,general,rotate_secret_value]
37
37
  attr_accessor :permissions
38
38
 
39
39
  # Sub claims key/val of sub claims, e.g group=admins,developers
@@ -36,7 +36,7 @@ module Akeyless
36
36
  # New allowed access name
37
37
  attr_accessor :new_name
38
38
 
39
- # Permissions Comma-seperated list of permissions for this allowed access. Available permissions: [defaults,targets,classic_keys,automatic_migration,ldap_auth,dynamic_secret,k8s_auth,log_forwarding,zero_knowledge_encryption,rotated_secret,caching,event_forwarding,admin,kmip,general]
39
+ # Permissions Comma-seperated list of permissions for this allowed access. Available permissions: [defaults,targets,classic_keys,automatic_migration,ldap_auth,dynamic_secret,k8s_auth,log_forwarding,zero_knowledge_encryption,rotated_secret,caching,event_forwarding,admin,kmip,general,rotate_secret_value]
40
40
  attr_accessor :permissions
41
41
 
42
42
  # Sub claims key/val of sub claims, e.g group=admins,developers
@@ -18,7 +18,7 @@ module Akeyless
18
18
  class GeminiTargetDetails
19
19
  attr_accessor :api_key
20
20
 
21
- attr_accessor :base_url
21
+ attr_accessor :gemini_url
22
22
 
23
23
  attr_accessor :model
24
24
 
@@ -26,7 +26,7 @@ module Akeyless
26
26
  def self.attribute_map
27
27
  {
28
28
  :'api_key' => :'api_key',
29
- :'base_url' => :'base_url',
29
+ :'gemini_url' => :'gemini_url',
30
30
  :'model' => :'model'
31
31
  }
32
32
  end
@@ -40,7 +40,7 @@ module Akeyless
40
40
  def self.openapi_types
41
41
  {
42
42
  :'api_key' => :'String',
43
- :'base_url' => :'String',
43
+ :'gemini_url' => :'String',
44
44
  :'model' => :'String'
45
45
  }
46
46
  end
@@ -70,8 +70,8 @@ module Akeyless
70
70
  self.api_key = attributes[:'api_key']
71
71
  end
72
72
 
73
- if attributes.key?(:'base_url')
74
- self.base_url = attributes[:'base_url']
73
+ if attributes.key?(:'gemini_url')
74
+ self.gemini_url = attributes[:'gemini_url']
75
75
  end
76
76
 
77
77
  if attributes.key?(:'model')
@@ -100,7 +100,7 @@ module Akeyless
100
100
  return true if self.equal?(o)
101
101
  self.class == o.class &&
102
102
  api_key == o.api_key &&
103
- base_url == o.base_url &&
103
+ gemini_url == o.gemini_url &&
104
104
  model == o.model
105
105
  end
106
106
 
@@ -113,7 +113,7 @@ module Akeyless
113
113
  # Calculates hash code according to all attributes.
114
114
  # @return [Integer] Hash code
115
115
  def hash
116
- [api_key, base_url, model].hash
116
+ [api_key, gemini_url, model].hash
117
117
  end
118
118
 
119
119
  # Builds the object from hash
@@ -0,0 +1,238 @@
1
+ =begin
2
+ #Akeyless API
3
+
4
+ #The purpose of this application is to provide access to Akeyless API.
5
+
6
+ The version of the OpenAPI document: 3.0
7
+ Contact: support@akeyless.io
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.10.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Akeyless
17
+ # GetCertChallenge is a command that gets a challenge for certificate authentication
18
+ class GetCertChallenge
19
+ # Access ID
20
+ attr_accessor :access_id
21
+
22
+ # Certificate data encoded in base64. Used if file was not provided.
23
+ attr_accessor :cert_data
24
+
25
+ # Set output format to JSON
26
+ attr_accessor :json
27
+
28
+ # Attribute mapping from ruby-style variable name to JSON key.
29
+ def self.attribute_map
30
+ {
31
+ :'access_id' => :'access-id',
32
+ :'cert_data' => :'cert-data',
33
+ :'json' => :'json'
34
+ }
35
+ end
36
+
37
+ # Returns all the JSON keys this model knows about
38
+ def self.acceptable_attributes
39
+ attribute_map.values
40
+ end
41
+
42
+ # Attribute type mapping.
43
+ def self.openapi_types
44
+ {
45
+ :'access_id' => :'String',
46
+ :'cert_data' => :'String',
47
+ :'json' => :'Boolean'
48
+ }
49
+ end
50
+
51
+ # List of attributes with nullable: true
52
+ def self.openapi_nullable
53
+ Set.new([
54
+ ])
55
+ end
56
+
57
+ # Initializes the object
58
+ # @param [Hash] attributes Model attributes in the form of hash
59
+ def initialize(attributes = {})
60
+ if (!attributes.is_a?(Hash))
61
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Akeyless::GetCertChallenge` initialize method"
62
+ end
63
+
64
+ # check to see if the attribute exists and convert string to symbol for hash key
65
+ attributes = attributes.each_with_object({}) { |(k, v), h|
66
+ if (!self.class.attribute_map.key?(k.to_sym))
67
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Akeyless::GetCertChallenge`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
68
+ end
69
+ h[k.to_sym] = v
70
+ }
71
+
72
+ if attributes.key?(:'access_id')
73
+ self.access_id = attributes[:'access_id']
74
+ end
75
+
76
+ if attributes.key?(:'cert_data')
77
+ self.cert_data = attributes[:'cert_data']
78
+ end
79
+
80
+ if attributes.key?(:'json')
81
+ self.json = attributes[:'json']
82
+ else
83
+ self.json = false
84
+ end
85
+ end
86
+
87
+ # Show invalid properties with the reasons. Usually used together with valid?
88
+ # @return Array for valid properties with the reasons
89
+ def list_invalid_properties
90
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
91
+ invalid_properties = Array.new
92
+ invalid_properties
93
+ end
94
+
95
+ # Check to see if the all the properties in the model are valid
96
+ # @return true if the model is valid
97
+ def valid?
98
+ warn '[DEPRECATED] the `valid?` method is obsolete'
99
+ true
100
+ end
101
+
102
+ # Checks equality by comparing each attribute.
103
+ # @param [Object] Object to be compared
104
+ def ==(o)
105
+ return true if self.equal?(o)
106
+ self.class == o.class &&
107
+ access_id == o.access_id &&
108
+ cert_data == o.cert_data &&
109
+ json == o.json
110
+ end
111
+
112
+ # @see the `==` method
113
+ # @param [Object] Object to be compared
114
+ def eql?(o)
115
+ self == o
116
+ end
117
+
118
+ # Calculates hash code according to all attributes.
119
+ # @return [Integer] Hash code
120
+ def hash
121
+ [access_id, cert_data, json].hash
122
+ end
123
+
124
+ # Builds the object from hash
125
+ # @param [Hash] attributes Model attributes in the form of hash
126
+ # @return [Object] Returns the model itself
127
+ def self.build_from_hash(attributes)
128
+ return nil unless attributes.is_a?(Hash)
129
+ attributes = attributes.transform_keys(&:to_sym)
130
+ transformed_hash = {}
131
+ openapi_types.each_pair do |key, type|
132
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
133
+ transformed_hash["#{key}"] = nil
134
+ elsif type =~ /\AArray<(.*)>/i
135
+ # check to ensure the input is an array given that the attribute
136
+ # is documented as an array but the input is not
137
+ if attributes[attribute_map[key]].is_a?(Array)
138
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
139
+ end
140
+ elsif !attributes[attribute_map[key]].nil?
141
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
142
+ end
143
+ end
144
+ new(transformed_hash)
145
+ end
146
+
147
+ # Deserializes the data based on type
148
+ # @param string type Data type
149
+ # @param string value Value to be deserialized
150
+ # @return [Object] Deserialized data
151
+ def self._deserialize(type, value)
152
+ case type.to_sym
153
+ when :Time
154
+ Time.parse(value)
155
+ when :Date
156
+ Date.parse(value)
157
+ when :String
158
+ value.to_s
159
+ when :Integer
160
+ value.to_i
161
+ when :Float
162
+ value.to_f
163
+ when :Boolean
164
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
165
+ true
166
+ else
167
+ false
168
+ end
169
+ when :Object
170
+ # generic object (usually a Hash), return directly
171
+ value
172
+ when /\AArray<(?<inner_type>.+)>\z/
173
+ inner_type = Regexp.last_match[:inner_type]
174
+ value.map { |v| _deserialize(inner_type, v) }
175
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
176
+ k_type = Regexp.last_match[:k_type]
177
+ v_type = Regexp.last_match[:v_type]
178
+ {}.tap do |hash|
179
+ value.each do |k, v|
180
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
181
+ end
182
+ end
183
+ else # model
184
+ # models (e.g. Pet) or oneOf
185
+ klass = Akeyless.const_get(type)
186
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.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 = {}
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
+
236
+ end
237
+
238
+ end