volcano-sdk 0.34.0 → 0.35.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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +53 -4
  3. data/lib/volcano/client.rb +1 -1
  4. data/lib/volcano/durable.rb +9 -4
  5. data/lib/volcano/durable_approval_models.rb +1 -1
  6. data/lib/volcano/durable_message_arguments.rb +49 -0
  7. data/lib/volcano/durable_message_backlog.rb +38 -0
  8. data/lib/volcano/durable_message_catch_ups.rb +112 -0
  9. data/lib/volcano/durable_message_models.rb +62 -0
  10. data/lib/volcano/durable_message_responses.rb +107 -0
  11. data/lib/volcano/durable_message_session.rb +72 -0
  12. data/lib/volcano/durable_message_stream.rb +176 -0
  13. data/lib/volcano/durable_messages.rb +217 -0
  14. data/lib/volcano/durable_models.rb +32 -3
  15. data/lib/volcano/generated/lib/volcano-generated/api/auth_admin_api.rb +2 -2
  16. data/lib/volcano/generated/lib/volcano-generated/api/auth_configuration_api.rb +2 -2
  17. data/lib/volcano/generated/lib/volcano-generated/api/autofix_api.rb +222 -0
  18. data/lib/volcano/generated/lib/volcano-generated/api/durable_functions_api.rb +725 -0
  19. data/lib/volcano/generated/lib/volcano-generated/api/frontends_api.rb +2 -2
  20. data/lib/volcano/generated/lib/volcano-generated/api/issues_api.rb +254 -0
  21. data/lib/volcano/generated/lib/volcano-generated/api/sandboxes_api.rb +20 -20
  22. data/lib/volcano/generated/lib/volcano-generated/api/system_api.rb +57 -0
  23. data/lib/volcano/generated/lib/volcano-generated/api/variable_environments_api.rb +373 -0
  24. data/lib/volcano/generated/lib/volcano-generated/api/verified_domains_api.rb +2 -2
  25. data/lib/volcano/generated/lib/volcano-generated/models/auth_config.rb +46 -4
  26. data/lib/volcano/generated/lib/volcano-generated/models/auth_insights_series_point.rb +110 -2
  27. data/lib/volcano/generated/lib/volcano-generated/models/autofix_model.rb +45 -0
  28. data/lib/volcano/generated/lib/volcano-generated/models/autofix_provider.rb +40 -0
  29. data/lib/volcano/generated/lib/volcano-generated/models/autofix_settings.rb +385 -0
  30. data/lib/volcano/generated/lib/volcano-generated/models/autofix_stage.rb +40 -0
  31. data/lib/volcano/generated/lib/volcano-generated/models/capability.rb +214 -0
  32. data/lib/volcano/generated/lib/volcano-generated/models/capability_list.rb +166 -0
  33. data/lib/volcano/generated/lib/volcano-generated/models/capability_status.rb +40 -0
  34. data/lib/volcano/generated/lib/volcano-generated/models/create_sandbox_session_request.rb +16 -53
  35. data/lib/volcano/generated/lib/volcano-generated/models/create_variable_environment_request.rb +176 -0
  36. data/lib/volcano/generated/lib/volcano-generated/models/durable_execution.rb +14 -4
  37. data/lib/volcano/generated/lib/volcano-generated/models/durable_message.rb +396 -0
  38. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_direction.rb +40 -0
  39. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_list.rb +194 -0
  40. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_sender.rb +203 -0
  41. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_session_registration.rb +165 -0
  42. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_status.rb +43 -0
  43. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_wait.rb +278 -0
  44. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_wait_list.rb +167 -0
  45. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_wait_registration.rb +225 -0
  46. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_wait_status.rb +43 -0
  47. data/lib/volcano/generated/lib/volcano-generated/models/frontend.rb +11 -1
  48. data/lib/volcano/generated/lib/volcano-generated/models/frontend_custom_domain_conflict_error.rb +1 -1
  49. data/lib/volcano/generated/lib/volcano-generated/models/frontend_custom_domain_response.rb +25 -2
  50. data/lib/volcano/generated/lib/volcano-generated/models/issue.rb +493 -0
  51. data/lib/volcano/generated/lib/volcano-generated/models/issue_status.rb +41 -0
  52. data/lib/volcano/generated/lib/volcano-generated/models/metric_usage_data.rb +1 -1
  53. data/lib/volcano/generated/lib/volcano-generated/models/open_durable_message_session_request.rb +228 -0
  54. data/lib/volcano/generated/lib/volcano-generated/models/paginated_issues.rb +230 -0
  55. data/lib/volcano/generated/lib/volcano-generated/models/project_config.rb +10 -1
  56. data/lib/volcano/generated/lib/volcano-generated/models/project_config_autofix.rb +206 -0
  57. data/lib/volcano/generated/lib/volcano-generated/models/project_config_custom_domain.rb +1 -1
  58. data/lib/volcano/generated/lib/volcano-generated/models/project_config_sandbox.rb +12 -50
  59. data/lib/volcano/generated/lib/volcano-generated/models/project_frontend_custom_domain.rb +25 -2
  60. data/lib/volcano/generated/lib/volcano-generated/models/publish_durable_message_request.rb +205 -0
  61. data/lib/volcano/generated/lib/volcano-generated/models/register_durable_message_wait_request.rb +284 -0
  62. data/lib/volcano/generated/lib/volcano-generated/models/rename_variable_environment_request.rb +176 -0
  63. data/lib/volcano/generated/lib/volcano-generated/models/request_durable_approval_request.rb +1 -1
  64. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_command_request.rb +11 -12
  65. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_execution_request.rb +51 -13
  66. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_session.rb +4 -30
  67. data/lib/volcano/generated/lib/volcano-generated/models/send_durable_message_request.rb +205 -0
  68. data/lib/volcano/generated/lib/volcano-generated/models/update_auth_config_request.rb +79 -1
  69. data/lib/volcano/generated/lib/volcano-generated/models/update_autofix_settings_request.rb +273 -0
  70. data/lib/volcano/generated/lib/volcano-generated/models/update_issue_request.rb +186 -0
  71. data/lib/volcano/generated/lib/volcano-generated/models/variable_environment.rb +325 -0
  72. data/lib/volcano/generated/lib/volcano-generated/models/variable_environment_list.rb +175 -0
  73. data/lib/volcano/generated/lib/volcano-generated.rb +34 -0
  74. data/lib/volcano/generated_transport.rb +1 -0
  75. data/lib/volcano/generated_transport_durable_messages.rb +57 -0
  76. data/lib/volcano/realtime/channel_callbacks.rb +5 -1
  77. data/lib/volcano/realtime/channel_lifecycle.rb +4 -1
  78. data/lib/volcano/realtime/durable_channel.rb +47 -0
  79. data/lib/volcano/realtime/lifecycle.rb +37 -1
  80. data/lib/volcano/realtime/protocol.rb +7 -3
  81. data/lib/volcano/realtime/protocol_dispatch.rb +1 -1
  82. data/lib/volcano/realtime/protocol_io.rb +7 -4
  83. data/lib/volcano/realtime/protocol_lifecycle.rb +7 -0
  84. data/lib/volcano/realtime/protocol_recovery.rb +23 -12
  85. data/lib/volcano/realtime.rb +42 -8
  86. data/lib/volcano/redaction.rb +1 -1
  87. data/lib/volcano/version.rb +1 -1
  88. data/lib/volcano.rb +8 -0
  89. data/sig/core_facades.rbs +15 -0
  90. data/sig/durable_message_records.rbs +68 -0
  91. data/sig/durable_records.rbs +17 -9
  92. metadata +46 -1
@@ -16,7 +16,7 @@ require 'time'
16
16
  module Volcano::Generated
17
17
  # Usage data for one metric across totals, daily, and hourly windows.
18
18
  class MetricUsageData < ApiModelBase
19
- # Metric name (for example, \"Function & Frontend Invocations\", \"Frontend Requests\", \"Durable Executions\", \"Durable Operations\", \"Durable Compute (MB-Seconds)\", \"Build Seconds\", \"Bandwidth Ingress (Bytes)\", \"Bandwidth Egress (Bytes)\", \"Bandwidth Total (Bytes)\", or \"Database Storage (Bytes)\"). Byte-based metrics are reported in bytes. \"Bandwidth Total (Bytes)\" is derived (ingress + egress) and is not billed separately. The three durable metrics are counted separately from \"Function & Frontend Invocations\", which covers standard invocations only. Operations and compute are counted when an execution finishes, so they appear in the window the execution completed in rather than the one it started in. \"Durable Compute (MB-Seconds)\" reports the memory the execution ran at times the time it spent running, in megabyte-seconds; the allowance for it is published in gigabyte-seconds, which is 1024 of these. \"Sandbox Running (MiB-Seconds)\", \"Sandbox Suspended (Seconds)\", and \"Sandbox Uncertain (MiB-Seconds)\" are preview-only usage; they do not debit credits. Running reports configured memory times observed runtime, not measured CPU or elastic memory consumption. Uncertain includes observation gaps and unconfirmed state transitions. Suspended reports duration, not snapshot size. Local sessions do not contribute. Totals are rounded down after aggregating millisecond measurements. \"Database Storage (Bytes)\" is a current observed gauge, not a cumulative counter. It is the sum of the latest samples exposed as `storage_bytes` by the project's database list, so it includes what each database's branches and backups hold, and it inherits that field's lag behind a live measurement.
19
+ # Metric name (for example, \"Function & Frontend Invocations\", \"Frontend Requests\", \"Durable Executions\", \"Durable Operations\", \"Durable Compute (MB-Seconds)\", \"Build Seconds\", \"Bandwidth Ingress (Bytes)\", \"Bandwidth Egress (Bytes)\", \"Bandwidth Total (Bytes)\", or \"Database Storage (Bytes)\"). Byte-based metrics are reported in bytes. \"Bandwidth Total (Bytes)\" is derived (ingress + egress) and is not billed separately. The three durable metrics are counted separately from \"Function & Frontend Invocations\", which covers standard invocations only. Operations and compute are counted when an execution finishes, so they appear in the window the execution completed in rather than the one it started in. \"Durable Compute (MB-Seconds)\" reports the memory the execution ran at times the time it spent running, in megabyte-seconds; the allowance for it is published in gigabyte-seconds, which is 1024 of these. \"Sandbox Running (MiB-Seconds)\", \"Sandbox Suspended (Seconds)\", and \"Sandbox Uncertain (MiB-Seconds)\" report cloud Sandbox usage. Running reports configured baseline memory times confirmed runtime, not measured CPU or elastic memory consumption. For sessions admitted after the pricing release, confirmed running time consumes the account's runtime allowance; SUPERAGENT overage debits credits according to the account's pricing terms. Suspended time and uncertain usage do not consume runtime allowance or debit credits. Uncertain includes observation gaps and unconfirmed state transitions. Suspended reports duration, not snapshot size; snapshot costs are included in runtime pricing. Local and platform image-validation sessions do not contribute. Existing preview sessions remain unbilled, and preview history is never charged retroactively. Displayed totals are rounded down after aggregating millisecond measurements; billing uses unrounded measurements in the monthly account billing cycle. \"Database Storage (Bytes)\" is a current observed gauge, not a cumulative counter. It is the sum of the latest samples exposed as `storage_bytes` by the project's database list, so it includes what each database's branches and backups hold, and it inherits that field's lag behind a live measurement.
20
20
  attr_accessor :metric
21
21
 
22
22
  # Total usage for the current usage month
@@ -0,0 +1,228 @@
1
+ =begin
2
+ #Volcano API
3
+
4
+ #Public API for Volcano 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 OpenDurableMessageSessionRequest < ApiModelBase
18
+ # Opaque reference to the running execution, supplied by the SDK.
19
+ attr_accessor :execution_ref
20
+
21
+ # Opaque session reference, supplied by the SDK.
22
+ attr_accessor :callback_id
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'execution_ref' => :'execution_ref',
28
+ :'callback_id' => :'callback_id'
29
+ }
30
+ end
31
+
32
+ # Returns attribute mapping this model knows about
33
+ def self.acceptable_attribute_map
34
+ attribute_map
35
+ end
36
+
37
+ # Returns all the JSON keys this model knows about
38
+ def self.acceptable_attributes
39
+ acceptable_attribute_map.values
40
+ end
41
+
42
+ # Attribute type mapping.
43
+ def self.openapi_types
44
+ {
45
+ :'execution_ref' => :'String',
46
+ :'callback_id' => :'String'
47
+ }
48
+ end
49
+
50
+ # List of attributes with nullable: true
51
+ def self.openapi_nullable
52
+ Set.new([
53
+ ])
54
+ end
55
+
56
+ # Initializes the object
57
+ # @param [Hash] attributes Model attributes in the form of hash
58
+ def initialize(attributes = {})
59
+ if (!attributes.is_a?(Hash))
60
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Volcano::Generated::OpenDurableMessageSessionRequest` initialize method"
61
+ end
62
+
63
+ # check to see if the attribute exists and convert string to symbol for hash key
64
+ acceptable_attribute_map = self.class.acceptable_attribute_map
65
+ attributes = attributes.each_with_object({}) { |(k, v), h|
66
+ if (!acceptable_attribute_map.key?(k.to_sym))
67
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Volcano::Generated::OpenDurableMessageSessionRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
68
+ end
69
+ h[k.to_sym] = v
70
+ }
71
+
72
+ if attributes.key?(:'execution_ref')
73
+ self.execution_ref = attributes[:'execution_ref']
74
+ else
75
+ self.execution_ref = nil
76
+ end
77
+
78
+ if attributes.key?(:'callback_id')
79
+ self.callback_id = attributes[:'callback_id']
80
+ else
81
+ self.callback_id = nil
82
+ end
83
+ end
84
+
85
+ # Show invalid properties with the reasons. Usually used together with valid?
86
+ # @return Array for valid properties with the reasons
87
+ def list_invalid_properties
88
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
89
+ invalid_properties = Array.new
90
+ if @execution_ref.nil?
91
+ invalid_properties.push('invalid value for "execution_ref", execution_ref cannot be nil.')
92
+ end
93
+
94
+ if @execution_ref.to_s.length > 2048
95
+ invalid_properties.push('invalid value for "execution_ref", the character length must be smaller than or equal to 2048.')
96
+ end
97
+
98
+ if @execution_ref.to_s.length < 1
99
+ invalid_properties.push('invalid value for "execution_ref", the character length must be greater than or equal to 1.')
100
+ end
101
+
102
+ if @callback_id.nil?
103
+ invalid_properties.push('invalid value for "callback_id", callback_id cannot be nil.')
104
+ end
105
+
106
+ if @callback_id.to_s.length > 1024
107
+ invalid_properties.push('invalid value for "callback_id", the character length must be smaller than or equal to 1024.')
108
+ end
109
+
110
+ if @callback_id.to_s.length < 1
111
+ invalid_properties.push('invalid value for "callback_id", the character length must be greater than or equal to 1.')
112
+ end
113
+
114
+ invalid_properties
115
+ end
116
+
117
+ # Check to see if the all the properties in the model are valid
118
+ # @return true if the model is valid
119
+ def valid?
120
+ warn '[DEPRECATED] the `valid?` method is obsolete'
121
+ return false if @execution_ref.nil?
122
+ return false if @execution_ref.to_s.length > 2048
123
+ return false if @execution_ref.to_s.length < 1
124
+ return false if @callback_id.nil?
125
+ return false if @callback_id.to_s.length > 1024
126
+ return false if @callback_id.to_s.length < 1
127
+ true
128
+ end
129
+
130
+ # Custom attribute writer method with validation
131
+ # @param [Object] execution_ref Value to be assigned
132
+ def execution_ref=(execution_ref)
133
+ if execution_ref.nil?
134
+ fail ArgumentError, 'execution_ref cannot be nil'
135
+ end
136
+
137
+ if execution_ref.to_s.length > 2048
138
+ fail ArgumentError, 'invalid value for "execution_ref", the character length must be smaller than or equal to 2048.'
139
+ end
140
+
141
+ if execution_ref.to_s.length < 1
142
+ fail ArgumentError, 'invalid value for "execution_ref", the character length must be greater than or equal to 1.'
143
+ end
144
+
145
+ @execution_ref = execution_ref
146
+ end
147
+
148
+ # Custom attribute writer method with validation
149
+ # @param [Object] callback_id Value to be assigned
150
+ def callback_id=(callback_id)
151
+ if callback_id.nil?
152
+ fail ArgumentError, 'callback_id cannot be nil'
153
+ end
154
+
155
+ if callback_id.to_s.length > 1024
156
+ fail ArgumentError, 'invalid value for "callback_id", the character length must be smaller than or equal to 1024.'
157
+ end
158
+
159
+ if callback_id.to_s.length < 1
160
+ fail ArgumentError, 'invalid value for "callback_id", the character length must be greater than or equal to 1.'
161
+ end
162
+
163
+ @callback_id = callback_id
164
+ end
165
+
166
+ # Checks equality by comparing each attribute.
167
+ # @param [Object] Object to be compared
168
+ def ==(o)
169
+ return true if self.equal?(o)
170
+ self.class == o.class &&
171
+ execution_ref == o.execution_ref &&
172
+ callback_id == o.callback_id
173
+ end
174
+
175
+ # @see the `==` method
176
+ # @param [Object] Object to be compared
177
+ def eql?(o)
178
+ self == o
179
+ end
180
+
181
+ # Calculates hash code according to all attributes.
182
+ # @return [Integer] Hash code
183
+ def hash
184
+ [execution_ref, callback_id].hash
185
+ end
186
+
187
+ # Builds the object from hash
188
+ # @param [Hash] attributes Model attributes in the form of hash
189
+ # @return [Object] Returns the model itself
190
+ def self.build_from_hash(attributes)
191
+ return nil unless attributes.is_a?(Hash)
192
+ attributes = attributes.transform_keys(&:to_sym)
193
+ transformed_hash = {}
194
+ openapi_types.each_pair do |key, type|
195
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
196
+ transformed_hash["#{key}"] = nil
197
+ elsif type =~ /\AArray<(.*)>/i
198
+ # check to ensure the input is an array given that the attribute
199
+ # is documented as an array but the input is not
200
+ if attributes[attribute_map[key]].is_a?(Array)
201
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
202
+ end
203
+ elsif !attributes[attribute_map[key]].nil?
204
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
205
+ end
206
+ end
207
+ new(transformed_hash)
208
+ end
209
+
210
+ # Returns the object in the form of hash
211
+ # @return [Hash] Returns the object in the form of hash
212
+ def to_hash
213
+ hash = {}
214
+ self.class.attribute_map.each_pair do |attr, param|
215
+ value = self.send(attr)
216
+ if value.nil?
217
+ is_nullable = self.class.openapi_nullable.include?(attr)
218
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
219
+ end
220
+
221
+ hash[param] = _to_hash(value)
222
+ end
223
+ hash
224
+ end
225
+
226
+ end
227
+
228
+ end
@@ -0,0 +1,230 @@
1
+ =begin
2
+ #Volcano API
3
+
4
+ #Public API for Volcano 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 PaginatedIssues < ApiModelBase
18
+ attr_accessor :data
19
+
20
+ # Number of items per page
21
+ attr_accessor :limit
22
+
23
+ # Whether a next page exists
24
+ attr_accessor :has_more
25
+
26
+ # Opaque cursor for the next page (present if has_more is true)
27
+ attr_accessor :next_cursor
28
+
29
+ # Attribute mapping from ruby-style variable name to JSON key.
30
+ def self.attribute_map
31
+ {
32
+ :'data' => :'data',
33
+ :'limit' => :'limit',
34
+ :'has_more' => :'has_more',
35
+ :'next_cursor' => :'next_cursor'
36
+ }
37
+ end
38
+
39
+ # Returns attribute mapping this model knows about
40
+ def self.acceptable_attribute_map
41
+ attribute_map
42
+ end
43
+
44
+ # Returns all the JSON keys this model knows about
45
+ def self.acceptable_attributes
46
+ acceptable_attribute_map.values
47
+ end
48
+
49
+ # Attribute type mapping.
50
+ def self.openapi_types
51
+ {
52
+ :'data' => :'Array<Issue>',
53
+ :'limit' => :'Integer',
54
+ :'has_more' => :'Boolean',
55
+ :'next_cursor' => :'String'
56
+ }
57
+ end
58
+
59
+ # List of attributes with nullable: true
60
+ def self.openapi_nullable
61
+ Set.new([
62
+ ])
63
+ end
64
+
65
+ # Initializes the object
66
+ # @param [Hash] attributes Model attributes in the form of hash
67
+ def initialize(attributes = {})
68
+ if (!attributes.is_a?(Hash))
69
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Volcano::Generated::PaginatedIssues` initialize method"
70
+ end
71
+
72
+ # check to see if the attribute exists and convert string to symbol for hash key
73
+ acceptable_attribute_map = self.class.acceptable_attribute_map
74
+ attributes = attributes.each_with_object({}) { |(k, v), h|
75
+ if (!acceptable_attribute_map.key?(k.to_sym))
76
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Volcano::Generated::PaginatedIssues`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
77
+ end
78
+ h[k.to_sym] = v
79
+ }
80
+
81
+ if attributes.key?(:'data')
82
+ if (value = attributes[:'data']).is_a?(Array)
83
+ self.data = value
84
+ end
85
+ else
86
+ self.data = nil
87
+ end
88
+
89
+ if attributes.key?(:'limit')
90
+ self.limit = attributes[:'limit']
91
+ else
92
+ self.limit = nil
93
+ end
94
+
95
+ if attributes.key?(:'has_more')
96
+ self.has_more = attributes[:'has_more']
97
+ else
98
+ self.has_more = nil
99
+ end
100
+
101
+ if attributes.key?(:'next_cursor')
102
+ self.next_cursor = attributes[:'next_cursor']
103
+ end
104
+ end
105
+
106
+ # Show invalid properties with the reasons. Usually used together with valid?
107
+ # @return Array for valid properties with the reasons
108
+ def list_invalid_properties
109
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
110
+ invalid_properties = Array.new
111
+ if @data.nil?
112
+ invalid_properties.push('invalid value for "data", data cannot be nil.')
113
+ end
114
+
115
+ if @limit.nil?
116
+ invalid_properties.push('invalid value for "limit", limit cannot be nil.')
117
+ end
118
+
119
+ if @has_more.nil?
120
+ invalid_properties.push('invalid value for "has_more", has_more cannot be nil.')
121
+ end
122
+
123
+ invalid_properties
124
+ end
125
+
126
+ # Check to see if the all the properties in the model are valid
127
+ # @return true if the model is valid
128
+ def valid?
129
+ warn '[DEPRECATED] the `valid?` method is obsolete'
130
+ return false if @data.nil?
131
+ return false if @limit.nil?
132
+ return false if @has_more.nil?
133
+ true
134
+ end
135
+
136
+ # Custom attribute writer method with validation
137
+ # @param [Object] data Value to be assigned
138
+ def data=(data)
139
+ if data.nil?
140
+ fail ArgumentError, 'data cannot be nil'
141
+ end
142
+
143
+ @data = data
144
+ end
145
+
146
+ # Custom attribute writer method with validation
147
+ # @param [Object] limit Value to be assigned
148
+ def limit=(limit)
149
+ if limit.nil?
150
+ fail ArgumentError, 'limit cannot be nil'
151
+ end
152
+
153
+ @limit = limit
154
+ end
155
+
156
+ # Custom attribute writer method with validation
157
+ # @param [Object] has_more Value to be assigned
158
+ def has_more=(has_more)
159
+ if has_more.nil?
160
+ fail ArgumentError, 'has_more cannot be nil'
161
+ end
162
+
163
+ @has_more = has_more
164
+ end
165
+
166
+ # Checks equality by comparing each attribute.
167
+ # @param [Object] Object to be compared
168
+ def ==(o)
169
+ return true if self.equal?(o)
170
+ self.class == o.class &&
171
+ data == o.data &&
172
+ limit == o.limit &&
173
+ has_more == o.has_more &&
174
+ next_cursor == o.next_cursor
175
+ end
176
+
177
+ # @see the `==` method
178
+ # @param [Object] Object to be compared
179
+ def eql?(o)
180
+ self == o
181
+ end
182
+
183
+ # Calculates hash code according to all attributes.
184
+ # @return [Integer] Hash code
185
+ def hash
186
+ [data, limit, has_more, next_cursor].hash
187
+ end
188
+
189
+ # Builds the object from hash
190
+ # @param [Hash] attributes Model attributes in the form of hash
191
+ # @return [Object] Returns the model itself
192
+ def self.build_from_hash(attributes)
193
+ return nil unless attributes.is_a?(Hash)
194
+ attributes = attributes.transform_keys(&:to_sym)
195
+ transformed_hash = {}
196
+ openapi_types.each_pair do |key, type|
197
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
198
+ transformed_hash["#{key}"] = nil
199
+ elsif type =~ /\AArray<(.*)>/i
200
+ # check to ensure the input is an array given that the attribute
201
+ # is documented as an array but the input is not
202
+ if attributes[attribute_map[key]].is_a?(Array)
203
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
204
+ end
205
+ elsif !attributes[attribute_map[key]].nil?
206
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
207
+ end
208
+ end
209
+ new(transformed_hash)
210
+ end
211
+
212
+ # Returns the object in the form of hash
213
+ # @return [Hash] Returns the object in the form of hash
214
+ def to_hash
215
+ hash = {}
216
+ self.class.attribute_map.each_pair do |attr, param|
217
+ value = self.send(attr)
218
+ if value.nil?
219
+ is_nullable = self.class.openapi_nullable.include?(attr)
220
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
221
+ end
222
+
223
+ hash[param] = _to_hash(value)
224
+ end
225
+ hash
226
+ end
227
+
228
+ end
229
+
230
+ end
@@ -36,6 +36,8 @@ module Volcano::Generated
36
36
 
37
37
  attr_accessor :realtime
38
38
 
39
+ attr_accessor :autofix
40
+
39
41
  attr_accessor :auth
40
42
 
41
43
  attr_accessor :functions
@@ -78,6 +80,7 @@ module Volcano::Generated
78
80
  :'variables' => :'variables',
79
81
  :'buckets' => :'buckets',
80
82
  :'realtime' => :'realtime',
83
+ :'autofix' => :'autofix',
81
84
  :'auth' => :'auth',
82
85
  :'functions' => :'functions',
83
86
  :'frontends' => :'frontends',
@@ -106,6 +109,7 @@ module Volcano::Generated
106
109
  :'variables' => :'Array<ProjectConfigVariable>',
107
110
  :'buckets' => :'Array<ProjectConfigBucket>',
108
111
  :'realtime' => :'ProjectConfigRealtime',
112
+ :'autofix' => :'ProjectConfigAutofix',
109
113
  :'auth' => :'ProjectConfigAuth',
110
114
  :'functions' => :'Array<ProjectConfigFunction>',
111
115
  :'frontends' => :'Array<ProjectConfigFrontend>',
@@ -179,6 +183,10 @@ module Volcano::Generated
179
183
  self.realtime = attributes[:'realtime']
180
184
  end
181
185
 
186
+ if attributes.key?(:'autofix')
187
+ self.autofix = attributes[:'autofix']
188
+ end
189
+
182
190
  if attributes.key?(:'auth')
183
191
  self.auth = attributes[:'auth']
184
192
  end
@@ -267,6 +275,7 @@ module Volcano::Generated
267
275
  variables == o.variables &&
268
276
  buckets == o.buckets &&
269
277
  realtime == o.realtime &&
278
+ autofix == o.autofix &&
270
279
  auth == o.auth &&
271
280
  functions == o.functions &&
272
281
  frontends == o.frontends &&
@@ -282,7 +291,7 @@ module Volcano::Generated
282
291
  # Calculates hash code according to all attributes.
283
292
  # @return [Integer] Hash code
284
293
  def hash
285
- [version, project, databases, shared_variables, frontend_shared_variables, variables, buckets, realtime, auth, functions, frontends, sandboxes].hash
294
+ [version, project, databases, shared_variables, frontend_shared_variables, variables, buckets, realtime, autofix, auth, functions, frontends, sandboxes].hash
286
295
  end
287
296
 
288
297
  # Builds the object from hash