volcano-sdk 0.9.4 → 0.10.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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +69 -0
  3. data/lib/volcano/client.rb +2 -1
  4. data/lib/volcano/durable.rb +136 -0
  5. data/lib/volcano/durable_models.rb +143 -0
  6. data/lib/volcano/generated/lib/volcano-generated/api/databases_api.rb +2 -2
  7. data/lib/volcano/generated/lib/volcano-generated/api/durable_functions_api.rb +1239 -0
  8. data/lib/volcano/generated/lib/volcano-generated/api/frontends_api.rb +2 -2
  9. data/lib/volcano/generated/lib/volcano-generated/api/functions_api.rb +18 -6
  10. data/lib/volcano/generated/lib/volcano-generated/api/o_auth_authentication_api.rb +2 -2
  11. data/lib/volcano/generated/lib/volcano-generated/api/projects_api.rb +76 -2
  12. data/lib/volcano/generated/lib/volcano-generated/models/create_database_request.rb +6 -8
  13. data/lib/volcano/generated/lib/volcano-generated/models/create_variable_request.rb +11 -1
  14. data/lib/volcano/generated/lib/volcano-generated/models/durable_execution.rb +358 -0
  15. data/lib/volcano/generated/lib/volcano-generated/models/durable_execution_error.rb +157 -0
  16. data/lib/volcano/generated/lib/volcano-generated/models/durable_execution_status.rb +45 -0
  17. data/lib/volcano/generated/lib/volcano-generated/models/durable_function.rb +479 -0
  18. data/lib/volcano/generated/lib/volcano-generated/models/durable_function_config.rb +193 -0
  19. data/lib/volcano/generated/lib/volcano-generated/models/function_kind.rb +40 -0
  20. data/lib/volcano/generated/lib/volcano-generated/models/function_runtime_option.rb +28 -1
  21. data/lib/volcano/generated/lib/volcano-generated/models/function_scheduler.rb +11 -1
  22. data/lib/volcano/generated/lib/volcano-generated/models/list_database_regions200_response_inner.rb +1 -1
  23. data/lib/volcano/generated/lib/volcano-generated/models/metric_usage_data.rb +1 -1
  24. data/lib/volcano/generated/lib/volcano-generated/models/paginated_durable_executions.rb +274 -0
  25. data/lib/volcano/generated/lib/volcano-generated/models/paginated_durable_functions.rb +274 -0
  26. data/lib/volcano/generated/lib/volcano-generated/models/project_config.rb +23 -1
  27. data/lib/volcano/generated/lib/volcano-generated/models/project_config_function.rb +47 -2
  28. data/lib/volcano/generated/lib/volcano-generated/models/project_config_variable.rb +11 -1
  29. data/lib/volcano/generated/lib/volcano-generated/models/project_deployment_resource.rb +14 -4
  30. data/lib/volcano/generated/lib/volcano-generated/models/project_health_resource.rb +14 -4
  31. data/lib/volcano/generated/lib/volcano-generated/models/replace_shared_variables_request.rb +237 -0
  32. data/lib/volcano/generated/lib/volcano-generated/models/update_variable_request.rb +11 -1
  33. data/lib/volcano/generated/lib/volcano-generated/models/variable.rb +11 -1
  34. data/lib/volcano/generated/lib/volcano-generated.rb +10 -0
  35. data/lib/volcano/generated_transport.rb +2 -1
  36. data/lib/volcano/generated_transport_durable.rb +50 -0
  37. data/lib/volcano/generated_transport_support.rb +1 -0
  38. data/lib/volcano/version.rb +1 -1
  39. data/lib/volcano.rb +2 -0
  40. metadata +14 -1
@@ -0,0 +1,274 @@
1
+ =begin
2
+ #Volcano Hosting API
3
+
4
+ #Public API for Volcano Hosting clients, SDKs, and CLI tooling (Port 8000). This specification intentionally excludes first-party/internal APIs. See api/openapi-internal.yaml for non-public internal and Builder operations.
5
+
6
+ The version of the OpenAPI document: 3.0.0
7
+ Contact: support@volcano.dev
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.17.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Volcano::Generated
17
+ class PaginatedDurableFunctions < ApiModelBase
18
+ attr_accessor :data
19
+
20
+ # Current page number (1-indexed)
21
+ attr_accessor :page
22
+
23
+ # Number of items per page
24
+ attr_accessor :limit
25
+
26
+ # Total number of items across all pages
27
+ attr_accessor :total
28
+
29
+ # Whether there are more pages available
30
+ attr_accessor :has_more
31
+
32
+ # Attribute mapping from ruby-style variable name to JSON key.
33
+ def self.attribute_map
34
+ {
35
+ :'data' => :'data',
36
+ :'page' => :'page',
37
+ :'limit' => :'limit',
38
+ :'total' => :'total',
39
+ :'has_more' => :'has_more'
40
+ }
41
+ end
42
+
43
+ # Returns attribute mapping this model knows about
44
+ def self.acceptable_attribute_map
45
+ attribute_map
46
+ end
47
+
48
+ # Returns all the JSON keys this model knows about
49
+ def self.acceptable_attributes
50
+ acceptable_attribute_map.values
51
+ end
52
+
53
+ # Attribute type mapping.
54
+ def self.openapi_types
55
+ {
56
+ :'data' => :'Array<DurableFunction>',
57
+ :'page' => :'Integer',
58
+ :'limit' => :'Integer',
59
+ :'total' => :'Integer',
60
+ :'has_more' => :'Boolean'
61
+ }
62
+ end
63
+
64
+ # List of attributes with nullable: true
65
+ def self.openapi_nullable
66
+ Set.new([
67
+ ])
68
+ end
69
+
70
+ # Initializes the object
71
+ # @param [Hash] attributes Model attributes in the form of hash
72
+ def initialize(attributes = {})
73
+ if (!attributes.is_a?(Hash))
74
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Volcano::Generated::PaginatedDurableFunctions` initialize method"
75
+ end
76
+
77
+ # check to see if the attribute exists and convert string to symbol for hash key
78
+ acceptable_attribute_map = self.class.acceptable_attribute_map
79
+ attributes = attributes.each_with_object({}) { |(k, v), h|
80
+ if (!acceptable_attribute_map.key?(k.to_sym))
81
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Volcano::Generated::PaginatedDurableFunctions`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
82
+ end
83
+ h[k.to_sym] = v
84
+ }
85
+
86
+ if attributes.key?(:'data')
87
+ if (value = attributes[:'data']).is_a?(Array)
88
+ self.data = value
89
+ end
90
+ else
91
+ self.data = nil
92
+ end
93
+
94
+ if attributes.key?(:'page')
95
+ self.page = attributes[:'page']
96
+ else
97
+ self.page = nil
98
+ end
99
+
100
+ if attributes.key?(:'limit')
101
+ self.limit = attributes[:'limit']
102
+ else
103
+ self.limit = nil
104
+ end
105
+
106
+ if attributes.key?(:'total')
107
+ self.total = attributes[:'total']
108
+ else
109
+ self.total = nil
110
+ end
111
+
112
+ if attributes.key?(:'has_more')
113
+ self.has_more = attributes[:'has_more']
114
+ else
115
+ self.has_more = nil
116
+ end
117
+ end
118
+
119
+ # Show invalid properties with the reasons. Usually used together with valid?
120
+ # @return Array for valid properties with the reasons
121
+ def list_invalid_properties
122
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
123
+ invalid_properties = Array.new
124
+ if @data.nil?
125
+ invalid_properties.push('invalid value for "data", data cannot be nil.')
126
+ end
127
+
128
+ if @page.nil?
129
+ invalid_properties.push('invalid value for "page", page cannot be nil.')
130
+ end
131
+
132
+ if @limit.nil?
133
+ invalid_properties.push('invalid value for "limit", limit cannot be nil.')
134
+ end
135
+
136
+ if @total.nil?
137
+ invalid_properties.push('invalid value for "total", total cannot be nil.')
138
+ end
139
+
140
+ if @has_more.nil?
141
+ invalid_properties.push('invalid value for "has_more", has_more cannot be nil.')
142
+ end
143
+
144
+ invalid_properties
145
+ end
146
+
147
+ # Check to see if the all the properties in the model are valid
148
+ # @return true if the model is valid
149
+ def valid?
150
+ warn '[DEPRECATED] the `valid?` method is obsolete'
151
+ return false if @data.nil?
152
+ return false if @page.nil?
153
+ return false if @limit.nil?
154
+ return false if @total.nil?
155
+ return false if @has_more.nil?
156
+ true
157
+ end
158
+
159
+ # Custom attribute writer method with validation
160
+ # @param [Object] data Value to be assigned
161
+ def data=(data)
162
+ if data.nil?
163
+ fail ArgumentError, 'data cannot be nil'
164
+ end
165
+
166
+ @data = data
167
+ end
168
+
169
+ # Custom attribute writer method with validation
170
+ # @param [Object] page Value to be assigned
171
+ def page=(page)
172
+ if page.nil?
173
+ fail ArgumentError, 'page cannot be nil'
174
+ end
175
+
176
+ @page = page
177
+ end
178
+
179
+ # Custom attribute writer method with validation
180
+ # @param [Object] limit Value to be assigned
181
+ def limit=(limit)
182
+ if limit.nil?
183
+ fail ArgumentError, 'limit cannot be nil'
184
+ end
185
+
186
+ @limit = limit
187
+ end
188
+
189
+ # Custom attribute writer method with validation
190
+ # @param [Object] total Value to be assigned
191
+ def total=(total)
192
+ if total.nil?
193
+ fail ArgumentError, 'total cannot be nil'
194
+ end
195
+
196
+ @total = total
197
+ end
198
+
199
+ # Custom attribute writer method with validation
200
+ # @param [Object] has_more Value to be assigned
201
+ def has_more=(has_more)
202
+ if has_more.nil?
203
+ fail ArgumentError, 'has_more cannot be nil'
204
+ end
205
+
206
+ @has_more = has_more
207
+ end
208
+
209
+ # Checks equality by comparing each attribute.
210
+ # @param [Object] Object to be compared
211
+ def ==(o)
212
+ return true if self.equal?(o)
213
+ self.class == o.class &&
214
+ data == o.data &&
215
+ page == o.page &&
216
+ limit == o.limit &&
217
+ total == o.total &&
218
+ has_more == o.has_more
219
+ end
220
+
221
+ # @see the `==` method
222
+ # @param [Object] Object to be compared
223
+ def eql?(o)
224
+ self == o
225
+ end
226
+
227
+ # Calculates hash code according to all attributes.
228
+ # @return [Integer] Hash code
229
+ def hash
230
+ [data, page, limit, total, has_more].hash
231
+ end
232
+
233
+ # Builds the object from hash
234
+ # @param [Hash] attributes Model attributes in the form of hash
235
+ # @return [Object] Returns the model itself
236
+ def self.build_from_hash(attributes)
237
+ return nil unless attributes.is_a?(Hash)
238
+ attributes = attributes.transform_keys(&:to_sym)
239
+ transformed_hash = {}
240
+ openapi_types.each_pair do |key, type|
241
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
242
+ transformed_hash["#{key}"] = nil
243
+ elsif type =~ /\AArray<(.*)>/i
244
+ # check to ensure the input is an array given that the attribute
245
+ # is documented as an array but the input is not
246
+ if attributes[attribute_map[key]].is_a?(Array)
247
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
248
+ end
249
+ elsif !attributes[attribute_map[key]].nil?
250
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
251
+ end
252
+ end
253
+ new(transformed_hash)
254
+ end
255
+
256
+ # Returns the object in the form of hash
257
+ # @return [Hash] Returns the object in the form of hash
258
+ def to_hash
259
+ hash = {}
260
+ self.class.attribute_map.each_pair do |attr, param|
261
+ value = self.send(attr)
262
+ if value.nil?
263
+ is_nullable = self.class.openapi_nullable.include?(attr)
264
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
265
+ end
266
+
267
+ hash[param] = _to_hash(value)
268
+ end
269
+ hash
270
+ end
271
+
272
+ end
273
+
274
+ end
@@ -23,6 +23,9 @@ module Volcano::Generated
23
23
 
24
24
  attr_accessor :databases
25
25
 
26
+ # Replace the complete shared function-variable list with existing names, without changing variable values. Omission keeps membership unchanged; an empty list clears it.
27
+ attr_accessor :shared_variables
28
+
26
29
  # Fully synced when declared - variables absent from this list are deleted.
27
30
  attr_accessor :variables
28
31
 
@@ -64,6 +67,7 @@ module Volcano::Generated
64
67
  :'version' => :'version',
65
68
  :'project' => :'project',
66
69
  :'databases' => :'databases',
70
+ :'shared_variables' => :'shared_variables',
67
71
  :'variables' => :'variables',
68
72
  :'buckets' => :'buckets',
69
73
  :'realtime' => :'realtime',
@@ -89,6 +93,7 @@ module Volcano::Generated
89
93
  :'version' => :'Integer',
90
94
  :'project' => :'ProjectConfigProject',
91
95
  :'databases' => :'Array<ProjectConfigDatabase>',
96
+ :'shared_variables' => :'Array<String>',
92
97
  :'variables' => :'Array<ProjectConfigVariable>',
93
98
  :'buckets' => :'Array<ProjectConfigBucket>',
94
99
  :'realtime' => :'ProjectConfigRealtime',
@@ -136,6 +141,12 @@ module Volcano::Generated
136
141
  end
137
142
  end
138
143
 
144
+ if attributes.key?(:'shared_variables')
145
+ if (value = attributes[:'shared_variables']).is_a?(Array)
146
+ self.shared_variables = value
147
+ end
148
+ end
149
+
139
150
  if attributes.key?(:'variables')
140
151
  if (value = attributes[:'variables']).is_a?(Array)
141
152
  self.variables = value
@@ -201,6 +212,16 @@ module Volcano::Generated
201
212
  @version = version
202
213
  end
203
214
 
215
+ # Custom attribute writer method with validation
216
+ # @param [Object] shared_variables Value to be assigned
217
+ def shared_variables=(shared_variables)
218
+ if shared_variables.nil?
219
+ fail ArgumentError, 'shared_variables cannot be nil'
220
+ end
221
+
222
+ @shared_variables = shared_variables
223
+ end
224
+
204
225
  # Checks equality by comparing each attribute.
205
226
  # @param [Object] Object to be compared
206
227
  def ==(o)
@@ -209,6 +230,7 @@ module Volcano::Generated
209
230
  version == o.version &&
210
231
  project == o.project &&
211
232
  databases == o.databases &&
233
+ shared_variables == o.shared_variables &&
212
234
  variables == o.variables &&
213
235
  buckets == o.buckets &&
214
236
  realtime == o.realtime &&
@@ -226,7 +248,7 @@ module Volcano::Generated
226
248
  # Calculates hash code according to all attributes.
227
249
  # @return [Integer] Hash code
228
250
  def hash
229
- [version, project, databases, variables, buckets, realtime, auth, functions, frontends].hash
251
+ [version, project, databases, shared_variables, variables, buckets, realtime, auth, functions, frontends].hash
230
252
  end
231
253
 
232
254
  # Builds the object from hash
@@ -14,13 +14,21 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Volcano::Generated
17
- # Configuration for an existing (deployed) function. Functions are never created or deleted through the manifest. When `schedulers` is declared it is fully synced (schedulers absent from the list are deleted); omitting `schedulers` leaves the function's schedulers untouched.
17
+ # Configuration for an existing (deployed) function. Functions are never created or deleted through the manifest. When `schedulers` is declared it is fully synced (schedulers absent from the list are deleted); omitting `schedulers` leaves the function's schedulers untouched. The same applies to `variables`: declaring it replaces the function's declared variable names, and omitting it leaves them untouched.
18
18
  class ProjectConfigFunction < ApiModelBase
19
19
  attr_accessor :name
20
20
 
21
+ attr_accessor :kind
22
+
21
23
  # Function visibility for anon-key invocation
22
24
  attr_accessor :public
23
25
 
26
+ # Which project variables this function receives. `all` (the default) gives it the project variables marked `shared: true`. `scoped` gives it only the variables it selects: every name declared in `variables`, plus the names Volcano detects in its source that the project defines.
27
+ attr_accessor :variable_scope
28
+
29
+ # Project variable names this function requires, on top of the ones detected in its source. Declare a name here when the function reads it through a computed key, which detection cannot see, or when the function must not deploy without it: a declared name the project does not define fails the apply, while a detected name it does not define is ignored. Only used when `variable_scope` is `scoped`.
30
+ attr_accessor :variables
31
+
24
32
  attr_accessor :invocation_mode
25
33
 
26
34
  attr_accessor :http_auth_mode
@@ -56,7 +64,10 @@ module Volcano::Generated
56
64
  def self.attribute_map
57
65
  {
58
66
  :'name' => :'name',
67
+ :'kind' => :'kind',
59
68
  :'public' => :'public',
69
+ :'variable_scope' => :'variable_scope',
70
+ :'variables' => :'variables',
60
71
  :'invocation_mode' => :'invocation_mode',
61
72
  :'http_auth_mode' => :'http_auth_mode',
62
73
  :'openapi_spec' => :'openapi_spec',
@@ -78,7 +89,10 @@ module Volcano::Generated
78
89
  def self.openapi_types
79
90
  {
80
91
  :'name' => :'String',
92
+ :'kind' => :'FunctionKind',
81
93
  :'public' => :'Boolean',
94
+ :'variable_scope' => :'String',
95
+ :'variables' => :'Array<String>',
82
96
  :'invocation_mode' => :'FunctionInvocationMode',
83
97
  :'http_auth_mode' => :'FunctionHTTPAuthMode',
84
98
  :'openapi_spec' => :'Hash<String, Object>',
@@ -115,10 +129,26 @@ module Volcano::Generated
115
129
  self.name = nil
116
130
  end
117
131
 
132
+ if attributes.key?(:'kind')
133
+ self.kind = attributes[:'kind']
134
+ else
135
+ self.kind = 'standard'
136
+ end
137
+
118
138
  if attributes.key?(:'public')
119
139
  self.public = attributes[:'public']
120
140
  end
121
141
 
142
+ if attributes.key?(:'variable_scope')
143
+ self.variable_scope = attributes[:'variable_scope']
144
+ end
145
+
146
+ if attributes.key?(:'variables')
147
+ if (value = attributes[:'variables']).is_a?(Array)
148
+ self.variables = value
149
+ end
150
+ end
151
+
122
152
  if attributes.key?(:'invocation_mode')
123
153
  self.invocation_mode = attributes[:'invocation_mode']
124
154
  end
@@ -162,6 +192,8 @@ module Volcano::Generated
162
192
  warn '[DEPRECATED] the `valid?` method is obsolete'
163
193
  return false if @name.nil?
164
194
  return false if @name.to_s.length < 1
195
+ variable_scope_validator = EnumAttributeValidator.new('String', ["all", "scoped"])
196
+ return false unless variable_scope_validator.valid?(@variable_scope)
165
197
  true
166
198
  end
167
199
 
@@ -179,13 +211,26 @@ module Volcano::Generated
179
211
  @name = name
180
212
  end
181
213
 
214
+ # Custom attribute writer method checking allowed values (enum).
215
+ # @param [Object] variable_scope Object to be assigned
216
+ def variable_scope=(variable_scope)
217
+ validator = EnumAttributeValidator.new('String', ["all", "scoped"])
218
+ unless validator.valid?(variable_scope)
219
+ fail ArgumentError, "invalid value for \"variable_scope\", must be one of #{validator.allowable_values}."
220
+ end
221
+ @variable_scope = variable_scope
222
+ end
223
+
182
224
  # Checks equality by comparing each attribute.
183
225
  # @param [Object] Object to be compared
184
226
  def ==(o)
185
227
  return true if self.equal?(o)
186
228
  self.class == o.class &&
187
229
  name == o.name &&
230
+ kind == o.kind &&
188
231
  public == o.public &&
232
+ variable_scope == o.variable_scope &&
233
+ variables == o.variables &&
189
234
  invocation_mode == o.invocation_mode &&
190
235
  http_auth_mode == o.http_auth_mode &&
191
236
  openapi_spec == o.openapi_spec &&
@@ -201,7 +246,7 @@ module Volcano::Generated
201
246
  # Calculates hash code according to all attributes.
202
247
  # @return [Integer] Hash code
203
248
  def hash
204
- [name, public, invocation_mode, http_auth_mode, openapi_spec, schedulers].hash
249
+ [name, kind, public, variable_scope, variables, invocation_mode, http_auth_mode, openapi_spec, schedulers].hash
205
250
  end
206
251
 
207
252
  # Builds the object from hash
@@ -15,6 +15,9 @@ require 'time'
15
15
 
16
16
  module Volcano::Generated
17
17
  class ProjectConfigVariable < ApiModelBase
18
+ # Include this name in the project's shared function variables. Omission preserves existing membership; new variables default to true for legacy clients. Send false explicitly to create a non-shared variable.
19
+ attr_accessor :shared
20
+
18
21
  attr_accessor :name
19
22
 
20
23
  attr_accessor :value
@@ -22,6 +25,7 @@ module Volcano::Generated
22
25
  # Attribute mapping from ruby-style variable name to JSON key.
23
26
  def self.attribute_map
24
27
  {
28
+ :'shared' => :'shared',
25
29
  :'name' => :'name',
26
30
  :'value' => :'value'
27
31
  }
@@ -40,6 +44,7 @@ module Volcano::Generated
40
44
  # Attribute type mapping.
41
45
  def self.openapi_types
42
46
  {
47
+ :'shared' => :'Boolean',
43
48
  :'name' => :'String',
44
49
  :'value' => :'String'
45
50
  }
@@ -67,6 +72,10 @@ module Volcano::Generated
67
72
  h[k.to_sym] = v
68
73
  }
69
74
 
75
+ if attributes.key?(:'shared')
76
+ self.shared = attributes[:'shared']
77
+ end
78
+
70
79
  if attributes.key?(:'name')
71
80
  self.name = attributes[:'name']
72
81
  else
@@ -139,6 +148,7 @@ module Volcano::Generated
139
148
  def ==(o)
140
149
  return true if self.equal?(o)
141
150
  self.class == o.class &&
151
+ shared == o.shared &&
142
152
  name == o.name &&
143
153
  value == o.value
144
154
  end
@@ -152,7 +162,7 @@ module Volcano::Generated
152
162
  # Calculates hash code according to all attributes.
153
163
  # @return [Integer] Hash code
154
164
  def hash
155
- [name, value].hash
165
+ [shared, name, value].hash
156
166
  end
157
167
 
158
168
  # Builds the object from hash
@@ -22,6 +22,9 @@ module Volcano::Generated
22
22
 
23
23
  attr_accessor :name
24
24
 
25
+ # Which kind of function this deployment belongs to. Both kinds appear in this feed under `type: function`, because a deployment means the same thing for either, so this is what tells them apart. Absent when `type` is `frontend`.
26
+ attr_accessor :kind
27
+
25
28
  class EnumAttributeValidator
26
29
  attr_reader :datatype
27
30
  attr_reader :allowable_values
@@ -49,7 +52,8 @@ module Volcano::Generated
49
52
  {
50
53
  :'type' => :'type',
51
54
  :'id' => :'id',
52
- :'name' => :'name'
55
+ :'name' => :'name',
56
+ :'kind' => :'kind'
53
57
  }
54
58
  end
55
59
 
@@ -68,7 +72,8 @@ module Volcano::Generated
68
72
  {
69
73
  :'type' => :'String',
70
74
  :'id' => :'String',
71
- :'name' => :'String'
75
+ :'name' => :'String',
76
+ :'kind' => :'FunctionKind'
72
77
  }
73
78
  end
74
79
 
@@ -111,6 +116,10 @@ module Volcano::Generated
111
116
  else
112
117
  self.name = nil
113
118
  end
119
+
120
+ if attributes.key?(:'kind')
121
+ self.kind = attributes[:'kind']
122
+ end
114
123
  end
115
124
 
116
125
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -182,7 +191,8 @@ module Volcano::Generated
182
191
  self.class == o.class &&
183
192
  type == o.type &&
184
193
  id == o.id &&
185
- name == o.name
194
+ name == o.name &&
195
+ kind == o.kind
186
196
  end
187
197
 
188
198
  # @see the `==` method
@@ -194,7 +204,7 @@ module Volcano::Generated
194
204
  # Calculates hash code according to all attributes.
195
205
  # @return [Integer] Hash code
196
206
  def hash
197
- [type, id, name].hash
207
+ [type, id, name, kind].hash
198
208
  end
199
209
 
200
210
  # Builds the object from hash
@@ -21,6 +21,9 @@ module Volcano::Generated
21
21
 
22
22
  attr_accessor :name
23
23
 
24
+ # Which kind of function this check is about. Present only when `type` is `function`, where both kinds share the name space and this is what tells them apart.
25
+ attr_accessor :kind
26
+
24
27
  class EnumAttributeValidator
25
28
  attr_reader :datatype
26
29
  attr_reader :allowable_values
@@ -48,7 +51,8 @@ module Volcano::Generated
48
51
  {
49
52
  :'type' => :'type',
50
53
  :'id' => :'id',
51
- :'name' => :'name'
54
+ :'name' => :'name',
55
+ :'kind' => :'kind'
52
56
  }
53
57
  end
54
58
 
@@ -67,7 +71,8 @@ module Volcano::Generated
67
71
  {
68
72
  :'type' => :'String',
69
73
  :'id' => :'String',
70
- :'name' => :'String'
74
+ :'name' => :'String',
75
+ :'kind' => :'FunctionKind'
71
76
  }
72
77
  end
73
78
 
@@ -110,6 +115,10 @@ module Volcano::Generated
110
115
  else
111
116
  self.name = nil
112
117
  end
118
+
119
+ if attributes.key?(:'kind')
120
+ self.kind = attributes[:'kind']
121
+ end
113
122
  end
114
123
 
115
124
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -181,7 +190,8 @@ module Volcano::Generated
181
190
  self.class == o.class &&
182
191
  type == o.type &&
183
192
  id == o.id &&
184
- name == o.name
193
+ name == o.name &&
194
+ kind == o.kind
185
195
  end
186
196
 
187
197
  # @see the `==` method
@@ -193,7 +203,7 @@ module Volcano::Generated
193
203
  # Calculates hash code according to all attributes.
194
204
  # @return [Integer] Hash code
195
205
  def hash
196
- [type, id, name].hash
206
+ [type, id, name, kind].hash
197
207
  end
198
208
 
199
209
  # Builds the object from hash