akeyless 5.0.19 → 5.0.21

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 (130) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +28 -1
  3. data/docs/CertificateStore.md +2 -0
  4. data/docs/CreateUSC.md +2 -0
  5. data/docs/GCPPayload.md +5 -1
  6. data/docs/GatewayCreateMigration.md +5 -1
  7. data/docs/GatewayUpdateMigration.md +5 -1
  8. data/docs/GatewayUpdateTlsCert.md +2 -0
  9. data/docs/GeneralConfigPart.md +6 -0
  10. data/docs/GetKubeExecCreds.md +1 -1
  11. data/docs/GetPKICertificate.md +1 -1
  12. data/docs/LetsEncryptTargetDetails.md +38 -0
  13. data/docs/PoliciesCreateOutput.md +18 -0
  14. data/docs/PoliciesDelete.md +24 -0
  15. data/docs/PoliciesGet.md +24 -0
  16. data/docs/PoliciesGetOutput.md +18 -0
  17. data/docs/PoliciesList.md +30 -0
  18. data/docs/PoliciesListOutput.md +18 -0
  19. data/docs/PolicyCreateKeys.md +34 -0
  20. data/docs/PolicyOutput.md +34 -0
  21. data/docs/PolicyUpdateKeys.md +36 -0
  22. data/docs/RotatedSecretCreateAws.md +4 -2
  23. data/docs/RotatedSecretCreateAzure.md +4 -2
  24. data/docs/RotatedSecretCreateCassandra.md +1 -1
  25. data/docs/RotatedSecretCreateCustom.md +1 -1
  26. data/docs/RotatedSecretCreateDockerhub.md +1 -1
  27. data/docs/RotatedSecretCreateGcp.md +4 -2
  28. data/docs/RotatedSecretCreateHanadb.md +1 -1
  29. data/docs/RotatedSecretCreateLdap.md +1 -1
  30. data/docs/RotatedSecretCreateMongodb.md +1 -1
  31. data/docs/RotatedSecretCreateMssql.md +1 -1
  32. data/docs/RotatedSecretCreateMysql.md +1 -1
  33. data/docs/RotatedSecretCreateOpenAI.md +1 -1
  34. data/docs/RotatedSecretCreateOracledb.md +1 -1
  35. data/docs/RotatedSecretCreatePostgresql.md +1 -1
  36. data/docs/RotatedSecretCreateRedis.md +1 -1
  37. data/docs/RotatedSecretCreateRedshift.md +1 -1
  38. data/docs/RotatedSecretCreateSnowflake.md +1 -1
  39. data/docs/RotatedSecretCreateSplunk.md +68 -0
  40. data/docs/RotatedSecretCreateSsh.md +1 -1
  41. data/docs/RotatedSecretCreateWindows.md +1 -1
  42. data/docs/RotatedSecretDetailsInfo.md +2 -0
  43. data/docs/RotatedSecretUpdateAws.md +3 -1
  44. data/docs/RotatedSecretUpdateAzure.md +3 -1
  45. data/docs/RotatedSecretUpdateGcp.md +3 -1
  46. data/docs/RotatedSecretUpdateSplunk.md +64 -0
  47. data/docs/SecretInfo.md +2 -0
  48. data/docs/SplunkPayload.md +30 -0
  49. data/docs/SplunkTargetDetails.md +34 -0
  50. data/docs/TargetCreateLetsEncrypt.md +46 -0
  51. data/docs/TargetCreateSplunk.md +42 -0
  52. data/docs/TargetTypeDetailsInput.md +4 -0
  53. data/docs/TargetUpdateLetsEncrypt.md +50 -0
  54. data/docs/UpdateItem.md +2 -0
  55. data/docs/UscCreate.md +2 -0
  56. data/docs/V2Api.md +659 -29
  57. data/lib/akeyless/api/v2_api.rb +640 -0
  58. data/lib/akeyless/models/certificate_store.rb +12 -1
  59. data/lib/akeyless/models/create_usc.rb +11 -1
  60. data/lib/akeyless/models/gateway_create_migration.rb +24 -4
  61. data/lib/akeyless/models/gateway_update_migration.rb +24 -4
  62. data/lib/akeyless/models/gateway_update_tls_cert.rb +13 -1
  63. data/lib/akeyless/models/gcp_payload.rb +22 -4
  64. data/lib/akeyless/models/general_config_part.rb +30 -1
  65. data/lib/akeyless/models/get_kube_exec_creds.rb +1 -1
  66. data/lib/akeyless/models/get_pki_certificate.rb +1 -1
  67. data/lib/akeyless/models/lets_encrypt_target_details.rb +315 -0
  68. data/lib/akeyless/models/policies_create_output.rb +214 -0
  69. data/lib/akeyless/models/policies_delete.rb +254 -0
  70. data/lib/akeyless/models/policies_get.rb +254 -0
  71. data/lib/akeyless/models/policies_get_output.rb +214 -0
  72. data/lib/akeyless/models/policies_list.rb +283 -0
  73. data/lib/akeyless/models/policies_list_output.rb +216 -0
  74. data/lib/akeyless/models/policy_create_keys.rb +312 -0
  75. data/lib/akeyless/models/policy_output.rb +295 -0
  76. data/lib/akeyless/models/policy_update_keys.rb +322 -0
  77. data/lib/akeyless/models/rotated_secret_create_aws.rb +13 -3
  78. data/lib/akeyless/models/rotated_secret_create_azure.rb +13 -3
  79. data/lib/akeyless/models/rotated_secret_create_cassandra.rb +1 -1
  80. data/lib/akeyless/models/rotated_secret_create_custom.rb +1 -1
  81. data/lib/akeyless/models/rotated_secret_create_dockerhub.rb +1 -1
  82. data/lib/akeyless/models/rotated_secret_create_gcp.rb +13 -3
  83. data/lib/akeyless/models/rotated_secret_create_hanadb.rb +1 -1
  84. data/lib/akeyless/models/rotated_secret_create_ldap.rb +1 -1
  85. data/lib/akeyless/models/rotated_secret_create_mongodb.rb +1 -1
  86. data/lib/akeyless/models/rotated_secret_create_mssql.rb +1 -1
  87. data/lib/akeyless/models/rotated_secret_create_mysql.rb +1 -1
  88. data/lib/akeyless/models/rotated_secret_create_open_ai.rb +1 -1
  89. data/lib/akeyless/models/rotated_secret_create_oracledb.rb +1 -1
  90. data/lib/akeyless/models/rotated_secret_create_postgresql.rb +1 -1
  91. data/lib/akeyless/models/rotated_secret_create_redis.rb +1 -1
  92. data/lib/akeyless/models/rotated_secret_create_redshift.rb +1 -1
  93. data/lib/akeyless/models/rotated_secret_create_snowflake.rb +1 -1
  94. data/lib/akeyless/models/rotated_secret_create_splunk.rb +497 -0
  95. data/lib/akeyless/models/rotated_secret_create_ssh.rb +1 -1
  96. data/lib/akeyless/models/rotated_secret_create_windows.rb +1 -1
  97. data/lib/akeyless/models/rotated_secret_details_info.rb +10 -1
  98. data/lib/akeyless/models/rotated_secret_update_aws.rb +12 -2
  99. data/lib/akeyless/models/rotated_secret_update_azure.rb +12 -2
  100. data/lib/akeyless/models/rotated_secret_update_gcp.rb +12 -2
  101. data/lib/akeyless/models/rotated_secret_update_splunk.rb +467 -0
  102. data/lib/akeyless/models/secret_info.rb +10 -1
  103. data/lib/akeyless/models/splunk_payload.rb +268 -0
  104. data/lib/akeyless/models/splunk_target_details.rb +294 -0
  105. data/lib/akeyless/models/target_create_lets_encrypt.rb +368 -0
  106. data/lib/akeyless/models/target_create_splunk.rb +354 -0
  107. data/lib/akeyless/models/target_type_details_input.rb +19 -1
  108. data/lib/akeyless/models/target_update_lets_encrypt.rb +388 -0
  109. data/lib/akeyless/models/update_item.rb +11 -1
  110. data/lib/akeyless/models/usc_create.rb +11 -1
  111. data/lib/akeyless/version.rb +1 -1
  112. data/lib/akeyless.rb +17 -0
  113. data/spec/models/lets_encrypt_target_details_spec.rb +96 -0
  114. data/spec/models/policies_create_output_spec.rb +36 -0
  115. data/spec/models/policies_delete_spec.rb +54 -0
  116. data/spec/models/policies_get_output_spec.rb +36 -0
  117. data/spec/models/policies_get_spec.rb +54 -0
  118. data/spec/models/policies_list_output_spec.rb +36 -0
  119. data/spec/models/policies_list_spec.rb +72 -0
  120. data/spec/models/policy_create_keys_spec.rb +84 -0
  121. data/spec/models/policy_output_spec.rb +84 -0
  122. data/spec/models/policy_update_keys_spec.rb +90 -0
  123. data/spec/models/rotated_secret_create_splunk_spec.rb +186 -0
  124. data/spec/models/rotated_secret_update_splunk_spec.rb +174 -0
  125. data/spec/models/splunk_payload_spec.rb +72 -0
  126. data/spec/models/splunk_target_details_spec.rb +84 -0
  127. data/spec/models/target_create_lets_encrypt_spec.rb +120 -0
  128. data/spec/models/target_create_splunk_spec.rb +108 -0
  129. data/spec/models/target_update_lets_encrypt_spec.rb +132 -0
  130. metadata +69 -1
@@ -0,0 +1,322 @@
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
+ class PolicyUpdateKeys
18
+ # Specify allowed key algorithms (e.g., [RSA2048,AES128GCM])
19
+ attr_accessor :allowed_algorithms
20
+
21
+ # Specify allowed protection key names. To enforce using the account's default protection key, use 'default-account-key'
22
+ attr_accessor :allowed_key_names
23
+
24
+ # Specify allowed key protection types (dfc, classic-key)
25
+ attr_accessor :allowed_key_types
26
+
27
+ # Policy id
28
+ attr_accessor :id
29
+
30
+ # Set output format to JSON
31
+ attr_accessor :json
32
+
33
+ # Set the maximum rotation interval for automatic key rotation.
34
+ attr_accessor :max_rotation_interval_days
35
+
36
+ # The object type this policy will apply to (items, targets)
37
+ attr_accessor :object_types
38
+
39
+ # The path the policy refers to
40
+ attr_accessor :path
41
+
42
+ # Authentication token (see `/auth` and `/configure`)
43
+ attr_accessor :token
44
+
45
+ # The universal identity token, Required only for universal_identity authentication
46
+ attr_accessor :uid_token
47
+
48
+ # Attribute mapping from ruby-style variable name to JSON key.
49
+ def self.attribute_map
50
+ {
51
+ :'allowed_algorithms' => :'allowed-algorithms',
52
+ :'allowed_key_names' => :'allowed-key-names',
53
+ :'allowed_key_types' => :'allowed-key-types',
54
+ :'id' => :'id',
55
+ :'json' => :'json',
56
+ :'max_rotation_interval_days' => :'max-rotation-interval-days',
57
+ :'object_types' => :'object-types',
58
+ :'path' => :'path',
59
+ :'token' => :'token',
60
+ :'uid_token' => :'uid-token'
61
+ }
62
+ end
63
+
64
+ # Returns all the JSON keys this model knows about
65
+ def self.acceptable_attributes
66
+ attribute_map.values
67
+ end
68
+
69
+ # Attribute type mapping.
70
+ def self.openapi_types
71
+ {
72
+ :'allowed_algorithms' => :'Array<String>',
73
+ :'allowed_key_names' => :'Array<String>',
74
+ :'allowed_key_types' => :'Array<String>',
75
+ :'id' => :'String',
76
+ :'json' => :'Boolean',
77
+ :'max_rotation_interval_days' => :'Integer',
78
+ :'object_types' => :'Array<String>',
79
+ :'path' => :'String',
80
+ :'token' => :'String',
81
+ :'uid_token' => :'String'
82
+ }
83
+ end
84
+
85
+ # List of attributes with nullable: true
86
+ def self.openapi_nullable
87
+ Set.new([
88
+ ])
89
+ end
90
+
91
+ # Initializes the object
92
+ # @param [Hash] attributes Model attributes in the form of hash
93
+ def initialize(attributes = {})
94
+ if (!attributes.is_a?(Hash))
95
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Akeyless::PolicyUpdateKeys` initialize method"
96
+ end
97
+
98
+ # check to see if the attribute exists and convert string to symbol for hash key
99
+ attributes = attributes.each_with_object({}) { |(k, v), h|
100
+ if (!self.class.attribute_map.key?(k.to_sym))
101
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Akeyless::PolicyUpdateKeys`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
102
+ end
103
+ h[k.to_sym] = v
104
+ }
105
+
106
+ if attributes.key?(:'allowed_algorithms')
107
+ if (value = attributes[:'allowed_algorithms']).is_a?(Array)
108
+ self.allowed_algorithms = value
109
+ end
110
+ end
111
+
112
+ if attributes.key?(:'allowed_key_names')
113
+ if (value = attributes[:'allowed_key_names']).is_a?(Array)
114
+ self.allowed_key_names = value
115
+ end
116
+ end
117
+
118
+ if attributes.key?(:'allowed_key_types')
119
+ if (value = attributes[:'allowed_key_types']).is_a?(Array)
120
+ self.allowed_key_types = value
121
+ end
122
+ end
123
+
124
+ if attributes.key?(:'id')
125
+ self.id = attributes[:'id']
126
+ else
127
+ self.id = nil
128
+ end
129
+
130
+ if attributes.key?(:'json')
131
+ self.json = attributes[:'json']
132
+ else
133
+ self.json = false
134
+ end
135
+
136
+ if attributes.key?(:'max_rotation_interval_days')
137
+ self.max_rotation_interval_days = attributes[:'max_rotation_interval_days']
138
+ end
139
+
140
+ if attributes.key?(:'object_types')
141
+ if (value = attributes[:'object_types']).is_a?(Array)
142
+ self.object_types = value
143
+ end
144
+ end
145
+
146
+ if attributes.key?(:'path')
147
+ self.path = attributes[:'path']
148
+ end
149
+
150
+ if attributes.key?(:'token')
151
+ self.token = attributes[:'token']
152
+ end
153
+
154
+ if attributes.key?(:'uid_token')
155
+ self.uid_token = attributes[:'uid_token']
156
+ end
157
+ end
158
+
159
+ # Show invalid properties with the reasons. Usually used together with valid?
160
+ # @return Array for valid properties with the reasons
161
+ def list_invalid_properties
162
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
163
+ invalid_properties = Array.new
164
+ if @id.nil?
165
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
166
+ end
167
+
168
+ invalid_properties
169
+ end
170
+
171
+ # Check to see if the all the properties in the model are valid
172
+ # @return true if the model is valid
173
+ def valid?
174
+ warn '[DEPRECATED] the `valid?` method is obsolete'
175
+ return false if @id.nil?
176
+ true
177
+ end
178
+
179
+ # Checks equality by comparing each attribute.
180
+ # @param [Object] Object to be compared
181
+ def ==(o)
182
+ return true if self.equal?(o)
183
+ self.class == o.class &&
184
+ allowed_algorithms == o.allowed_algorithms &&
185
+ allowed_key_names == o.allowed_key_names &&
186
+ allowed_key_types == o.allowed_key_types &&
187
+ id == o.id &&
188
+ json == o.json &&
189
+ max_rotation_interval_days == o.max_rotation_interval_days &&
190
+ object_types == o.object_types &&
191
+ path == o.path &&
192
+ token == o.token &&
193
+ uid_token == o.uid_token
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
+ [allowed_algorithms, allowed_key_names, allowed_key_types, id, json, max_rotation_interval_days, object_types, path, token, uid_token].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
+ return nil unless attributes.is_a?(Hash)
213
+ attributes = attributes.transform_keys(&:to_sym)
214
+ transformed_hash = {}
215
+ openapi_types.each_pair do |key, type|
216
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
217
+ transformed_hash["#{key}"] = nil
218
+ elsif type =~ /\AArray<(.*)>/i
219
+ # check to ensure the input is an array given that the attribute
220
+ # is documented as an array but the input is not
221
+ if attributes[attribute_map[key]].is_a?(Array)
222
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
223
+ end
224
+ elsif !attributes[attribute_map[key]].nil?
225
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
226
+ end
227
+ end
228
+ new(transformed_hash)
229
+ end
230
+
231
+ # Deserializes the data based on type
232
+ # @param string type Data type
233
+ # @param string value Value to be deserialized
234
+ # @return [Object] Deserialized data
235
+ def self._deserialize(type, value)
236
+ case type.to_sym
237
+ when :Time
238
+ Time.parse(value)
239
+ when :Date
240
+ Date.parse(value)
241
+ when :String
242
+ value.to_s
243
+ when :Integer
244
+ value.to_i
245
+ when :Float
246
+ value.to_f
247
+ when :Boolean
248
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
249
+ true
250
+ else
251
+ false
252
+ end
253
+ when :Object
254
+ # generic object (usually a Hash), return directly
255
+ value
256
+ when /\AArray<(?<inner_type>.+)>\z/
257
+ inner_type = Regexp.last_match[:inner_type]
258
+ value.map { |v| _deserialize(inner_type, v) }
259
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
260
+ k_type = Regexp.last_match[:k_type]
261
+ v_type = Regexp.last_match[:v_type]
262
+ {}.tap do |hash|
263
+ value.each do |k, v|
264
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
265
+ end
266
+ end
267
+ else # model
268
+ # models (e.g. Pet) or oneOf
269
+ klass = Akeyless.const_get(type)
270
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
271
+ end
272
+ end
273
+
274
+ # Returns the string representation of the object
275
+ # @return [String] String presentation of the object
276
+ def to_s
277
+ to_hash.to_s
278
+ end
279
+
280
+ # to_body is an alias to to_hash (backward compatibility)
281
+ # @return [Hash] Returns the object in the form of hash
282
+ def to_body
283
+ to_hash
284
+ end
285
+
286
+ # Returns the object in the form of hash
287
+ # @return [Hash] Returns the object in the form of hash
288
+ def to_hash
289
+ hash = {}
290
+ self.class.attribute_map.each_pair do |attr, param|
291
+ value = self.send(attr)
292
+ if value.nil?
293
+ is_nullable = self.class.openapi_nullable.include?(attr)
294
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
295
+ end
296
+
297
+ hash[param] = _to_hash(value)
298
+ end
299
+ hash
300
+ end
301
+
302
+ # Outputs non-array value in the form of hash
303
+ # For object, use to_hash. Otherwise, just return the value
304
+ # @param [Object] value Any valid value
305
+ # @return [Hash] Returns the value in the form of hash
306
+ def _to_hash(value)
307
+ if value.is_a?(Array)
308
+ value.compact.map { |v| _to_hash(v) }
309
+ elsif value.is_a?(Hash)
310
+ {}.tap do |hash|
311
+ value.each { |k, v| hash[k] = _to_hash(v) }
312
+ end
313
+ elsif value.respond_to? :to_hash
314
+ value.to_hash
315
+ else
316
+ value
317
+ end
318
+ end
319
+
320
+ end
321
+
322
+ end
@@ -36,7 +36,7 @@ module Akeyless
36
36
  # Description of the object
37
37
  attr_accessor :description
38
38
 
39
- # Create a new access key without deleting the old key from AWS/Azure/GCP for backup (relevant only for AWS/Azure/GCP) [true/false]
39
+ # Enable graceful rotation (keep both versions temporarily). When enabled, a new secret version is created while the previous version is kept for the grace period, so both versions exist for a limited time. [true/false]
40
40
  attr_accessor :grace_rotation
41
41
 
42
42
  # The Hour of the grace rotation in UTC
@@ -45,6 +45,9 @@ module Akeyless
45
45
  # The number of days to wait before deleting the old key (must be bigger than rotation-interval)
46
46
  attr_accessor :grace_rotation_interval
47
47
 
48
+ # When to create the new version relative to the rotation date [after/before]
49
+ attr_accessor :grace_rotation_timing
50
+
48
51
  # Additional custom fields to associate with the item
49
52
  attr_accessor :item_custom_fields
50
53
 
@@ -96,7 +99,7 @@ module Akeyless
96
99
  # Add tags attached to this object
97
100
  attr_accessor :tags
98
101
 
99
- # Target name
102
+ # The target name to associate
100
103
  attr_accessor :target_name
101
104
 
102
105
  # Authentication token (see `/auth` and `/configure`)
@@ -118,6 +121,7 @@ module Akeyless
118
121
  :'grace_rotation' => :'grace-rotation',
119
122
  :'grace_rotation_hour' => :'grace-rotation-hour',
120
123
  :'grace_rotation_interval' => :'grace-rotation-interval',
124
+ :'grace_rotation_timing' => :'grace-rotation-timing',
121
125
  :'item_custom_fields' => :'item-custom-fields',
122
126
  :'json' => :'json',
123
127
  :'key' => :'key',
@@ -159,6 +163,7 @@ module Akeyless
159
163
  :'grace_rotation' => :'String',
160
164
  :'grace_rotation_hour' => :'Integer',
161
165
  :'grace_rotation_interval' => :'String',
166
+ :'grace_rotation_timing' => :'String',
162
167
  :'item_custom_fields' => :'Hash<String, String>',
163
168
  :'json' => :'Boolean',
164
169
  :'key' => :'String',
@@ -247,6 +252,10 @@ module Akeyless
247
252
  self.grace_rotation_interval = attributes[:'grace_rotation_interval']
248
253
  end
249
254
 
255
+ if attributes.key?(:'grace_rotation_timing')
256
+ self.grace_rotation_timing = attributes[:'grace_rotation_timing']
257
+ end
258
+
250
259
  if attributes.key?(:'item_custom_fields')
251
260
  if (value = attributes[:'item_custom_fields']).is_a?(Hash)
252
261
  self.item_custom_fields = value
@@ -389,6 +398,7 @@ module Akeyless
389
398
  grace_rotation == o.grace_rotation &&
390
399
  grace_rotation_hour == o.grace_rotation_hour &&
391
400
  grace_rotation_interval == o.grace_rotation_interval &&
401
+ grace_rotation_timing == o.grace_rotation_timing &&
392
402
  item_custom_fields == o.item_custom_fields &&
393
403
  json == o.json &&
394
404
  key == o.key &&
@@ -420,7 +430,7 @@ module Akeyless
420
430
  # Calculates hash code according to all attributes.
421
431
  # @return [Integer] Hash code
422
432
  def hash
423
- [api_id, api_key, authentication_credentials, auto_rotate, aws_region, delete_protection, description, grace_rotation, grace_rotation_hour, grace_rotation_interval, item_custom_fields, json, key, max_versions, name, password_length, rotate_after_disconnect, rotation_event_in, rotation_hour, rotation_interval, rotator_type, secure_access_aws_account_id, secure_access_aws_native_cli, secure_access_bastion_issuer, secure_access_certificate_issuer, secure_access_enable, tags, target_name, token, uid_token].hash
433
+ [api_id, api_key, authentication_credentials, auto_rotate, aws_region, delete_protection, description, grace_rotation, grace_rotation_hour, grace_rotation_interval, grace_rotation_timing, item_custom_fields, json, key, max_versions, name, password_length, rotate_after_disconnect, rotation_event_in, rotation_hour, rotation_interval, rotator_type, secure_access_aws_account_id, secure_access_aws_native_cli, secure_access_bastion_issuer, secure_access_certificate_issuer, secure_access_enable, tags, target_name, token, uid_token].hash
424
434
  end
425
435
 
426
436
  # Builds the object from hash
@@ -39,7 +39,7 @@ module Akeyless
39
39
  # If set, explicitly provide the storage account details [true/false]
40
40
  attr_accessor :explicitly_set_sa
41
41
 
42
- # Create a new access key without deleting the old key from AWS/Azure/GCP for backup (relevant only for AWS/Azure/GCP) [true/false]
42
+ # Enable graceful rotation (keep both versions temporarily). When enabled, a new secret version is created while the previous version is kept for the grace period, so both versions exist for a limited time. [true/false]
43
43
  attr_accessor :grace_rotation
44
44
 
45
45
  # The Hour of the grace rotation in UTC
@@ -48,6 +48,9 @@ module Akeyless
48
48
  # The number of days to wait before deleting the old key (must be bigger than rotation-interval)
49
49
  attr_accessor :grace_rotation_interval
50
50
 
51
+ # When to create the new version relative to the rotation date [after/before]
52
+ attr_accessor :grace_rotation_timing
53
+
51
54
  # Additional custom fields to associate with the item
52
55
  attr_accessor :item_custom_fields
53
56
 
@@ -111,7 +114,7 @@ module Akeyless
111
114
  # Add tags attached to this object
112
115
  attr_accessor :tags
113
116
 
114
- # Target name
117
+ # The target name to associate
115
118
  attr_accessor :target_name
116
119
 
117
120
  # Authentication token (see `/auth` and `/configure`)
@@ -137,6 +140,7 @@ module Akeyless
137
140
  :'grace_rotation' => :'grace-rotation',
138
141
  :'grace_rotation_hour' => :'grace-rotation-hour',
139
142
  :'grace_rotation_interval' => :'grace-rotation-interval',
143
+ :'grace_rotation_timing' => :'grace-rotation-timing',
140
144
  :'item_custom_fields' => :'item-custom-fields',
141
145
  :'json' => :'json',
142
146
  :'key' => :'key',
@@ -184,6 +188,7 @@ module Akeyless
184
188
  :'grace_rotation' => :'String',
185
189
  :'grace_rotation_hour' => :'Integer',
186
190
  :'grace_rotation_interval' => :'String',
191
+ :'grace_rotation_timing' => :'String',
187
192
  :'item_custom_fields' => :'Hash<String, String>',
188
193
  :'json' => :'Boolean',
189
194
  :'key' => :'String',
@@ -281,6 +286,10 @@ module Akeyless
281
286
  self.grace_rotation_interval = attributes[:'grace_rotation_interval']
282
287
  end
283
288
 
289
+ if attributes.key?(:'grace_rotation_timing')
290
+ self.grace_rotation_timing = attributes[:'grace_rotation_timing']
291
+ end
292
+
284
293
  if attributes.key?(:'item_custom_fields')
285
294
  if (value = attributes[:'item_custom_fields']).is_a?(Hash)
286
295
  self.item_custom_fields = value
@@ -450,6 +459,7 @@ module Akeyless
450
459
  grace_rotation == o.grace_rotation &&
451
460
  grace_rotation_hour == o.grace_rotation_hour &&
452
461
  grace_rotation_interval == o.grace_rotation_interval &&
462
+ grace_rotation_timing == o.grace_rotation_timing &&
453
463
  item_custom_fields == o.item_custom_fields &&
454
464
  json == o.json &&
455
465
  key == o.key &&
@@ -486,7 +496,7 @@ module Akeyless
486
496
  # Calculates hash code according to all attributes.
487
497
  # @return [Integer] Hash code
488
498
  def hash
489
- [api_id, api_key, application_id, authentication_credentials, auto_rotate, delete_protection, description, explicitly_set_sa, grace_rotation, grace_rotation_hour, grace_rotation_interval, item_custom_fields, json, key, max_versions, name, password_length, resource_group_name, resource_name, rotate_after_disconnect, rotation_event_in, rotation_hour, rotation_interval, rotator_type, secure_access_disable_concurrent_connections, secure_access_enable, secure_access_url, secure_access_web, secure_access_web_browsing, secure_access_web_proxy, storage_account_key_name, tags, target_name, token, uid_token, username].hash
499
+ [api_id, api_key, application_id, authentication_credentials, auto_rotate, delete_protection, description, explicitly_set_sa, grace_rotation, grace_rotation_hour, grace_rotation_interval, grace_rotation_timing, item_custom_fields, json, key, max_versions, name, password_length, resource_group_name, resource_name, rotate_after_disconnect, rotation_event_in, rotation_hour, rotation_interval, rotator_type, secure_access_disable_concurrent_connections, secure_access_enable, secure_access_url, secure_access_web, secure_access_web_browsing, secure_access_web_proxy, storage_account_key_name, tags, target_name, token, uid_token, username].hash
490
500
  end
491
501
 
492
502
  # Builds the object from hash
@@ -66,7 +66,7 @@ module Akeyless
66
66
  # Add tags attached to this object
67
67
  attr_accessor :tags
68
68
 
69
- # Target name
69
+ # The target name to associate
70
70
  attr_accessor :target_name
71
71
 
72
72
  # Authentication token (see `/auth` and `/configure`)
@@ -102,7 +102,7 @@ module Akeyless
102
102
  # Add tags attached to this object
103
103
  attr_accessor :tags
104
104
 
105
- # Target name
105
+ # The target name to associate
106
106
  attr_accessor :target_name
107
107
 
108
108
  # Maximum allowed time in seconds for the custom rotator to return the results
@@ -57,7 +57,7 @@ module Akeyless
57
57
  # Add tags attached to this object
58
58
  attr_accessor :tags
59
59
 
60
- # Target name
60
+ # The target name to associate
61
61
  attr_accessor :target_name
62
62
 
63
63
  # Authentication token (see `/auth` and `/configure`)
@@ -36,7 +36,7 @@ module Akeyless
36
36
  # The key id of the gcp service account to rotate
37
37
  attr_accessor :gcp_service_account_key_id
38
38
 
39
- # Create a new access key without deleting the old key from AWS/Azure/GCP for backup (relevant only for AWS/Azure/GCP) [true/false]
39
+ # Enable graceful rotation (keep both versions temporarily). When enabled, a new secret version is created while the previous version is kept for the grace period, so both versions exist for a limited time. [true/false]
40
40
  attr_accessor :grace_rotation
41
41
 
42
42
  # The Hour of the grace rotation in UTC
@@ -45,6 +45,9 @@ module Akeyless
45
45
  # The number of days to wait before deleting the old key (must be bigger than rotation-interval)
46
46
  attr_accessor :grace_rotation_interval
47
47
 
48
+ # When to create the new version relative to the rotation date [after/before]
49
+ attr_accessor :grace_rotation_timing
50
+
48
51
  # Additional custom fields to associate with the item
49
52
  attr_accessor :item_custom_fields
50
53
 
@@ -78,7 +81,7 @@ module Akeyless
78
81
  # Add tags attached to this object
79
82
  attr_accessor :tags
80
83
 
81
- # Target name
84
+ # The target name to associate
82
85
  attr_accessor :target_name
83
86
 
84
87
  # Authentication token (see `/auth` and `/configure`)
@@ -100,6 +103,7 @@ module Akeyless
100
103
  :'grace_rotation' => :'grace-rotation',
101
104
  :'grace_rotation_hour' => :'grace-rotation-hour',
102
105
  :'grace_rotation_interval' => :'grace-rotation-interval',
106
+ :'grace_rotation_timing' => :'grace-rotation-timing',
103
107
  :'item_custom_fields' => :'item-custom-fields',
104
108
  :'json' => :'json',
105
109
  :'key' => :'key',
@@ -135,6 +139,7 @@ module Akeyless
135
139
  :'grace_rotation' => :'String',
136
140
  :'grace_rotation_hour' => :'Integer',
137
141
  :'grace_rotation_interval' => :'String',
142
+ :'grace_rotation_timing' => :'String',
138
143
  :'item_custom_fields' => :'Hash<String, String>',
139
144
  :'json' => :'Boolean',
140
145
  :'key' => :'String',
@@ -215,6 +220,10 @@ module Akeyless
215
220
  self.grace_rotation_interval = attributes[:'grace_rotation_interval']
216
221
  end
217
222
 
223
+ if attributes.key?(:'grace_rotation_timing')
224
+ self.grace_rotation_timing = attributes[:'grace_rotation_timing']
225
+ end
226
+
218
227
  if attributes.key?(:'item_custom_fields')
219
228
  if (value = attributes[:'item_custom_fields']).is_a?(Hash)
220
229
  self.item_custom_fields = value
@@ -331,6 +340,7 @@ module Akeyless
331
340
  grace_rotation == o.grace_rotation &&
332
341
  grace_rotation_hour == o.grace_rotation_hour &&
333
342
  grace_rotation_interval == o.grace_rotation_interval &&
343
+ grace_rotation_timing == o.grace_rotation_timing &&
334
344
  item_custom_fields == o.item_custom_fields &&
335
345
  json == o.json &&
336
346
  key == o.key &&
@@ -356,7 +366,7 @@ module Akeyless
356
366
  # Calculates hash code according to all attributes.
357
367
  # @return [Integer] Hash code
358
368
  def hash
359
- [authentication_credentials, auto_rotate, delete_protection, description, gcp_key, gcp_service_account_email, gcp_service_account_key_id, grace_rotation, grace_rotation_hour, grace_rotation_interval, item_custom_fields, json, key, max_versions, name, password_length, rotation_event_in, rotation_hour, rotation_interval, rotator_type, tags, target_name, token, uid_token].hash
369
+ [authentication_credentials, auto_rotate, delete_protection, description, gcp_key, gcp_service_account_email, gcp_service_account_key_id, grace_rotation, grace_rotation_hour, grace_rotation_interval, grace_rotation_timing, item_custom_fields, json, key, max_versions, name, password_length, rotation_event_in, rotation_hour, rotation_interval, rotator_type, tags, target_name, token, uid_token].hash
360
370
  end
361
371
 
362
372
  # Builds the object from hash
@@ -66,7 +66,7 @@ module Akeyless
66
66
  # Add tags attached to this object
67
67
  attr_accessor :tags
68
68
 
69
- # Target name
69
+ # The target name to associate
70
70
  attr_accessor :target_name
71
71
 
72
72
  # Authentication token (see `/auth` and `/configure`)
@@ -104,7 +104,7 @@ module Akeyless
104
104
  # A list of linked targets to be associated, Relevant only for Secure Remote Access for ssh cert issuer, ldap rotated secret and ldap dynamic secret, To specify multiple targets use argument multiple times
105
105
  attr_accessor :target
106
106
 
107
- # Target name
107
+ # The target name to associate
108
108
  attr_accessor :target_name
109
109
 
110
110
  # Authentication token (see `/auth` and `/configure`)
@@ -87,7 +87,7 @@ module Akeyless
87
87
  # Add tags attached to this object
88
88
  attr_accessor :tags
89
89
 
90
- # Target name
90
+ # The target name to associate
91
91
  attr_accessor :target_name
92
92
 
93
93
  # Authentication token (see `/auth` and `/configure`)
@@ -90,7 +90,7 @@ module Akeyless
90
90
  # Add tags attached to this object
91
91
  attr_accessor :tags
92
92
 
93
- # Target name
93
+ # The target name to associate
94
94
  attr_accessor :target_name
95
95
 
96
96
  # Authentication token (see `/auth` and `/configure`)
@@ -87,7 +87,7 @@ module Akeyless
87
87
  # Add tags attached to this object
88
88
  attr_accessor :tags
89
89
 
90
- # Target name
90
+ # The target name to associate
91
91
  attr_accessor :target_name
92
92
 
93
93
  # Authentication token (see `/auth` and `/configure`)
@@ -67,7 +67,7 @@ module Akeyless
67
67
  # Add tags attached to this object
68
68
  attr_accessor :tags
69
69
 
70
- # Target name
70
+ # The target name to associate
71
71
  attr_accessor :target_name
72
72
 
73
73
  # Authentication token (see `/auth` and `/configure`)
@@ -81,7 +81,7 @@ module Akeyless
81
81
  # Add tags attached to this object
82
82
  attr_accessor :tags
83
83
 
84
- # Target name
84
+ # The target name to associate
85
85
  attr_accessor :target_name
86
86
 
87
87
  # Authentication token (see `/auth` and `/configure`)
@@ -90,7 +90,7 @@ module Akeyless
90
90
  # Add tags attached to this object
91
91
  attr_accessor :tags
92
92
 
93
- # Target name
93
+ # The target name to associate
94
94
  attr_accessor :target_name
95
95
 
96
96
  # Authentication token (see `/auth` and `/configure`)
@@ -66,7 +66,7 @@ module Akeyless
66
66
  # Add tags attached to this object
67
67
  attr_accessor :tags
68
68
 
69
- # Target name
69
+ # The target name to associate
70
70
  attr_accessor :target_name
71
71
 
72
72
  # Authentication token (see `/auth` and `/configure`)
@@ -78,7 +78,7 @@ module Akeyless
78
78
  # Add tags attached to this object
79
79
  attr_accessor :tags
80
80
 
81
- # Target name
81
+ # The target name to associate
82
82
  attr_accessor :target_name
83
83
 
84
84
  # Authentication token (see `/auth` and `/configure`)
@@ -72,7 +72,7 @@ module Akeyless
72
72
  # Add tags attached to this object
73
73
  attr_accessor :tags
74
74
 
75
- # Target name
75
+ # The target name to associate
76
76
  attr_accessor :target_name
77
77
 
78
78
  # Authentication token (see `/auth` and `/configure`)