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
@@ -0,0 +1,206 @@
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
+ # AI diagnosis and fix settings. Omitted fields keep their current value. Your API key is never part of the manifest, and an apply never sets or deletes it: set it with `PUT /projects/{id}/autofix` before turning on a provider that runs on your own key.
18
+ class ProjectConfigAutofix < ApiModelBase
19
+ attr_accessor :enabled
20
+
21
+ attr_accessor :max_stage
22
+
23
+ attr_accessor :auto_trigger
24
+
25
+ attr_accessor :provider
26
+
27
+ attr_accessor :model
28
+
29
+ class EnumAttributeValidator
30
+ attr_reader :datatype
31
+ attr_reader :allowable_values
32
+
33
+ def initialize(datatype, allowable_values)
34
+ @allowable_values = allowable_values.map do |value|
35
+ case datatype.to_s
36
+ when /Integer/i
37
+ value.to_i
38
+ when /Float/i
39
+ value.to_f
40
+ else
41
+ value
42
+ end
43
+ end
44
+ end
45
+
46
+ def valid?(value)
47
+ !value || allowable_values.include?(value)
48
+ end
49
+ end
50
+
51
+ # Attribute mapping from ruby-style variable name to JSON key.
52
+ def self.attribute_map
53
+ {
54
+ :'enabled' => :'enabled',
55
+ :'max_stage' => :'max_stage',
56
+ :'auto_trigger' => :'auto_trigger',
57
+ :'provider' => :'provider',
58
+ :'model' => :'model'
59
+ }
60
+ end
61
+
62
+ # Returns attribute mapping this model knows about
63
+ def self.acceptable_attribute_map
64
+ attribute_map
65
+ end
66
+
67
+ # Returns all the JSON keys this model knows about
68
+ def self.acceptable_attributes
69
+ acceptable_attribute_map.values
70
+ end
71
+
72
+ # Attribute type mapping.
73
+ def self.openapi_types
74
+ {
75
+ :'enabled' => :'Boolean',
76
+ :'max_stage' => :'AutofixStage',
77
+ :'auto_trigger' => :'Boolean',
78
+ :'provider' => :'AutofixProvider',
79
+ :'model' => :'AutofixModel'
80
+ }
81
+ end
82
+
83
+ # List of attributes with nullable: true
84
+ def self.openapi_nullable
85
+ Set.new([
86
+ ])
87
+ end
88
+
89
+ # Initializes the object
90
+ # @param [Hash] attributes Model attributes in the form of hash
91
+ def initialize(attributes = {})
92
+ if (!attributes.is_a?(Hash))
93
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Volcano::Generated::ProjectConfigAutofix` initialize method"
94
+ end
95
+
96
+ # check to see if the attribute exists and convert string to symbol for hash key
97
+ acceptable_attribute_map = self.class.acceptable_attribute_map
98
+ attributes = attributes.each_with_object({}) { |(k, v), h|
99
+ if (!acceptable_attribute_map.key?(k.to_sym))
100
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Volcano::Generated::ProjectConfigAutofix`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
101
+ end
102
+ h[k.to_sym] = v
103
+ }
104
+
105
+ if attributes.key?(:'enabled')
106
+ self.enabled = attributes[:'enabled']
107
+ end
108
+
109
+ if attributes.key?(:'max_stage')
110
+ self.max_stage = attributes[:'max_stage']
111
+ end
112
+
113
+ if attributes.key?(:'auto_trigger')
114
+ self.auto_trigger = attributes[:'auto_trigger']
115
+ end
116
+
117
+ if attributes.key?(:'provider')
118
+ self.provider = attributes[:'provider']
119
+ end
120
+
121
+ if attributes.key?(:'model')
122
+ self.model = attributes[:'model']
123
+ end
124
+ end
125
+
126
+ # Show invalid properties with the reasons. Usually used together with valid?
127
+ # @return Array for valid properties with the reasons
128
+ def list_invalid_properties
129
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
130
+ invalid_properties = Array.new
131
+ invalid_properties
132
+ end
133
+
134
+ # Check to see if the all the properties in the model are valid
135
+ # @return true if the model is valid
136
+ def valid?
137
+ warn '[DEPRECATED] the `valid?` method is obsolete'
138
+ true
139
+ end
140
+
141
+ # Checks equality by comparing each attribute.
142
+ # @param [Object] Object to be compared
143
+ def ==(o)
144
+ return true if self.equal?(o)
145
+ self.class == o.class &&
146
+ enabled == o.enabled &&
147
+ max_stage == o.max_stage &&
148
+ auto_trigger == o.auto_trigger &&
149
+ provider == o.provider &&
150
+ model == o.model
151
+ end
152
+
153
+ # @see the `==` method
154
+ # @param [Object] Object to be compared
155
+ def eql?(o)
156
+ self == o
157
+ end
158
+
159
+ # Calculates hash code according to all attributes.
160
+ # @return [Integer] Hash code
161
+ def hash
162
+ [enabled, max_stage, auto_trigger, provider, model].hash
163
+ end
164
+
165
+ # Builds the object from hash
166
+ # @param [Hash] attributes Model attributes in the form of hash
167
+ # @return [Object] Returns the model itself
168
+ def self.build_from_hash(attributes)
169
+ return nil unless attributes.is_a?(Hash)
170
+ attributes = attributes.transform_keys(&:to_sym)
171
+ transformed_hash = {}
172
+ openapi_types.each_pair do |key, type|
173
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
174
+ transformed_hash["#{key}"] = nil
175
+ elsif type =~ /\AArray<(.*)>/i
176
+ # check to ensure the input is an array given that the attribute
177
+ # is documented as an array but the input is not
178
+ if attributes[attribute_map[key]].is_a?(Array)
179
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
180
+ end
181
+ elsif !attributes[attribute_map[key]].nil?
182
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
183
+ end
184
+ end
185
+ new(transformed_hash)
186
+ end
187
+
188
+ # Returns the object in the form of hash
189
+ # @return [Hash] Returns the object in the form of hash
190
+ def to_hash
191
+ hash = {}
192
+ self.class.attribute_map.each_pair do |attr, param|
193
+ value = self.send(attr)
194
+ if value.nil?
195
+ is_nullable = self.class.openapi_nullable.include?(attr)
196
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
197
+ end
198
+
199
+ hash[param] = _to_hash(value)
200
+ end
201
+ hash
202
+ end
203
+
204
+ end
205
+
206
+ end
@@ -14,7 +14,7 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Volcano::Generated
17
- # Custom domain with managed or BYOC TLS. `tls` is required when the domain is first created and optional afterwards. For an existing domain, omitting `tls` or sending only `tls.mode` keeps the stored certificate; new BYOC material for the same domain rotates the certificate in place (zero downtime). Changing `tls.mode` for the same hostname, or the hostname of a managed domain, requires deleting the domain first. BYOC TLS material is write-only; exports render only `tls.mode`.
17
+ # Custom domain with managed or BYOC TLS. `tls` is required when the domain is first created and optional afterwards. For an existing domain, omitting `tls` or sending only `tls.mode` keeps the stored certificate; new BYOC material for the same domain rotates the certificate in place (zero downtime). Changing `tls.mode` for the same hostname switches an active domain in place (zero downtime); a domain that is not yet active, or a managed domain changing hostname, must be deleted first. BYOC TLS material is write-only; exports render only `tls.mode`.
18
18
  class ProjectConfigCustomDomain < ApiModelBase
19
19
  # Fully-qualified domain name (hostname only, no scheme/path). Managed TLS (`tls.mode: managed`) accepts at most 219 characters; BYOC accepts 253.
20
20
  attr_accessor :domain
@@ -24,10 +24,7 @@ module Volcano::Generated
24
24
  # Service readiness ports; config apply asserts them and Git deploy builds them.
25
25
  attr_accessor :ports
26
26
 
27
- # Default idle timeout for new sessions when the caller omits it.
28
- attr_accessor :idle_timeout_seconds
29
-
30
- # Default absolute lifetime for new sessions when the caller omits it.
27
+ # Default absolute lifetime for new sessions when the caller omits it. Cloud templates accept 30–28800 seconds; inherited lifetimes are clamped to the session plan limit (3600 for HOBBY, 28800 for SUPERAGENT). Local accepts 0 for unlimited or a positive lifetime.
31
28
  attr_accessor :ttl_seconds
32
29
 
33
30
  class EnumAttributeValidator
@@ -58,7 +55,6 @@ module Volcano::Generated
58
55
  :'name' => :'name',
59
56
  :'memory_mb' => :'memory_mb',
60
57
  :'ports' => :'ports',
61
- :'idle_timeout_seconds' => :'idle_timeout_seconds',
62
58
  :'ttl_seconds' => :'ttl_seconds'
63
59
  }
64
60
  end
@@ -79,7 +75,6 @@ module Volcano::Generated
79
75
  :'name' => :'String',
80
76
  :'memory_mb' => :'Integer',
81
77
  :'ports' => :'Array<Integer>',
82
- :'idle_timeout_seconds' => :'Integer',
83
78
  :'ttl_seconds' => :'Integer'
84
79
  }
85
80
  end
@@ -122,10 +117,6 @@ module Volcano::Generated
122
117
  end
123
118
  end
124
119
 
125
- if attributes.key?(:'idle_timeout_seconds')
126
- self.idle_timeout_seconds = attributes[:'idle_timeout_seconds']
127
- end
128
-
129
120
  if attributes.key?(:'ttl_seconds')
130
121
  self.ttl_seconds = attributes[:'ttl_seconds']
131
122
  end
@@ -149,20 +140,12 @@ module Volcano::Generated
149
140
  invalid_properties.push('invalid value for "ports", number of items must be less than or equal to 16.')
150
141
  end
151
142
 
152
- if !@idle_timeout_seconds.nil? && @idle_timeout_seconds > 28800
153
- invalid_properties.push('invalid value for "idle_timeout_seconds", must be smaller than or equal to 28800.')
154
- end
155
-
156
- if !@idle_timeout_seconds.nil? && @idle_timeout_seconds < 0
157
- invalid_properties.push('invalid value for "idle_timeout_seconds", must be greater than or equal to 0.')
158
- end
159
-
160
- if !@ttl_seconds.nil? && @ttl_seconds > 28800
161
- invalid_properties.push('invalid value for "ttl_seconds", must be smaller than or equal to 28800.')
143
+ if !@ttl_seconds.nil? && @ttl_seconds > 2147483647
144
+ invalid_properties.push('invalid value for "ttl_seconds", must be smaller than or equal to 2147483647.')
162
145
  end
163
146
 
164
- if !@ttl_seconds.nil? && @ttl_seconds < 30
165
- invalid_properties.push('invalid value for "ttl_seconds", must be greater than or equal to 30.')
147
+ if !@ttl_seconds.nil? && @ttl_seconds < 0
148
+ invalid_properties.push('invalid value for "ttl_seconds", must be greater than or equal to 0.')
166
149
  end
167
150
 
168
151
  invalid_properties
@@ -177,10 +160,8 @@ module Volcano::Generated
177
160
  memory_mb_validator = EnumAttributeValidator.new('Integer', [1024, 2048])
178
161
  return false unless memory_mb_validator.valid?(@memory_mb)
179
162
  return false if !@ports.nil? && @ports.length > 16
180
- return false if !@idle_timeout_seconds.nil? && @idle_timeout_seconds > 28800
181
- return false if !@idle_timeout_seconds.nil? && @idle_timeout_seconds < 0
182
- return false if !@ttl_seconds.nil? && @ttl_seconds > 28800
183
- return false if !@ttl_seconds.nil? && @ttl_seconds < 30
163
+ return false if !@ttl_seconds.nil? && @ttl_seconds > 2147483647
164
+ return false if !@ttl_seconds.nil? && @ttl_seconds < 0
184
165
  true
185
166
  end
186
167
 
@@ -223,24 +204,6 @@ module Volcano::Generated
223
204
  @ports = ports
224
205
  end
225
206
 
226
- # Custom attribute writer method with validation
227
- # @param [Object] idle_timeout_seconds Value to be assigned
228
- def idle_timeout_seconds=(idle_timeout_seconds)
229
- if idle_timeout_seconds.nil?
230
- fail ArgumentError, 'idle_timeout_seconds cannot be nil'
231
- end
232
-
233
- if idle_timeout_seconds > 28800
234
- fail ArgumentError, 'invalid value for "idle_timeout_seconds", must be smaller than or equal to 28800.'
235
- end
236
-
237
- if idle_timeout_seconds < 0
238
- fail ArgumentError, 'invalid value for "idle_timeout_seconds", must be greater than or equal to 0.'
239
- end
240
-
241
- @idle_timeout_seconds = idle_timeout_seconds
242
- end
243
-
244
207
  # Custom attribute writer method with validation
245
208
  # @param [Object] ttl_seconds Value to be assigned
246
209
  def ttl_seconds=(ttl_seconds)
@@ -248,12 +211,12 @@ module Volcano::Generated
248
211
  fail ArgumentError, 'ttl_seconds cannot be nil'
249
212
  end
250
213
 
251
- if ttl_seconds > 28800
252
- fail ArgumentError, 'invalid value for "ttl_seconds", must be smaller than or equal to 28800.'
214
+ if ttl_seconds > 2147483647
215
+ fail ArgumentError, 'invalid value for "ttl_seconds", must be smaller than or equal to 2147483647.'
253
216
  end
254
217
 
255
- if ttl_seconds < 30
256
- fail ArgumentError, 'invalid value for "ttl_seconds", must be greater than or equal to 30.'
218
+ if ttl_seconds < 0
219
+ fail ArgumentError, 'invalid value for "ttl_seconds", must be greater than or equal to 0.'
257
220
  end
258
221
 
259
222
  @ttl_seconds = ttl_seconds
@@ -267,7 +230,6 @@ module Volcano::Generated
267
230
  name == o.name &&
268
231
  memory_mb == o.memory_mb &&
269
232
  ports == o.ports &&
270
- idle_timeout_seconds == o.idle_timeout_seconds &&
271
233
  ttl_seconds == o.ttl_seconds
272
234
  end
273
235
 
@@ -280,7 +242,7 @@ module Volcano::Generated
280
242
  # Calculates hash code according to all attributes.
281
243
  # @return [Integer] Hash code
282
244
  def hash
283
- [name, memory_mb, ports, idle_timeout_seconds, ttl_seconds].hash
245
+ [name, memory_mb, ports, ttl_seconds].hash
284
246
  end
285
247
 
286
248
  # Builds the object from hash
@@ -24,9 +24,13 @@ module Volcano::Generated
24
24
  # `verified`: the domain is served by a validated certificate. `pending`: it is not served yet, is being re-validated after its certificate material was withdrawn, or Volcano is retrying after a failure. `failed`: a failure left the domain unserved, alongside `domain_status: failed`; managed domains report the cause in `failure_reason`.
25
25
  attr_accessor :verification_status
26
26
 
27
- # Failure category, present only when managed TLS setup has failed. Current values are provider, certificate, ownership, and internal; ownership means another account has already claimed the hostname through ownership verification. Treat unrecognized values as internal.
27
+ # Certificate the domain serves, present only while it is active. `uploaded`: the BYOC certificate, including after the domain switched to managed TLS and until Volcano issues the managed one; `failure_reason` then reports an issuance failure. `managed`: a certificate Volcano issued.
28
+ attr_accessor :serving_certificate
29
+
30
+ # Failure category, present when managed TLS setup has failed, or when issuance is failing for a domain that switched to managed TLS and still serves its uploaded certificate. Current values are provider, certificate, ownership, and internal; ownership means another account has already claimed the hostname through ownership verification. Treat unrecognized values as internal.
28
31
  attr_accessor :failure_reason
29
32
 
33
+ # DNS records to publish now. For a managed domain whose hostname the account already owns, the create response names the `_acme-challenge` CNAME that authorizes certificate issuance and renewal. Otherwise it names the `_volcano` TXT record that proves ownership of the hostname's registrable domain, and reads return the CNAME once Volcano sees that record. Usually empty for BYOC.
30
34
  attr_accessor :verification_records
31
35
 
32
36
  # Deprecated and no longer returned. Use routing_target_hostname as the DNS routing target.
@@ -72,6 +76,7 @@ module Volcano::Generated
72
76
  :'tls_mode' => :'tls_mode',
73
77
  :'domain_status' => :'domain_status',
74
78
  :'verification_status' => :'verification_status',
79
+ :'serving_certificate' => :'serving_certificate',
75
80
  :'failure_reason' => :'failure_reason',
76
81
  :'verification_records' => :'verification_records',
77
82
  :'required_routing_record' => :'required_routing_record',
@@ -100,6 +105,7 @@ module Volcano::Generated
100
105
  :'tls_mode' => :'String',
101
106
  :'domain_status' => :'String',
102
107
  :'verification_status' => :'String',
108
+ :'serving_certificate' => :'String',
103
109
  :'failure_reason' => :'String',
104
110
  :'verification_records' => :'Array<FrontendDomainVerificationRecord>',
105
111
  :'required_routing_record' => :'FrontendDomainRoutingRecord',
@@ -164,6 +170,10 @@ module Volcano::Generated
164
170
  self.verification_status = nil
165
171
  end
166
172
 
173
+ if attributes.key?(:'serving_certificate')
174
+ self.serving_certificate = attributes[:'serving_certificate']
175
+ end
176
+
167
177
  if attributes.key?(:'failure_reason')
168
178
  self.failure_reason = attributes[:'failure_reason']
169
179
  end
@@ -263,6 +273,8 @@ module Volcano::Generated
263
273
  return false if @verification_status.nil?
264
274
  verification_status_validator = EnumAttributeValidator.new('String', ["pending", "verified", "failed"])
265
275
  return false unless verification_status_validator.valid?(@verification_status)
276
+ serving_certificate_validator = EnumAttributeValidator.new('String', ["uploaded", "managed"])
277
+ return false unless serving_certificate_validator.valid?(@serving_certificate)
266
278
  return false if @effective_urls.nil?
267
279
  return false if @created_at.nil?
268
280
  return false if @updated_at.nil?
@@ -310,6 +322,16 @@ module Volcano::Generated
310
322
  @verification_status = verification_status
311
323
  end
312
324
 
325
+ # Custom attribute writer method checking allowed values (enum).
326
+ # @param [Object] serving_certificate Object to be assigned
327
+ def serving_certificate=(serving_certificate)
328
+ validator = EnumAttributeValidator.new('String', ["uploaded", "managed"])
329
+ unless validator.valid?(serving_certificate)
330
+ fail ArgumentError, "invalid value for \"serving_certificate\", must be one of #{validator.allowable_values}."
331
+ end
332
+ @serving_certificate = serving_certificate
333
+ end
334
+
313
335
  # Custom attribute writer method with validation
314
336
  # @param [Object] effective_urls Value to be assigned
315
337
  def effective_urls=(effective_urls)
@@ -359,6 +381,7 @@ module Volcano::Generated
359
381
  tls_mode == o.tls_mode &&
360
382
  domain_status == o.domain_status &&
361
383
  verification_status == o.verification_status &&
384
+ serving_certificate == o.serving_certificate &&
362
385
  failure_reason == o.failure_reason &&
363
386
  verification_records == o.verification_records &&
364
387
  required_routing_record == o.required_routing_record &&
@@ -378,7 +401,7 @@ module Volcano::Generated
378
401
  # Calculates hash code according to all attributes.
379
402
  # @return [Integer] Hash code
380
403
  def hash
381
- [domain, tls_mode, domain_status, verification_status, failure_reason, verification_records, required_routing_record, routing_target_hostname, effective_urls, created_at, updated_at, frontend].hash
404
+ [domain, tls_mode, domain_status, verification_status, serving_certificate, failure_reason, verification_records, required_routing_record, routing_target_hostname, effective_urls, created_at, updated_at, frontend].hash
382
405
  end
383
406
 
384
407
  # Builds the object from hash
@@ -0,0 +1,205 @@
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 PublishDurableMessageRequest < ApiModelBase
18
+ # The name a workflow waits on or publishes under: up to 237 printable ASCII characters.
19
+ attr_accessor :name
20
+
21
+ # Any JSON value, up to 64 KiB. Omitted means null.
22
+ attr_accessor :data
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'name' => :'name',
28
+ :'data' => :'data'
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
+ :'name' => :'String',
46
+ :'data' => :'Object'
47
+ }
48
+ end
49
+
50
+ # List of attributes with nullable: true
51
+ def self.openapi_nullable
52
+ Set.new([
53
+ :'data'
54
+ ])
55
+ end
56
+
57
+ # Initializes the object
58
+ # @param [Hash] attributes Model attributes in the form of hash
59
+ def initialize(attributes = {})
60
+ if (!attributes.is_a?(Hash))
61
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Volcano::Generated::PublishDurableMessageRequest` initialize method"
62
+ end
63
+
64
+ # check to see if the attribute exists and convert string to symbol for hash key
65
+ acceptable_attribute_map = self.class.acceptable_attribute_map
66
+ attributes = attributes.each_with_object({}) { |(k, v), h|
67
+ if (!acceptable_attribute_map.key?(k.to_sym))
68
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Volcano::Generated::PublishDurableMessageRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
69
+ end
70
+ h[k.to_sym] = v
71
+ }
72
+
73
+ if attributes.key?(:'name')
74
+ self.name = attributes[:'name']
75
+ else
76
+ self.name = nil
77
+ end
78
+
79
+ if attributes.key?(:'data')
80
+ self.data = attributes[:'data']
81
+ end
82
+ end
83
+
84
+ # Show invalid properties with the reasons. Usually used together with valid?
85
+ # @return Array for valid properties with the reasons
86
+ def list_invalid_properties
87
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
88
+ invalid_properties = Array.new
89
+ if @name.nil?
90
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
91
+ end
92
+
93
+ if @name.to_s.length > 237
94
+ invalid_properties.push('invalid value for "name", the character length must be smaller than or equal to 237.')
95
+ end
96
+
97
+ if @name.to_s.length < 1
98
+ invalid_properties.push('invalid value for "name", the character length must be greater than or equal to 1.')
99
+ end
100
+
101
+ pattern = Regexp.new(/^[ -~]+$/)
102
+ if @name !~ pattern
103
+ invalid_properties.push("invalid value for \"name\", must conform to the pattern #{pattern}.")
104
+ end
105
+
106
+ invalid_properties
107
+ end
108
+
109
+ # Check to see if the all the properties in the model are valid
110
+ # @return true if the model is valid
111
+ def valid?
112
+ warn '[DEPRECATED] the `valid?` method is obsolete'
113
+ return false if @name.nil?
114
+ return false if @name.to_s.length > 237
115
+ return false if @name.to_s.length < 1
116
+ return false if @name !~ Regexp.new(/^[ -~]+$/)
117
+ true
118
+ end
119
+
120
+ # Custom attribute writer method with validation
121
+ # @param [Object] name Value to be assigned
122
+ def name=(name)
123
+ if name.nil?
124
+ fail ArgumentError, 'name cannot be nil'
125
+ end
126
+
127
+ if name.to_s.length > 237
128
+ fail ArgumentError, 'invalid value for "name", the character length must be smaller than or equal to 237.'
129
+ end
130
+
131
+ if name.to_s.length < 1
132
+ fail ArgumentError, 'invalid value for "name", the character length must be greater than or equal to 1.'
133
+ end
134
+
135
+ pattern = Regexp.new(/^[ -~]+$/)
136
+ if name !~ pattern
137
+ fail ArgumentError, "invalid value for \"name\", must conform to the pattern #{pattern}."
138
+ end
139
+
140
+ @name = name
141
+ end
142
+
143
+ # Checks equality by comparing each attribute.
144
+ # @param [Object] Object to be compared
145
+ def ==(o)
146
+ return true if self.equal?(o)
147
+ self.class == o.class &&
148
+ name == o.name &&
149
+ data == o.data
150
+ end
151
+
152
+ # @see the `==` method
153
+ # @param [Object] Object to be compared
154
+ def eql?(o)
155
+ self == o
156
+ end
157
+
158
+ # Calculates hash code according to all attributes.
159
+ # @return [Integer] Hash code
160
+ def hash
161
+ [name, data].hash
162
+ end
163
+
164
+ # Builds the object from hash
165
+ # @param [Hash] attributes Model attributes in the form of hash
166
+ # @return [Object] Returns the model itself
167
+ def self.build_from_hash(attributes)
168
+ return nil unless attributes.is_a?(Hash)
169
+ attributes = attributes.transform_keys(&:to_sym)
170
+ transformed_hash = {}
171
+ openapi_types.each_pair do |key, type|
172
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
173
+ transformed_hash["#{key}"] = nil
174
+ elsif type =~ /\AArray<(.*)>/i
175
+ # check to ensure the input is an array given that the attribute
176
+ # is documented as an array but the input is not
177
+ if attributes[attribute_map[key]].is_a?(Array)
178
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
179
+ end
180
+ elsif !attributes[attribute_map[key]].nil?
181
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
182
+ end
183
+ end
184
+ new(transformed_hash)
185
+ end
186
+
187
+ # Returns the object in the form of hash
188
+ # @return [Hash] Returns the object in the form of hash
189
+ def to_hash
190
+ hash = {}
191
+ self.class.attribute_map.each_pair do |attr, param|
192
+ value = self.send(attr)
193
+ if value.nil?
194
+ is_nullable = self.class.openapi_nullable.include?(attr)
195
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
196
+ end
197
+
198
+ hash[param] = _to_hash(value)
199
+ end
200
+ hash
201
+ end
202
+
203
+ end
204
+
205
+ end