akeyless 2.15.32 → 2.16.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -1
  3. data/docs/Auth.md +5 -1
  4. data/docs/AuthMethodAccessInfo.md +2 -0
  5. data/docs/CertAccessRules.md +34 -0
  6. data/docs/CreateAuthMethodCert.md +48 -0
  7. data/docs/CreateAuthMethodCertOutput.md +18 -0
  8. data/docs/CreateAuthMethodLDAP.md +3 -1
  9. data/docs/CreateAuthMethodOIDC.md +4 -0
  10. data/docs/CreateClassicKey.md +5 -1
  11. data/docs/GatewayCreateProducerCustom.md +4 -0
  12. data/docs/GatewayCreateProducerOracleDb.md +8 -0
  13. data/docs/GatewayMessageQueueInfo.md +1 -3
  14. data/docs/GatewayUpdateProducerCustom.md +4 -0
  15. data/docs/GatewayUpdateProducerOracleDb.md +8 -0
  16. data/docs/KMIPClient.md +2 -0
  17. data/docs/KMIPServer.md +4 -0
  18. data/docs/KmipDeleteServer.md +20 -0
  19. data/docs/KmipDescribeServerOutput.md +4 -0
  20. data/docs/KmipMoveServer.md +22 -0
  21. data/docs/KmipMoveServerOutput.md +20 -0
  22. data/docs/ListAuthMethods.md +3 -1
  23. data/docs/ListRoles.md +2 -0
  24. data/docs/ListTargets.md +2 -0
  25. data/docs/OIDCAccessRules.md +4 -0
  26. data/docs/UpdateAuthMethodCert.md +50 -0
  27. data/docs/UpdateAuthMethodCertOutput.md +18 -0
  28. data/docs/UpdateAuthMethodLDAP.md +3 -1
  29. data/docs/UpdateAuthMethodOIDC.md +4 -0
  30. data/docs/UpdateOutput.md +2 -0
  31. data/docs/V2Api.md +256 -0
  32. data/lib/akeyless/api/v2_api.rb +248 -0
  33. data/lib/akeyless/api_client.rb +3 -1
  34. data/lib/akeyless/models/auth.rb +22 -2
  35. data/lib/akeyless/models/auth_method_access_info.rb +10 -1
  36. data/lib/akeyless/models/cert_access_rules.rb +316 -0
  37. data/lib/akeyless/models/create_auth_method_cert.rb +401 -0
  38. data/lib/akeyless/models/create_auth_method_cert_output.rb +219 -0
  39. data/lib/akeyless/models/create_auth_method_ldap.rb +14 -4
  40. data/lib/akeyless/models/create_auth_method_oidc.rb +23 -1
  41. data/lib/akeyless/models/create_classic_key.rb +26 -4
  42. data/lib/akeyless/models/gateway_create_producer_custom.rb +23 -1
  43. data/lib/akeyless/models/gateway_create_producer_oracle_db.rb +39 -1
  44. data/lib/akeyless/models/gateway_message_queue_info.rb +4 -13
  45. data/lib/akeyless/models/gateway_update_producer_custom.rb +23 -1
  46. data/lib/akeyless/models/gateway_update_producer_oracle_db.rb +39 -1
  47. data/lib/akeyless/models/kmip_client.rb +10 -1
  48. data/lib/akeyless/models/kmip_delete_server.rb +231 -0
  49. data/lib/akeyless/models/kmip_describe_server_output.rb +19 -1
  50. data/lib/akeyless/models/kmip_move_server.rb +240 -0
  51. data/lib/akeyless/models/kmip_move_server_output.rb +228 -0
  52. data/lib/akeyless/models/kmip_server.rb +19 -1
  53. data/lib/akeyless/models/list_auth_methods.rb +12 -2
  54. data/lib/akeyless/models/list_roles.rb +11 -1
  55. data/lib/akeyless/models/list_targets.rb +11 -1
  56. data/lib/akeyless/models/oidc_access_rules.rb +23 -1
  57. data/lib/akeyless/models/update_auth_method_cert.rb +411 -0
  58. data/lib/akeyless/models/update_auth_method_cert_output.rb +219 -0
  59. data/lib/akeyless/models/update_auth_method_ldap.rb +14 -4
  60. data/lib/akeyless/models/update_auth_method_oidc.rb +23 -1
  61. data/lib/akeyless/models/update_output.rb +10 -1
  62. data/lib/akeyless/version.rb +1 -1
  63. data/lib/akeyless.rb +8 -0
  64. data/spec/models/cert_access_rules_spec.rb +82 -0
  65. data/spec/models/create_auth_method_cert_output_spec.rb +34 -0
  66. data/spec/models/create_auth_method_cert_spec.rb +124 -0
  67. data/spec/models/kmip_delete_server_spec.rb +40 -0
  68. data/spec/models/kmip_move_server_output_spec.rb +40 -0
  69. data/spec/models/kmip_move_server_spec.rb +46 -0
  70. data/spec/models/update_auth_method_cert_output_spec.rb +34 -0
  71. data/spec/models/update_auth_method_cert_spec.rb +130 -0
  72. metadata +34 -2
@@ -0,0 +1,228 @@
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: 2.0
7
+ Contact: support@akeyless.io
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 6.0.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Akeyless
17
+ class KmipMoveServerOutput
18
+ attr_accessor :new_root
19
+
20
+ attr_accessor :old_root
21
+
22
+ # Attribute mapping from ruby-style variable name to JSON key.
23
+ def self.attribute_map
24
+ {
25
+ :'new_root' => :'new_root',
26
+ :'old_root' => :'old_root'
27
+ }
28
+ end
29
+
30
+ # Returns all the JSON keys this model knows about
31
+ def self.acceptable_attributes
32
+ attribute_map.values
33
+ end
34
+
35
+ # Attribute type mapping.
36
+ def self.openapi_types
37
+ {
38
+ :'new_root' => :'String',
39
+ :'old_root' => :'String'
40
+ }
41
+ end
42
+
43
+ # List of attributes with nullable: true
44
+ def self.openapi_nullable
45
+ Set.new([
46
+ ])
47
+ end
48
+
49
+ # Initializes the object
50
+ # @param [Hash] attributes Model attributes in the form of hash
51
+ def initialize(attributes = {})
52
+ if (!attributes.is_a?(Hash))
53
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Akeyless::KmipMoveServerOutput` initialize method"
54
+ end
55
+
56
+ # check to see if the attribute exists and convert string to symbol for hash key
57
+ attributes = attributes.each_with_object({}) { |(k, v), h|
58
+ if (!self.class.attribute_map.key?(k.to_sym))
59
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Akeyless::KmipMoveServerOutput`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
60
+ end
61
+ h[k.to_sym] = v
62
+ }
63
+
64
+ if attributes.key?(:'new_root')
65
+ self.new_root = attributes[:'new_root']
66
+ end
67
+
68
+ if attributes.key?(:'old_root')
69
+ self.old_root = attributes[:'old_root']
70
+ end
71
+ end
72
+
73
+ # Show invalid properties with the reasons. Usually used together with valid?
74
+ # @return Array for valid properties with the reasons
75
+ def list_invalid_properties
76
+ invalid_properties = Array.new
77
+ invalid_properties
78
+ end
79
+
80
+ # Check to see if the all the properties in the model are valid
81
+ # @return true if the model is valid
82
+ def valid?
83
+ true
84
+ end
85
+
86
+ # Checks equality by comparing each attribute.
87
+ # @param [Object] Object to be compared
88
+ def ==(o)
89
+ return true if self.equal?(o)
90
+ self.class == o.class &&
91
+ new_root == o.new_root &&
92
+ old_root == o.old_root
93
+ end
94
+
95
+ # @see the `==` method
96
+ # @param [Object] Object to be compared
97
+ def eql?(o)
98
+ self == o
99
+ end
100
+
101
+ # Calculates hash code according to all attributes.
102
+ # @return [Integer] Hash code
103
+ def hash
104
+ [new_root, old_root].hash
105
+ end
106
+
107
+ # Builds the object from hash
108
+ # @param [Hash] attributes Model attributes in the form of hash
109
+ # @return [Object] Returns the model itself
110
+ def self.build_from_hash(attributes)
111
+ new.build_from_hash(attributes)
112
+ end
113
+
114
+ # Builds the object from hash
115
+ # @param [Hash] attributes Model attributes in the form of hash
116
+ # @return [Object] Returns the model itself
117
+ def build_from_hash(attributes)
118
+ return nil unless attributes.is_a?(Hash)
119
+ attributes = attributes.transform_keys(&:to_sym)
120
+ self.class.openapi_types.each_pair do |key, type|
121
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
122
+ self.send("#{key}=", nil)
123
+ elsif 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
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 :Time
144
+ Time.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
+ # models (e.g. Pet) or oneOf
175
+ klass = Akeyless.const_get(type)
176
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
177
+ end
178
+ end
179
+
180
+ # Returns the string representation of the object
181
+ # @return [String] String presentation of the object
182
+ def to_s
183
+ to_hash.to_s
184
+ end
185
+
186
+ # to_body is an alias to to_hash (backward compatibility)
187
+ # @return [Hash] Returns the object in the form of hash
188
+ def to_body
189
+ to_hash
190
+ end
191
+
192
+ # Returns the object in the form of hash
193
+ # @return [Hash] Returns the object in the form of hash
194
+ def to_hash
195
+ hash = {}
196
+ self.class.attribute_map.each_pair do |attr, param|
197
+ value = self.send(attr)
198
+ if value.nil?
199
+ is_nullable = self.class.openapi_nullable.include?(attr)
200
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
201
+ end
202
+
203
+ hash[param] = _to_hash(value)
204
+ end
205
+ hash
206
+ end
207
+
208
+ # Outputs non-array value in the form of hash
209
+ # For object, use to_hash. Otherwise, just return the value
210
+ # @param [Object] value Any valid value
211
+ # @return [Hash] Returns the value in the form of hash
212
+ def _to_hash(value)
213
+ if value.is_a?(Array)
214
+ value.compact.map { |v| _to_hash(v) }
215
+ elsif value.is_a?(Hash)
216
+ {}.tap do |hash|
217
+ value.each { |k, v| hash[k] = _to_hash(v) }
218
+ end
219
+ elsif value.respond_to? :to_hash
220
+ value.to_hash
221
+ else
222
+ value
223
+ end
224
+ end
225
+
226
+ end
227
+
228
+ end
@@ -21,6 +21,10 @@ module Akeyless
21
21
 
22
22
  attr_accessor :certificate
23
23
 
24
+ attr_accessor :certificate_issue_date
25
+
26
+ attr_accessor :certificate_ttl_in_seconds
27
+
24
28
  attr_accessor :hostname
25
29
 
26
30
  attr_accessor :root
@@ -31,6 +35,8 @@ module Akeyless
31
35
  :'active' => :'active',
32
36
  :'ca' => :'ca',
33
37
  :'certificate' => :'certificate',
38
+ :'certificate_issue_date' => :'certificate_issue_date',
39
+ :'certificate_ttl_in_seconds' => :'certificate_ttl_in_seconds',
34
40
  :'hostname' => :'hostname',
35
41
  :'root' => :'root'
36
42
  }
@@ -47,6 +53,8 @@ module Akeyless
47
53
  :'active' => :'Boolean',
48
54
  :'ca' => :'Array<Integer>',
49
55
  :'certificate' => :'Array<Integer>',
56
+ :'certificate_issue_date' => :'Time',
57
+ :'certificate_ttl_in_seconds' => :'Integer',
50
58
  :'hostname' => :'String',
51
59
  :'root' => :'String'
52
60
  }
@@ -89,6 +97,14 @@ module Akeyless
89
97
  end
90
98
  end
91
99
 
100
+ if attributes.key?(:'certificate_issue_date')
101
+ self.certificate_issue_date = attributes[:'certificate_issue_date']
102
+ end
103
+
104
+ if attributes.key?(:'certificate_ttl_in_seconds')
105
+ self.certificate_ttl_in_seconds = attributes[:'certificate_ttl_in_seconds']
106
+ end
107
+
92
108
  if attributes.key?(:'hostname')
93
109
  self.hostname = attributes[:'hostname']
94
110
  end
@@ -119,6 +135,8 @@ module Akeyless
119
135
  active == o.active &&
120
136
  ca == o.ca &&
121
137
  certificate == o.certificate &&
138
+ certificate_issue_date == o.certificate_issue_date &&
139
+ certificate_ttl_in_seconds == o.certificate_ttl_in_seconds &&
122
140
  hostname == o.hostname &&
123
141
  root == o.root
124
142
  end
@@ -132,7 +150,7 @@ module Akeyless
132
150
  # Calculates hash code according to all attributes.
133
151
  # @return [Integer] Hash code
134
152
  def hash
135
- [active, ca, certificate, hostname, root].hash
153
+ [active, ca, certificate, certificate_issue_date, certificate_ttl_in_seconds, hostname, root].hash
136
154
  end
137
155
 
138
156
  # Builds the object from hash
@@ -16,13 +16,16 @@ require 'time'
16
16
  module Akeyless
17
17
  # listAuthMethods is a command that returns a list of all auth methods in the account.
18
18
  class ListAuthMethods
19
+ # Filter by auth method name or part of it
20
+ attr_accessor :filter
21
+
19
22
  # Next page reference
20
23
  attr_accessor :pagination_token
21
24
 
22
25
  # Authentication token (see `/auth` and `/configure`)
23
26
  attr_accessor :token
24
27
 
25
- # The Auth method types list of the requested method. In case it is empty, all types of auth methods will be returned. options: [api_key, azure_ad, oauth2/jwt, saml2, ldap, aws_iam, oidc, universal_identity, gcp, k8s]
28
+ # The Auth method types list of the requested method. In case it is empty, all types of auth methods will be returned. options: [api_key, azure_ad, oauth2/jwt, saml2, ldap, aws_iam, oidc, universal_identity, gcp, k8s, cert]
26
29
  attr_accessor :type
27
30
 
28
31
  # The universal identity token, Required only for universal_identity authentication
@@ -31,6 +34,7 @@ module Akeyless
31
34
  # Attribute mapping from ruby-style variable name to JSON key.
32
35
  def self.attribute_map
33
36
  {
37
+ :'filter' => :'filter',
34
38
  :'pagination_token' => :'pagination-token',
35
39
  :'token' => :'token',
36
40
  :'type' => :'type',
@@ -46,6 +50,7 @@ module Akeyless
46
50
  # Attribute type mapping.
47
51
  def self.openapi_types
48
52
  {
53
+ :'filter' => :'String',
49
54
  :'pagination_token' => :'String',
50
55
  :'token' => :'String',
51
56
  :'type' => :'Array<String>',
@@ -74,6 +79,10 @@ module Akeyless
74
79
  h[k.to_sym] = v
75
80
  }
76
81
 
82
+ if attributes.key?(:'filter')
83
+ self.filter = attributes[:'filter']
84
+ end
85
+
77
86
  if attributes.key?(:'pagination_token')
78
87
  self.pagination_token = attributes[:'pagination_token']
79
88
  end
@@ -111,6 +120,7 @@ module Akeyless
111
120
  def ==(o)
112
121
  return true if self.equal?(o)
113
122
  self.class == o.class &&
123
+ filter == o.filter &&
114
124
  pagination_token == o.pagination_token &&
115
125
  token == o.token &&
116
126
  type == o.type &&
@@ -126,7 +136,7 @@ module Akeyless
126
136
  # Calculates hash code according to all attributes.
127
137
  # @return [Integer] Hash code
128
138
  def hash
129
- [pagination_token, token, type, uid_token].hash
139
+ [filter, pagination_token, token, type, uid_token].hash
130
140
  end
131
141
 
132
142
  # Builds the object from hash
@@ -15,6 +15,9 @@ require 'time'
15
15
 
16
16
  module Akeyless
17
17
  class ListRoles
18
+ # Filter by item name or part of it
19
+ attr_accessor :filter
20
+
18
21
  # Next page reference
19
22
  attr_accessor :pagination_token
20
23
 
@@ -27,6 +30,7 @@ module Akeyless
27
30
  # Attribute mapping from ruby-style variable name to JSON key.
28
31
  def self.attribute_map
29
32
  {
33
+ :'filter' => :'filter',
30
34
  :'pagination_token' => :'pagination-token',
31
35
  :'token' => :'token',
32
36
  :'uid_token' => :'uid-token'
@@ -41,6 +45,7 @@ module Akeyless
41
45
  # Attribute type mapping.
42
46
  def self.openapi_types
43
47
  {
48
+ :'filter' => :'String',
44
49
  :'pagination_token' => :'String',
45
50
  :'token' => :'String',
46
51
  :'uid_token' => :'String'
@@ -68,6 +73,10 @@ module Akeyless
68
73
  h[k.to_sym] = v
69
74
  }
70
75
 
76
+ if attributes.key?(:'filter')
77
+ self.filter = attributes[:'filter']
78
+ end
79
+
71
80
  if attributes.key?(:'pagination_token')
72
81
  self.pagination_token = attributes[:'pagination_token']
73
82
  end
@@ -99,6 +108,7 @@ module Akeyless
99
108
  def ==(o)
100
109
  return true if self.equal?(o)
101
110
  self.class == o.class &&
111
+ filter == o.filter &&
102
112
  pagination_token == o.pagination_token &&
103
113
  token == o.token &&
104
114
  uid_token == o.uid_token
@@ -113,7 +123,7 @@ module Akeyless
113
123
  # Calculates hash code according to all attributes.
114
124
  # @return [Integer] Hash code
115
125
  def hash
116
- [pagination_token, token, uid_token].hash
126
+ [filter, pagination_token, token, uid_token].hash
117
127
  end
118
128
 
119
129
  # Builds the object from hash
@@ -15,6 +15,9 @@ require 'time'
15
15
 
16
16
  module Akeyless
17
17
  class ListTargets
18
+ # Filter by auth method name or part of it
19
+ attr_accessor :filter
20
+
18
21
  # Next page reference
19
22
  attr_accessor :pagination_token
20
23
 
@@ -27,6 +30,7 @@ module Akeyless
27
30
  # Attribute mapping from ruby-style variable name to JSON key.
28
31
  def self.attribute_map
29
32
  {
33
+ :'filter' => :'filter',
30
34
  :'pagination_token' => :'pagination-token',
31
35
  :'token' => :'token',
32
36
  :'uid_token' => :'uid-token'
@@ -41,6 +45,7 @@ module Akeyless
41
45
  # Attribute type mapping.
42
46
  def self.openapi_types
43
47
  {
48
+ :'filter' => :'String',
44
49
  :'pagination_token' => :'String',
45
50
  :'token' => :'String',
46
51
  :'uid_token' => :'String'
@@ -68,6 +73,10 @@ module Akeyless
68
73
  h[k.to_sym] = v
69
74
  }
70
75
 
76
+ if attributes.key?(:'filter')
77
+ self.filter = attributes[:'filter']
78
+ end
79
+
71
80
  if attributes.key?(:'pagination_token')
72
81
  self.pagination_token = attributes[:'pagination_token']
73
82
  end
@@ -99,6 +108,7 @@ module Akeyless
99
108
  def ==(o)
100
109
  return true if self.equal?(o)
101
110
  self.class == o.class &&
111
+ filter == o.filter &&
102
112
  pagination_token == o.pagination_token &&
103
113
  token == o.token &&
104
114
  uid_token == o.uid_token
@@ -113,7 +123,7 @@ module Akeyless
113
123
  # Calculates hash code according to all attributes.
114
124
  # @return [Integer] Hash code
115
125
  def hash
116
- [pagination_token, token, uid_token].hash
126
+ [filter, pagination_token, token, uid_token].hash
117
127
  end
118
128
 
119
129
  # Builds the object from hash
@@ -34,6 +34,12 @@ module Akeyless
34
34
  # Issuer URL
35
35
  attr_accessor :issuer
36
36
 
37
+ # A list of required scopes to request from the oidc provider, and to check on the token
38
+ attr_accessor :required_scopes
39
+
40
+ # A prefix to add to the required scopes (for example, azures' Application ID URI)
41
+ attr_accessor :required_scopes_prefix
42
+
37
43
  # A unique identifier to distinguish different users
38
44
  attr_accessor :unique_identifier
39
45
 
@@ -46,6 +52,8 @@ module Akeyless
46
52
  :'client_secret' => :'client_secret',
47
53
  :'is_internal' => :'is_internal',
48
54
  :'issuer' => :'issuer',
55
+ :'required_scopes' => :'required_scopes',
56
+ :'required_scopes_prefix' => :'required_scopes_prefix',
49
57
  :'unique_identifier' => :'unique_identifier'
50
58
  }
51
59
  end
@@ -64,6 +72,8 @@ module Akeyless
64
72
  :'client_secret' => :'String',
65
73
  :'is_internal' => :'Boolean',
66
74
  :'issuer' => :'String',
75
+ :'required_scopes' => :'Array<String>',
76
+ :'required_scopes_prefix' => :'String',
67
77
  :'unique_identifier' => :'String'
68
78
  }
69
79
  end
@@ -117,6 +127,16 @@ module Akeyless
117
127
  self.issuer = attributes[:'issuer']
118
128
  end
119
129
 
130
+ if attributes.key?(:'required_scopes')
131
+ if (value = attributes[:'required_scopes']).is_a?(Array)
132
+ self.required_scopes = value
133
+ end
134
+ end
135
+
136
+ if attributes.key?(:'required_scopes_prefix')
137
+ self.required_scopes_prefix = attributes[:'required_scopes_prefix']
138
+ end
139
+
120
140
  if attributes.key?(:'unique_identifier')
121
141
  self.unique_identifier = attributes[:'unique_identifier']
122
142
  end
@@ -146,6 +166,8 @@ module Akeyless
146
166
  client_secret == o.client_secret &&
147
167
  is_internal == o.is_internal &&
148
168
  issuer == o.issuer &&
169
+ required_scopes == o.required_scopes &&
170
+ required_scopes_prefix == o.required_scopes_prefix &&
149
171
  unique_identifier == o.unique_identifier
150
172
  end
151
173
 
@@ -158,7 +180,7 @@ module Akeyless
158
180
  # Calculates hash code according to all attributes.
159
181
  # @return [Integer] Hash code
160
182
  def hash
161
- [allowed_redirect_uris, bound_claims, client_id, client_secret, is_internal, issuer, unique_identifier].hash
183
+ [allowed_redirect_uris, bound_claims, client_id, client_secret, is_internal, issuer, required_scopes, required_scopes_prefix, unique_identifier].hash
162
184
  end
163
185
 
164
186
  # Builds the object from hash