1 // Package v3 provides primitives to interact with the openapi HTTP API.
2 //
3 // Code generated by github.com/egoscale/v3/generator version v0.0.1 DO NOT EDIT.
4 package v3
5 6 import (
7 "net"
8 "time"
9 )
10 11 type AccessKeyType string
12 13 const (
14 AccessKeyTypeRestricted AccessKeyType = "restricted"
15 AccessKeyTypeUnrestricted AccessKeyType = "unrestricted"
16 )
17 18 type AccessKeyVersion string
19 20 const (
21 AccessKeyVersionV2 AccessKeyVersion = "v2"
22 AccessKeyVersionV1 AccessKeyVersion = "v1"
23 )
24 25 // IAM Access Key
26 type AccessKey struct {
27 // IAM Access Key
28 Key string `json:"key,omitempty"`
29 // IAM Access Key name
30 Name string `json:"name,omitempty"`
31 // IAM Access Key operations
32 Operations []string `json:"operations,omitempty"`
33 // IAM Access Key Resources
34 Resources []AccessKeyResource `json:"resources,omitempty"`
35 // IAM Access Key Secret
36 Secret string `json:"secret,omitempty"`
37 // IAM Access Key tags
38 Tags []string `json:"tags,omitempty"`
39 // IAM Access Key type
40 Type AccessKeyType `json:"type,omitempty"`
41 // IAM Access Key version
42 Version AccessKeyVersion `json:"version,omitempty"`
43 }
44 45 // Access key operation
46 type AccessKeyOperation struct {
47 // Name of the operation
48 Operation string `json:"operation,omitempty"`
49 // Tags associated with the operation
50 Tags []string `json:"tags,omitempty"`
51 }
52 53 type AccessKeyResourceDomain string
54 55 const (
56 AccessKeyResourceDomainPartner AccessKeyResourceDomain = "partner"
57 AccessKeyResourceDomainSOS AccessKeyResourceDomain = "sos"
58 )
59 60 type AccessKeyResourceResourceType string
61 62 const (
63 AccessKeyResourceResourceTypeProduct AccessKeyResourceResourceType = "product"
64 AccessKeyResourceResourceTypeBucket AccessKeyResourceResourceType = "bucket"
65 )
66 67 // Access key resource
68 type AccessKeyResource struct {
69 // Resource domain
70 Domain AccessKeyResourceDomain `json:"domain,omitempty"`
71 // Resource name
72 ResourceName string `json:"resource-name,omitempty"`
73 // Resource type
74 ResourceType AccessKeyResourceResourceType `json:"resource-type,omitempty"`
75 }
76 77 // Anti-affinity Group
78 type AntiAffinityGroup struct {
79 // Anti-affinity Group description
80 Description string `json:"description,omitempty" validate:"omitempty,lte=255"`
81 // Anti-affinity Group ID
82 ID UUID `json:"id,omitempty"`
83 // Anti-affinity Group instances
84 Instances []Instance `json:"instances,omitempty"`
85 // Anti-affinity Group name
86 Name string `json:"name,omitempty" validate:"omitempty,gte=1,lte=255"`
87 }
88 89 type BlockStorageSnapshotState string
90 91 const (
92 BlockStorageSnapshotStatePartiallyDestroyed BlockStorageSnapshotState = "partially-destroyed"
93 BlockStorageSnapshotStateDestroying BlockStorageSnapshotState = "destroying"
94 BlockStorageSnapshotStateCreating BlockStorageSnapshotState = "creating"
95 BlockStorageSnapshotStateCreated BlockStorageSnapshotState = "created"
96 BlockStorageSnapshotStatePromoting BlockStorageSnapshotState = "promoting"
97 BlockStorageSnapshotStateError BlockStorageSnapshotState = "error"
98 BlockStorageSnapshotStateDestroyed BlockStorageSnapshotState = "destroyed"
99 BlockStorageSnapshotStateAllocated BlockStorageSnapshotState = "allocated"
100 )
101 102 // Block storage snapshot
103 type BlockStorageSnapshot struct {
104 // Target block storage volume
105 BlockStorageVolume *BlockStorageVolumeTarget `json:"block-storage-volume,omitempty"`
106 // Snapshot creation date
107 CreatedAT time.Time `json:"created-at,omitempty"`
108 // Snapshot ID
109 ID UUID `json:"id,omitempty"`
110 Labels Labels `json:"labels,omitempty"`
111 // Snapshot name
112 Name string `json:"name,omitempty" validate:"omitempty,gte=1,lte=255"`
113 // Snapshot size
114 Size int64 `json:"size,omitempty" validate:"omitempty,gte=1"`
115 // Snapshot state
116 State BlockStorageSnapshotState `json:"state,omitempty"`
117 // Original Volume size
118 VolumeSize int64 `json:"volume-size,omitempty" validate:"omitempty,gte=0"`
119 }
120 121 // Target block storage snapshot
122 type BlockStorageSnapshotTarget struct {
123 // Block storage snapshot ID
124 ID UUID `json:"id,omitempty"`
125 }
126 127 type BlockStorageVolumeState string
128 129 const (
130 BlockStorageVolumeStateSnapshotting BlockStorageVolumeState = "snapshotting"
131 BlockStorageVolumeStateDeleted BlockStorageVolumeState = "deleted"
132 BlockStorageVolumeStateCreating BlockStorageVolumeState = "creating"
133 BlockStorageVolumeStateDetached BlockStorageVolumeState = "detached"
134 BlockStorageVolumeStateDeleting BlockStorageVolumeState = "deleting"
135 BlockStorageVolumeStateAttaching BlockStorageVolumeState = "attaching"
136 BlockStorageVolumeStateError BlockStorageVolumeState = "error"
137 BlockStorageVolumeStateAttached BlockStorageVolumeState = "attached"
138 BlockStorageVolumeStateDetaching BlockStorageVolumeState = "detaching"
139 )
140 141 // Block storage volume
142 type BlockStorageVolume struct {
143 // Volume snapshots, if any
144 BlockStorageSnapshots []BlockStorageSnapshotTarget `json:"block-storage-snapshots,omitempty"`
145 // Volume block size
146 Blocksize int64 `json:"blocksize,omitempty" validate:"omitempty,gte=0"`
147 // Volume creation date
148 CreatedAT time.Time `json:"created-at,omitempty"`
149 // Volume ID
150 ID UUID `json:"id,omitempty"`
151 // Target Instance
152 Instance *InstanceTarget `json:"instance,omitempty"`
153 Labels Labels `json:"labels,omitempty"`
154 // Volume name
155 Name string `json:"name,omitempty" validate:"omitempty,gte=1,lte=255"`
156 // Volume size
157 Size int64 `json:"size,omitempty" validate:"omitempty,gte=1"`
158 // Volume state
159 State BlockStorageVolumeState `json:"state,omitempty"`
160 }
161 162 // Target block storage volume
163 type BlockStorageVolumeTarget struct {
164 // Block storage volume ID
165 ID UUID `json:"id,omitempty"`
166 }
167 168 // Deployment an AI model onto a set of GPUs
169 type CreateDeploymentRequest struct {
170 // Number of GPUs (1-8)
171 GpuCount int64 `json:"gpu-count" validate:"required,gt=0"`
172 // GPU type family (e.g., gpua5000, gpu3080ti)
173 GpuType string `json:"gpu-type" validate:"required"`
174 // Optional extra inference engine server CLI args
175 InferenceEngineParameters []string `json:"inference-engine-parameters,omitempty"`
176 Model *ModelRef `json:"model,omitempty"`
177 // Deployment name
178 Name string `json:"name,omitempty" validate:"omitempty,gte=1"`
179 // Number of replicas (>=1)
180 Replicas int64 `json:"replicas" validate:"required,gt=0"`
181 }
182 183 // AI model
184 type CreateModelRequest struct {
185 // Huggingface Token
186 HuggingfaceToken string `json:"huggingface-token,omitempty"`
187 // Model name
188 Name string `json:"name,omitempty" validate:"omitempty,gte=1"`
189 }
190 191 // DBaaS plan backup config
192 type DBAASBackupConfig struct {
193 // Interval of taking a frequent backup in service types supporting different backup schedules
194 FrequentIntervalMinutes int64 `json:"frequent-interval-minutes,omitempty" validate:"omitempty,gte=0"`
195 // Maximum age of the oldest frequent backup in service types supporting different backup schedules
196 FrequentOldestAgeMinutes int64 `json:"frequent-oldest-age-minutes,omitempty" validate:"omitempty,gte=0"`
197 // Interval of taking a frequent backup in service types supporting different backup schedules
198 InfrequentIntervalMinutes int64 `json:"infrequent-interval-minutes,omitempty" validate:"omitempty,gte=0"`
199 // Maximum age of the oldest infrequent backup in service types supporting different backup schedules
200 InfrequentOldestAgeMinutes int64 `json:"infrequent-oldest-age-minutes,omitempty" validate:"omitempty,gte=0"`
201 // The interval, in hours, at which backups are generated.
202 // For some services, like PostgreSQL, this is the interval
203 // at which full snapshots are taken and continuous incremental
204 // backup stream is maintained in addition to that.
205 Interval int64 `json:"interval,omitempty" validate:"omitempty,gt=0"`
206 // Maximum number of backups to keep. Zero when no backups are created.
207 MaxCount int64 `json:"max-count,omitempty" validate:"omitempty,gte=0"`
208 // Mechanism how backups can be restored. 'regular'
209 // means a backup is restored as is so that the system
210 // is restored to the state it was when the backup was generated.
211 // 'pitr' means point-in-time-recovery, which allows restoring the system to any state since the first available full snapshot.
212 RecoveryMode string `json:"recovery-mode,omitempty"`
213 }
214 215 type DBAASDatabaseName string
216 217 type DBAASDatadogTag struct {
218 // Optional tag explanation
219 Comment string `json:"comment,omitempty" validate:"omitempty,lte=1024"`
220 // Tag value
221 Tag string `json:"tag" validate:"required,gte=1,lte=200"`
222 }
223 224 type DBAASEndpointDatadogCommon struct {
225 // Custom tags provided by user
226 DatadogTags []DBAASDatadogTag `json:"datadog-tags,omitempty"`
227 // Disable kafka consumer group metrics. Applies only when attached to kafka services.
228 DisableConsumerStats *bool `json:"disable-consumer-stats,omitempty"`
229 // Number of separate instances to fetch kafka consumer statistics with. Applies only when attached to kafka services.
230 KafkaConsumerCheckInstances int64 `json:"kafka-consumer-check-instances,omitempty" validate:"omitempty,gte=1,lte=100"`
231 // Number of seconds that datadog will wait to get consumer statistics from brokers. Applies only when attached to kafka services.
232 KafkaConsumerStatsTimeout int64 `json:"kafka-consumer-stats-timeout,omitempty" validate:"omitempty,gte=2,lte=300"`
233 // Maximum number of partition contexts to send. Applies only when attached to kafka services.
234 MaxPartitionContexts int64 `json:"max-partition-contexts,omitempty" validate:"omitempty,gte=200,lte=200000"`
235 }
236 237 type DBAASEndpointDatadogInputCreateSettings struct {
238 // Datadog API key
239 DatadogAPIKey string `json:"datadog-api-key" validate:"required,gte=1,lte=256"`
240 // Custom tags provided by user
241 DatadogTags []DBAASDatadogTag `json:"datadog-tags,omitempty"`
242 // Disable kafka consumer group metrics. Applies only when attached to kafka services.
243 DisableConsumerStats *bool `json:"disable-consumer-stats,omitempty"`
244 // Number of separate instances to fetch kafka consumer statistics with. Applies only when attached to kafka services.
245 KafkaConsumerCheckInstances int64 `json:"kafka-consumer-check-instances,omitempty" validate:"omitempty,gte=1,lte=100"`
246 // Number of seconds that datadog will wait to get consumer statistics from brokers. Applies only when attached to kafka services.
247 KafkaConsumerStatsTimeout int64 `json:"kafka-consumer-stats-timeout,omitempty" validate:"omitempty,gte=2,lte=300"`
248 // Maximum number of partition contexts to send. Applies only when attached to kafka services.
249 MaxPartitionContexts int64 `json:"max-partition-contexts,omitempty" validate:"omitempty,gte=200,lte=200000"`
250 Site EnumDatadogSite `json:"site" validate:"required"`
251 }
252 253 type DBAASEndpointDatadogInputCreate struct {
254 Settings *DBAASEndpointDatadogInputCreateSettings `json:"settings,omitempty"`
255 }
256 257 type DBAASEndpointDatadogInputUpdateSettings struct {
258 // Datadog API key
259 DatadogAPIKey string `json:"datadog-api-key" validate:"required,gte=1,lte=256"`
260 // Custom tags provided by user
261 DatadogTags []DBAASDatadogTag `json:"datadog-tags,omitempty"`
262 // Disable kafka consumer group metrics. Applies only when attached to kafka services.
263 DisableConsumerStats *bool `json:"disable-consumer-stats,omitempty"`
264 // Number of separate instances to fetch kafka consumer statistics with. Applies only when attached to kafka services.
265 KafkaConsumerCheckInstances int64 `json:"kafka-consumer-check-instances,omitempty" validate:"omitempty,gte=1,lte=100"`
266 // Number of seconds that datadog will wait to get consumer statistics from brokers. Applies only when attached to kafka services.
267 KafkaConsumerStatsTimeout int64 `json:"kafka-consumer-stats-timeout,omitempty" validate:"omitempty,gte=2,lte=300"`
268 // Maximum number of partition contexts to send. Applies only when attached to kafka services.
269 MaxPartitionContexts int64 `json:"max-partition-contexts,omitempty" validate:"omitempty,gte=200,lte=200000"`
270 Site EnumDatadogSite `json:"site,omitempty"`
271 }
272 273 type DBAASEndpointDatadogInputUpdate struct {
274 Settings *DBAASEndpointDatadogInputUpdateSettings `json:"settings,omitempty"`
275 }
276 277 // External integration DataDog configuration
278 type DBAASEndpointDatadogSettingsSettings struct {
279 // Custom tags provided by user
280 DatadogTags []DBAASDatadogTag `json:"datadog-tags,omitempty"`
281 // Disable kafka consumer group metrics. Applies only when attached to kafka services.
282 DisableConsumerStats *bool `json:"disable-consumer-stats,omitempty"`
283 // Number of separate instances to fetch kafka consumer statistics with. Applies only when attached to kafka services.
284 KafkaConsumerCheckInstances int64 `json:"kafka-consumer-check-instances,omitempty" validate:"omitempty,gte=1,lte=100"`
285 // Number of seconds that datadog will wait to get consumer statistics from brokers. Applies only when attached to kafka services.
286 KafkaConsumerStatsTimeout int64 `json:"kafka-consumer-stats-timeout,omitempty" validate:"omitempty,gte=2,lte=300"`
287 // Maximum number of partition contexts to send. Applies only when attached to kafka services.
288 MaxPartitionContexts int64 `json:"max-partition-contexts,omitempty" validate:"omitempty,gte=200,lte=200000"`
289 Site EnumDatadogSite `json:"site,omitempty"`
290 }
291 292 type DBAASEndpointDatadogSettings struct {
293 // External integration DataDog configuration
294 Settings *DBAASEndpointDatadogSettingsSettings `json:"settings,omitempty"`
295 }
296 297 type DBAASEndpointElasticsearch struct {
298 // Maximum number of days of logs to keep
299 IndexDaysMax int64 `json:"index-days-max,omitempty" validate:"omitempty,gte=1,lte=10000"`
300 // Elasticsearch index prefix
301 IndexPrefix string `json:"index-prefix" validate:"required,gte=1,lte=1000"`
302 // Elasticsearch request timeout limit
303 Timeout int64 `json:"timeout,omitempty" validate:"omitempty,gte=10,lte=120"`
304 // Elasticsearch connection URL
305 URL string `json:"url" validate:"required,gte=12,lte=2048"`
306 }
307 308 type DBAASEndpointElasticsearchInputCreateSettings struct {
309 // PEM encoded CA certificate
310 CA string `json:"ca,omitempty" validate:"omitempty,lte=16384"`
311 // Maximum number of days of logs to keep
312 IndexDaysMax int64 `json:"index-days-max,omitempty" validate:"omitempty,gte=1,lte=10000"`
313 // Elasticsearch index prefix
314 IndexPrefix string `json:"index-prefix" validate:"required,gte=1,lte=1000"`
315 // Elasticsearch request timeout limit
316 Timeout int64 `json:"timeout,omitempty" validate:"omitempty,gte=10,lte=120"`
317 // Elasticsearch connection URL
318 URL string `json:"url" validate:"required,gte=12,lte=2048"`
319 }
320 321 type DBAASEndpointElasticsearchInputCreate struct {
322 Settings *DBAASEndpointElasticsearchInputCreateSettings `json:"settings,omitempty"`
323 }
324 325 type DBAASEndpointElasticsearchInputUpdateSettings struct {
326 // PEM encoded CA certificate
327 CA string `json:"ca,omitempty" validate:"omitempty,lte=16384"`
328 // Maximum number of days of logs to keep
329 IndexDaysMax int64 `json:"index-days-max,omitempty" validate:"omitempty,gte=1,lte=10000"`
330 // Elasticsearch index prefix
331 IndexPrefix string `json:"index-prefix,omitempty" validate:"omitempty,gte=1,lte=1000"`
332 // Elasticsearch request timeout limit
333 Timeout int64 `json:"timeout,omitempty" validate:"omitempty,gte=10,lte=120"`
334 // Elasticsearch connection URL
335 URL string `json:"url,omitempty" validate:"omitempty,gte=12,lte=2048"`
336 }
337 338 type DBAASEndpointElasticsearchInputUpdate struct {
339 Settings *DBAASEndpointElasticsearchInputUpdateSettings `json:"settings,omitempty"`
340 }
341 342 type DBAASEndpointElasticsearchOptionalFields struct {
343 // Maximum number of days of logs to keep
344 IndexDaysMax int64 `json:"index-days-max,omitempty" validate:"omitempty,gte=1,lte=10000"`
345 // Elasticsearch index prefix
346 IndexPrefix string `json:"index-prefix,omitempty" validate:"omitempty,gte=1,lte=1000"`
347 // Elasticsearch request timeout limit
348 Timeout int64 `json:"timeout,omitempty" validate:"omitempty,gte=10,lte=120"`
349 // Elasticsearch connection URL
350 URL string `json:"url,omitempty" validate:"omitempty,gte=12,lte=2048"`
351 }
352 353 type DBAASEndpointElasticsearchOutput struct {
354 // External integration endpoint id
355 ID UUID `json:"id,omitempty"`
356 // External integration endpoint name
357 Name string `json:"name,omitempty"`
358 Settings *DBAASEndpointElasticsearchOptionalFields `json:"settings,omitempty"`
359 Type EnumExternalEndpointTypes `json:"type,omitempty"`
360 }
361 362 type DBAASEndpointElasticsearchSecrets struct {
363 // PEM encoded CA certificate
364 CA string `json:"ca,omitempty" validate:"omitempty,lte=16384"`
365 }
366 367 // External integration Prometheus configuration
368 type DBAASEndpointExternalPrometheusOutputSettings struct {
369 // Prometheus basic authentication username
370 BasicAuthUsername string `json:"basic-auth-username,omitempty" validate:"omitempty,gte=5,lte=32"`
371 }
372 373 type DBAASEndpointExternalPrometheusOutput struct {
374 // External integration endpoint id
375 ID UUID `json:"id,omitempty"`
376 // External integration endpoint name
377 Name string `json:"name,omitempty"`
378 // External integration Prometheus configuration
379 Settings *DBAASEndpointExternalPrometheusOutputSettings `json:"settings,omitempty"`
380 Type EnumExternalEndpointTypes `json:"type,omitempty"`
381 }
382 383 type DBAASEndpointOpensearch struct {
384 // Maximum number of days of logs to keep
385 IndexDaysMax int64 `json:"index-days-max,omitempty" validate:"omitempty,gte=1,lte=10000"`
386 // OpenSearch index prefix
387 IndexPrefix string `json:"index-prefix" validate:"required,gte=1,lte=1000"`
388 // OpenSearch request timeout limit
389 Timeout int64 `json:"timeout,omitempty" validate:"omitempty,gte=10,lte=120"`
390 // OpenSearch connection URL
391 URL string `json:"url" validate:"required,gte=12,lte=2048"`
392 }
393 394 type DBAASEndpointOpensearchInputCreateSettings struct {
395 // PEM encoded CA certificate
396 CA string `json:"ca,omitempty" validate:"omitempty,lte=16384"`
397 // Maximum number of days of logs to keep
398 IndexDaysMax int64 `json:"index-days-max,omitempty" validate:"omitempty,gte=1,lte=10000"`
399 // OpenSearch index prefix
400 IndexPrefix string `json:"index-prefix" validate:"required,gte=1,lte=1000"`
401 // OpenSearch request timeout limit
402 Timeout int64 `json:"timeout,omitempty" validate:"omitempty,gte=10,lte=120"`
403 // OpenSearch connection URL
404 URL string `json:"url" validate:"required,gte=12,lte=2048"`
405 }
406 407 type DBAASEndpointOpensearchInputCreate struct {
408 Settings *DBAASEndpointOpensearchInputCreateSettings `json:"settings,omitempty"`
409 }
410 411 type DBAASEndpointOpensearchInputUpdateSettings struct {
412 // PEM encoded CA certificate
413 CA string `json:"ca,omitempty" validate:"omitempty,lte=16384"`
414 // Maximum number of days of logs to keep
415 IndexDaysMax int64 `json:"index-days-max,omitempty" validate:"omitempty,gte=1,lte=10000"`
416 // OpenSearch index prefix
417 IndexPrefix string `json:"index-prefix,omitempty" validate:"omitempty,gte=1,lte=1000"`
418 // OpenSearch request timeout limit
419 Timeout int64 `json:"timeout,omitempty" validate:"omitempty,gte=10,lte=120"`
420 // OpenSearch connection URL
421 URL string `json:"url,omitempty" validate:"omitempty,gte=12,lte=2048"`
422 }
423 424 type DBAASEndpointOpensearchInputUpdate struct {
425 Settings *DBAASEndpointOpensearchInputUpdateSettings `json:"settings,omitempty"`
426 }
427 428 type DBAASEndpointOpensearchOptionalFields struct {
429 // Maximum number of days of logs to keep
430 IndexDaysMax int64 `json:"index-days-max,omitempty" validate:"omitempty,gte=1,lte=10000"`
431 // OpenSearch index prefix
432 IndexPrefix string `json:"index-prefix,omitempty" validate:"omitempty,gte=1,lte=1000"`
433 // OpenSearch request timeout limit
434 Timeout int64 `json:"timeout,omitempty" validate:"omitempty,gte=10,lte=120"`
435 // OpenSearch connection URL
436 URL string `json:"url,omitempty" validate:"omitempty,gte=12,lte=2048"`
437 }
438 439 type DBAASEndpointOpensearchOutput struct {
440 // External integration endpoint id
441 ID UUID `json:"id,omitempty"`
442 // External integration endpoint name
443 Name string `json:"name,omitempty"`
444 Settings *DBAASEndpointOpensearchOptionalFields `json:"settings,omitempty"`
445 Type EnumExternalEndpointTypes `json:"type,omitempty"`
446 }
447 448 type DBAASEndpointOpensearchSecrets struct {
449 // PEM encoded CA certificate
450 CA string `json:"ca,omitempty" validate:"omitempty,lte=16384"`
451 }
452 453 type DBAASEndpointPrometheus struct {
454 // Prometheus basic authentication username
455 BasicAuthUsername string `json:"basic-auth-username,omitempty" validate:"omitempty,gte=5,lte=32"`
456 }
457 458 type DBAASEndpointPrometheusPayloadSettings struct {
459 // Prometheus basic authentication password
460 BasicAuthPassword string `json:"basic-auth-password,omitempty" validate:"omitempty,gte=8,lte=64"`
461 // Prometheus basic authentication username
462 BasicAuthUsername string `json:"basic-auth-username,omitempty" validate:"omitempty,gte=5,lte=32"`
463 }
464 465 type DBAASEndpointPrometheusPayload struct {
466 Settings *DBAASEndpointPrometheusPayloadSettings `json:"settings,omitempty"`
467 }
468 469 type DBAASEndpointPrometheusSecrets struct {
470 // Prometheus basic authentication password
471 BasicAuthPassword string `json:"basic-auth-password,omitempty" validate:"omitempty,gte=8,lte=64"`
472 }
473 474 type DBAASEndpointRsyslog struct {
475 Format EnumRsyslogFormat `json:"format" validate:"required"`
476 // Custom syslog message format
477 Logline string `json:"logline,omitempty" validate:"omitempty,gte=1,lte=512"`
478 // Rsyslog max message size
479 MaxMessageSize int64 `json:"max-message-size,omitempty" validate:"omitempty,gte=2048,lte=2.147483647e+09"`
480 // Rsyslog server port
481 Port int64 `json:"port" validate:"required,gte=1,lte=65535"`
482 // Structured data block for log message
483 SD string `json:"sd,omitempty" validate:"omitempty,lte=1024"`
484 // Rsyslog server IP address or hostname
485 Server string `json:"server" validate:"required,gte=4,lte=255"`
486 // Require TLS
487 Tls *bool `json:"tls" validate:"required"`
488 }
489 490 type DBAASEndpointRsyslogInputCreateSettings struct {
491 // PEM encoded CA certificate
492 CA string `json:"ca,omitempty" validate:"omitempty,lte=16384"`
493 // PEM encoded client certificate
494 Cert string `json:"cert,omitempty" validate:"omitempty,lte=16384"`
495 Format EnumRsyslogFormat `json:"format" validate:"required"`
496 // PEM encoded client key
497 Key string `json:"key,omitempty" validate:"omitempty,lte=16384"`
498 // Custom syslog message format
499 Logline string `json:"logline,omitempty" validate:"omitempty,gte=1,lte=512"`
500 // Rsyslog max message size
501 MaxMessageSize int64 `json:"max-message-size,omitempty" validate:"omitempty,gte=2048,lte=2.147483647e+09"`
502 // Rsyslog server port
503 Port int64 `json:"port" validate:"required,gte=1,lte=65535"`
504 // Structured data block for log message
505 SD string `json:"sd,omitempty" validate:"omitempty,lte=1024"`
506 // Rsyslog server IP address or hostname
507 Server string `json:"server" validate:"required,gte=4,lte=255"`
508 // Require TLS
509 Tls *bool `json:"tls" validate:"required"`
510 }
511 512 type DBAASEndpointRsyslogInputCreate struct {
513 Settings *DBAASEndpointRsyslogInputCreateSettings `json:"settings,omitempty"`
514 }
515 516 type DBAASEndpointRsyslogInputUpdateSettings struct {
517 // PEM encoded CA certificate
518 CA string `json:"ca,omitempty" validate:"omitempty,lte=16384"`
519 // PEM encoded client certificate
520 Cert string `json:"cert,omitempty" validate:"omitempty,lte=16384"`
521 Format EnumRsyslogFormat `json:"format,omitempty"`
522 // PEM encoded client key
523 Key string `json:"key,omitempty" validate:"omitempty,lte=16384"`
524 // Custom syslog message format
525 Logline string `json:"logline,omitempty" validate:"omitempty,gte=1,lte=512"`
526 // Rsyslog max message size
527 MaxMessageSize int64 `json:"max-message-size,omitempty" validate:"omitempty,gte=2048,lte=2.147483647e+09"`
528 // Rsyslog server port
529 Port int64 `json:"port,omitempty" validate:"omitempty,gte=1,lte=65535"`
530 // Structured data block for log message
531 SD string `json:"sd,omitempty" validate:"omitempty,lte=1024"`
532 // Rsyslog server IP address or hostname
533 Server string `json:"server,omitempty" validate:"omitempty,gte=4,lte=255"`
534 // Require TLS
535 Tls *bool `json:"tls,omitempty"`
536 }
537 538 type DBAASEndpointRsyslogInputUpdate struct {
539 Settings *DBAASEndpointRsyslogInputUpdateSettings `json:"settings,omitempty"`
540 }
541 542 type DBAASEndpointRsyslogOptionalFields struct {
543 Format EnumRsyslogFormat `json:"format,omitempty"`
544 // Custom syslog message format
545 Logline string `json:"logline,omitempty" validate:"omitempty,gte=1,lte=512"`
546 // Rsyslog max message size
547 MaxMessageSize int64 `json:"max-message-size,omitempty" validate:"omitempty,gte=2048,lte=2.147483647e+09"`
548 // Rsyslog server port
549 Port int64 `json:"port,omitempty" validate:"omitempty,gte=1,lte=65535"`
550 // Structured data block for log message
551 SD string `json:"sd,omitempty" validate:"omitempty,lte=1024"`
552 // Rsyslog server IP address or hostname
553 Server string `json:"server,omitempty" validate:"omitempty,gte=4,lte=255"`
554 // Require TLS
555 Tls *bool `json:"tls,omitempty"`
556 }
557 558 type DBAASEndpointRsyslogSecrets struct {
559 // PEM encoded CA certificate
560 CA string `json:"ca,omitempty" validate:"omitempty,lte=16384"`
561 // PEM encoded client certificate
562 Cert string `json:"cert,omitempty" validate:"omitempty,lte=16384"`
563 // PEM encoded client key
564 Key string `json:"key,omitempty" validate:"omitempty,lte=16384"`
565 }
566 567 type DBAASExternalEndpoint struct {
568 // External integration endpoint id
569 ID UUID `json:"id,omitempty"`
570 // External integration endpoint name
571 Name string `json:"name,omitempty"`
572 Type EnumExternalEndpointTypes `json:"type,omitempty"`
573 }
574 575 // External integration DataDog configuration
576 type DBAASExternalEndpointDatadogOutputSettings struct {
577 // Custom tags provided by user
578 DatadogTags []DBAASDatadogTag `json:"datadog-tags,omitempty"`
579 // Disable kafka consumer group metrics. Applies only when attached to kafka services.
580 DisableConsumerStats *bool `json:"disable-consumer-stats,omitempty"`
581 // Number of separate instances to fetch kafka consumer statistics with. Applies only when attached to kafka services.
582 KafkaConsumerCheckInstances int64 `json:"kafka-consumer-check-instances,omitempty" validate:"omitempty,gte=1,lte=100"`
583 // Number of seconds that datadog will wait to get consumer statistics from brokers. Applies only when attached to kafka services.
584 KafkaConsumerStatsTimeout int64 `json:"kafka-consumer-stats-timeout,omitempty" validate:"omitempty,gte=2,lte=300"`
585 // Maximum number of partition contexts to send. Applies only when attached to kafka services.
586 MaxPartitionContexts int64 `json:"max-partition-contexts,omitempty" validate:"omitempty,gte=200,lte=200000"`
587 Site EnumDatadogSite `json:"site,omitempty"`
588 }
589 590 type DBAASExternalEndpointDatadogOutput struct {
591 // External integration endpoint id
592 ID UUID `json:"id,omitempty"`
593 // External integration endpoint name
594 Name string `json:"name,omitempty"`
595 // External integration DataDog configuration
596 Settings *DBAASExternalEndpointDatadogOutputSettings `json:"settings,omitempty"`
597 Type EnumExternalEndpointTypes `json:"type,omitempty"`
598 }
599 600 type DBAASExternalEndpointRsyslogOutput struct {
601 // External integration endpoint id
602 ID UUID `json:"id,omitempty"`
603 // External integration endpoint name
604 Name string `json:"name,omitempty"`
605 Settings *DBAASEndpointRsyslogOptionalFields `json:"settings,omitempty"`
606 Type EnumExternalEndpointTypes `json:"type,omitempty"`
607 }
608 609 // Integrations with other services
610 type DBAASExternalIntegration struct {
611 // Description of the integration
612 Description string `json:"description" validate:"required"`
613 // External destination endpoint id
614 DestEndpointID string `json:"dest-endpoint-id,omitempty"`
615 // External destination endpoint name
616 DestEndpointName string `json:"dest-endpoint-name,omitempty"`
617 // Endpoint integration UUID
618 IntegrationID UUID `json:"integration-id,omitempty"`
619 // DBaaS source service name
620 SourceServiceName string `json:"source-service-name" validate:"required"`
621 SourceServiceType DBAASServiceTypeName `json:"source-service-type" validate:"required,gte=0,lte=64"`
622 // Integration status
623 Status string `json:"status,omitempty"`
624 Type EnumExternalEndpointTypes `json:"type" validate:"required"`
625 }
626 627 type DBAASIntegration struct {
628 // Description of the integration
629 Description string `json:"description,omitempty"`
630 // Destination service name
631 Dest string `json:"dest,omitempty"`
632 // Integration id
633 ID UUID `json:"id,omitempty"`
634 // Whether the integration is active or not
635 ISActive *bool `json:"is-active,omitempty"`
636 // Whether the integration is enabled or not
637 ISEnabled *bool `json:"is-enabled,omitempty"`
638 // Integration settings
639 Settings map[string]any `json:"settings,omitempty"`
640 // Source service name
641 Source string `json:"source,omitempty"`
642 // Integration status
643 Status string `json:"status,omitempty"`
644 // Integration type
645 Type string `json:"type,omitempty"`
646 }
647 648 type DBAASIntegrationSettingsDatadog struct {
649 // Database monitoring: view query metrics, explain plans, and execution details. Correlate queries with host metrics.
650 DatadogDbmEnabled *bool `json:"datadog-dbm-enabled,omitempty"`
651 // Integrate PgBouncer with Datadog to track connection pool metrics and monitor application traffic.
652 DatadogPgbouncerEnabled *bool `json:"datadog-pgbouncer-enabled,omitempty"`
653 }
654 655 // A JSON schema of additional settings of the integration.
656 type DBAASIntegrationTypeSettings struct {
657 AdditionalProperties *bool `json:"additionalProperties,omitempty"`
658 Properties map[string]any `json:"properties,omitempty"`
659 Title string `json:"title,omitempty"`
660 Type string `json:"type,omitempty"`
661 }
662 663 type DBAASIntegrationType struct {
664 // The description of the destination service types.
665 DestDescription string `json:"dest-description,omitempty"`
666 // A list of the destination service types the integration supports.
667 DestServiceTypes []string `json:"dest-service-types,omitempty"`
668 // A JSON schema of additional settings of the integration.
669 Settings *DBAASIntegrationTypeSettings `json:"settings,omitempty"`
670 // The description of the source service types.
671 SourceDescription string `json:"source-description,omitempty"`
672 // A list of the source service types the integration supports.
673 SourceServiceTypes []string `json:"source-service-types,omitempty"`
674 // The type of the integration.
675 Type string `json:"type,omitempty"`
676 }
677 678 type DBAASKafkaAclID string
679 680 type DBAASKafkaAcls struct {
681 SchemaRegistryAcl []DBAASKafkaSchemaRegistryAclEntry `json:"schema-registry-acl,omitempty"`
682 TopicAcl []DBAASKafkaTopicAclEntry `json:"topic-acl,omitempty"`
683 }
684 685 type DBAASKafkaSchemaRegistryAclEntryPermission string
686 687 const (
688 DBAASKafkaSchemaRegistryAclEntryPermissionSchemaRegistryRead DBAASKafkaSchemaRegistryAclEntryPermission = "schema_registry_read"
689 DBAASKafkaSchemaRegistryAclEntryPermissionSchemaRegistryWrite DBAASKafkaSchemaRegistryAclEntryPermission = "schema_registry_write"
690 )
691 692 type DBAASKafkaSchemaRegistryAclEntry struct {
693 ID DBAASKafkaAclID `json:"id,omitempty" validate:"omitempty,gte=1,lte=40"`
694 // Kafka Schema Registry permission
695 Permission DBAASKafkaSchemaRegistryAclEntryPermission `json:"permission" validate:"required"`
696 // Kafka Schema Registry name or pattern
697 Resource string `json:"resource" validate:"required,gte=1,lte=249"`
698 // Kafka username or username pattern
699 Username string `json:"username" validate:"required,gte=1,lte=64"`
700 }
701 702 type DBAASKafkaTopicAclEntryPermission string
703 704 const (
705 DBAASKafkaTopicAclEntryPermissionAdmin DBAASKafkaTopicAclEntryPermission = "admin"
706 DBAASKafkaTopicAclEntryPermissionRead DBAASKafkaTopicAclEntryPermission = "read"
707 DBAASKafkaTopicAclEntryPermissionReadwrite DBAASKafkaTopicAclEntryPermission = "readwrite"
708 DBAASKafkaTopicAclEntryPermissionWrite DBAASKafkaTopicAclEntryPermission = "write"
709 )
710 711 type DBAASKafkaTopicAclEntry struct {
712 ID DBAASKafkaAclID `json:"id,omitempty" validate:"omitempty,gte=1,lte=40"`
713 // Kafka permission
714 Permission DBAASKafkaTopicAclEntryPermission `json:"permission" validate:"required"`
715 // Kafka topic name or pattern
716 Topic string `json:"topic" validate:"required,gte=1,lte=249"`
717 // Kafka username or username pattern
718 Username string `json:"username" validate:"required,gte=1,lte=64"`
719 }
720 721 type DBAASMigrationStatusDetails struct {
722 // Migrated db name
723 Dbname string `json:"dbname,omitempty"`
724 // Error message in case that migration has failed
725 Error string `json:"error,omitempty"`
726 // Migration method
727 Method string `json:"method,omitempty"`
728 Status EnumMigrationStatus `json:"status,omitempty"`
729 }
730 731 type DBAASMigrationStatus struct {
732 // Migration status per database
733 Details []DBAASMigrationStatusDetails `json:"details,omitempty"`
734 // Error message in case that migration has failed
735 Error string `json:"error,omitempty"`
736 // Migration method. Empty in case of multiple methods or error
737 Method string `json:"method,omitempty"`
738 // Migration status
739 Status string `json:"status,omitempty"`
740 }
741 742 type DBAASMysqlDatabaseName string
743 744 type DBAASNodeStateRole string
745 746 const (
747 DBAASNodeStateRoleStandby DBAASNodeStateRole = "standby"
748 DBAASNodeStateRoleMaster DBAASNodeStateRole = "master"
749 DBAASNodeStateRoleReadReplica DBAASNodeStateRole = "read-replica"
750 )
751 752 type DBAASNodeStateState string
753 754 const (
755 DBAASNodeStateStateLeaving DBAASNodeStateState = "leaving"
756 DBAASNodeStateStateRunning DBAASNodeStateState = "running"
757 DBAASNodeStateStateSyncingData DBAASNodeStateState = "syncing_data"
758 DBAASNodeStateStateSettingUPVm DBAASNodeStateState = "setting_up_vm"
759 DBAASNodeStateStateUnknown DBAASNodeStateState = "unknown"
760 )
761 762 // Automatic maintenance settings
763 type DBAASNodeState struct {
764 // Name of the service node
765 Name string `json:"name" validate:"required"`
766 // Extra information regarding the progress for current state
767 ProgressUpdates []DBAASNodeStateProgressUpdate `json:"progress-updates,omitempty"`
768 // Role of this node. Only returned for a subset of service types
769 Role DBAASNodeStateRole `json:"role,omitempty"`
770 // Current state of the service node
771 State DBAASNodeStateState `json:"state" validate:"required"`
772 }
773 774 type DBAASNodeStateProgressUpdatePhase string
775 776 const (
777 DBAASNodeStateProgressUpdatePhaseStream DBAASNodeStateProgressUpdatePhase = "stream"
778 DBAASNodeStateProgressUpdatePhaseBasebackup DBAASNodeStateProgressUpdatePhase = "basebackup"
779 DBAASNodeStateProgressUpdatePhasePrepare DBAASNodeStateProgressUpdatePhase = "prepare"
780 DBAASNodeStateProgressUpdatePhaseFinalize DBAASNodeStateProgressUpdatePhase = "finalize"
781 )
782 783 // Extra information regarding the progress for current state
784 type DBAASNodeStateProgressUpdate struct {
785 // Indicates whether this phase has been completed or not
786 Completed *bool `json:"completed" validate:"required"`
787 // Current progress for this phase. May be missing or null.
788 Current int64 `json:"current,omitempty" validate:"omitempty,gte=0"`
789 // Maximum progress value for this phase. May be missing or null. May change.
790 Max int64 `json:"max,omitempty" validate:"omitempty,gte=0"`
791 // Minimum progress value for this phase. May be missing or null.
792 Min int64 `json:"min,omitempty" validate:"omitempty,gte=0"`
793 // Key identifying this phase
794 Phase DBAASNodeStateProgressUpdatePhase `json:"phase" validate:"required"`
795 // Unit for current/min/max values. New units may be added.
796 // If null should be treated as generic unit
797 Unit string `json:"unit,omitempty"`
798 }
799 800 type DBAASOpensearchAclConfigAclsRules struct {
801 // OpenSearch index pattern
802 Index string `json:"index" validate:"required,lte=249"`
803 Permission EnumOpensearchRulePermission `json:"permission,omitempty"`
804 }
805 806 type DBAASOpensearchAclConfigAcls struct {
807 Rules []DBAASOpensearchAclConfigAclsRules `json:"rules,omitempty"`
808 Username DBAASUserUsername `json:"username,omitempty" validate:"omitempty,gte=1,lte=64"`
809 }
810 811 type DBAASOpensearchAclConfig struct {
812 // Enable OpenSearch ACLs. When disabled authenticated service users have unrestricted access.
813 AclEnabled *bool `json:"acl-enabled,omitempty"`
814 // List of OpenSearch ACLs
815 Acls []DBAASOpensearchAclConfigAcls `json:"acls,omitempty"`
816 // Enable to enforce index rules in a limited fashion for requests that use the _mget, _msearch, and _bulk APIs
817 ExtendedAclEnabled *bool `json:"extended-acl-enabled,omitempty"`
818 }
819 820 type DBAASPGDatabaseName string
821 822 type DBAASPGPoolName string
823 824 type DBAASPGPoolSize int64
825 826 type DBAASPGPoolUsername string
827 828 type DBAASPGTargetVersions string
829 830 const (
831 DBAASPGTargetVersions14 DBAASPGTargetVersions = "14"
832 DBAASPGTargetVersions17 DBAASPGTargetVersions = "17"
833 DBAASPGTargetVersions15 DBAASPGTargetVersions = "15"
834 DBAASPGTargetVersions18 DBAASPGTargetVersions = "18"
835 DBAASPGTargetVersions13 DBAASPGTargetVersions = "13"
836 DBAASPGTargetVersions16 DBAASPGTargetVersions = "16"
837 )
838 839 // DBaaS plan
840 type DBAASPlan struct {
841 // Requires authorization or publicly available
842 Authorized *bool `json:"authorized,omitempty"`
843 // DBaaS plan backup config
844 BackupConfig *DBAASBackupConfig `json:"backup-config,omitempty"`
845 // DBaaS plan disk space
846 DiskSpace int64 `json:"disk-space,omitempty"`
847 // Instance family subset which the service can use
848 Family string `json:"family,omitempty"`
849 // DBaaS plan max memory allocated percentage
850 MaxMemoryPercent int64 `json:"max-memory-percent,omitempty" validate:"omitempty,gt=0"`
851 // DBaaS plan name
852 Name string `json:"name,omitempty"`
853 // DBaaS plan node count
854 NodeCount int64 `json:"node-count,omitempty" validate:"omitempty,gt=0"`
855 // DBaaS plan CPU count per node
856 NodeCPUCount int64 `json:"node-cpu-count,omitempty" validate:"omitempty,gt=0"`
857 // DBaaS plan memory count per node
858 NodeMemory int64 `json:"node-memory,omitempty" validate:"omitempty,gt=0"`
859 // Zones where the plan is available
860 Zones []string `json:"zones,omitempty"`
861 }
862 863 type DBAASPostgresUsersUsers struct {
864 AllowReplication *bool `json:"allow-replication,omitempty"`
865 Username DBAASUserUsername `json:"username" validate:"required,gte=1,lte=64"`
866 }
867 868 type DBAASPostgresUsers struct {
869 Users []DBAASPostgresUsersUsers `json:"users,omitempty"`
870 }
871 872 // List of backups for the service
873 type DBAASServiceBackup struct {
874 // Internal name of this backup
875 BackupName string `json:"backup-name" validate:"required"`
876 // Backup timestamp (ISO 8601)
877 BackupTime time.Time `json:"backup-time" validate:"required"`
878 // Backup's original size before compression
879 DataSize int64 `json:"data-size" validate:"required,gte=0"`
880 }
881 882 type DBAASServiceCommon struct {
883 // Service creation timestamp (ISO 8601)
884 CreatedAT time.Time `json:"created-at,omitempty"`
885 // TODO UNIT disk space for data storage
886 DiskSize int64 `json:"disk-size,omitempty" validate:"omitempty,gte=0"`
887 // Service integrations
888 Integrations []DBAASIntegration `json:"integrations,omitempty"`
889 Name DBAASServiceName `json:"name" validate:"required,gte=0,lte=63"`
890 // Number of service nodes in the active plan
891 NodeCount int64 `json:"node-count,omitempty" validate:"omitempty,gte=0"`
892 // Number of CPUs for each node
893 NodeCPUCount int64 `json:"node-cpu-count,omitempty" validate:"omitempty,gte=0"`
894 // TODO UNIT of memory for each node
895 NodeMemory int64 `json:"node-memory,omitempty" validate:"omitempty,gte=0"`
896 // Service notifications
897 Notifications []DBAASServiceNotification `json:"notifications,omitempty"`
898 // Subscription plan
899 Plan string `json:"plan" validate:"required"`
900 State EnumServiceState `json:"state,omitempty"`
901 // Service is protected against termination and powering off
902 TerminationProtection *bool `json:"termination-protection,omitempty"`
903 Type DBAASServiceTypeName `json:"type" validate:"required,gte=0,lte=64"`
904 // Service last update timestamp (ISO 8601)
905 UpdatedAT time.Time `json:"updated-at,omitempty"`
906 // The zone where the service is running
907 Zone string `json:"zone,omitempty"`
908 }
909 910 type DBAASServiceComponentsRoute string
911 912 const (
913 DBAASServiceComponentsRouteDynamic DBAASServiceComponentsRoute = "dynamic"
914 DBAASServiceComponentsRoutePrivate DBAASServiceComponentsRoute = "private"
915 DBAASServiceComponentsRoutePublic DBAASServiceComponentsRoute = "public"
916 DBAASServiceComponentsRoutePrivatelink DBAASServiceComponentsRoute = "privatelink"
917 )
918 919 type DBAASServiceComponentsUsage string
920 921 const (
922 DBAASServiceComponentsUsagePrimary DBAASServiceComponentsUsage = "primary"
923 DBAASServiceComponentsUsageReplica DBAASServiceComponentsUsage = "replica"
924 )
925 926 // Service component information objects
927 type DBAASServiceComponents struct {
928 // Service component name
929 Component string `json:"component" validate:"required"`
930 // DNS name for connecting to the service component
931 Host string `json:"host" validate:"required"`
932 KafkaAuthenticationMethod EnumKafkaAuthMethod `json:"kafka-authentication-method,omitempty"`
933 // Path component of the service URL (useful only if service component is HTTP or HTTPS endpoint)
934 Path string `json:"path,omitempty"`
935 // Port number for connecting to the service component
936 Port int64 `json:"port" validate:"required,gte=0,lte=65535"`
937 // Network access route
938 Route DBAASServiceComponentsRoute `json:"route" validate:"required"`
939 // Whether the endpoint is encrypted or accepts plaintext.
940 // By default endpoints are always encrypted and
941 // this property is only included for service components that may disable encryption.
942 SSL *bool `json:"ssl,omitempty"`
943 // DNS usage name
944 Usage DBAASServiceComponentsUsage `json:"usage" validate:"required"`
945 }
946 947 type DBAASServiceGrafanaComponents struct {
948 // Service component name
949 Component string `json:"component" validate:"required"`
950 // DNS name for connecting to the service component
951 Host string `json:"host" validate:"required"`
952 // Port number for connecting to the service component
953 Port int64 `json:"port" validate:"required,gte=0,lte=65535"`
954 Route EnumComponentRoute `json:"route" validate:"required"`
955 Usage EnumComponentUsage `json:"usage" validate:"required"`
956 }
957 958 // Grafana connection information properties
959 type DBAASServiceGrafanaConnectionInfo struct {
960 Password string `json:"password,omitempty"`
961 URI string `json:"uri,omitempty"`
962 Username string `json:"username,omitempty"`
963 }
964 965 // Prometheus integration URI
966 type DBAASServiceGrafanaPrometheusURI struct {
967 Host string `json:"host,omitempty"`
968 Port int64 `json:"port,omitempty" validate:"omitempty,gte=0,lte=65535"`
969 }
970 971 type DBAASServiceGrafanaUsers struct {
972 Password string `json:"password,omitempty"`
973 Type string `json:"type,omitempty"`
974 Username string `json:"username,omitempty"`
975 }
976 977 type DBAASServiceGrafana struct {
978 // List of backups for the service
979 Backups []DBAASServiceBackup `json:"backups,omitempty"`
980 // Service component information objects
981 Components []DBAASServiceGrafanaComponents `json:"components,omitempty"`
982 // Grafana connection information properties
983 ConnectionInfo *DBAASServiceGrafanaConnectionInfo `json:"connection-info,omitempty"`
984 // Service creation timestamp (ISO 8601)
985 CreatedAT time.Time `json:"created-at,omitempty"`
986 // DbaaS service description
987 Description string `json:"description,omitempty"`
988 // TODO UNIT disk space for data storage
989 DiskSize int64 `json:"disk-size,omitempty" validate:"omitempty,gte=0"`
990 // Grafana settings
991 GrafanaSettings *JSONSchemaGrafana `json:"grafana-settings,omitempty"`
992 // Service integrations
993 Integrations []DBAASIntegration `json:"integrations,omitempty"`
994 // Allowed CIDR address blocks for incoming connections
995 IPFilter []string `json:"ip-filter,omitempty"`
996 // Automatic maintenance settings
997 Maintenance *DBAASServiceMaintenance `json:"maintenance,omitempty"`
998 Name DBAASServiceName `json:"name" validate:"required,gte=0,lte=63"`
999 // Number of service nodes in the active plan
1000 NodeCount int64 `json:"node-count,omitempty" validate:"omitempty,gte=0"`
1001 // Number of CPUs for each node
1002 NodeCPUCount int64 `json:"node-cpu-count,omitempty" validate:"omitempty,gte=0"`
1003 // TODO UNIT of memory for each node
1004 NodeMemory int64 `json:"node-memory,omitempty" validate:"omitempty,gte=0"`
1005 // State of individual service nodes
1006 NodeStates []DBAASNodeState `json:"node-states,omitempty"`
1007 // Service notifications
1008 Notifications []DBAASServiceNotification `json:"notifications,omitempty"`
1009 // Subscription plan
1010 Plan string `json:"plan" validate:"required"`
1011 // Prometheus integration URI
1012 PrometheusURI *DBAASServiceGrafanaPrometheusURI `json:"prometheus-uri" validate:"required"`
1013 State EnumServiceState `json:"state,omitempty"`
1014 // Service is protected against termination and powering off
1015 TerminationProtection *bool `json:"termination-protection,omitempty"`
1016 Type DBAASServiceTypeName `json:"type" validate:"required,gte=0,lte=64"`
1017 // Service last update timestamp (ISO 8601)
1018 UpdatedAT time.Time `json:"updated-at,omitempty"`
1019 // URI for connecting to the service (may be absent)
1020 URI string `json:"uri,omitempty"`
1021 // service_uri parameterized into key-value pairs
1022 URIParams map[string]any `json:"uri-params,omitempty"`
1023 // List of service users
1024 Users []DBAASServiceGrafanaUsers `json:"users,omitempty"`
1025 // Grafana version
1026 Version string `json:"version,omitempty"`
1027 // The zone where the service is running
1028 Zone string `json:"zone,omitempty"`
1029 }
1030 1031 // Kafka authentication methods
1032 type DBAASServiceKafkaAuthenticationMethods struct {
1033 // Whether certificate/SSL authentication is enabled
1034 Certificate *bool `json:"certificate,omitempty"`
1035 // Whether SASL authentication is enabled
1036 Sasl *bool `json:"sasl,omitempty"`
1037 }
1038 1039 type DBAASServiceKafkaComponents struct {
1040 // Service component name
1041 Component string `json:"component" validate:"required"`
1042 // DNS name for connecting to the service component
1043 Host string `json:"host" validate:"required"`
1044 KafkaAuthenticationMethod EnumKafkaAuthMethod `json:"kafka-authentication-method,omitempty"`
1045 // Port number for connecting to the service component
1046 Port int64 `json:"port" validate:"required,gte=0,lte=65535"`
1047 Route EnumComponentRoute `json:"route" validate:"required"`
1048 Usage EnumComponentUsage `json:"usage" validate:"required"`
1049 }
1050 1051 // Kafka connection information properties
1052 type DBAASServiceKafkaConnectionInfo struct {
1053 AccessCert string `json:"access-cert,omitempty"`
1054 AccessKey string `json:"access-key,omitempty"`
1055 ConnectURI string `json:"connect-uri,omitempty"`
1056 Nodes []string `json:"nodes,omitempty"`
1057 RegistryURI string `json:"registry-uri,omitempty"`
1058 RestURI string `json:"rest-uri,omitempty"`
1059 }
1060 1061 // Prometheus integration URI
1062 type DBAASServiceKafkaPrometheusURI struct {
1063 Host string `json:"host,omitempty"`
1064 Port int64 `json:"port,omitempty" validate:"omitempty,gte=0,lte=65535"`
1065 }
1066 1067 type DBAASServiceKafkaUsers struct {
1068 AccessCert string `json:"access-cert,omitempty"`
1069 AccessCertExpiry time.Time `json:"access-cert-expiry,omitempty"`
1070 AccessKey string `json:"access-key,omitempty"`
1071 Password string `json:"password,omitempty"`
1072 Type string `json:"type,omitempty"`
1073 Username string `json:"username,omitempty"`
1074 }
1075 1076 type DBAASServiceKafka struct {
1077 // Kafka authentication methods
1078 AuthenticationMethods *DBAASServiceKafkaAuthenticationMethods `json:"authentication-methods,omitempty"`
1079 // List of backups for the service
1080 Backups []DBAASServiceBackup `json:"backups,omitempty"`
1081 // Service component information objects
1082 Components []DBAASServiceKafkaComponents `json:"components,omitempty"`
1083 // Kafka connection information properties
1084 ConnectionInfo *DBAASServiceKafkaConnectionInfo `json:"connection-info,omitempty"`
1085 // Service creation timestamp (ISO 8601)
1086 CreatedAT time.Time `json:"created-at,omitempty"`
1087 // TODO UNIT disk space for data storage
1088 DiskSize int64 `json:"disk-size,omitempty" validate:"omitempty,gte=0"`
1089 // Service integrations
1090 Integrations []DBAASIntegration `json:"integrations,omitempty"`
1091 // Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16'
1092 IPFilter []string `json:"ip-filter,omitempty"`
1093 // Whether Kafka Connect is enabled
1094 KafkaConnectEnabled *bool `json:"kafka-connect-enabled,omitempty"`
1095 // Kafka Connect configuration values
1096 KafkaConnectSettings *JSONSchemaKafkaConnect `json:"kafka-connect-settings,omitempty"`
1097 // Whether Kafka REST is enabled
1098 KafkaRestEnabled *bool `json:"kafka-rest-enabled,omitempty"`
1099 // Kafka REST configuration
1100 KafkaRestSettings *JSONSchemaKafkaRest `json:"kafka-rest-settings,omitempty"`
1101 // Kafka broker configuration values
1102 KafkaSettings *JSONSchemaKafka `json:"kafka-settings,omitempty"`
1103 // Automatic maintenance settings
1104 Maintenance *DBAASServiceMaintenance `json:"maintenance,omitempty"`
1105 Name DBAASServiceName `json:"name" validate:"required,gte=0,lte=63"`
1106 // Number of service nodes in the active plan
1107 NodeCount int64 `json:"node-count,omitempty" validate:"omitempty,gte=0"`
1108 // Number of CPUs for each node
1109 NodeCPUCount int64 `json:"node-cpu-count,omitempty" validate:"omitempty,gte=0"`
1110 // TODO UNIT of memory for each node
1111 NodeMemory int64 `json:"node-memory,omitempty" validate:"omitempty,gte=0"`
1112 // State of individual service nodes
1113 NodeStates []DBAASNodeState `json:"node-states,omitempty"`
1114 // Service notifications
1115 Notifications []DBAASServiceNotification `json:"notifications,omitempty"`
1116 // Subscription plan
1117 Plan string `json:"plan" validate:"required"`
1118 // Prometheus integration URI
1119 PrometheusURI *DBAASServiceKafkaPrometheusURI `json:"prometheus-uri" validate:"required"`
1120 // Whether Schema-Registry is enabled
1121 SchemaRegistryEnabled *bool `json:"schema-registry-enabled,omitempty"`
1122 // Schema Registry configuration
1123 SchemaRegistrySettings *JSONSchemaSchemaRegistry `json:"schema-registry-settings,omitempty"`
1124 State EnumServiceState `json:"state,omitempty"`
1125 // Service is protected against termination and powering off
1126 TerminationProtection *bool `json:"termination-protection,omitempty"`
1127 Type DBAASServiceTypeName `json:"type" validate:"required,gte=0,lte=64"`
1128 // Service last update timestamp (ISO 8601)
1129 UpdatedAT time.Time `json:"updated-at,omitempty"`
1130 // URI for connecting to the service (may be absent)
1131 URI string `json:"uri,omitempty"`
1132 // service_uri parameterized into key-value pairs
1133 URIParams map[string]any `json:"uri-params,omitempty"`
1134 // List of service users
1135 Users []DBAASServiceKafkaUsers `json:"users,omitempty"`
1136 // Kafka version
1137 Version string `json:"version,omitempty"`
1138 // The zone where the service is running
1139 Zone string `json:"zone,omitempty"`
1140 }
1141 1142 type DBAASServiceLogsLogs struct {
1143 Message string `json:"message,omitempty"`
1144 Node string `json:"node,omitempty"`
1145 Time string `json:"time,omitempty"`
1146 Unit string `json:"unit,omitempty"`
1147 }
1148 1149 type DBAASServiceLogs struct {
1150 FirstLogOffset string `json:"first-log-offset,omitempty"`
1151 Logs []DBAASServiceLogsLogs `json:"logs,omitempty"`
1152 Offset string `json:"offset,omitempty"`
1153 }
1154 1155 type DBAASServiceMaintenanceDow string
1156 1157 const (
1158 DBAASServiceMaintenanceDowSaturday DBAASServiceMaintenanceDow = "saturday"
1159 DBAASServiceMaintenanceDowTuesday DBAASServiceMaintenanceDow = "tuesday"
1160 DBAASServiceMaintenanceDowNever DBAASServiceMaintenanceDow = "never"
1161 DBAASServiceMaintenanceDowWednesday DBAASServiceMaintenanceDow = "wednesday"
1162 DBAASServiceMaintenanceDowSunday DBAASServiceMaintenanceDow = "sunday"
1163 DBAASServiceMaintenanceDowFriday DBAASServiceMaintenanceDow = "friday"
1164 DBAASServiceMaintenanceDowMonday DBAASServiceMaintenanceDow = "monday"
1165 DBAASServiceMaintenanceDowThursday DBAASServiceMaintenanceDow = "thursday"
1166 )
1167 1168 // Automatic maintenance settings
1169 type DBAASServiceMaintenance struct {
1170 // Day of week for installing updates
1171 Dow DBAASServiceMaintenanceDow `json:"dow" validate:"required"`
1172 // Time for installing updates, UTC
1173 Time string `json:"time" validate:"required,gte=8,lte=8"`
1174 // List of updates waiting to be installed
1175 Updates []DBAASServiceUpdate `json:"updates" validate:"required"`
1176 }
1177 1178 // Backup schedule
1179 type DBAASServiceMysqlBackupSchedule struct {
1180 // The hour of day (in UTC) when backup for the service is started. New backup is only started if previous backup has already completed.
1181 BackupHour int64 `json:"backup-hour,omitempty" validate:"omitempty,gte=0,lte=23"`
1182 // The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.
1183 BackupMinute int64 `json:"backup-minute,omitempty" validate:"omitempty,gte=0,lte=59"`
1184 }
1185 1186 type DBAASServiceMysqlComponents struct {
1187 // Service component name
1188 Component string `json:"component" validate:"required"`
1189 // DNS name for connecting to the service component
1190 Host string `json:"host" validate:"required"`
1191 // Port number for connecting to the service component
1192 Port int64 `json:"port" validate:"required,gte=0,lte=65535"`
1193 Route EnumComponentRoute `json:"route" validate:"required"`
1194 Usage EnumComponentUsage `json:"usage" validate:"required"`
1195 }
1196 1197 // MySQL connection information properties
1198 type DBAASServiceMysqlConnectionInfo struct {
1199 Params []map[string]string `json:"params,omitempty"`
1200 Standby []string `json:"standby,omitempty"`
1201 URI []string `json:"uri,omitempty"`
1202 }
1203 1204 // Prometheus integration URI
1205 type DBAASServiceMysqlPrometheusURI struct {
1206 Host string `json:"host,omitempty"`
1207 Port int64 `json:"port,omitempty" validate:"omitempty,gte=0,lte=65535"`
1208 }
1209 1210 type DBAASServiceMysqlUsers struct {
1211 Authentication string `json:"authentication,omitempty"`
1212 Password string `json:"password,omitempty"`
1213 Type string `json:"type,omitempty"`
1214 Username string `json:"username,omitempty"`
1215 }
1216 1217 type DBAASServiceMysql struct {
1218 // Backup schedule
1219 BackupSchedule *DBAASServiceMysqlBackupSchedule `json:"backup-schedule,omitempty"`
1220 // List of backups for the service
1221 Backups []DBAASServiceBackup `json:"backups,omitempty"`
1222 // Service component information objects
1223 Components []DBAASServiceMysqlComponents `json:"components,omitempty"`
1224 // MySQL connection information properties
1225 ConnectionInfo *DBAASServiceMysqlConnectionInfo `json:"connection-info,omitempty"`
1226 // Service creation timestamp (ISO 8601)
1227 CreatedAT time.Time `json:"created-at,omitempty"`
1228 // List of MySQL databases
1229 Databases []DBAASMysqlDatabaseName `json:"databases,omitempty"`
1230 // TODO UNIT disk space for data storage
1231 DiskSize int64 `json:"disk-size,omitempty" validate:"omitempty,gte=0"`
1232 // Service integrations
1233 Integrations []DBAASIntegration `json:"integrations,omitempty"`
1234 // Allowed CIDR address blocks for incoming connections
1235 IPFilter []string `json:"ip-filter,omitempty"`
1236 // Automatic maintenance settings
1237 Maintenance *DBAASServiceMaintenance `json:"maintenance,omitempty"`
1238 // mysql.conf configuration values
1239 MysqlSettings *JSONSchemaMysql `json:"mysql-settings,omitempty"`
1240 Name DBAASServiceName `json:"name" validate:"required,gte=0,lte=63"`
1241 // Number of service nodes in the active plan
1242 NodeCount int64 `json:"node-count,omitempty" validate:"omitempty,gte=0"`
1243 // Number of CPUs for each node
1244 NodeCPUCount int64 `json:"node-cpu-count,omitempty" validate:"omitempty,gte=0"`
1245 // TODO UNIT of memory for each node
1246 NodeMemory int64 `json:"node-memory,omitempty" validate:"omitempty,gte=0"`
1247 // State of individual service nodes
1248 NodeStates []DBAASNodeState `json:"node-states,omitempty"`
1249 // Service notifications
1250 Notifications []DBAASServiceNotification `json:"notifications,omitempty"`
1251 // Subscription plan
1252 Plan string `json:"plan" validate:"required"`
1253 // Prometheus integration URI
1254 PrometheusURI *DBAASServiceMysqlPrometheusURI `json:"prometheus-uri" validate:"required"`
1255 State EnumServiceState `json:"state,omitempty"`
1256 // Service is protected against termination and powering off
1257 TerminationProtection *bool `json:"termination-protection,omitempty"`
1258 Type DBAASServiceTypeName `json:"type" validate:"required,gte=0,lte=64"`
1259 // Service last update timestamp (ISO 8601)
1260 UpdatedAT time.Time `json:"updated-at,omitempty"`
1261 // URI for connecting to the service (may be absent)
1262 URI string `json:"uri,omitempty"`
1263 // service_uri parameterized into key-value pairs
1264 URIParams map[string]any `json:"uri-params,omitempty"`
1265 // List of service users
1266 Users []DBAASServiceMysqlUsers `json:"users,omitempty"`
1267 // MySQL version
1268 Version string `json:"version,omitempty"`
1269 // The zone where the service is running
1270 Zone string `json:"zone,omitempty"`
1271 }
1272 1273 type DBAASServiceName string
1274 1275 type DBAASServiceNotificationLevel string
1276 1277 const (
1278 DBAASServiceNotificationLevelWarning DBAASServiceNotificationLevel = "warning"
1279 DBAASServiceNotificationLevelNotice DBAASServiceNotificationLevel = "notice"
1280 )
1281 1282 type DBAASServiceNotificationType string
1283 1284 const (
1285 DBAASServiceNotificationTypeServicePoweredOffRemoval DBAASServiceNotificationType = "service_powered_off_removal"
1286 DBAASServiceNotificationTypeServiceEndOfLife DBAASServiceNotificationType = "service_end_of_life"
1287 )
1288 1289 // Service notifications
1290 type DBAASServiceNotification struct {
1291 // Notification level
1292 Level DBAASServiceNotificationLevel `json:"level" validate:"required"`
1293 // Human notification message
1294 Message string `json:"message" validate:"required,gte=1,lte=1024"`
1295 // Notification type
1296 Metadata map[string]any `json:"metadata" validate:"required"`
1297 // Notification type
1298 Type DBAASServiceNotificationType `json:"type" validate:"required"`
1299 }
1300 1301 type DBAASServiceOpensearchComponents struct {
1302 // Service component name
1303 Component string `json:"component" validate:"required"`
1304 // DNS name for connecting to the service component
1305 Host string `json:"host" validate:"required"`
1306 // Port number for connecting to the service component
1307 Port int64 `json:"port" validate:"required,gte=0,lte=65535"`
1308 Route EnumComponentRoute `json:"route" validate:"required"`
1309 Usage EnumComponentUsage `json:"usage" validate:"required"`
1310 }
1311 1312 // Opensearch connection information properties
1313 type DBAASServiceOpensearchConnectionInfo struct {
1314 DashboardURI string `json:"dashboard-uri,omitempty"`
1315 Password string `json:"password,omitempty"`
1316 URI []string `json:"uri,omitempty"`
1317 Username string `json:"username,omitempty"`
1318 }
1319 1320 type DBAASServiceOpensearchIndexPatternsSortingAlgorithm string
1321 1322 const (
1323 DBAASServiceOpensearchIndexPatternsSortingAlgorithmAlphabetical DBAASServiceOpensearchIndexPatternsSortingAlgorithm = "alphabetical"
1324 DBAASServiceOpensearchIndexPatternsSortingAlgorithmCreationDate DBAASServiceOpensearchIndexPatternsSortingAlgorithm = "creation_date"
1325 )
1326 1327 type DBAASServiceOpensearchIndexPatterns struct {
1328 // Maximum number of indexes to keep
1329 MaxIndexCount *int64 `json:"max-index-count,omitempty" validate:"omitempty,gte=0"`
1330 // fnmatch pattern
1331 Pattern string `json:"pattern,omitempty" validate:"omitempty,lte=1024"`
1332 // Deletion sorting algorithm
1333 SortingAlgorithm DBAASServiceOpensearchIndexPatternsSortingAlgorithm `json:"sorting-algorithm,omitempty"`
1334 }
1335 1336 // Template settings for all new indexes
1337 type DBAASServiceOpensearchIndexTemplate struct {
1338 // The maximum number of nested JSON objects that a single document can contain across all nested types. This limit helps to prevent out of memory errors when a document contains too many nested objects. Default is 10000.
1339 MappingNestedObjectsLimit int64 `json:"mapping-nested-objects-limit,omitempty" validate:"omitempty,gte=0,lte=100000"`
1340 // The number of replicas each primary shard has.
1341 NumberOfReplicas int64 `json:"number-of-replicas,omitempty" validate:"omitempty,gte=0,lte=29"`
1342 // The number of primary shards that an index should have.
1343 NumberOfShards int64 `json:"number-of-shards,omitempty" validate:"omitempty,gte=1,lte=1024"`
1344 }
1345 1346 // OpenSearch Dashboards settings
1347 type DBAASServiceOpensearchOpensearchDashboards struct {
1348 // Enable or disable OpenSearch Dashboards (default: true)
1349 Enabled *bool `json:"enabled,omitempty"`
1350 // Limits the maximum amount of memory (in MiB) the OpenSearch Dashboards process can use. This sets the max_old_space_size option of the nodejs running the OpenSearch Dashboards. Note: the memory reserved by OpenSearch Dashboards is not available for OpenSearch. (default: 128)
1351 MaxOldSpaceSize int64 `json:"max-old-space-size,omitempty" validate:"omitempty,gte=64,lte=1024"`
1352 // Timeout in milliseconds for requests made by OpenSearch Dashboards towards OpenSearch (default: 30000)
1353 OpensearchRequestTimeout int64 `json:"opensearch-request-timeout,omitempty" validate:"omitempty,gte=5000,lte=120000"`
1354 }
1355 1356 // Prometheus integration URI
1357 type DBAASServiceOpensearchPrometheusURI struct {
1358 Host string `json:"host,omitempty"`
1359 Port int64 `json:"port,omitempty" validate:"omitempty,gte=0,lte=65535"`
1360 }
1361 1362 type DBAASServiceOpensearchUsers struct {
1363 Password string `json:"password,omitempty"`
1364 Type string `json:"type,omitempty"`
1365 Username string `json:"username,omitempty"`
1366 }
1367 1368 type DBAASServiceOpensearch struct {
1369 // List of backups for the service
1370 Backups []DBAASServiceBackup `json:"backups,omitempty"`
1371 // Service component information objects
1372 Components []DBAASServiceOpensearchComponents `json:"components,omitempty"`
1373 // Opensearch connection information properties
1374 ConnectionInfo *DBAASServiceOpensearchConnectionInfo `json:"connection-info,omitempty"`
1375 // Service creation timestamp (ISO 8601)
1376 CreatedAT time.Time `json:"created-at,omitempty"`
1377 // DbaaS service description
1378 Description string `json:"description,omitempty"`
1379 // TODO UNIT disk space for data storage
1380 DiskSize int64 `json:"disk-size,omitempty" validate:"omitempty,gte=0"`
1381 // Allows you to create glob style patterns and set a max number of indexes matching this pattern you want to keep. Creating indexes exceeding this value will cause the oldest one to get deleted. You could for example create a pattern looking like 'logs.?' and then create index logs.1, logs.2 etc, it will delete logs.1 once you create logs.6. Do note 'logs.?' does not apply to logs.10. Note: Setting max_index_count to 0 will do nothing and the pattern gets ignored.
1382 IndexPatterns []DBAASServiceOpensearchIndexPatterns `json:"index-patterns,omitempty"`
1383 // Template settings for all new indexes
1384 IndexTemplate *DBAASServiceOpensearchIndexTemplate `json:"index-template,omitempty"`
1385 // Service integrations
1386 Integrations []DBAASIntegration `json:"integrations,omitempty"`
1387 // Allowed CIDR address blocks for incoming connections
1388 IPFilter []string `json:"ip-filter,omitempty"`
1389 // Aiven automation resets index.refresh_interval to default value for every index to be sure that indices are always visible to search. If it doesn't fit your case, you can disable this by setting up this flag to true.
1390 KeepIndexRefreshInterval *bool `json:"keep-index-refresh-interval,omitempty"`
1391 // Automatic maintenance settings
1392 Maintenance *DBAASServiceMaintenance `json:"maintenance,omitempty"`
1393 // Maximum number of indexes to keep before deleting the oldest one
1394 MaxIndexCount *int64 `json:"max-index-count,omitempty" validate:"omitempty,gte=0"`
1395 Name DBAASServiceName `json:"name" validate:"required,gte=0,lte=63"`
1396 // Number of service nodes in the active plan
1397 NodeCount int64 `json:"node-count,omitempty" validate:"omitempty,gte=0"`
1398 // Number of CPUs for each node
1399 NodeCPUCount int64 `json:"node-cpu-count,omitempty" validate:"omitempty,gte=0"`
1400 // TODO UNIT of memory for each node
1401 NodeMemory int64 `json:"node-memory,omitempty" validate:"omitempty,gte=0"`
1402 // State of individual service nodes
1403 NodeStates []DBAASNodeState `json:"node-states,omitempty"`
1404 // Service notifications
1405 Notifications []DBAASServiceNotification `json:"notifications,omitempty"`
1406 // OpenSearch Dashboards settings
1407 OpensearchDashboards *DBAASServiceOpensearchOpensearchDashboards `json:"opensearch-dashboards,omitempty"`
1408 // OpenSearch settings
1409 OpensearchSettings *JSONSchemaOpensearch `json:"opensearch-settings,omitempty"`
1410 // Subscription plan
1411 Plan string `json:"plan" validate:"required"`
1412 // Prometheus integration URI
1413 PrometheusURI *DBAASServiceOpensearchPrometheusURI `json:"prometheus-uri" validate:"required"`
1414 State EnumServiceState `json:"state,omitempty"`
1415 // Service is protected against termination and powering off
1416 TerminationProtection *bool `json:"termination-protection,omitempty"`
1417 Type DBAASServiceTypeName `json:"type" validate:"required,gte=0,lte=64"`
1418 // Service last update timestamp (ISO 8601)
1419 UpdatedAT time.Time `json:"updated-at,omitempty"`
1420 // URI for connecting to the service (may be absent)
1421 URI string `json:"uri,omitempty"`
1422 // service_uri parameterized into key-value pairs
1423 URIParams map[string]any `json:"uri-params,omitempty"`
1424 // List of service users
1425 Users []DBAASServiceOpensearchUsers `json:"users,omitempty"`
1426 // OpenSearch version
1427 Version string `json:"version,omitempty"`
1428 // The zone where the service is running
1429 Zone string `json:"zone,omitempty"`
1430 }
1431 1432 // Backup schedule
1433 type DBAASServicePGBackupSchedule struct {
1434 // The hour of day (in UTC) when backup for the service is started. New backup is only started if previous backup has already completed.
1435 BackupHour int64 `json:"backup-hour,omitempty" validate:"omitempty,gte=0,lte=23"`
1436 // The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.
1437 BackupMinute int64 `json:"backup-minute,omitempty" validate:"omitempty,gte=0,lte=59"`
1438 }
1439 1440 type DBAASServicePGComponents struct {
1441 // Service component name
1442 Component string `json:"component" validate:"required"`
1443 // DNS name for connecting to the service component
1444 Host string `json:"host" validate:"required"`
1445 // Port number for connecting to the service component
1446 Port int64 `json:"port" validate:"required,gte=0,lte=65535"`
1447 Route EnumComponentRoute `json:"route" validate:"required"`
1448 Usage EnumComponentUsage `json:"usage" validate:"required"`
1449 }
1450 1451 // PG connection information properties
1452 type DBAASServicePGConnectionInfo struct {
1453 Params []map[string]string `json:"params,omitempty"`
1454 Standby []string `json:"standby,omitempty"`
1455 Syncing []string `json:"syncing,omitempty"`
1456 URI []string `json:"uri,omitempty"`
1457 }
1458 1459 type DBAASServicePGConnectionPools struct {
1460 // Connection URI for the DB pool
1461 ConnectionURI string `json:"connection-uri" validate:"required"`
1462 Database DBAASDatabaseName `json:"database" validate:"required,gte=1,lte=40"`
1463 Mode EnumPGPoolMode `json:"mode" validate:"required"`
1464 Name DBAASPGPoolName `json:"name" validate:"required,gte=1,lte=63"`
1465 Size DBAASPGPoolSize `json:"size" validate:"required,gte=1,lte=10000"`
1466 Username DBAASPGPoolUsername `json:"username" validate:"required,gte=1,lte=64"`
1467 }
1468 1469 // Prometheus integration URI
1470 type DBAASServicePGPrometheusURI struct {
1471 Host string `json:"host,omitempty"`
1472 Port int64 `json:"port,omitempty" validate:"omitempty,gte=0,lte=65535"`
1473 }
1474 1475 // List of service users
1476 type DBAASServicePGUsers struct {
1477 AllowReplication *bool `json:"allow-replication,omitempty"`
1478 // Account password. A missing field indicates a user overridden password.
1479 Password string `json:"password,omitempty"`
1480 // Account type
1481 Type string `json:"type" validate:"required"`
1482 // Account username
1483 Username string `json:"username" validate:"required"`
1484 }
1485 1486 type DBAASServicePG struct {
1487 // Backup schedule
1488 BackupSchedule *DBAASServicePGBackupSchedule `json:"backup-schedule,omitempty"`
1489 // List of backups for the service
1490 Backups []DBAASServiceBackup `json:"backups,omitempty"`
1491 // Service component information objects
1492 Components []DBAASServicePGComponents `json:"components,omitempty"`
1493 // PG connection information properties
1494 ConnectionInfo *DBAASServicePGConnectionInfo `json:"connection-info,omitempty"`
1495 // PostgreSQL PGBouncer connection pools
1496 ConnectionPools []DBAASServicePGConnectionPools `json:"connection-pools,omitempty"`
1497 // Service creation timestamp (ISO 8601)
1498 CreatedAT time.Time `json:"created-at,omitempty"`
1499 // List of PostgreSQL databases
1500 Databases []DBAASDatabaseName `json:"databases,omitempty"`
1501 // TODO UNIT disk space for data storage
1502 DiskSize int64 `json:"disk-size,omitempty" validate:"omitempty,gte=0"`
1503 // Service integrations
1504 Integrations []DBAASIntegration `json:"integrations,omitempty"`
1505 // Allowed CIDR address blocks for incoming connections
1506 IPFilter []string `json:"ip-filter,omitempty"`
1507 // Automatic maintenance settings
1508 Maintenance *DBAASServiceMaintenance `json:"maintenance,omitempty"`
1509 // Maximum number of connections allowed to an instance
1510 MaxConnections int64 `json:"max-connections,omitempty" validate:"omitempty,gt=0"`
1511 Name DBAASServiceName `json:"name" validate:"required,gte=0,lte=63"`
1512 // Number of service nodes in the active plan
1513 NodeCount int64 `json:"node-count,omitempty" validate:"omitempty,gte=0"`
1514 // Number of CPUs for each node
1515 NodeCPUCount int64 `json:"node-cpu-count,omitempty" validate:"omitempty,gte=0"`
1516 // TODO UNIT of memory for each node
1517 NodeMemory int64 `json:"node-memory,omitempty" validate:"omitempty,gte=0"`
1518 // State of individual service nodes
1519 NodeStates []DBAASNodeState `json:"node-states,omitempty"`
1520 // Service notifications
1521 Notifications []DBAASServiceNotification `json:"notifications,omitempty"`
1522 // postgresql.conf configuration values
1523 PGSettings *JSONSchemaPG `json:"pg-settings,omitempty"`
1524 // System-wide settings for pgbouncer.
1525 PgbouncerSettings *JSONSchemaPgbouncer `json:"pgbouncer-settings,omitempty"`
1526 // System-wide settings for pglookout.
1527 PglookoutSettings *JSONSchemaPglookout `json:"pglookout-settings,omitempty"`
1528 // Subscription plan
1529 Plan string `json:"plan" validate:"required"`
1530 // Prometheus integration URI
1531 PrometheusURI *DBAASServicePGPrometheusURI `json:"prometheus-uri" validate:"required"`
1532 // Percentage of total RAM that the database server uses for shared memory buffers. Valid range is 20-60 (float), which corresponds to 20% - 60%. This setting adjusts the shared_buffers configuration value.
1533 SharedBuffersPercentage int64 `json:"shared-buffers-percentage,omitempty" validate:"omitempty,gte=20,lte=60"`
1534 State EnumServiceState `json:"state,omitempty"`
1535 SynchronousReplication EnumPGSynchronousReplication `json:"synchronous-replication,omitempty"`
1536 // Service is protected against termination and powering off
1537 TerminationProtection *bool `json:"termination-protection,omitempty"`
1538 // System-wide settings for the timescaledb extension
1539 TimescaledbSettings *JSONSchemaTimescaledb `json:"timescaledb-settings,omitempty"`
1540 Type DBAASServiceTypeName `json:"type" validate:"required,gte=0,lte=64"`
1541 // Service last update timestamp (ISO 8601)
1542 UpdatedAT time.Time `json:"updated-at,omitempty"`
1543 // URI for connecting to the service (may be absent)
1544 URI string `json:"uri,omitempty"`
1545 // service_uri parameterized into key-value pairs
1546 URIParams map[string]any `json:"uri-params,omitempty"`
1547 // List of service users
1548 Users []DBAASServicePGUsers `json:"users,omitempty"`
1549 // PostgreSQL version
1550 Version string `json:"version,omitempty"`
1551 // Sets the maximum amount of memory to be used by a query operation (such as a sort or hash table) before writing to temporary disk files, in MB. Default is 1MB + 0.075% of total RAM (up to 32MB).
1552 WorkMem int64 `json:"work-mem,omitempty" validate:"omitempty,gte=1,lte=1024"`
1553 // The zone where the service is running
1554 Zone string `json:"zone,omitempty"`
1555 }
1556 1557 type DBAASServiceThanosComponents struct {
1558 // Service component name
1559 Component string `json:"component" validate:"required"`
1560 // DNS name for connecting to the service component
1561 Host string `json:"host" validate:"required"`
1562 // Port number for connecting to the service component
1563 Port int64 `json:"port" validate:"required,gte=0,lte=65535"`
1564 Route EnumComponentRoute `json:"route" validate:"required"`
1565 // Whether the endpoint is encrypted or accepts plaintext.
1566 // By default endpoints are always encrypted and
1567 // this property is only included for service components that may disable encryption.
1568 SSL *bool `json:"ssl,omitempty"`
1569 Usage EnumComponentUsage `json:"usage" validate:"required"`
1570 }
1571 1572 // Thanos connection information properties
1573 type DBAASServiceThanosConnectionInfo struct {
1574 QueryFrontendURI string `json:"query-frontend-uri,omitempty"`
1575 QueryURI string `json:"query-uri,omitempty"`
1576 ReceiverRemoteWriteURI string `json:"receiver-remote-write-uri,omitempty"`
1577 RulerURI string `json:"ruler-uri,omitempty"`
1578 }
1579 1580 // Prometheus integration URI
1581 type DBAASServiceThanosPrometheusURI struct {
1582 Host string `json:"host,omitempty"`
1583 Port int64 `json:"port,omitempty" validate:"omitempty,gte=0,lte=65535"`
1584 }
1585 1586 type DBAASServiceThanosUsers struct {
1587 Password string `json:"password,omitempty"`
1588 Type string `json:"type,omitempty"`
1589 Username string `json:"username,omitempty"`
1590 }
1591 1592 type DBAASServiceThanos struct {
1593 // List of backups for the service
1594 Backups []DBAASServiceBackup `json:"backups,omitempty"`
1595 // Service component information objects
1596 Components []DBAASServiceThanosComponents `json:"components,omitempty"`
1597 // Thanos connection information properties
1598 ConnectionInfo *DBAASServiceThanosConnectionInfo `json:"connection-info,omitempty"`
1599 // Service creation timestamp (ISO 8601)
1600 CreatedAT time.Time `json:"created-at,omitempty"`
1601 // TODO UNIT disk space for data storage
1602 DiskSize int64 `json:"disk-size,omitempty" validate:"omitempty,gte=0"`
1603 // Service integrations
1604 Integrations []DBAASIntegration `json:"integrations,omitempty"`
1605 // Allowed CIDR address blocks for incoming connections
1606 IPFilter []string `json:"ip-filter,omitempty"`
1607 // Automatic maintenance settings
1608 Maintenance *DBAASServiceMaintenance `json:"maintenance,omitempty"`
1609 Name DBAASServiceName `json:"name" validate:"required,gte=0,lte=63"`
1610 // Number of service nodes in the active plan
1611 NodeCount int64 `json:"node-count,omitempty" validate:"omitempty,gte=0"`
1612 // Number of CPUs for each node
1613 NodeCPUCount int64 `json:"node-cpu-count,omitempty" validate:"omitempty,gte=0"`
1614 // TODO UNIT of memory for each node
1615 NodeMemory int64 `json:"node-memory,omitempty" validate:"omitempty,gte=0"`
1616 // State of individual service nodes
1617 NodeStates []DBAASNodeState `json:"node-states,omitempty"`
1618 // Service notifications
1619 Notifications []DBAASServiceNotification `json:"notifications,omitempty"`
1620 // Subscription plan
1621 Plan string `json:"plan" validate:"required"`
1622 // Prometheus integration URI
1623 PrometheusURI *DBAASServiceThanosPrometheusURI `json:"prometheus-uri" validate:"required"`
1624 State EnumServiceState `json:"state,omitempty"`
1625 // Service is protected against termination and powering off
1626 TerminationProtection *bool `json:"termination-protection,omitempty"`
1627 // Thanos settings
1628 ThanosSettings *JSONSchemaThanos `json:"thanos-settings,omitempty"`
1629 Type DBAASServiceTypeName `json:"type" validate:"required,gte=0,lte=64"`
1630 // Service last update timestamp (ISO 8601)
1631 UpdatedAT time.Time `json:"updated-at,omitempty"`
1632 // URI for connecting to the service (may be absent)
1633 URI string `json:"uri,omitempty"`
1634 // service_uri parameterized into key-value pairs
1635 URIParams map[string]any `json:"uri-params,omitempty"`
1636 // List of service users
1637 Users []DBAASServiceThanosUsers `json:"users,omitempty"`
1638 // The zone where the service is running
1639 Zone string `json:"zone,omitempty"`
1640 }
1641 1642 // DBaaS service
1643 type DBAASServiceType struct {
1644 // DbaaS service available versions
1645 AvailableVersions []string `json:"available-versions,omitempty"`
1646 // DbaaS service default version
1647 DefaultVersion string `json:"default-version,omitempty"`
1648 // DbaaS service description
1649 Description string `json:"description,omitempty"`
1650 Name DBAASServiceTypeName `json:"name,omitempty" validate:"omitempty,gte=0,lte=64"`
1651 // DbaaS service plans
1652 Plans []DBAASPlan `json:"plans,omitempty"`
1653 }
1654 1655 type DBAASServiceTypeName string
1656 1657 // Update waiting to be installed
1658 type DBAASServiceUpdate struct {
1659 // Deadline for installing the update
1660 Deadline time.Time `json:"deadline,omitempty"`
1661 // Description of the update
1662 Description string `json:"description,omitempty"`
1663 // The earliest time the update will be automatically applied
1664 StartAfter time.Time `json:"start-after,omitempty"`
1665 // The time when the update will be automatically applied
1666 StartAT time.Time `json:"start-at,omitempty"`
1667 }
1668 1669 type DBAASServiceValkeyComponents struct {
1670 // Service component name
1671 Component string `json:"component" validate:"required"`
1672 // DNS name for connecting to the service component
1673 Host string `json:"host" validate:"required"`
1674 // Port number for connecting to the service component
1675 Port int64 `json:"port" validate:"required,gte=0,lte=65535"`
1676 Route EnumComponentRoute `json:"route" validate:"required"`
1677 // Whether the endpoint is encrypted or accepts plaintext.
1678 // By default endpoints are always encrypted and
1679 // this property is only included for service components that may disable encryption.
1680 SSL *bool `json:"ssl,omitempty"`
1681 Usage EnumComponentUsage `json:"usage" validate:"required"`
1682 }
1683 1684 // Valkey connection information properties
1685 type DBAASServiceValkeyConnectionInfo struct {
1686 Password string `json:"password,omitempty"`
1687 Slave []string `json:"slave,omitempty"`
1688 URI []string `json:"uri,omitempty"`
1689 }
1690 1691 // Prometheus integration URI
1692 type DBAASServiceValkeyPrometheusURI struct {
1693 Host string `json:"host,omitempty"`
1694 Port int64 `json:"port,omitempty" validate:"omitempty,gte=0,lte=65535"`
1695 }
1696 1697 type DBAASServiceValkeyUsersAccessControl struct {
1698 Categories []string `json:"categories,omitempty"`
1699 Channels []string `json:"channels,omitempty"`
1700 Commands []string `json:"commands,omitempty"`
1701 Keys []string `json:"keys,omitempty"`
1702 }
1703 1704 type DBAASServiceValkeyUsers struct {
1705 AccessControl *DBAASServiceValkeyUsersAccessControl `json:"access-control,omitempty"`
1706 Password string `json:"password,omitempty"`
1707 Type string `json:"type,omitempty"`
1708 Username string `json:"username,omitempty"`
1709 }
1710 1711 type DBAASServiceValkey struct {
1712 // List of backups for the service
1713 Backups []DBAASServiceBackup `json:"backups,omitempty"`
1714 // Service component information objects
1715 Components []DBAASServiceValkeyComponents `json:"components,omitempty"`
1716 // Valkey connection information properties
1717 ConnectionInfo *DBAASServiceValkeyConnectionInfo `json:"connection-info,omitempty"`
1718 // Service creation timestamp (ISO 8601)
1719 CreatedAT time.Time `json:"created-at,omitempty"`
1720 // TODO UNIT disk space for data storage
1721 DiskSize int64 `json:"disk-size,omitempty" validate:"omitempty,gte=0"`
1722 // Service integrations
1723 Integrations []DBAASIntegration `json:"integrations,omitempty"`
1724 // Allowed CIDR address blocks for incoming connections
1725 IPFilter []string `json:"ip-filter,omitempty"`
1726 // Automatic maintenance settings
1727 Maintenance *DBAASServiceMaintenance `json:"maintenance,omitempty"`
1728 Name DBAASServiceName `json:"name" validate:"required,gte=0,lte=63"`
1729 // Number of service nodes in the active plan
1730 NodeCount int64 `json:"node-count,omitempty" validate:"omitempty,gte=0"`
1731 // Number of CPUs for each node
1732 NodeCPUCount int64 `json:"node-cpu-count,omitempty" validate:"omitempty,gte=0"`
1733 // TODO UNIT of memory for each node
1734 NodeMemory int64 `json:"node-memory,omitempty" validate:"omitempty,gte=0"`
1735 // State of individual service nodes
1736 NodeStates []DBAASNodeState `json:"node-states,omitempty"`
1737 // Service notifications
1738 Notifications []DBAASServiceNotification `json:"notifications,omitempty"`
1739 // Subscription plan
1740 Plan string `json:"plan" validate:"required"`
1741 // Prometheus integration URI
1742 PrometheusURI *DBAASServiceValkeyPrometheusURI `json:"prometheus-uri" validate:"required"`
1743 State EnumServiceState `json:"state,omitempty"`
1744 // Service is protected against termination and powering off
1745 TerminationProtection *bool `json:"termination-protection,omitempty"`
1746 Type DBAASServiceTypeName `json:"type" validate:"required,gte=0,lte=64"`
1747 // Service last update timestamp (ISO 8601)
1748 UpdatedAT time.Time `json:"updated-at,omitempty"`
1749 // URI for connecting to the service (may be absent)
1750 URI string `json:"uri,omitempty"`
1751 // service_uri parameterized into key-value pairs
1752 URIParams map[string]any `json:"uri-params,omitempty"`
1753 // List of service users
1754 Users []DBAASServiceValkeyUsers `json:"users,omitempty"`
1755 // Valkey settings
1756 ValkeySettings *JSONSchemaValkey `json:"valkey-settings,omitempty"`
1757 // Valkey version
1758 Version string `json:"version,omitempty"`
1759 // The zone where the service is running
1760 Zone string `json:"zone,omitempty"`
1761 }
1762 1763 type DBAASTaskResultCodes struct {
1764 Code string `json:"code,omitempty"`
1765 Dbname string `json:"dbname,omitempty"`
1766 }
1767 1768 type DBAASTask struct {
1769 CreateTime time.Time `json:"create-time,omitempty"`
1770 ID UUID `json:"id,omitempty"`
1771 Result string `json:"result,omitempty"`
1772 ResultCodes []DBAASTaskResultCodes `json:"result-codes,omitempty"`
1773 Success *bool `json:"success,omitempty"`
1774 TaskType string `json:"task-type,omitempty"`
1775 }
1776 1777 // Grafana User secrets
1778 type DBAASUserGrafanaSecrets struct {
1779 // Grafana password
1780 Password string `json:"password,omitempty"`
1781 // Grafana username
1782 Username string `json:"username,omitempty"`
1783 }
1784 1785 // Kafka Connect secrets
1786 type DBAASUserKafkaConnectSecrets struct {
1787 // Kafka Connect password
1788 Password string `json:"password,omitempty"`
1789 // Kafka Connect username
1790 Username string `json:"username,omitempty"`
1791 }
1792 1793 // Kafka User secrets
1794 type DBAASUserKafkaSecrets struct {
1795 // Kafka certificate
1796 AccessCert string `json:"access-cert,omitempty"`
1797 AccessCertExpiry time.Time `json:"access-cert-expiry,omitempty"`
1798 // Kafka access key
1799 AccessKey string `json:"access-key,omitempty"`
1800 // Kafka password
1801 Password string `json:"password,omitempty"`
1802 // Kafka username
1803 Username string `json:"username,omitempty"`
1804 }
1805 1806 // MySQL User secrets
1807 type DBAASUserMysqlSecrets struct {
1808 // MySQL password
1809 Password string `json:"password,omitempty"`
1810 // MySQL username
1811 Username string `json:"username,omitempty"`
1812 }
1813 1814 // Opensearch User secrets
1815 type DBAASUserOpensearchSecrets struct {
1816 // Opensearch password
1817 Password string `json:"password,omitempty"`
1818 // Opensearch username
1819 Username string `json:"username,omitempty"`
1820 }
1821 1822 type DBAASUserPassword string
1823 1824 // Postgres User secrets
1825 type DBAASUserPostgresSecrets struct {
1826 // Postgres password
1827 Password string `json:"password,omitempty"`
1828 // Postgres username
1829 Username string `json:"username,omitempty"`
1830 }
1831 1832 // Thanos User secrets
1833 type DBAASUserThanosSecrets struct {
1834 // Thanos password
1835 Password string `json:"password,omitempty"`
1836 // Thanos username
1837 Username string `json:"username,omitempty"`
1838 }
1839 1840 type DBAASUserUsername string
1841 1842 // Valkey User secrets
1843 type DBAASUserValkeySecrets struct {
1844 // Valkey password
1845 Password string `json:"password,omitempty"`
1846 // Valkey username
1847 Username string `json:"username,omitempty"`
1848 }
1849 1850 // Model is in use: deletion forbidden
1851 type DeleteModelConflictResponse struct {
1852 // Deployments using models
1853 Deployments []string `json:"deployments,omitempty"`
1854 }
1855 1856 type DeployTargetType string
1857 1858 const (
1859 DeployTargetTypeEdge DeployTargetType = "edge"
1860 DeployTargetTypeDedicated DeployTargetType = "dedicated"
1861 )
1862 1863 // Deploy target
1864 type DeployTarget struct {
1865 // Deploy Target description
1866 Description string `json:"description,omitempty" validate:"omitempty,lte=255"`
1867 // Deploy Target ID
1868 ID UUID `json:"id" validate:"required"`
1869 // Deploy Target name
1870 Name string `json:"name,omitempty" validate:"omitempty,gte=1,lte=255"`
1871 // Deploy Target type
1872 Type DeployTargetType `json:"type,omitempty"`
1873 }
1874 1875 // DNS domain
1876 type DNSDomain struct {
1877 // DNS domain creation date
1878 CreatedAT time.Time `json:"created-at,omitempty"`
1879 // DNS domain ID
1880 ID UUID `json:"id,omitempty"`
1881 // DNS domain unicode name
1882 UnicodeName string `json:"unicode-name,omitempty" validate:"omitempty,gte=1,lte=255"`
1883 }
1884 1885 type DNSDomainRecordType string
1886 1887 const (
1888 DNSDomainRecordTypeNS DNSDomainRecordType = "NS"
1889 DNSDomainRecordTypeCAA DNSDomainRecordType = "CAA"
1890 DNSDomainRecordTypeNAPTR DNSDomainRecordType = "NAPTR"
1891 DNSDomainRecordTypePOOL DNSDomainRecordType = "POOL"
1892 DNSDomainRecordTypeA DNSDomainRecordType = "A"
1893 DNSDomainRecordTypeHINFO DNSDomainRecordType = "HINFO"
1894 DNSDomainRecordTypeCNAME DNSDomainRecordType = "CNAME"
1895 DNSDomainRecordTypeSOA DNSDomainRecordType = "SOA"
1896 DNSDomainRecordTypeSSHFP DNSDomainRecordType = "SSHFP"
1897 DNSDomainRecordTypeSRV DNSDomainRecordType = "SRV"
1898 DNSDomainRecordTypeAAAA DNSDomainRecordType = "AAAA"
1899 DNSDomainRecordTypeMX DNSDomainRecordType = "MX"
1900 DNSDomainRecordTypeTXT DNSDomainRecordType = "TXT"
1901 DNSDomainRecordTypeALIAS DNSDomainRecordType = "ALIAS"
1902 DNSDomainRecordTypeURL DNSDomainRecordType = "URL"
1903 DNSDomainRecordTypeSPF DNSDomainRecordType = "SPF"
1904 )
1905 1906 // DNS domain record
1907 type DNSDomainRecord struct {
1908 // DNS domain record content
1909 Content string `json:"content,omitempty"`
1910 // DNS domain record creation date
1911 CreatedAT time.Time `json:"created-at,omitempty"`
1912 // DNS domain record ID
1913 ID UUID `json:"id,omitempty"`
1914 // DNS domain record name
1915 Name string `json:"name,omitempty"`
1916 // DNS domain record priority
1917 Priority int64 `json:"priority,omitempty" validate:"omitempty,gte=0"`
1918 // DNS domain record system status
1919 SystemRecord *bool `json:"system-record,omitempty"`
1920 // DNS domain record TTL
1921 Ttl int64 `json:"ttl,omitempty" validate:"omitempty,gte=0"`
1922 // DNS domain record type
1923 Type DNSDomainRecordType `json:"type,omitempty"`
1924 // DNS domain record update date
1925 UpdatedAT time.Time `json:"updated-at,omitempty"`
1926 }
1927 1928 type DomainName string
1929 1930 type ElasticIPAddressfamily string
1931 1932 const (
1933 ElasticIPAddressfamilyInet4 ElasticIPAddressfamily = "inet4"
1934 ElasticIPAddressfamilyInet6 ElasticIPAddressfamily = "inet6"
1935 )
1936 1937 // Elastic IP
1938 type ElasticIP struct {
1939 // Elastic IP address family
1940 Addressfamily ElasticIPAddressfamily `json:"addressfamily,omitempty"`
1941 // Elastic IP cidr
1942 Cidr string `json:"cidr,omitempty"`
1943 // Elastic IP description
1944 Description string `json:"description,omitempty" validate:"omitempty,lte=255"`
1945 // Elastic IP address healthcheck
1946 Healthcheck *ElasticIPHealthcheck `json:"healthcheck,omitempty"`
1947 // Elastic IP ID
1948 ID UUID `json:"id,omitempty"`
1949 // Elastic IP address
1950 IP string `json:"ip,omitempty"`
1951 Labels Labels `json:"labels,omitempty"`
1952 }
1953 1954 type ElasticIPHealthcheckMode string
1955 1956 const (
1957 ElasticIPHealthcheckModeTCP ElasticIPHealthcheckMode = "tcp"
1958 ElasticIPHealthcheckModeHTTP ElasticIPHealthcheckMode = "http"
1959 ElasticIPHealthcheckModeHttps ElasticIPHealthcheckMode = "https"
1960 )
1961 1962 // Elastic IP address healthcheck
1963 type ElasticIPHealthcheck struct {
1964 // Interval between the checks in seconds (default: 10)
1965 Interval int64 `json:"interval,omitempty" validate:"omitempty,gte=5,lte=300"`
1966 // Health check mode
1967 Mode ElasticIPHealthcheckMode `json:"mode" validate:"required"`
1968 // Health check port
1969 Port int64 `json:"port" validate:"required,gte=1,lte=65535"`
1970 // Number of attempts before considering the target unhealthy (default: 3)
1971 StrikesFail int64 `json:"strikes-fail,omitempty" validate:"omitempty,gte=1,lte=20"`
1972 // Number of attempts before considering the target healthy (default: 2)
1973 StrikesOk int64 `json:"strikes-ok,omitempty" validate:"omitempty,gte=1,lte=20"`
1974 // Health check timeout value in seconds (default: 2)
1975 Timeout int64 `json:"timeout,omitempty" validate:"omitempty,gte=2,lte=60"`
1976 // Skip TLS verification
1977 TlsSkipVerify *bool `json:"tls-skip-verify,omitempty"`
1978 // An optional domain or subdomain to check TLS against
1979 TlsSNI string `json:"tls-sni,omitempty" validate:"omitempty,gte=1,lte=255"`
1980 // An endpoint to use for the health check, for example '/status'
1981 URI string `json:"uri,omitempty" validate:"omitempty,gte=1,lte=255"`
1982 }
1983 1984 type EnumComponentRoute string
1985 1986 const (
1987 EnumComponentRouteDynamic EnumComponentRoute = "dynamic"
1988 EnumComponentRoutePrivate EnumComponentRoute = "private"
1989 EnumComponentRoutePublic EnumComponentRoute = "public"
1990 EnumComponentRoutePrivatelink EnumComponentRoute = "privatelink"
1991 )
1992 1993 type EnumComponentUsage string
1994 1995 const (
1996 EnumComponentUsagePrimary EnumComponentUsage = "primary"
1997 EnumComponentUsageReplica EnumComponentUsage = "replica"
1998 )
1999 2000 type EnumDatadogSite string
2001 2002 const (
2003 EnumDatadogSiteUs3DatadoghqCom EnumDatadogSite = "us3.datadoghq.com"
2004 EnumDatadogSiteDdogGovCom EnumDatadogSite = "ddog-gov.com"
2005 EnumDatadogSiteDatadoghqEU EnumDatadogSite = "datadoghq.eu"
2006 EnumDatadogSiteUs5DatadoghqCom EnumDatadogSite = "us5.datadoghq.com"
2007 EnumDatadogSiteAp1DatadoghqCom EnumDatadogSite = "ap1.datadoghq.com"
2008 EnumDatadogSiteDatadoghqCom EnumDatadogSite = "datadoghq.com"
2009 )
2010 2011 type EnumExternalEndpointTypes string
2012 2013 const (
2014 EnumExternalEndpointTypesPrometheus EnumExternalEndpointTypes = "prometheus"
2015 EnumExternalEndpointTypesOpensearch EnumExternalEndpointTypes = "opensearch"
2016 EnumExternalEndpointTypesRsyslog EnumExternalEndpointTypes = "rsyslog"
2017 EnumExternalEndpointTypesDatadog EnumExternalEndpointTypes = "datadog"
2018 EnumExternalEndpointTypesElasticsearch EnumExternalEndpointTypes = "elasticsearch"
2019 )
2020 2021 type EnumIntegrationTypes string
2022 2023 const (
2024 EnumIntegrationTypesDatasource EnumIntegrationTypes = "datasource"
2025 EnumIntegrationTypesLogs EnumIntegrationTypes = "logs"
2026 EnumIntegrationTypesMetrics EnumIntegrationTypes = "metrics"
2027 )
2028 2029 type EnumKafkaAuthMethod string
2030 2031 const (
2032 EnumKafkaAuthMethodCertificate EnumKafkaAuthMethod = "certificate"
2033 EnumKafkaAuthMethodSasl EnumKafkaAuthMethod = "sasl"
2034 )
2035 2036 type EnumMasterLinkStatus string
2037 2038 const (
2039 EnumMasterLinkStatusUP EnumMasterLinkStatus = "up"
2040 EnumMasterLinkStatusDown EnumMasterLinkStatus = "down"
2041 )
2042 2043 type EnumMigrationMethod string
2044 2045 const (
2046 EnumMigrationMethodDump EnumMigrationMethod = "dump"
2047 EnumMigrationMethodReplication EnumMigrationMethod = "replication"
2048 )
2049 2050 type EnumMigrationStatus string
2051 2052 const (
2053 EnumMigrationStatusRunning EnumMigrationStatus = "running"
2054 EnumMigrationStatusSyncing EnumMigrationStatus = "syncing"
2055 EnumMigrationStatusFailed EnumMigrationStatus = "failed"
2056 EnumMigrationStatusDone EnumMigrationStatus = "done"
2057 )
2058 2059 type EnumMysqlAuthenticationPlugin string
2060 2061 const (
2062 EnumMysqlAuthenticationPluginCachingSha2Password EnumMysqlAuthenticationPlugin = "caching_sha2_password"
2063 EnumMysqlAuthenticationPluginMysqlNativePassword EnumMysqlAuthenticationPlugin = "mysql_native_password"
2064 )
2065 2066 type EnumOpensearchRulePermission string
2067 2068 const (
2069 EnumOpensearchRulePermissionAdmin EnumOpensearchRulePermission = "admin"
2070 EnumOpensearchRulePermissionRead EnumOpensearchRulePermission = "read"
2071 EnumOpensearchRulePermissionDeny EnumOpensearchRulePermission = "deny"
2072 EnumOpensearchRulePermissionReadwrite EnumOpensearchRulePermission = "readwrite"
2073 EnumOpensearchRulePermissionWrite EnumOpensearchRulePermission = "write"
2074 )
2075 2076 type EnumPGPoolMode string
2077 2078 const (
2079 EnumPGPoolModeTransaction EnumPGPoolMode = "transaction"
2080 EnumPGPoolModeStatement EnumPGPoolMode = "statement"
2081 EnumPGPoolModeSession EnumPGPoolMode = "session"
2082 )
2083 2084 type EnumPGSynchronousReplication string
2085 2086 const (
2087 EnumPGSynchronousReplicationQuorum EnumPGSynchronousReplication = "quorum"
2088 EnumPGSynchronousReplicationOff EnumPGSynchronousReplication = "off"
2089 )
2090 2091 type EnumPGVariant string
2092 2093 const (
2094 EnumPGVariantTimescale EnumPGVariant = "timescale"
2095 EnumPGVariantAiven EnumPGVariant = "aiven"
2096 )
2097 2098 type EnumRsyslogFormat string
2099 2100 const (
2101 EnumRsyslogFormatCustom EnumRsyslogFormat = "custom"
2102 EnumRsyslogFormatRfc3164 EnumRsyslogFormat = "rfc3164"
2103 EnumRsyslogFormatRfc5424 EnumRsyslogFormat = "rfc5424"
2104 )
2105 2106 type EnumServiceState string
2107 2108 const (
2109 EnumServiceStateRunning EnumServiceState = "running"
2110 EnumServiceStateRebuilding EnumServiceState = "rebuilding"
2111 EnumServiceStateRebalancing EnumServiceState = "rebalancing"
2112 EnumServiceStatePoweroff EnumServiceState = "poweroff"
2113 )
2114 2115 type EnumSortOrder string
2116 2117 const (
2118 EnumSortOrderDesc EnumSortOrder = "desc"
2119 EnumSortOrderAsc EnumSortOrder = "asc"
2120 )
2121 2122 type EnvImpactDetail struct {
2123 // Amount
2124 Amount float64 `json:"amount,omitempty"`
2125 // Unit
2126 Unit string `json:"unit,omitempty"`
2127 // Value
2128 Value string `json:"value,omitempty"`
2129 }
2130 2131 type EnvImpactIndicator struct {
2132 // Amount
2133 Amount float64 `json:"amount,omitempty"`
2134 // Details
2135 Details []EnvImpactDetail `json:"details,omitempty"`
2136 // Unit
2137 Unit string `json:"unit,omitempty"`
2138 // Value
2139 Value string `json:"value,omitempty"`
2140 }
2141 2142 type EnvImpactReport struct {
2143 // Metadata
2144 Metadata []EnvMetadataEntry `json:"metadata,omitempty"`
2145 // Products
2146 Products []EnvProduct `json:"products,omitempty"`
2147 }
2148 2149 type EnvMetadataEntry struct {
2150 // Amount
2151 Amount float64 `json:"amount,omitempty"`
2152 // Unit
2153 Unit string `json:"unit,omitempty"`
2154 // Value
2155 Value string `json:"value,omitempty"`
2156 }
2157 2158 type EnvProduct struct {
2159 // Impacts
2160 Impacts []EnvImpactIndicator `json:"impacts,omitempty"`
2161 // Metadata
2162 Metadata []EnvMetadataEntry `json:"metadata,omitempty"`
2163 // Value
2164 Value string `json:"value,omitempty"`
2165 }
2166 2167 // Error
2168 type ErrorResponse struct {
2169 // Error description
2170 Error string `json:"error,omitempty"`
2171 }
2172 2173 // A notable Mutation Event which happened on the infrastructure
2174 type Event struct {
2175 // Body parameters (free form map)
2176 BodyParams map[string]any `json:"body-params,omitempty"`
2177 // Operation processing time
2178 ElapsedMS int64 `json:"elapsed-ms,omitempty" validate:"omitempty,gt=0"`
2179 // Query string parameters (free form map)
2180 GetParams map[string]any `json:"get-params,omitempty"`
2181 // Operation handler name
2182 Handler string `json:"handler,omitempty"`
2183 // IAM API Key
2184 IAMAPIKey *IAMAPIKey `json:"iam-api-key,omitempty"`
2185 // IAM Role
2186 IAMRole *IAMRole `json:"iam-role,omitempty"`
2187 // User
2188 IAMUser *User `json:"iam-user,omitempty"`
2189 // Operation message
2190 Message string `json:"message,omitempty"`
2191 // URI path parameters (free form map)
2192 PathParams map[string]any `json:"path-params,omitempty"`
2193 // Operation unique identifier
2194 RequestID string `json:"request-id,omitempty"`
2195 // Client IP address
2196 SourceIP string `json:"source-ip,omitempty"`
2197 // Operation HTTP status
2198 Status int64 `json:"status,omitempty" validate:"omitempty,gt=0"`
2199 // Time at which the event happened, millisecond resolution
2200 Timestamp time.Time `json:"timestamp,omitempty"`
2201 // Operation request URI
2202 URI string `json:"uri,omitempty"`
2203 // Operation targeted zone
2204 Zone string `json:"zone,omitempty"`
2205 }
2206 2207 type GetDeploymentLogsResponse string
2208 2209 type GetDeploymentResponseStatus string
2210 2211 const (
2212 GetDeploymentResponseStatusReady GetDeploymentResponseStatus = "ready"
2213 GetDeploymentResponseStatusCreating GetDeploymentResponseStatus = "creating"
2214 GetDeploymentResponseStatusError GetDeploymentResponseStatus = "error"
2215 GetDeploymentResponseStatusDeploying GetDeploymentResponseStatus = "deploying"
2216 )
2217 2218 // AI deployment
2219 type GetDeploymentResponse struct {
2220 // Creation time
2221 CreatedAT time.Time `json:"created-at,omitempty"`
2222 // Deployment URL (nullable)
2223 DeploymentURL string `json:"deployment-url,omitempty"`
2224 // Number of GPUs
2225 GpuCount int64 `json:"gpu-count,omitempty" validate:"omitempty,gt=0"`
2226 // GPU type family
2227 GpuType string `json:"gpu-type,omitempty" validate:"omitempty,gte=1"`
2228 // Deployment ID
2229 ID UUID `json:"id,omitempty"`
2230 // Optional extra inference engine server CLI args
2231 InferenceEngineParameters []string `json:"inference-engine-parameters,omitempty"`
2232 Model *ModelRef `json:"model,omitempty"`
2233 // Deployment name
2234 Name string `json:"name,omitempty" validate:"omitempty,gte=1"`
2235 // Number of replicas (>=0)
2236 Replicas int64 `json:"replicas,omitempty" validate:"omitempty,gte=0"`
2237 // Service level
2238 ServiceLevel string `json:"service-level,omitempty" validate:"omitempty,gte=1"`
2239 // Deployment status
2240 Status GetDeploymentResponseStatus `json:"status,omitempty"`
2241 // Update time
2242 UpdatedAT time.Time `json:"updated-at,omitempty"`
2243 }
2244 2245 // List of allowed inference-engine parameters
2246 type GetInferenceEngineHelpResponse struct {
2247 Parameters []InferenceEngineParameterEntry `json:"parameters,omitempty"`
2248 }
2249 2250 type GetModelResponseStatus string
2251 2252 const (
2253 GetModelResponseStatusReady GetModelResponseStatus = "ready"
2254 GetModelResponseStatusCreating GetModelResponseStatus = "creating"
2255 GetModelResponseStatusDownloading GetModelResponseStatus = "downloading"
2256 GetModelResponseStatusError GetModelResponseStatus = "error"
2257 )
2258 2259 // AI model
2260 type GetModelResponse struct {
2261 // Creation time
2262 CreatedAT time.Time `json:"created-at,omitempty"`
2263 // Model ID
2264 ID UUID `json:"id,omitempty"`
2265 // Model size (nullable)
2266 ModelSize int64 `json:"model-size,omitempty" validate:"omitempty,gte=0"`
2267 // Model name
2268 Name string `json:"name,omitempty" validate:"omitempty,gte=1"`
2269 // Model status
2270 Status GetModelResponseStatus `json:"status,omitempty"`
2271 // Update time
2272 UpdatedAT time.Time `json:"updated-at,omitempty"`
2273 }
2274 2275 // IAM API Key
2276 type IAMAPIKey struct {
2277 // IAM API Key
2278 Key string `json:"key,omitempty"`
2279 // IAM API Key name
2280 Name string `json:"name,omitempty"`
2281 // IAM API Key Role ID
2282 RoleID UUID `json:"role-id,omitempty"`
2283 }
2284 2285 // IAM API Key
2286 type IAMAPIKeyCreated struct {
2287 // IAM API Key
2288 Key string `json:"key,omitempty"`
2289 // IAM API Key name
2290 Name string `json:"name,omitempty"`
2291 // IAM API Key Role ID
2292 RoleID UUID `json:"role-id,omitempty"`
2293 // IAM API Key Secret
2294 Secret string `json:"secret,omitempty"`
2295 }
2296 2297 type IAMPolicyDefaultServiceStrategy string
2298 2299 const (
2300 IAMPolicyDefaultServiceStrategyAllow IAMPolicyDefaultServiceStrategy = "allow"
2301 IAMPolicyDefaultServiceStrategyDeny IAMPolicyDefaultServiceStrategy = "deny"
2302 )
2303 2304 // Policy
2305 type IAMPolicy struct {
2306 // IAM default service strategy
2307 DefaultServiceStrategy IAMPolicyDefaultServiceStrategy `json:"default-service-strategy" validate:"required"`
2308 // IAM services
2309 Services map[string]IAMServicePolicy `json:"services" validate:"required"`
2310 }
2311 2312 // IAM Role
2313 type IAMRole struct {
2314 // IAM Role description
2315 Description string `json:"description,omitempty" validate:"omitempty,gte=1,lte=255"`
2316 // IAM Role mutability
2317 Editable *bool `json:"editable,omitempty"`
2318 // IAM Role ID
2319 ID UUID `json:"id,omitempty"`
2320 Labels Labels `json:"labels,omitempty"`
2321 // IAM Role name
2322 Name string `json:"name,omitempty" validate:"omitempty,gte=1,lte=255"`
2323 // IAM Role permissions
2324 Permissions []string `json:"permissions,omitempty"`
2325 // Policy
2326 Policy *IAMPolicy `json:"policy,omitempty"`
2327 }
2328 2329 type IAMServicePolicyType string
2330 2331 const (
2332 IAMServicePolicyTypeRules IAMServicePolicyType = "rules"
2333 IAMServicePolicyTypeAllow IAMServicePolicyType = "allow"
2334 IAMServicePolicyTypeDeny IAMServicePolicyType = "deny"
2335 )
2336 2337 type IAMServicePolicy struct {
2338 Rules []IAMServicePolicyRule `json:"rules,omitempty"`
2339 Type IAMServicePolicyType `json:"type,omitempty"`
2340 }
2341 2342 type IAMServicePolicyRuleAction string
2343 2344 const (
2345 IAMServicePolicyRuleActionAllow IAMServicePolicyRuleAction = "allow"
2346 IAMServicePolicyRuleActionDeny IAMServicePolicyRuleAction = "deny"
2347 )
2348 2349 type IAMServicePolicyRule struct {
2350 Action IAMServicePolicyRuleAction `json:"action,omitempty"`
2351 Expression string `json:"expression,omitempty"`
2352 Resources []string `json:"resources,omitempty"`
2353 }
2354 2355 // inference-engine parameter definition
2356 type InferenceEngineParameterEntry struct {
2357 // Allowed values
2358 AllowedValues []string `json:"allowed-values,omitempty"`
2359 // Default value if nothing is specified
2360 Default string `json:"default,omitempty"`
2361 // Parameter description
2362 Description string `json:"description,omitempty"`
2363 // Flag name
2364 Flags []string `json:"flags,omitempty"`
2365 // Parameter name
2366 Name string `json:"name,omitempty"`
2367 // Section
2368 Section string `json:"section,omitempty"`
2369 // Parameter type
2370 Type string `json:"type,omitempty"`
2371 }
2372 2373 // Private Network
2374 type InstancePrivateNetworks struct {
2375 // Private Network ID
2376 ID UUID `json:"id,omitempty"`
2377 // Private Network MAC address
2378 MACAddress string `json:"mac-address,omitempty"`
2379 }
2380 2381 // Instance
2382 type Instance struct {
2383 // Instance Anti-affinity Groups
2384 AntiAffinityGroups []AntiAffinityGroup `json:"anti-affinity-groups,omitempty"`
2385 // Indicates if the instance will take application-consistent snapshots
2386 ApplicationConsistentSnapshotEnabled *bool `json:"application-consistent-snapshot-enabled,omitempty"`
2387 // Instance creation date
2388 CreatedAT time.Time `json:"created-at,omitempty"`
2389 // Deploy target
2390 DeployTarget *DeployTarget `json:"deploy-target,omitempty"`
2391 // Instance disk size in GiB
2392 DiskSize int64 `json:"disk-size,omitempty" validate:"omitempty,gte=10,lte=51200"`
2393 // Instance Elastic IPs
2394 ElasticIPS []ElasticIP `json:"elastic-ips,omitempty"`
2395 // Instance ID
2396 ID UUID `json:"id,omitempty"`
2397 // Compute instance type
2398 InstanceType *InstanceType `json:"instance-type,omitempty"`
2399 // Instance IPv6 address
2400 Ipv6Address string `json:"ipv6-address,omitempty"`
2401 Labels Labels `json:"labels,omitempty"`
2402 // Instance MAC address
2403 MACAddress string `json:"mac-address,omitempty"`
2404 // Resource manager
2405 Manager *Manager `json:"manager,omitempty"`
2406 // Instance name
2407 Name string `json:"name,omitempty" validate:"omitempty,gte=1,lte=255"`
2408 // Instance Private Networks
2409 PrivateNetworks []InstancePrivateNetworks `json:"private-networks,omitempty"`
2410 // Instance public IPv4 address
2411 PublicIP net.IP `json:"public-ip,omitempty"`
2412 PublicIPAssignment PublicIPAssignment `json:"public-ip-assignment,omitempty"`
2413 // Indicates if the instance has secure boot enabled
2414 SecurebootEnabled *bool `json:"secureboot-enabled,omitempty"`
2415 // Instance Security Groups
2416 SecurityGroups []SecurityGroup `json:"security-groups,omitempty"`
2417 // Instance Snapshots
2418 Snapshots []Snapshot `json:"snapshots,omitempty"`
2419 // SSH key
2420 SSHKey *SSHKey `json:"ssh-key,omitempty"`
2421 // Instance SSH Keys
2422 SSHKeys []SSHKey `json:"ssh-keys,omitempty"`
2423 State InstanceState `json:"state,omitempty"`
2424 // Instance template
2425 Template *Template `json:"template,omitempty"`
2426 // Indicates if the instance has tpm enabled
2427 TpmEnabled *bool `json:"tpm-enabled,omitempty"`
2428 // Instance Cloud-init user-data (base64 encoded)
2429 UserData string `json:"user-data,omitempty" validate:"omitempty,gte=1"`
2430 }
2431 2432 // Instance password
2433 type InstancePassword struct {
2434 // Password
2435 Password string `json:"password,omitempty"`
2436 }
2437 2438 type InstancePoolState string
2439 2440 const (
2441 InstancePoolStateScalingUP InstancePoolState = "scaling-up"
2442 InstancePoolStateScalingDown InstancePoolState = "scaling-down"
2443 InstancePoolStateDestroying InstancePoolState = "destroying"
2444 InstancePoolStateCreating InstancePoolState = "creating"
2445 InstancePoolStateSuspended InstancePoolState = "suspended"
2446 InstancePoolStateRunning InstancePoolState = "running"
2447 InstancePoolStateUpdating InstancePoolState = "updating"
2448 )
2449 2450 // Instance Pool
2451 type InstancePool struct {
2452 // Instance Pool Anti-affinity Groups
2453 AntiAffinityGroups []AntiAffinityGroup `json:"anti-affinity-groups,omitempty"`
2454 // Enable application consistent snapshots
2455 ApplicationConsistentSnapshotEnabled *bool `json:"application-consistent-snapshot-enabled,omitempty"`
2456 // Deploy target
2457 DeployTarget *DeployTarget `json:"deploy-target,omitempty"`
2458 // Instance Pool description
2459 Description string `json:"description,omitempty" validate:"omitempty,gte=1,lte=255"`
2460 // Instances disk size in GiB
2461 DiskSize int64 `json:"disk-size,omitempty" validate:"omitempty,gte=10,lte=51200"`
2462 // Instances Elastic IPs
2463 ElasticIPS []ElasticIP `json:"elastic-ips,omitempty"`
2464 // Instance Pool ID
2465 ID UUID `json:"id,omitempty"`
2466 // The instances created by the Instance Pool will be prefixed with this value (default: pool)
2467 InstancePrefix string `json:"instance-prefix,omitempty" validate:"omitempty,gte=1,lte=30"`
2468 // Compute instance type
2469 InstanceType *InstanceType `json:"instance-type,omitempty"`
2470 // Instances
2471 Instances []Instance `json:"instances,omitempty"`
2472 // Enable IPv6 for instances
2473 Ipv6Enabled *bool `json:"ipv6-enabled,omitempty"`
2474 Labels Labels `json:"labels,omitempty"`
2475 // Resource manager
2476 Manager *Manager `json:"manager,omitempty"`
2477 // Minimum number of running instances
2478 MinAvailable int64 `json:"min-available,omitempty" validate:"omitempty,gte=0"`
2479 // Instance Pool name
2480 Name string `json:"name,omitempty" validate:"omitempty,gte=1,lte=255"`
2481 // Instance Pool Private Networks
2482 PrivateNetworks []PrivateNetwork `json:"private-networks,omitempty"`
2483 PublicIPAssignment PublicIPAssignment `json:"public-ip-assignment,omitempty"`
2484 // Instance Pool Security Groups
2485 SecurityGroups []SecurityGroup `json:"security-groups,omitempty"`
2486 // Number of instances
2487 Size int64 `json:"size,omitempty" validate:"omitempty,gt=0"`
2488 // SSH key
2489 SSHKey *SSHKey `json:"ssh-key,omitempty"`
2490 // Instances SSH keys
2491 SSHKeys []SSHKey `json:"ssh-keys,omitempty"`
2492 // Instance Pool state
2493 State InstancePoolState `json:"state,omitempty"`
2494 // Instance template
2495 Template *Template `json:"template,omitempty"`
2496 // Instances Cloud-init user-data
2497 UserData string `json:"user-data,omitempty" validate:"omitempty,gte=1"`
2498 }
2499 2500 type InstanceState string
2501 2502 const (
2503 InstanceStateExpunging InstanceState = "expunging"
2504 InstanceStateStarting InstanceState = "starting"
2505 InstanceStateDestroying InstanceState = "destroying"
2506 InstanceStateRunning InstanceState = "running"
2507 InstanceStateStopping InstanceState = "stopping"
2508 InstanceStateStopped InstanceState = "stopped"
2509 InstanceStateMigrating InstanceState = "migrating"
2510 InstanceStateError InstanceState = "error"
2511 InstanceStateDestroyed InstanceState = "destroyed"
2512 )
2513 2514 // Target Instance
2515 type InstanceTarget struct {
2516 // Instance ID
2517 ID UUID `json:"id,omitempty"`
2518 }
2519 2520 type InstanceTypeFamily string
2521 2522 const (
2523 InstanceTypeFamilyGpu3 InstanceTypeFamily = "gpu3"
2524 InstanceTypeFamilyGpua30 InstanceTypeFamily = "gpua30"
2525 InstanceTypeFamilyGpu3080ti InstanceTypeFamily = "gpu3080ti"
2526 InstanceTypeFamilyGpu2 InstanceTypeFamily = "gpu2"
2527 InstanceTypeFamilyGpu InstanceTypeFamily = "gpu"
2528 InstanceTypeFamilyMemory InstanceTypeFamily = "memory"
2529 InstanceTypeFamilyGpua5000 InstanceTypeFamily = "gpua5000"
2530 InstanceTypeFamilyGpurtx6000pro InstanceTypeFamily = "gpurtx6000pro"
2531 InstanceTypeFamilyStorage InstanceTypeFamily = "storage"
2532 InstanceTypeFamilyStandard InstanceTypeFamily = "standard"
2533 InstanceTypeFamilyColossus InstanceTypeFamily = "colossus"
2534 InstanceTypeFamilyCPU InstanceTypeFamily = "cpu"
2535 )
2536 2537 type InstanceTypeSize string
2538 2539 const (
2540 InstanceTypeSizeLarge InstanceTypeSize = "large"
2541 InstanceTypeSizeHuge InstanceTypeSize = "huge"
2542 InstanceTypeSizeJumbo InstanceTypeSize = "jumbo"
2543 InstanceTypeSizeMedium InstanceTypeSize = "medium"
2544 InstanceTypeSizeMega InstanceTypeSize = "mega"
2545 InstanceTypeSizeSmall InstanceTypeSize = "small"
2546 InstanceTypeSizeExtraLarge InstanceTypeSize = "extra-large"
2547 InstanceTypeSizeTitan48c InstanceTypeSize = "titan48c"
2548 InstanceTypeSizeTitan InstanceTypeSize = "titan"
2549 InstanceTypeSizeMicro InstanceTypeSize = "micro"
2550 InstanceTypeSizeColossus InstanceTypeSize = "colossus"
2551 InstanceTypeSizeTiny InstanceTypeSize = "tiny"
2552 )
2553 2554 // Compute instance type
2555 type InstanceType struct {
2556 // Requires authorization or publicly available
2557 Authorized *bool `json:"authorized,omitempty"`
2558 // CPU count
2559 Cpus int64 `json:"cpus,omitempty" validate:"omitempty,gt=0"`
2560 // Instance type family
2561 Family InstanceTypeFamily `json:"family,omitempty"`
2562 // GPU count
2563 Gpus int64 `json:"gpus,omitempty" validate:"omitempty,gt=0"`
2564 // Instance type ID
2565 ID UUID `json:"id,omitempty"`
2566 // Available memory
2567 Memory int64 `json:"memory,omitempty" validate:"omitempty,gt=0"`
2568 // Instance type size
2569 Size InstanceTypeSize `json:"size,omitempty"`
2570 // Instance Type available zones
2571 Zones []ZoneName `json:"zones,omitempty"`
2572 }
2573 2574 type JSONSchemaGrafanaAlertingErrorORTimeout string
2575 2576 const (
2577 JSONSchemaGrafanaAlertingErrorORTimeoutAlerting JSONSchemaGrafanaAlertingErrorORTimeout = "alerting"
2578 JSONSchemaGrafanaAlertingErrorORTimeoutKeepState JSONSchemaGrafanaAlertingErrorORTimeout = "keep_state"
2579 )
2580 2581 type JSONSchemaGrafanaAlertingNodataORNullvalues string
2582 2583 const (
2584 JSONSchemaGrafanaAlertingNodataORNullvaluesAlerting JSONSchemaGrafanaAlertingNodataORNullvalues = "alerting"
2585 JSONSchemaGrafanaAlertingNodataORNullvaluesNOData JSONSchemaGrafanaAlertingNodataORNullvalues = "no_data"
2586 JSONSchemaGrafanaAlertingNodataORNullvaluesKeepState JSONSchemaGrafanaAlertingNodataORNullvalues = "keep_state"
2587 JSONSchemaGrafanaAlertingNodataORNullvaluesOk JSONSchemaGrafanaAlertingNodataORNullvalues = "ok"
2588 )
2589 2590 // Azure AD OAuth integration
2591 type JSONSchemaGrafanaAuthAzuread struct {
2592 // Automatically sign-up users on successful sign-in
2593 AllowSignUP *bool `json:"allow_sign_up,omitempty"`
2594 // Allowed domains
2595 AllowedDomains []string `json:"allowed_domains,omitempty"`
2596 // Require users to belong to one of given groups
2597 AllowedGroups []string `json:"allowed_groups,omitempty"`
2598 // Authorization URL
2599 AuthURL string `json:"auth_url" validate:"required,lte=2048"`
2600 // Client ID from provider
2601 ClientID string `json:"client_id" validate:"required,lte=1024"`
2602 // Client secret from provider
2603 ClientSecret string `json:"client_secret" validate:"required,lte=1024"`
2604 // Token URL
2605 TokenURL string `json:"token_url" validate:"required,lte=2048"`
2606 }
2607 2608 // Generic OAuth integration
2609 type JSONSchemaGrafanaAuthGenericOauth struct {
2610 // Automatically sign-up users on successful sign-in
2611 AllowSignUP *bool `json:"allow_sign_up,omitempty"`
2612 // Allowed domains
2613 AllowedDomains []string `json:"allowed_domains,omitempty"`
2614 // Require user to be member of one of the listed organizations
2615 AllowedOrganizations []string `json:"allowed_organizations,omitempty"`
2616 // API URL
2617 APIURL string `json:"api_url" validate:"required,lte=2048"`
2618 // Authorization URL
2619 AuthURL string `json:"auth_url" validate:"required,lte=2048"`
2620 // Allow users to bypass the login screen and automatically log in
2621 AutoLogin *bool `json:"auto_login,omitempty"`
2622 // Client ID from provider
2623 ClientID string `json:"client_id" validate:"required,lte=1024"`
2624 // Client secret from provider
2625 ClientSecret string `json:"client_secret" validate:"required,lte=1024"`
2626 // Name of the OAuth integration
2627 Name string `json:"name,omitempty" validate:"omitempty,lte=128"`
2628 // OAuth scopes
2629 Scopes []string `json:"scopes,omitempty"`
2630 // Token URL
2631 TokenURL string `json:"token_url" validate:"required,lte=2048"`
2632 }
2633 2634 // Github Auth integration
2635 type JSONSchemaGrafanaAuthGithub struct {
2636 // Automatically sign-up users on successful sign-in
2637 AllowSignUP *bool `json:"allow_sign_up,omitempty"`
2638 // Require users to belong to one of given organizations
2639 AllowedOrganizations []string `json:"allowed_organizations,omitempty"`
2640 // Allow users to bypass the login screen and automatically log in
2641 AutoLogin *bool `json:"auto_login,omitempty"`
2642 // Client ID from provider
2643 ClientID string `json:"client_id" validate:"required,lte=1024"`
2644 // Client secret from provider
2645 ClientSecret string `json:"client_secret" validate:"required,lte=1024"`
2646 // Stop automatically syncing user roles
2647 SkipOrgRoleSync *bool `json:"skip_org_role_sync,omitempty"`
2648 // Require users to belong to one of given team IDs
2649 TeamIDS []int `json:"team_ids,omitempty"`
2650 }
2651 2652 // GitLab Auth integration
2653 type JSONSchemaGrafanaAuthGitlab struct {
2654 // Automatically sign-up users on successful sign-in
2655 AllowSignUP *bool `json:"allow_sign_up,omitempty"`
2656 // Require users to belong to one of given groups
2657 AllowedGroups []string `json:"allowed_groups" validate:"required"`
2658 // API URL. This only needs to be set when using self hosted GitLab
2659 APIURL string `json:"api_url,omitempty" validate:"omitempty,lte=2048"`
2660 // Authorization URL. This only needs to be set when using self hosted GitLab
2661 AuthURL string `json:"auth_url,omitempty" validate:"omitempty,lte=2048"`
2662 // Client ID from provider
2663 ClientID string `json:"client_id" validate:"required,lte=1024"`
2664 // Client secret from provider
2665 ClientSecret string `json:"client_secret" validate:"required,lte=1024"`
2666 // Token URL. This only needs to be set when using self hosted GitLab
2667 TokenURL string `json:"token_url,omitempty" validate:"omitempty,lte=2048"`
2668 }
2669 2670 // Google Auth integration
2671 type JSONSchemaGrafanaAuthGoogle struct {
2672 // Automatically sign-up users on successful sign-in
2673 AllowSignUP *bool `json:"allow_sign_up,omitempty"`
2674 // Domains allowed to sign-in to this Grafana
2675 AllowedDomains []string `json:"allowed_domains" validate:"required"`
2676 // Client ID from provider
2677 ClientID string `json:"client_id" validate:"required,lte=1024"`
2678 // Client secret from provider
2679 ClientSecret string `json:"client_secret" validate:"required,lte=1024"`
2680 }
2681 2682 type JSONSchemaGrafanaCookieSamesite string
2683 2684 const (
2685 JSONSchemaGrafanaCookieSamesiteLax JSONSchemaGrafanaCookieSamesite = "lax"
2686 JSONSchemaGrafanaCookieSamesiteStrict JSONSchemaGrafanaCookieSamesite = "strict"
2687 JSONSchemaGrafanaCookieSamesiteNone JSONSchemaGrafanaCookieSamesite = "none"
2688 )
2689 2690 // Grafana date format specifications
2691 type JSONSchemaGrafanaDateFormats struct {
2692 // Default time zone for user preferences. Value 'browser' uses browser local time zone.
2693 DefaultTimezone string `json:"default_timezone,omitempty" validate:"omitempty,lte=64"`
2694 // Moment.js style format string for cases where full date is shown
2695 FullDate string `json:"full_date,omitempty" validate:"omitempty,lte=128"`
2696 // Moment.js style format string used when a time requiring day accuracy is shown
2697 IntervalDay string `json:"interval_day,omitempty" validate:"omitempty,lte=128"`
2698 // Moment.js style format string used when a time requiring hour accuracy is shown
2699 IntervalHour string `json:"interval_hour,omitempty" validate:"omitempty,lte=128"`
2700 // Moment.js style format string used when a time requiring minute accuracy is shown
2701 IntervalMinute string `json:"interval_minute,omitempty" validate:"omitempty,lte=128"`
2702 // Moment.js style format string used when a time requiring month accuracy is shown
2703 IntervalMonth string `json:"interval_month,omitempty" validate:"omitempty,lte=128"`
2704 // Moment.js style format string used when a time requiring second accuracy is shown
2705 IntervalSecond string `json:"interval_second,omitempty" validate:"omitempty,lte=128"`
2706 // Moment.js style format string used when a time requiring year accuracy is shown
2707 IntervalYear string `json:"interval_year,omitempty" validate:"omitempty,lte=128"`
2708 }
2709 2710 type JSONSchemaGrafanaSMTPServerStarttlsPolicy string
2711 2712 const (
2713 JSONSchemaGrafanaSMTPServerStarttlsPolicyOpportunisticStartTLS JSONSchemaGrafanaSMTPServerStarttlsPolicy = "OpportunisticStartTLS"
2714 JSONSchemaGrafanaSMTPServerStarttlsPolicyMandatoryStartTLS JSONSchemaGrafanaSMTPServerStarttlsPolicy = "MandatoryStartTLS"
2715 JSONSchemaGrafanaSMTPServerStarttlsPolicyNoStartTLS JSONSchemaGrafanaSMTPServerStarttlsPolicy = "NoStartTLS"
2716 )
2717 2718 // SMTP server settings
2719 type JSONSchemaGrafanaSMTPServer struct {
2720 // Address used for sending emails
2721 FromAddress string `json:"from_address" validate:"required,lte=319"`
2722 // Name used in outgoing emails, defaults to Grafana
2723 FromName *string `json:"from_name,omitempty" validate:"omitempty,lte=128"`
2724 // Server hostname or IP
2725 Host string `json:"host" validate:"required,lte=255"`
2726 // Password for SMTP authentication
2727 Password *string `json:"password,omitempty" validate:"omitempty,lte=255"`
2728 // SMTP server port
2729 Port int `json:"port" validate:"required,gte=1,lte=65535"`
2730 // Skip verifying server certificate. Defaults to false
2731 SkipVerify *bool `json:"skip_verify,omitempty"`
2732 // Either OpportunisticStartTLS, MandatoryStartTLS or NoStartTLS. Default is OpportunisticStartTLS.
2733 StarttlsPolicy JSONSchemaGrafanaSMTPServerStarttlsPolicy `json:"starttls_policy,omitempty"`
2734 // Username for SMTP authentication
2735 Username *string `json:"username,omitempty" validate:"omitempty,lte=255"`
2736 }
2737 2738 type JSONSchemaGrafanaUserAutoAssignOrgRole string
2739 2740 const (
2741 JSONSchemaGrafanaUserAutoAssignOrgRoleViewer JSONSchemaGrafanaUserAutoAssignOrgRole = "Viewer"
2742 JSONSchemaGrafanaUserAutoAssignOrgRoleAdmin JSONSchemaGrafanaUserAutoAssignOrgRole = "Admin"
2743 JSONSchemaGrafanaUserAutoAssignOrgRoleEditor JSONSchemaGrafanaUserAutoAssignOrgRole = "Editor"
2744 )
2745 2746 // Grafana settings
2747 type JSONSchemaGrafana struct {
2748 // Enable or disable Grafana legacy alerting functionality. This should not be enabled with unified_alerting_enabled.
2749 AlertingEnabled *bool `json:"alerting_enabled,omitempty"`
2750 // Default error or timeout setting for new alerting rules
2751 AlertingErrorORTimeout JSONSchemaGrafanaAlertingErrorORTimeout `json:"alerting_error_or_timeout,omitempty"`
2752 // Max number of alert annotations that Grafana stores. 0 (default) keeps all alert annotations.
2753 AlertingMaxAnnotationsToKeep int `json:"alerting_max_annotations_to_keep,omitempty" validate:"omitempty,gte=0,lte=1e+06"`
2754 // Default value for 'no data or null values' for new alerting rules
2755 AlertingNodataORNullvalues JSONSchemaGrafanaAlertingNodataORNullvalues `json:"alerting_nodata_or_nullvalues,omitempty"`
2756 // Allow embedding Grafana dashboards with iframe/frame/object/embed tags. Disabled by default to limit impact of clickjacking
2757 AllowEmbedding *bool `json:"allow_embedding,omitempty"`
2758 // Azure AD OAuth integration
2759 AuthAzuread *JSONSchemaGrafanaAuthAzuread `json:"auth_azuread,omitempty"`
2760 // Enable or disable basic authentication form, used by Grafana built-in login
2761 AuthBasicEnabled *bool `json:"auth_basic_enabled,omitempty"`
2762 // Generic OAuth integration
2763 AuthGenericOauth *JSONSchemaGrafanaAuthGenericOauth `json:"auth_generic_oauth,omitempty"`
2764 // Github Auth integration
2765 AuthGithub *JSONSchemaGrafanaAuthGithub `json:"auth_github,omitempty"`
2766 // GitLab Auth integration
2767 AuthGitlab *JSONSchemaGrafanaAuthGitlab `json:"auth_gitlab,omitempty"`
2768 // Google Auth integration
2769 AuthGoogle *JSONSchemaGrafanaAuthGoogle `json:"auth_google,omitempty"`
2770 // Cookie SameSite attribute: 'strict' prevents sending cookie for cross-site requests, effectively disabling direct linking from other sites to Grafana. 'lax' is the default value.
2771 CookieSamesite JSONSchemaGrafanaCookieSamesite `json:"cookie_samesite,omitempty"`
2772 // Serve the web frontend using a custom CNAME pointing to the Aiven DNS name
2773 CustomDomain *string `json:"custom_domain,omitempty" validate:"omitempty,lte=255"`
2774 // This feature is new in Grafana 9 and is quite resource intensive. It may cause low-end plans to work more slowly while the dashboard previews are rendering.
2775 DashboardPreviewsEnabled *bool `json:"dashboard_previews_enabled,omitempty"`
2776 // Signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s, 1h
2777 DashboardsMinRefreshInterval string `json:"dashboards_min_refresh_interval,omitempty" validate:"omitempty,lte=16"`
2778 // Dashboard versions to keep per dashboard
2779 DashboardsVersionsToKeep int `json:"dashboards_versions_to_keep,omitempty" validate:"omitempty,gte=1,lte=100"`
2780 // Send 'X-Grafana-User' header to data source
2781 DataproxySendUserHeader *bool `json:"dataproxy_send_user_header,omitempty"`
2782 // Timeout for data proxy requests in seconds
2783 DataproxyTimeout int `json:"dataproxy_timeout,omitempty" validate:"omitempty,gte=15,lte=90"`
2784 // Grafana date format specifications
2785 DateFormats *JSONSchemaGrafanaDateFormats `json:"date_formats,omitempty"`
2786 // Set to true to disable gravatar. Defaults to false (gravatar is enabled)
2787 DisableGravatar *bool `json:"disable_gravatar,omitempty"`
2788 // Editors can manage folders, teams and dashboards created by them
2789 EditorsCanAdmin *bool `json:"editors_can_admin,omitempty"`
2790 // Google Analytics ID
2791 GoogleAnalyticsUAID string `json:"google_analytics_ua_id,omitempty" validate:"omitempty,lte=64"`
2792 // Enable Grafana /metrics endpoint
2793 MetricsEnabled *bool `json:"metrics_enabled,omitempty"`
2794 // Enforce user lookup based on email instead of the unique ID provided by the IdP
2795 OauthAllowInsecureEmailLookup *bool `json:"oauth_allow_insecure_email_lookup,omitempty"`
2796 // Store logs for the service so that they are available in the HTTP API and console.
2797 ServiceLog *bool `json:"service_log,omitempty"`
2798 // SMTP server settings
2799 SMTPServer *JSONSchemaGrafanaSMTPServer `json:"smtp_server,omitempty"`
2800 // Enable or disable Grafana unified alerting functionality. By default this is enabled and any legacy alerts will be migrated on upgrade to Grafana 9+. To stay on legacy alerting, set unified_alerting_enabled to false and alerting_enabled to true. See https://grafana.com/docs/grafana/latest/alerting/set-up/migrating-alerts/ for more details.
2801 UnifiedAlertingEnabled *bool `json:"unified_alerting_enabled,omitempty"`
2802 // Auto-assign new users on signup to main organization. Defaults to false
2803 UserAutoAssignOrg *bool `json:"user_auto_assign_org,omitempty"`
2804 // Set role for new signups. Defaults to Viewer
2805 UserAutoAssignOrgRole JSONSchemaGrafanaUserAutoAssignOrgRole `json:"user_auto_assign_org_role,omitempty"`
2806 // Users with view-only permission can edit but not save dashboards
2807 ViewersCanEdit *bool `json:"viewers_can_edit,omitempty"`
2808 // Setting to enable/disable Write-Ahead Logging. The default value is false (disabled).
2809 Wal *bool `json:"wal,omitempty"`
2810 }
2811 2812 type JSONSchemaKafkaCompressionType string
2813 2814 const (
2815 JSONSchemaKafkaCompressionTypeGzip JSONSchemaKafkaCompressionType = "gzip"
2816 JSONSchemaKafkaCompressionTypeSnappy JSONSchemaKafkaCompressionType = "snappy"
2817 JSONSchemaKafkaCompressionTypeLz4 JSONSchemaKafkaCompressionType = "lz4"
2818 JSONSchemaKafkaCompressionTypeZstd JSONSchemaKafkaCompressionType = "zstd"
2819 JSONSchemaKafkaCompressionTypeUncompressed JSONSchemaKafkaCompressionType = "uncompressed"
2820 JSONSchemaKafkaCompressionTypeProducer JSONSchemaKafkaCompressionType = "producer"
2821 )
2822 2823 // Configure log cleaner for topic compaction
2824 type JSONSchemaKafkaLogCleanupAndCompaction struct {
2825 // How long are delete records retained?
2826 LogCleanerDeleteRetentionMS int `json:"log_cleaner_delete_retention_ms,omitempty" validate:"omitempty,gte=0,lte=3.1556926e+11"`
2827 // The maximum amount of time message will remain uncompacted. Only applicable for logs that are being compacted
2828 LogCleanerMaxCompactionLagMS int `json:"log_cleaner_max_compaction_lag_ms,omitempty" validate:"omitempty,gte=30000,lte=9.223372036854776e+18"`
2829 // Controls log compactor frequency. Larger value means more frequent compactions but also more space wasted for logs. Consider setting log.cleaner.max.compaction.lag.ms to enforce compactions sooner, instead of setting a very high value for this option.
2830 LogCleanerMinCleanableRatio float64 `json:"log_cleaner_min_cleanable_ratio,omitempty" validate:"omitempty,gte=0.2,lte=0.9"`
2831 // The minimum time a message will remain uncompacted in the log. Only applicable for logs that are being compacted.
2832 LogCleanerMinCompactionLagMS int `json:"log_cleaner_min_compaction_lag_ms,omitempty" validate:"omitempty,gte=0,lte=9.223372036854776e+18"`
2833 // The default cleanup policy for segments beyond the retention window
2834 LogCleanupPolicy string `json:"log_cleanup_policy,omitempty"`
2835 }
2836 2837 type JSONSchemaKafkaLogMessageTimestampType string
2838 2839 const (
2840 JSONSchemaKafkaLogMessageTimestampTypeCreateTime JSONSchemaKafkaLogMessageTimestampType = "CreateTime"
2841 JSONSchemaKafkaLogMessageTimestampTypeLogAppendTime JSONSchemaKafkaLogMessageTimestampType = "LogAppendTime"
2842 )
2843 2844 // Kafka broker configuration values
2845 type JSONSchemaKafka struct {
2846 // Enable auto creation of topics
2847 AutoCreateTopicsEnable *bool `json:"auto_create_topics_enable,omitempty"`
2848 // Specify the final compression type for a given topic. This configuration accepts the standard compression codecs ('gzip', 'snappy', 'lz4', 'zstd'). It additionally accepts 'uncompressed' which is equivalent to no compression; and 'producer' which means retain the original compression codec set by the producer.
2849 CompressionType JSONSchemaKafkaCompressionType `json:"compression_type,omitempty"`
2850 // Idle connections timeout: the server socket processor threads close the connections that idle for longer than this.
2851 ConnectionsMaxIdleMS int `json:"connections_max_idle_ms,omitempty" validate:"omitempty,gte=1000,lte=3.6e+06"`
2852 // Replication factor for autocreated topics
2853 DefaultReplicationFactor int `json:"default_replication_factor,omitempty" validate:"omitempty,gte=1,lte=10"`
2854 // The amount of time, in milliseconds, the group coordinator will wait for more consumers to join a new group before performing the first rebalance. A longer delay means potentially fewer rebalances, but increases the time until processing begins. The default value for this is 3 seconds. During development and testing it might be desirable to set this to 0 in order to not delay test execution time.
2855 GroupInitialRebalanceDelayMS int `json:"group_initial_rebalance_delay_ms,omitempty" validate:"omitempty,gte=0,lte=300000"`
2856 // The maximum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
2857 GroupMaxSessionTimeoutMS int `json:"group_max_session_timeout_ms,omitempty" validate:"omitempty,gte=0,lte=1.8e+06"`
2858 // The minimum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
2859 GroupMinSessionTimeoutMS int `json:"group_min_session_timeout_ms,omitempty" validate:"omitempty,gte=0,lte=60000"`
2860 // Configure log cleaner for topic compaction
2861 LogCleanupAndCompaction *JSONSchemaKafkaLogCleanupAndCompaction `json:"log-cleanup-and-compaction,omitempty"`
2862 // The number of messages accumulated on a log partition before messages are flushed to disk
2863 LogFlushIntervalMessages int `json:"log_flush_interval_messages,omitempty" validate:"omitempty,gte=1,lte=9.223372036854776e+18"`
2864 // The maximum time in ms that a message in any topic is kept in memory before flushed to disk. If not set, the value in log.flush.scheduler.interval.ms is used
2865 LogFlushIntervalMS int `json:"log_flush_interval_ms,omitempty" validate:"omitempty,gte=0,lte=9.223372036854776e+18"`
2866 // The interval with which Kafka adds an entry to the offset index
2867 LogIndexIntervalBytes int `json:"log_index_interval_bytes,omitempty" validate:"omitempty,gte=0,lte=1.048576e+08"`
2868 // The maximum size in bytes of the offset index
2869 LogIndexSizeMaxBytes int `json:"log_index_size_max_bytes,omitempty" validate:"omitempty,gte=1.048576e+06,lte=1.048576e+08"`
2870 // The maximum size of local log segments that can grow for a partition before it gets eligible for deletion. If set to -2, the value of log.retention.bytes is used. The effective value should always be less than or equal to log.retention.bytes value.
2871 LogLocalRetentionBytes int `json:"log_local_retention_bytes,omitempty" validate:"omitempty,gte=-2,lte=9.223372036854776e+18"`
2872 // The number of milliseconds to keep the local log segments before it gets eligible for deletion. If set to -2, the value of log.retention.ms is used. The effective value should always be less than or equal to log.retention.ms value.
2873 LogLocalRetentionMS int `json:"log_local_retention_ms,omitempty" validate:"omitempty,gte=-2,lte=9.223372036854776e+18"`
2874 // This configuration controls whether down-conversion of message formats is enabled to satisfy consume requests.
2875 LogMessageDownconversionEnable *bool `json:"log_message_downconversion_enable,omitempty"`
2876 // The maximum difference allowed between the timestamp when a broker receives a message and the timestamp specified in the message
2877 LogMessageTimestampDifferenceMaxMS int `json:"log_message_timestamp_difference_max_ms,omitempty" validate:"omitempty,gte=0,lte=9.223372036854776e+18"`
2878 // Define whether the timestamp in the message is message create time or log append time.
2879 LogMessageTimestampType JSONSchemaKafkaLogMessageTimestampType `json:"log_message_timestamp_type,omitempty"`
2880 // Should pre allocate file when create new segment?
2881 LogPreallocate *bool `json:"log_preallocate,omitempty"`
2882 // The maximum size of the log before deleting messages
2883 LogRetentionBytes int `json:"log_retention_bytes,omitempty" validate:"omitempty,gte=-1,lte=9.223372036854776e+18"`
2884 // The number of hours to keep a log file before deleting it
2885 LogRetentionHours int `json:"log_retention_hours,omitempty" validate:"omitempty,gte=-1,lte=2.147483647e+09"`
2886 // The number of milliseconds to keep a log file before deleting it (in milliseconds), If not set, the value in log.retention.minutes is used. If set to -1, no time limit is applied.
2887 LogRetentionMS int `json:"log_retention_ms,omitempty" validate:"omitempty,gte=-1,lte=9.223372036854776e+18"`
2888 // The maximum jitter to subtract from logRollTimeMillis (in milliseconds). If not set, the value in log.roll.jitter.hours is used
2889 LogRollJitterMS int `json:"log_roll_jitter_ms,omitempty" validate:"omitempty,gte=0,lte=9.223372036854776e+18"`
2890 // The maximum time before a new log segment is rolled out (in milliseconds).
2891 LogRollMS int `json:"log_roll_ms,omitempty" validate:"omitempty,gte=1,lte=9.223372036854776e+18"`
2892 // The maximum size of a single log file
2893 LogSegmentBytes int `json:"log_segment_bytes,omitempty" validate:"omitempty,gte=1.048576e+07,lte=1.073741824e+09"`
2894 // The amount of time to wait before deleting a file from the filesystem
2895 LogSegmentDeleteDelayMS int `json:"log_segment_delete_delay_ms,omitempty" validate:"omitempty,gte=0,lte=3.6e+06"`
2896 // The maximum number of connections allowed from each ip address (defaults to 2147483647).
2897 MaxConnectionsPerIP int `json:"max_connections_per_ip,omitempty" validate:"omitempty,gte=256,lte=2.147483647e+09"`
2898 // The maximum number of incremental fetch sessions that the broker will maintain.
2899 MaxIncrementalFetchSessionCacheSlots int `json:"max_incremental_fetch_session_cache_slots,omitempty" validate:"omitempty,gte=1000,lte=10000"`
2900 // The maximum size of message that the server can receive.
2901 MessageMaxBytes int `json:"message_max_bytes,omitempty" validate:"omitempty,gte=0,lte=1.000012e+08"`
2902 // When a producer sets acks to 'all' (or '-1'), min.insync.replicas specifies the minimum number of replicas that must acknowledge a write for the write to be considered successful.
2903 MinInsyncReplicas int `json:"min_insync_replicas,omitempty" validate:"omitempty,gte=1,lte=7"`
2904 // Number of partitions for autocreated topics
2905 NumPartitions int `json:"num_partitions,omitempty" validate:"omitempty,gte=1,lte=1000"`
2906 // Log retention window in minutes for offsets topic
2907 OffsetsRetentionMinutes int `json:"offsets_retention_minutes,omitempty" validate:"omitempty,gte=1,lte=2.147483647e+09"`
2908 // The purge interval (in number of requests) of the producer request purgatory(defaults to 1000).
2909 ProducerPurgatoryPurgeIntervalRequests int `json:"producer_purgatory_purge_interval_requests,omitempty" validate:"omitempty,gte=10,lte=10000"`
2910 // The number of bytes of messages to attempt to fetch for each partition (defaults to 1048576). This is not an absolute maximum, if the first record batch in the first non-empty partition of the fetch is larger than this value, the record batch will still be returned to ensure that progress can be made.
2911 ReplicaFetchMaxBytes int `json:"replica_fetch_max_bytes,omitempty" validate:"omitempty,gte=1.048576e+06,lte=1.048576e+08"`
2912 // Maximum bytes expected for the entire fetch response (defaults to 10485760). Records are fetched in batches, and if the first record batch in the first non-empty partition of the fetch is larger than this value, the record batch will still be returned to ensure that progress can be made. As such, this is not an absolute maximum.
2913 ReplicaFetchResponseMaxBytes int `json:"replica_fetch_response_max_bytes,omitempty" validate:"omitempty,gte=1.048576e+07,lte=1.048576e+09"`
2914 // The (optional) comma-delimited setting for the broker to use to verify that the JWT was issued for one of the expected audiences.
2915 SaslOauthbearerExpectedAudience string `json:"sasl_oauthbearer_expected_audience,omitempty" validate:"omitempty,lte=128"`
2916 // Optional setting for the broker to use to verify that the JWT was created by the expected issuer.
2917 SaslOauthbearerExpectedIssuer string `json:"sasl_oauthbearer_expected_issuer,omitempty" validate:"omitempty,lte=128"`
2918 // OIDC JWKS endpoint URL. By setting this the SASL SSL OAuth2/OIDC authentication is enabled. See also other options for SASL OAuth2/OIDC.
2919 SaslOauthbearerJwksEndpointURL string `json:"sasl_oauthbearer_jwks_endpoint_url,omitempty" validate:"omitempty,lte=2048"`
2920 // Name of the scope from which to extract the subject claim from the JWT. Defaults to sub.
2921 SaslOauthbearerSubClaimName string `json:"sasl_oauthbearer_sub_claim_name,omitempty" validate:"omitempty,lte=128"`
2922 // The maximum number of bytes in a socket request (defaults to 104857600).
2923 SocketRequestMaxBytes int `json:"socket_request_max_bytes,omitempty" validate:"omitempty,gte=1.048576e+07,lte=2.097152e+08"`
2924 // Enable verification that checks that the partition has been added to the transaction before writing transactional records to the partition
2925 TransactionPartitionVerificationEnable *bool `json:"transaction_partition_verification_enable,omitempty"`
2926 // The interval at which to remove transactions that have expired due to transactional.id.expiration.ms passing (defaults to 3600000 (1 hour)).
2927 TransactionRemoveExpiredTransactionCleanupIntervalMS int `json:"transaction_remove_expired_transaction_cleanup_interval_ms,omitempty" validate:"omitempty,gte=600000,lte=3.6e+06"`
2928 // The transaction topic segment bytes should be kept relatively small in order to facilitate faster log compaction and cache loads (defaults to 104857600 (100 mebibytes)).
2929 TransactionStateLogSegmentBytes int `json:"transaction_state_log_segment_bytes,omitempty" validate:"omitempty,gte=1.048576e+06,lte=2.147483647e+09"`
2930 }
2931 2932 type JSONSchemaKafkaConnectConnectorClientConfigOverridePolicy string
2933 2934 const (
2935 JSONSchemaKafkaConnectConnectorClientConfigOverridePolicyNone JSONSchemaKafkaConnectConnectorClientConfigOverridePolicy = "None"
2936 JSONSchemaKafkaConnectConnectorClientConfigOverridePolicyAll JSONSchemaKafkaConnectConnectorClientConfigOverridePolicy = "All"
2937 )
2938 2939 type JSONSchemaKafkaConnectConsumerAutoOffsetReset string
2940 2941 const (
2942 JSONSchemaKafkaConnectConsumerAutoOffsetResetEarliest JSONSchemaKafkaConnectConsumerAutoOffsetReset = "earliest"
2943 JSONSchemaKafkaConnectConsumerAutoOffsetResetLatest JSONSchemaKafkaConnectConsumerAutoOffsetReset = "latest"
2944 )
2945 2946 type JSONSchemaKafkaConnectConsumerIsolationLevel string
2947 2948 const (
2949 JSONSchemaKafkaConnectConsumerIsolationLevelReadUncommitted JSONSchemaKafkaConnectConsumerIsolationLevel = "read_uncommitted"
2950 JSONSchemaKafkaConnectConsumerIsolationLevelReadCommitted JSONSchemaKafkaConnectConsumerIsolationLevel = "read_committed"
2951 )
2952 2953 type JSONSchemaKafkaConnectProducerCompressionType string
2954 2955 const (
2956 JSONSchemaKafkaConnectProducerCompressionTypeGzip JSONSchemaKafkaConnectProducerCompressionType = "gzip"
2957 JSONSchemaKafkaConnectProducerCompressionTypeSnappy JSONSchemaKafkaConnectProducerCompressionType = "snappy"
2958 JSONSchemaKafkaConnectProducerCompressionTypeLz4 JSONSchemaKafkaConnectProducerCompressionType = "lz4"
2959 JSONSchemaKafkaConnectProducerCompressionTypeZstd JSONSchemaKafkaConnectProducerCompressionType = "zstd"
2960 JSONSchemaKafkaConnectProducerCompressionTypeNone JSONSchemaKafkaConnectProducerCompressionType = "none"
2961 )
2962 2963 // Kafka Connect configuration values
2964 type JSONSchemaKafkaConnect struct {
2965 // Defines what client configurations can be overridden by the connector. Default is None
2966 ConnectorClientConfigOverridePolicy JSONSchemaKafkaConnectConnectorClientConfigOverridePolicy `json:"connector_client_config_override_policy,omitempty"`
2967 // What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server. Default is earliest
2968 ConsumerAutoOffsetReset JSONSchemaKafkaConnectConsumerAutoOffsetReset `json:"consumer_auto_offset_reset,omitempty"`
2969 // Records are fetched in batches by the consumer, and if the first record batch in the first non-empty partition of the fetch is larger than this value, the record batch will still be returned to ensure that the consumer can make progress. As such, this is not a absolute maximum.
2970 ConsumerFetchMaxBytes int `json:"consumer_fetch_max_bytes,omitempty" validate:"omitempty,gte=1.048576e+06,lte=1.048576e+08"`
2971 // Transaction read isolation level. read_uncommitted is the default, but read_committed can be used if consume-exactly-once behavior is desired.
2972 ConsumerIsolationLevel JSONSchemaKafkaConnectConsumerIsolationLevel `json:"consumer_isolation_level,omitempty"`
2973 // Records are fetched in batches by the consumer.If the first record batch in the first non-empty partition of the fetch is larger than this limit, the batch will still be returned to ensure that the consumer can make progress.
2974 ConsumerMaxPartitionFetchBytes int `json:"consumer_max_partition_fetch_bytes,omitempty" validate:"omitempty,gte=1.048576e+06,lte=1.048576e+08"`
2975 // The maximum delay in milliseconds between invocations of poll() when using consumer group management (defaults to 300000).
2976 ConsumerMaxPollIntervalMS int `json:"consumer_max_poll_interval_ms,omitempty" validate:"omitempty,gte=1,lte=2.147483647e+09"`
2977 // The maximum number of records returned in a single call to poll() (defaults to 500).
2978 ConsumerMaxPollRecords int `json:"consumer_max_poll_records,omitempty" validate:"omitempty,gte=1,lte=10000"`
2979 // The interval at which to try committing offsets for tasks (defaults to 60000).
2980 OffsetFlushIntervalMS int `json:"offset_flush_interval_ms,omitempty" validate:"omitempty,gte=1,lte=1e+08"`
2981 // Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt (defaults to 5000).
2982 OffsetFlushTimeoutMS int `json:"offset_flush_timeout_ms,omitempty" validate:"omitempty,gte=1,lte=2.147483647e+09"`
2983 // This setting gives the upper bound of the batch size to be sent. If there are fewer than this many bytes accumulated for this partition, the producer will 'linger' for the linger.ms time waiting for more records to show up. A batch size of zero will disable batching entirely (defaults to 16384).
2984 ProducerBatchSize int `json:"producer_batch_size,omitempty" validate:"omitempty,gte=0,lte=5.24288e+06"`
2985 // The total bytes of memory the producer can use to buffer records waiting to be sent to the broker (defaults to 33554432).
2986 ProducerBufferMemory int `json:"producer_buffer_memory,omitempty" validate:"omitempty,gte=5.24288e+06,lte=1.34217728e+08"`
2987 // Specify the default compression type for producers. This configuration accepts the standard compression codecs ('gzip', 'snappy', 'lz4', 'zstd'). It additionally accepts 'none' which is the default and equivalent to no compression.
2988 ProducerCompressionType JSONSchemaKafkaConnectProducerCompressionType `json:"producer_compression_type,omitempty"`
2989 // This setting gives the upper bound on the delay for batching: once there is batch.size worth of records for a partition it will be sent immediately regardless of this setting, however if there are fewer than this many bytes accumulated for this partition the producer will 'linger' for the specified time waiting for more records to show up. Defaults to 0.
2990 ProducerLingerMS int `json:"producer_linger_ms,omitempty" validate:"omitempty,gte=0,lte=5000"`
2991 // This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests.
2992 ProducerMaxRequestSize int `json:"producer_max_request_size,omitempty" validate:"omitempty,gte=131072,lte=6.7108864e+07"`
2993 // The maximum delay that is scheduled in order to wait for the return of one or more departed workers before rebalancing and reassigning their connectors and tasks to the group. During this period the connectors and tasks of the departed workers remain unassigned. Defaults to 5 minutes.
2994 ScheduledRebalanceMaxDelayMS int `json:"scheduled_rebalance_max_delay_ms,omitempty" validate:"omitempty,gte=0,lte=600000"`
2995 // The timeout in milliseconds used to detect failures when using Kafka’s group management facilities (defaults to 10000).
2996 SessionTimeoutMS int `json:"session_timeout_ms,omitempty" validate:"omitempty,gte=1,lte=2.147483647e+09"`
2997 }
2998 2999 type JSONSchemaKafkaRestConsumerRequestTimeoutMS int
3000 3001 const (
3002 JSONSchemaKafkaRestConsumerRequestTimeoutMS1000 JSONSchemaKafkaRestConsumerRequestTimeoutMS = 1000
3003 JSONSchemaKafkaRestConsumerRequestTimeoutMS15000 JSONSchemaKafkaRestConsumerRequestTimeoutMS = 15000
3004 JSONSchemaKafkaRestConsumerRequestTimeoutMS30000 JSONSchemaKafkaRestConsumerRequestTimeoutMS = 30000
3005 )
3006 3007 type JSONSchemaKafkaRestNameStrategy string
3008 3009 const (
3010 JSONSchemaKafkaRestNameStrategyTopicName JSONSchemaKafkaRestNameStrategy = "topic_name"
3011 JSONSchemaKafkaRestNameStrategyRecordName JSONSchemaKafkaRestNameStrategy = "record_name"
3012 JSONSchemaKafkaRestNameStrategyTopicRecordName JSONSchemaKafkaRestNameStrategy = "topic_record_name"
3013 )
3014 3015 type JSONSchemaKafkaRestProducerCompressionType string
3016 3017 const (
3018 JSONSchemaKafkaRestProducerCompressionTypeGzip JSONSchemaKafkaRestProducerCompressionType = "gzip"
3019 JSONSchemaKafkaRestProducerCompressionTypeSnappy JSONSchemaKafkaRestProducerCompressionType = "snappy"
3020 JSONSchemaKafkaRestProducerCompressionTypeLz4 JSONSchemaKafkaRestProducerCompressionType = "lz4"
3021 JSONSchemaKafkaRestProducerCompressionTypeZstd JSONSchemaKafkaRestProducerCompressionType = "zstd"
3022 JSONSchemaKafkaRestProducerCompressionTypeNone JSONSchemaKafkaRestProducerCompressionType = "none"
3023 )
3024 3025 // Kafka REST configuration
3026 type JSONSchemaKafkaRest struct {
3027 // If true the consumer's offset will be periodically committed to Kafka in the background
3028 ConsumerEnableAutoCommit *bool `json:"consumer_enable_auto_commit,omitempty"`
3029 // Maximum number of bytes in unencoded message keys and values by a single request
3030 ConsumerRequestMaxBytes int `json:"consumer_request_max_bytes,omitempty" validate:"omitempty,gte=0,lte=6.7108864e+08"`
3031 // The maximum total time to wait for messages for a request if the maximum number of messages has not yet been reached
3032 ConsumerRequestTimeoutMS JSONSchemaKafkaRestConsumerRequestTimeoutMS `json:"consumer_request_timeout_ms,omitempty"`
3033 // Name strategy to use when selecting subject for storing schemas
3034 NameStrategy JSONSchemaKafkaRestNameStrategy `json:"name_strategy,omitempty"`
3035 // If true, validate that given schema is registered under expected subject name by the used name strategy when producing messages.
3036 NameStrategyValidation *bool `json:"name_strategy_validation,omitempty"`
3037 // The number of acknowledgments the producer requires the leader to have received before considering a request complete. If set to 'all' or '-1', the leader will wait for the full set of in-sync replicas to acknowledge the record.
3038 ProducerAcks string `json:"producer_acks,omitempty"`
3039 // Specify the default compression type for producers. This configuration accepts the standard compression codecs ('gzip', 'snappy', 'lz4', 'zstd'). It additionally accepts 'none' which is the default and equivalent to no compression.
3040 ProducerCompressionType JSONSchemaKafkaRestProducerCompressionType `json:"producer_compression_type,omitempty"`
3041 // Wait for up to the given delay to allow batching records together
3042 ProducerLingerMS int `json:"producer_linger_ms,omitempty" validate:"omitempty,gte=0,lte=5000"`
3043 // The maximum size of a request in bytes. Note that Kafka broker can also cap the record batch size.
3044 ProducerMaxRequestSize int `json:"producer_max_request_size,omitempty" validate:"omitempty,gte=0,lte=2.147483647e+09"`
3045 // Maximum number of SimpleConsumers that can be instantiated per broker
3046 SimpleconsumerPoolSizeMax int `json:"simpleconsumer_pool_size_max,omitempty" validate:"omitempty,gte=10,lte=250"`
3047 }
3048 3049 type JSONSchemaMysqlInternalTmpMemStorageEngine string
3050 3051 const (
3052 JSONSchemaMysqlInternalTmpMemStorageEngineTempTable JSONSchemaMysqlInternalTmpMemStorageEngine = "TempTable"
3053 JSONSchemaMysqlInternalTmpMemStorageEngineMEMORY JSONSchemaMysqlInternalTmpMemStorageEngine = "MEMORY"
3054 )
3055 3056 // mysql.conf configuration values
3057 type JSONSchemaMysql struct {
3058 // The number of seconds that the mysqld server waits for a connect packet before responding with Bad handshake
3059 ConnectTimeout int `json:"connect_timeout,omitempty" validate:"omitempty,gte=2,lte=3600"`
3060 // Default server time zone as an offset from UTC (from -12:00 to +12:00), a time zone name, or 'SYSTEM' to use the MySQL server default.
3061 DefaultTimeZone string `json:"default_time_zone,omitempty" validate:"omitempty,gte=2,lte=100"`
3062 // The maximum permitted result length in bytes for the GROUP_CONCAT() function.
3063 GroupConcatMaxLen int `json:"group_concat_max_len,omitempty" validate:"omitempty,gte=4,lte=1.8446744073709552e+19"`
3064 // The time, in seconds, before cached statistics expire
3065 InformationSchemaStatsExpiry int `json:"information_schema_stats_expiry,omitempty" validate:"omitempty,gte=900,lte=3.1536e+07"`
3066 // Maximum size for the InnoDB change buffer, as a percentage of the total size of the buffer pool. Default is 25
3067 InnodbChangeBufferMaxSize int `json:"innodb_change_buffer_max_size,omitempty" validate:"omitempty,gte=0,lte=50"`
3068 // Specifies whether flushing a page from the InnoDB buffer pool also flushes other dirty pages in the same extent (default is 1): 0 - dirty pages in the same extent are not flushed, 1 - flush contiguous dirty pages in the same extent, 2 - flush dirty pages in the same extent
3069 InnodbFlushNeighbors int `json:"innodb_flush_neighbors,omitempty" validate:"omitempty,gte=0,lte=2"`
3070 // Minimum length of words that are stored in an InnoDB FULLTEXT index. Changing this parameter will lead to a restart of the MySQL service.
3071 InnodbFTMinTokenSize int `json:"innodb_ft_min_token_size,omitempty" validate:"omitempty,gte=0,lte=16"`
3072 // This option is used to specify your own InnoDB FULLTEXT index stopword list for all InnoDB tables.
3073 InnodbFTServerStopwordTable *string `json:"innodb_ft_server_stopword_table,omitempty" validate:"omitempty,lte=1024"`
3074 // The length of time in seconds an InnoDB transaction waits for a row lock before giving up. Default is 120.
3075 InnodbLockWaitTimeout int `json:"innodb_lock_wait_timeout,omitempty" validate:"omitempty,gte=1,lte=3600"`
3076 // The size in bytes of the buffer that InnoDB uses to write to the log files on disk.
3077 InnodbLogBufferSize int `json:"innodb_log_buffer_size,omitempty" validate:"omitempty,gte=1.048576e+06,lte=4.294967295e+09"`
3078 // The upper limit in bytes on the size of the temporary log files used during online DDL operations for InnoDB tables.
3079 InnodbOnlineAlterLogMaxSize int `json:"innodb_online_alter_log_max_size,omitempty" validate:"omitempty,gte=65536,lte=1.099511627776e+12"`
3080 // When enabled, information about all deadlocks in InnoDB user transactions is recorded in the error log. Disabled by default.
3081 InnodbPrintAllDeadlocks *bool `json:"innodb_print_all_deadlocks,omitempty"`
3082 // The number of I/O threads for read operations in InnoDB. Default is 4. Changing this parameter will lead to a restart of the MySQL service.
3083 InnodbReadIoThreads int `json:"innodb_read_io_threads,omitempty" validate:"omitempty,gte=1,lte=64"`
3084 // When enabled a transaction timeout causes InnoDB to abort and roll back the entire transaction. Changing this parameter will lead to a restart of the MySQL service.
3085 InnodbRollbackOnTimeout *bool `json:"innodb_rollback_on_timeout,omitempty"`
3086 // Defines the maximum number of threads permitted inside of InnoDB. Default is 0 (infinite concurrency - no limit)
3087 InnodbThreadConcurrency int `json:"innodb_thread_concurrency,omitempty" validate:"omitempty,gte=0,lte=1000"`
3088 // The number of I/O threads for write operations in InnoDB. Default is 4. Changing this parameter will lead to a restart of the MySQL service.
3089 InnodbWriteIoThreads int `json:"innodb_write_io_threads,omitempty" validate:"omitempty,gte=1,lte=64"`
3090 // The number of seconds the server waits for activity on an interactive connection before closing it.
3091 InteractiveTimeout int `json:"interactive_timeout,omitempty" validate:"omitempty,gte=30,lte=604800"`
3092 // The storage engine for in-memory internal temporary tables.
3093 InternalTmpMemStorageEngine JSONSchemaMysqlInternalTmpMemStorageEngine `json:"internal_tmp_mem_storage_engine,omitempty"`
3094 // The slow log output destination when slow_query_log is ON. To enable MySQL AI Insights, choose INSIGHTS. To use MySQL AI Insights and the mysql.slow_log table at the same time, choose INSIGHTS,TABLE. To only use the mysql.slow_log table, choose TABLE. To silence slow logs, choose NONE.
3095 LogOutput string `json:"log_output,omitempty"`
3096 // The slow_query_logs work as SQL statements that take more than long_query_time seconds to execute. Default is 10s
3097 LongQueryTime float64 `json:"long_query_time,omitempty" validate:"omitempty,gte=0,lte=3600"`
3098 // Size of the largest message in bytes that can be received by the server. Default is 67108864 (64M)
3099 MaxAllowedPacket int `json:"max_allowed_packet,omitempty" validate:"omitempty,gte=102400,lte=1.073741824e+09"`
3100 // Limits the size of internal in-memory tables. Also set tmp_table_size. Default is 16777216 (16M)
3101 MaxHeapTableSize int `json:"max_heap_table_size,omitempty" validate:"omitempty,gte=1.048576e+06,lte=1.073741824e+09"`
3102 // Start sizes of connection buffer and result buffer. Default is 16384 (16K). Changing this parameter will lead to a restart of the MySQL service.
3103 NetBufferLength int `json:"net_buffer_length,omitempty" validate:"omitempty,gte=1024,lte=1.048576e+06"`
3104 // The number of seconds to wait for more data from a connection before aborting the read.
3105 NetReadTimeout int `json:"net_read_timeout,omitempty" validate:"omitempty,gte=1,lte=3600"`
3106 // The number of seconds to wait for a block to be written to a connection before aborting the write.
3107 NetWriteTimeout int `json:"net_write_timeout,omitempty" validate:"omitempty,gte=1,lte=3600"`
3108 // Slow query log enables capturing of slow queries. Setting slow_query_log to false also truncates the mysql.slow_log table. Default is off
3109 SlowQueryLog *bool `json:"slow_query_log,omitempty"`
3110 // Sort buffer size in bytes for ORDER BY optimization. Default is 262144 (256K)
3111 SortBufferSize int `json:"sort_buffer_size,omitempty" validate:"omitempty,gte=32768,lte=1.073741824e+09"`
3112 // Global SQL mode. Set to empty to use MySQL server defaults. When creating a new service and not setting this field Aiven default SQL mode (strict, SQL standard compliant) will be assigned.
3113 SQLMode string `json:"sql_mode,omitempty" validate:"omitempty,lte=1024"`
3114 // Require primary key to be defined for new tables or old tables modified with ALTER TABLE and fail if missing. It is recommended to always have primary keys because various functionality may break if any large table is missing them.
3115 SQLRequirePrimaryKey *bool `json:"sql_require_primary_key,omitempty"`
3116 // Limits the size of internal in-memory tables. Also set max_heap_table_size. Default is 16777216 (16M)
3117 TmpTableSize int `json:"tmp_table_size,omitempty" validate:"omitempty,gte=1.048576e+06,lte=1.073741824e+09"`
3118 // The number of seconds the server waits for activity on a noninteractive connection before closing it.
3119 WaitTimeout int `json:"wait_timeout,omitempty" validate:"omitempty,gte=1,lte=2.147483e+06"`
3120 }
3121 3122 type JSONSchemaOpensearchAuthFailureListenersInternalAuthenticationBackendLimitingAuthenticationBackend string
3123 3124 const (
3125 JSONSchemaOpensearchAuthFailureListenersInternalAuthenticationBackendLimitingAuthenticationBackendInternal JSONSchemaOpensearchAuthFailureListenersInternalAuthenticationBackendLimitingAuthenticationBackend = "internal"
3126 )
3127 3128 type JSONSchemaOpensearchAuthFailureListenersInternalAuthenticationBackendLimitingType string
3129 3130 const (
3131 JSONSchemaOpensearchAuthFailureListenersInternalAuthenticationBackendLimitingTypeUsername JSONSchemaOpensearchAuthFailureListenersInternalAuthenticationBackendLimitingType = "username"
3132 )
3133 3134 // Internal Authentication Backend Limiting
3135 type JSONSchemaOpensearchAuthFailureListenersInternalAuthenticationBackendLimiting struct {
3136 // The number of login attempts allowed before login is blocked
3137 AllowedTries int `json:"allowed_tries,omitempty" validate:"omitempty,gte=0,lte=2.147483647e+09"`
3138 // The internal backend. Enter `internal`
3139 AuthenticationBackend JSONSchemaOpensearchAuthFailureListenersInternalAuthenticationBackendLimitingAuthenticationBackend `json:"authentication_backend,omitempty" validate:"omitempty,lte=1024"`
3140 // The duration of time that login remains blocked after a failed login
3141 BlockExpirySeconds int `json:"block_expiry_seconds,omitempty" validate:"omitempty,gte=0,lte=2.147483647e+09"`
3142 // The maximum number of blocked IP addresses
3143 MaxBlockedClients int `json:"max_blocked_clients,omitempty" validate:"omitempty,gte=0,lte=2.147483647e+09"`
3144 // The maximum number of tracked IP addresses that have failed login
3145 MaxTrackedClients int `json:"max_tracked_clients,omitempty" validate:"omitempty,gte=0,lte=2.147483647e+09"`
3146 // The window of time in which the value for `allowed_tries` is enforced
3147 TimeWindowSeconds int `json:"time_window_seconds,omitempty" validate:"omitempty,gte=0,lte=2.147483647e+09"`
3148 // The type of rate limiting
3149 Type JSONSchemaOpensearchAuthFailureListenersInternalAuthenticationBackendLimitingType `json:"type,omitempty" validate:"omitempty,lte=1024"`
3150 }
3151 3152 type JSONSchemaOpensearchAuthFailureListenersIPRateLimitingType string
3153 3154 const (
3155 JSONSchemaOpensearchAuthFailureListenersIPRateLimitingTypeIP JSONSchemaOpensearchAuthFailureListenersIPRateLimitingType = "ip"
3156 )
3157 3158 // IP address rate limiting settings
3159 type JSONSchemaOpensearchAuthFailureListenersIPRateLimiting struct {
3160 // The number of login attempts allowed before login is blocked
3161 AllowedTries int `json:"allowed_tries,omitempty" validate:"omitempty,gte=1,lte=2.147483647e+09"`
3162 // The duration of time that login remains blocked after a failed login
3163 BlockExpirySeconds int `json:"block_expiry_seconds,omitempty" validate:"omitempty,gte=1,lte=36000"`
3164 // The maximum number of blocked IP addresses
3165 MaxBlockedClients int `json:"max_blocked_clients,omitempty" validate:"omitempty,gte=0,lte=2.147483647e+09"`
3166 // The maximum number of tracked IP addresses that have failed login
3167 MaxTrackedClients int `json:"max_tracked_clients,omitempty" validate:"omitempty,gte=0,lte=2.147483647e+09"`
3168 // The window of time in which the value for `allowed_tries` is enforced
3169 TimeWindowSeconds int `json:"time_window_seconds,omitempty" validate:"omitempty,gte=1,lte=36000"`
3170 // The type of rate limiting
3171 Type JSONSchemaOpensearchAuthFailureListenersIPRateLimitingType `json:"type,omitempty" validate:"omitempty,lte=1024"`
3172 }
3173 3174 // Opensearch Security Plugin Settings
3175 type JSONSchemaOpensearchAuthFailureListeners struct {
3176 // Internal Authentication Backend Limiting
3177 InternalAuthenticationBackendLimiting *JSONSchemaOpensearchAuthFailureListenersInternalAuthenticationBackendLimiting `json:"internal_authentication_backend_limiting,omitempty"`
3178 // IP address rate limiting settings
3179 IPRateLimiting *JSONSchemaOpensearchAuthFailureListenersIPRateLimiting `json:"ip_rate_limiting,omitempty"`
3180 }
3181 3182 // Opensearch Email Sender Settings
3183 type JSONSchemaOpensearchEmailSender struct {
3184 // This should be identical to the Sender name defined in Opensearch dashboards
3185 EmailSenderName string `json:"email_sender_name" validate:"required,lte=40"`
3186 // Sender password for Opensearch alerts to authenticate with SMTP server
3187 EmailSenderPassword string `json:"email_sender_password" validate:"required,lte=1024"`
3188 // Sender username for Opensearch alerts
3189 EmailSenderUsername string `json:"email_sender_username" validate:"required,lte=320"`
3190 }
3191 3192 // Opensearch ISM History Settings
3193 type JSONSchemaOpensearchIsmHistory struct {
3194 // Specifies whether ISM is enabled or not
3195 IsmEnabled *bool `json:"ism_enabled" validate:"required"`
3196 // Specifies whether audit history is enabled or not. The logs from ISM are automatically indexed to a logs document.
3197 IsmHistoryEnabled *bool `json:"ism_history_enabled,omitempty"`
3198 // The maximum age before rolling over the audit history index in hours
3199 IsmHistoryMaxAge int `json:"ism_history_max_age,omitempty" validate:"omitempty,gte=1,lte=2.147483647e+09"`
3200 // The maximum number of documents before rolling over the audit history index.
3201 IsmHistoryMaxDocs int `json:"ism_history_max_docs,omitempty" validate:"omitempty,gte=1,lte=9.223372036854776e+18"`
3202 // The time between rollover checks for the audit history index in hours.
3203 IsmHistoryRolloverCheckPeriod int `json:"ism_history_rollover_check_period,omitempty" validate:"omitempty,gte=1,lte=2.147483647e+09"`
3204 // How long audit history indices are kept in days.
3205 IsmHistoryRolloverRetentionPeriod int `json:"ism_history_rollover_retention_period,omitempty" validate:"omitempty,gte=1,lte=2.147483647e+09"`
3206 }
3207 3208 type JSONSchemaOpensearchSearchBackpressureMode string
3209 3210 const (
3211 JSONSchemaOpensearchSearchBackpressureModeMonitorOnly JSONSchemaOpensearchSearchBackpressureMode = "monitor_only"
3212 JSONSchemaOpensearchSearchBackpressureModeEnforced JSONSchemaOpensearchSearchBackpressureMode = "enforced"
3213 JSONSchemaOpensearchSearchBackpressureModeDisabled JSONSchemaOpensearchSearchBackpressureMode = "disabled"
3214 )
3215 3216 // Node duress settings
3217 type JSONSchemaOpensearchSearchBackpressureNodeDuress struct {
3218 // The CPU usage threshold (as a percentage) required for a node to be considered to be under duress. Default is 0.9
3219 CPUThreshold float64 `json:"cpu_threshold,omitempty" validate:"omitempty,gte=0,lte=1"`
3220 // The heap usage threshold (as a percentage) required for a node to be considered to be under duress. Default is 0.7
3221 HeapThreshold float64 `json:"heap_threshold,omitempty" validate:"omitempty,gte=0,lte=1"`
3222 // The number of successive limit breaches after which the node is considered to be under duress. Default is 3
3223 NumSuccessiveBreaches int `json:"num_successive_breaches,omitempty" validate:"omitempty,gte=1"`
3224 }
3225 3226 // Search shard settings
3227 type JSONSchemaOpensearchSearchBackpressureSearchShardTask struct {
3228 // The maximum number of search tasks to cancel in a single iteration of the observer thread. Default is 10.0
3229 CancellationBurst float64 `json:"cancellation_burst,omitempty" validate:"omitempty,gte=1"`
3230 // The maximum number of tasks to cancel per millisecond of elapsed time. Default is 0.003
3231 CancellationRate float64 `json:"cancellation_rate,omitempty" validate:"omitempty,gte=0"`
3232 // The maximum number of tasks to cancel, as a percentage of successful task completions. Default is 0.1
3233 CancellationRatio float64 `json:"cancellation_ratio,omitempty" validate:"omitempty,gte=0,lte=1"`
3234 // The CPU usage threshold (in milliseconds) required for a single search shard task before it is considered for cancellation. Default is 15000
3235 CPUTimeMillisThreshold int `json:"cpu_time_millis_threshold,omitempty" validate:"omitempty,gte=0"`
3236 // The elapsed time threshold (in milliseconds) required for a single search shard task before it is considered for cancellation. Default is 30000
3237 ElapsedTimeMillisThreshold int `json:"elapsed_time_millis_threshold,omitempty" validate:"omitempty,gte=0"`
3238 // The number of previously completed search shard tasks to consider when calculating the rolling average of heap usage. Default is 100
3239 HeapMovingAverageWindowSize int `json:"heap_moving_average_window_size,omitempty" validate:"omitempty,gte=0"`
3240 // The heap usage threshold (as a percentage) required for a single search shard task before it is considered for cancellation. Default is 0.5
3241 HeapPercentThreshold float64 `json:"heap_percent_threshold,omitempty" validate:"omitempty,gte=0,lte=1"`
3242 // The minimum variance required for a single search shard task’s heap usage compared to the rolling average of previously completed tasks before it is considered for cancellation. Default is 2.0
3243 HeapVariance float64 `json:"heap_variance,omitempty" validate:"omitempty,gte=0"`
3244 // The heap usage threshold (as a percentage) required for the sum of heap usages of all search shard tasks before cancellation is applied. Default is 0.5
3245 TotalHeapPercentThreshold float64 `json:"total_heap_percent_threshold,omitempty" validate:"omitempty,gte=0,lte=1"`
3246 }
3247 3248 // Search task settings
3249 type JSONSchemaOpensearchSearchBackpressureSearchTask struct {
3250 // The maximum number of search tasks to cancel in a single iteration of the observer thread. Default is 5.0
3251 CancellationBurst float64 `json:"cancellation_burst,omitempty" validate:"omitempty,gte=1"`
3252 // The maximum number of search tasks to cancel per millisecond of elapsed time. Default is 0.003
3253 CancellationRate float64 `json:"cancellation_rate,omitempty" validate:"omitempty,gte=0"`
3254 // The maximum number of search tasks to cancel, as a percentage of successful search task completions. Default is 0.1
3255 CancellationRatio float64 `json:"cancellation_ratio,omitempty" validate:"omitempty,gte=0,lte=1"`
3256 // The CPU usage threshold (in milliseconds) required for an individual parent task before it is considered for cancellation. Default is 30000
3257 CPUTimeMillisThreshold int `json:"cpu_time_millis_threshold,omitempty" validate:"omitempty,gte=0"`
3258 // The elapsed time threshold (in milliseconds) required for an individual parent task before it is considered for cancellation. Default is 45000
3259 ElapsedTimeMillisThreshold int `json:"elapsed_time_millis_threshold,omitempty" validate:"omitempty,gte=0"`
3260 // The window size used to calculate the rolling average of the heap usage for the completed parent tasks. Default is 10
3261 HeapMovingAverageWindowSize int `json:"heap_moving_average_window_size,omitempty" validate:"omitempty,gte=0"`
3262 // The heap usage threshold (as a percentage) required for an individual parent task before it is considered for cancellation. Default is 0.2
3263 HeapPercentThreshold float64 `json:"heap_percent_threshold,omitempty" validate:"omitempty,gte=0,lte=1"`
3264 // The heap usage variance required for an individual parent task before it is considered for cancellation. A task is considered for cancellation when taskHeapUsage is greater than or equal to heapUsageMovingAverage * variance. Default is 2.0
3265 HeapVariance float64 `json:"heap_variance,omitempty" validate:"omitempty,gte=0"`
3266 // The heap usage threshold (as a percentage) required for the sum of heap usages of all search tasks before cancellation is applied. Default is 0.5
3267 TotalHeapPercentThreshold float64 `json:"total_heap_percent_threshold,omitempty" validate:"omitempty,gte=0,lte=1"`
3268 }
3269 3270 // Search Backpressure Settings
3271 type JSONSchemaOpensearchSearchBackpressure struct {
3272 // The search backpressure mode. Valid values are monitor_only, enforced, or disabled. Default is monitor_only
3273 Mode JSONSchemaOpensearchSearchBackpressureMode `json:"mode,omitempty"`
3274 // Node duress settings
3275 NodeDuress *JSONSchemaOpensearchSearchBackpressureNodeDuress `json:"node_duress,omitempty"`
3276 // Search shard settings
3277 SearchShardTask *JSONSchemaOpensearchSearchBackpressureSearchShardTask `json:"search_shard_task,omitempty"`
3278 // Search task settings
3279 SearchTask *JSONSchemaOpensearchSearchBackpressureSearchTask `json:"search_task,omitempty"`
3280 }
3281 3282 // Operating factor
3283 type JSONSchemaOpensearchShardIndexingPressureOperatingFactor struct {
3284 // Specify the lower occupancy limit of the allocated quota of memory for the shard. If the total memory usage of a shard is below this limit, shard indexing backpressure decreases the current allocated memory for that shard. Default is 0.75
3285 Lower float64 `json:"lower,omitempty" validate:"omitempty,gte=0"`
3286 // Specify the optimal occupancy of the allocated quota of memory for the shard. If the total memory usage of a shard is at this level, shard indexing backpressure doesn’t change the current allocated memory for that shard. Default is 0.85
3287 Optimal float64 `json:"optimal,omitempty" validate:"omitempty,gte=0"`
3288 // Specify the upper occupancy limit of the allocated quota of memory for the shard. If the total memory usage of a shard is above this limit, shard indexing backpressure increases the current allocated memory for that shard. Default is 0.95
3289 Upper float64 `json:"upper,omitempty" validate:"omitempty,gte=0"`
3290 }
3291 3292 type JSONSchemaOpensearchShardIndexingPressurePrimaryParameterNode struct {
3293 // Define the percentage of the node-level memory threshold that acts as a soft indicator for strain on a node. Default is 0.7
3294 SoftLimit float64 `json:"soft_limit,omitempty" validate:"omitempty,gte=0"`
3295 }
3296 3297 type JSONSchemaOpensearchShardIndexingPressurePrimaryParameterShard struct {
3298 // Specify the minimum assigned quota for a new shard in any role (coordinator, primary, or replica). Shard indexing backpressure increases or decreases this allocated quota based on the inflow of traffic for the shard. Default is 0.001
3299 MinLimit float64 `json:"min_limit,omitempty" validate:"omitempty,gte=0"`
3300 }
3301 3302 // Primary parameter
3303 type JSONSchemaOpensearchShardIndexingPressurePrimaryParameter struct {
3304 Node *JSONSchemaOpensearchShardIndexingPressurePrimaryParameterNode `json:"node,omitempty"`
3305 Shard *JSONSchemaOpensearchShardIndexingPressurePrimaryParameterShard `json:"shard,omitempty"`
3306 }
3307 3308 // Shard indexing back pressure settings
3309 type JSONSchemaOpensearchShardIndexingPressure struct {
3310 // Enable or disable shard indexing backpressure. Default is false
3311 Enabled *bool `json:"enabled,omitempty"`
3312 // Run shard indexing backpressure in shadow mode or enforced mode. In shadow mode (value set as false), shard indexing backpressure tracks all granular-level metrics, but it doesn’t actually reject any indexing requests. In enforced mode (value set as true), shard indexing backpressure rejects any requests to the cluster that might cause a dip in its performance. Default is false
3313 Enforced *bool `json:"enforced,omitempty"`
3314 // Operating factor
3315 OperatingFactor *JSONSchemaOpensearchShardIndexingPressureOperatingFactor `json:"operating_factor,omitempty"`
3316 // Primary parameter
3317 PrimaryParameter *JSONSchemaOpensearchShardIndexingPressurePrimaryParameter `json:"primary_parameter,omitempty"`
3318 }
3319 3320 // OpenSearch settings
3321 type JSONSchemaOpensearch struct {
3322 // Explicitly allow or block automatic creation of indices. Defaults to true
3323 ActionAutoCreateIndexEnabled *bool `json:"action_auto_create_index_enabled,omitempty"`
3324 // Require explicit index names when deleting
3325 ActionDestructiveRequiresName *bool `json:"action_destructive_requires_name,omitempty"`
3326 // Opensearch Security Plugin Settings
3327 AuthFailureListeners *JSONSchemaOpensearchAuthFailureListeners `json:"auth_failure_listeners,omitempty"`
3328 // Controls the number of shards allowed in the cluster per data node
3329 ClusterMaxShardsPerNode int `json:"cluster_max_shards_per_node,omitempty" validate:"omitempty,gte=100,lte=10000"`
3330 // How many concurrent incoming/outgoing shard recoveries (normally replicas) are allowed to happen on a node. Defaults to 2.
3331 ClusterRoutingAllocationNodeConcurrentRecoveries int `json:"cluster_routing_allocation_node_concurrent_recoveries,omitempty" validate:"omitempty,gte=2,lte=16"`
3332 // Opensearch Email Sender Settings
3333 EmailSender *JSONSchemaOpensearchEmailSender `json:"email-sender,omitempty"`
3334 // Enable/Disable security audit
3335 EnableSecurityAudit *bool `json:"enable_security_audit,omitempty"`
3336 // Maximum content length for HTTP requests to the OpenSearch HTTP API, in bytes.
3337 HTTPMaxContentLength int `json:"http_max_content_length,omitempty" validate:"omitempty,gte=1,lte=2.147483647e+09"`
3338 // The max size of allowed headers, in bytes
3339 HTTPMaxHeaderSize int `json:"http_max_header_size,omitempty" validate:"omitempty,gte=1024,lte=262144"`
3340 // The max length of an HTTP URL, in bytes
3341 HTTPMaxInitialLineLength int `json:"http_max_initial_line_length,omitempty" validate:"omitempty,gte=1024,lte=65536"`
3342 // Relative amount. Maximum amount of heap memory used for field data cache. This is an expert setting; decreasing the value too much will increase overhead of loading field data; too much memory used for field data cache will decrease amount of heap available for other operations.
3343 IndicesFielddataCacheSize *int `json:"indices_fielddata_cache_size,omitempty" validate:"omitempty,gte=3,lte=100"`
3344 // Percentage value. Default is 10%. Total amount of heap used for indexing buffer, before writing segments to disk. This is an expert setting. Too low value will slow down indexing; too high value will increase indexing performance but causes performance issues for query performance.
3345 IndicesMemoryIndexBufferSize int `json:"indices_memory_index_buffer_size,omitempty" validate:"omitempty,gte=3,lte=40"`
3346 // Absolute value. Default is unbound. Doesn't work without indices.memory.index_buffer_size. Maximum amount of heap used for query cache, an absolute indices.memory.index_buffer_size maximum hard limit.
3347 IndicesMemoryMaxIndexBufferSize int `json:"indices_memory_max_index_buffer_size,omitempty" validate:"omitempty,gte=3,lte=2048"`
3348 // Absolute value. Default is 48mb. Doesn't work without indices.memory.index_buffer_size. Minimum amount of heap used for query cache, an absolute indices.memory.index_buffer_size minimal hard limit.
3349 IndicesMemoryMinIndexBufferSize int `json:"indices_memory_min_index_buffer_size,omitempty" validate:"omitempty,gte=3,lte=2048"`
3350 // Percentage value. Default is 10%. Maximum amount of heap used for query cache. This is an expert setting. Too low value will decrease query performance and increase performance for other operations; too high value will cause issues with other OpenSearch functionality.
3351 IndicesQueriesCacheSize int `json:"indices_queries_cache_size,omitempty" validate:"omitempty,gte=3,lte=40"`
3352 // Maximum number of clauses Lucene BooleanQuery can have. The default value (1024) is relatively high, and increasing it may cause performance issues. Investigate other approaches first before increasing this value.
3353 IndicesQueryBoolMaxClauseCount int `json:"indices_query_bool_max_clause_count,omitempty" validate:"omitempty,gte=64,lte=4096"`
3354 // Limits total inbound and outbound recovery traffic for each node. Applies to both peer recoveries as well as snapshot recoveries (i.e., restores from a snapshot). Defaults to 40mb
3355 IndicesRecoveryMaxBytesPerSec int `json:"indices_recovery_max_bytes_per_sec,omitempty" validate:"omitempty,gte=40,lte=400"`
3356 // Number of file chunks sent in parallel for each recovery. Defaults to 2.
3357 IndicesRecoveryMaxConcurrentFileChunks int `json:"indices_recovery_max_concurrent_file_chunks,omitempty" validate:"omitempty,gte=2,lte=5"`
3358 // Opensearch ISM History Settings
3359 IsmHistory *JSONSchemaOpensearchIsmHistory `json:"ism-history,omitempty"`
3360 // Enable or disable KNN memory circuit breaker. Defaults to true.
3361 KnnMemoryCircuitBreakerEnabled *bool `json:"knn_memory_circuit_breaker_enabled,omitempty"`
3362 // Maximum amount of memory that can be used for KNN index. Defaults to 50% of the JVM heap size.
3363 KnnMemoryCircuitBreakerLimit int `json:"knn_memory_circuit_breaker_limit,omitempty" validate:"omitempty,gte=3,lte=100"`
3364 // Compatibility mode sets OpenSearch to report its version as 7.10 so clients continue to work. Default is false
3365 OverrideMainResponseVersion *bool `json:"override_main_response_version,omitempty"`
3366 // Enable or disable filtering of alerting by backend roles. Requires Security plugin. Defaults to false
3367 PluginsAlertingFilterByBackendRoles *bool `json:"plugins_alerting_filter_by_backend_roles,omitempty"`
3368 // Whitelisted addresses for reindexing. Changing this value will cause all OpenSearch instances to restart.
3369 ReindexRemoteWhitelist []string `json:"reindex_remote_whitelist"`
3370 // Script compilation circuit breaker limits the number of inline script compilations within a period of time. Default is use-context
3371 ScriptMaxCompilationsRate string `json:"script_max_compilations_rate,omitempty" validate:"omitempty,lte=1024"`
3372 // Search Backpressure Settings
3373 SearchBackpressure *JSONSchemaOpensearchSearchBackpressure `json:"search_backpressure,omitempty"`
3374 // Maximum number of aggregation buckets allowed in a single response. OpenSearch default value is used when this is not defined.
3375 SearchMaxBuckets *int `json:"search_max_buckets,omitempty" validate:"omitempty,gte=1,lte=1e+06"`
3376 // Shard indexing back pressure settings
3377 ShardIndexingPressure *JSONSchemaOpensearchShardIndexingPressure `json:"shard_indexing_pressure,omitempty"`
3378 // Size for the thread pool queue. See documentation for exact details.
3379 ThreadPoolAnalyzeQueueSize int `json:"thread_pool_analyze_queue_size,omitempty" validate:"omitempty,gte=10,lte=2000"`
3380 // Size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.
3381 ThreadPoolAnalyzeSize int `json:"thread_pool_analyze_size,omitempty" validate:"omitempty,gte=1,lte=128"`
3382 // Size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.
3383 ThreadPoolForceMergeSize int `json:"thread_pool_force_merge_size,omitempty" validate:"omitempty,gte=1,lte=128"`
3384 // Size for the thread pool queue. See documentation for exact details.
3385 ThreadPoolGetQueueSize int `json:"thread_pool_get_queue_size,omitempty" validate:"omitempty,gte=10,lte=2000"`
3386 // Size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.
3387 ThreadPoolGetSize int `json:"thread_pool_get_size,omitempty" validate:"omitempty,gte=1,lte=128"`
3388 // Size for the thread pool queue. See documentation for exact details.
3389 ThreadPoolSearchQueueSize int `json:"thread_pool_search_queue_size,omitempty" validate:"omitempty,gte=10,lte=2000"`
3390 // Size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.
3391 ThreadPoolSearchSize int `json:"thread_pool_search_size,omitempty" validate:"omitempty,gte=1,lte=128"`
3392 // Size for the thread pool queue. See documentation for exact details.
3393 ThreadPoolSearchThrottledQueueSize int `json:"thread_pool_search_throttled_queue_size,omitempty" validate:"omitempty,gte=10,lte=2000"`
3394 // Size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.
3395 ThreadPoolSearchThrottledSize int `json:"thread_pool_search_throttled_size,omitempty" validate:"omitempty,gte=1,lte=128"`
3396 // Size for the thread pool queue. See documentation for exact details.
3397 ThreadPoolWriteQueueSize int `json:"thread_pool_write_queue_size,omitempty" validate:"omitempty,gte=10,lte=2000"`
3398 // Size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.
3399 ThreadPoolWriteSize int `json:"thread_pool_write_size,omitempty" validate:"omitempty,gte=1,lte=128"`
3400 }
3401 3402 // Autovacuum settings
3403 type JSONSchemaPGAutovacuum struct {
3404 // Specifies a fraction of the table size to add to autovacuum_analyze_threshold when deciding whether to trigger an ANALYZE (e.g. `0.2` for 20% of the table size). The default is `0.2`.
3405 AutovacuumAnalyzeScaleFactor float64 `json:"autovacuum_analyze_scale_factor,omitempty" validate:"omitempty,gte=0,lte=1"`
3406 // Specifies the minimum number of inserted, updated or deleted tuples needed to trigger an ANALYZE in any one table. The default is `50`.
3407 AutovacuumAnalyzeThreshold int `json:"autovacuum_analyze_threshold,omitempty" validate:"omitempty,gte=0,lte=2.147483647e+09"`
3408 // Specifies the maximum age (in transactions) that a table's pg_class.relfrozenxid field can attain before a VACUUM operation is forced to prevent transaction ID wraparound within the table. The system launches autovacuum processes to prevent wraparound even when autovacuum is otherwise disabled. Changing this parameter causes a service restart.
3409 AutovacuumFreezeMaxAge int `json:"autovacuum_freeze_max_age,omitempty" validate:"omitempty,gte=2e+08,lte=1.5e+09"`
3410 // Specifies the maximum number of autovacuum processes (other than the autovacuum launcher) that may be running at any one time. The default is `3`. Changing this parameter causes a service restart.
3411 AutovacuumMaxWorkers int `json:"autovacuum_max_workers,omitempty" validate:"omitempty,gte=1,lte=20"`
3412 // Specifies the minimum delay between autovacuum runs on any given database. The delay is measured in seconds. The default is `60`.
3413 AutovacuumNaptime int `json:"autovacuum_naptime,omitempty" validate:"omitempty,gte=1,lte=86400"`
3414 // Specifies the cost delay value that will be used in automatic VACUUM operations. If `-1` is specified, the regular vacuum_cost_delay value will be used. The default is `2` (upstream default).
3415 AutovacuumVacuumCostDelay int `json:"autovacuum_vacuum_cost_delay,omitempty" validate:"omitempty,gte=-1,lte=100"`
3416 // Specifies the cost limit value that will be used in automatic VACUUM operations. If `-1` is specified, the regular vacuum_cost_limit value will be used. The default is `-1` (upstream default).
3417 AutovacuumVacuumCostLimit int `json:"autovacuum_vacuum_cost_limit,omitempty" validate:"omitempty,gte=-1,lte=10000"`
3418 // Specifies a fraction of the table size to add to autovacuum_vacuum_threshold when deciding whether to trigger a VACUUM (e.g. `0.2` for 20% of the table size). The default is `0.2`.
3419 AutovacuumVacuumScaleFactor float64 `json:"autovacuum_vacuum_scale_factor,omitempty" validate:"omitempty,gte=0,lte=1"`
3420 // Specifies the minimum number of updated or deleted tuples needed to trigger a VACUUM in any one table. The default is `50`.
3421 AutovacuumVacuumThreshold int `json:"autovacuum_vacuum_threshold,omitempty" validate:"omitempty,gte=0,lte=2.147483647e+09"`
3422 // Causes each action executed by autovacuum to be logged if it ran for at least the specified number of milliseconds. Setting this to zero logs all autovacuum actions. Minus-one disables logging autovacuum actions. The default is `1000`.
3423 LogAutovacuumMinDuration int `json:"log_autovacuum_min_duration,omitempty" validate:"omitempty,gte=-1,lte=2.147483647e+09"`
3424 }
3425 3426 // Background (BG) writer settings
3427 type JSONSchemaPGBGWriter struct {
3428 // Specifies the delay between activity rounds for the background writer in milliseconds. The default is `200`.
3429 BgwriterDelay int `json:"bgwriter_delay,omitempty" validate:"omitempty,gte=10,lte=10000"`
3430 // Whenever more than bgwriter_flush_after bytes have been written by the background writer, attempt to force the OS to issue these writes to the underlying storage. Specified in kilobytes. Setting of 0 disables forced writeback. The default is `512`.
3431 BgwriterFlushAfter int `json:"bgwriter_flush_after,omitempty" validate:"omitempty,gte=0,lte=2048"`
3432 // In each round, no more than this many buffers will be written by the background writer. Setting this to zero disables background writing. The default is `100`.
3433 BgwriterLruMaxpages int `json:"bgwriter_lru_maxpages,omitempty" validate:"omitempty,gte=0,lte=1.073741823e+09"`
3434 // The average recent need for new buffers is multiplied by bgwriter_lru_multiplier to arrive at an estimate of the number that will be needed during the next round, (up to bgwriter_lru_maxpages). 1.0 represents a “just in time” policy of writing exactly the number of buffers predicted to be needed. Larger values provide some cushion against spikes in demand, while smaller values intentionally leave writes to be done by server processes. The default is `2.0`.
3435 BgwriterLruMultiplier float64 `json:"bgwriter_lru_multiplier,omitempty" validate:"omitempty,gte=0,lte=10"`
3436 }
3437 3438 type JSONSchemaPGDefaultToastCompression string
3439 3440 const (
3441 JSONSchemaPGDefaultToastCompressionLz4 JSONSchemaPGDefaultToastCompression = "lz4"
3442 JSONSchemaPGDefaultToastCompressionPglz JSONSchemaPGDefaultToastCompression = "pglz"
3443 )
3444 3445 type JSONSchemaPGIoMethod string
3446 3447 const (
3448 JSONSchemaPGIoMethodWorker JSONSchemaPGIoMethod = "worker"
3449 JSONSchemaPGIoMethodSync JSONSchemaPGIoMethod = "sync"
3450 JSONSchemaPGIoMethodIoUring JSONSchemaPGIoMethod = "io_uring"
3451 )
3452 3453 type JSONSchemaPGLogErrorVerbosity string
3454 3455 const (
3456 JSONSchemaPGLogErrorVerbosityTERSE JSONSchemaPGLogErrorVerbosity = "TERSE"
3457 JSONSchemaPGLogErrorVerbosityDEFAULT JSONSchemaPGLogErrorVerbosity = "DEFAULT"
3458 JSONSchemaPGLogErrorVerbosityVERBOSE JSONSchemaPGLogErrorVerbosity = "VERBOSE"
3459 )
3460 3461 type JSONSchemaPGPasswordEncryption string
3462 3463 const (
3464 JSONSchemaPGPasswordEncryptionMd5 JSONSchemaPGPasswordEncryption = "md5"
3465 JSONSchemaPGPasswordEncryptionScramSha256 JSONSchemaPGPasswordEncryption = "scram-sha-256"
3466 )
3467 3468 type JSONSchemaPGPGStatStatementsTrack string
3469 3470 const (
3471 JSONSchemaPGPGStatStatementsTrackAll JSONSchemaPGPGStatStatementsTrack = "all"
3472 JSONSchemaPGPGStatStatementsTrackTop JSONSchemaPGPGStatStatementsTrack = "top"
3473 JSONSchemaPGPGStatStatementsTrackNone JSONSchemaPGPGStatStatementsTrack = "none"
3474 )
3475 3476 type JSONSchemaPGTrackCommitTimestamp string
3477 3478 const (
3479 JSONSchemaPGTrackCommitTimestampOff JSONSchemaPGTrackCommitTimestamp = "off"
3480 JSONSchemaPGTrackCommitTimestampOn JSONSchemaPGTrackCommitTimestamp = "on"
3481 )
3482 3483 type JSONSchemaPGTrackFunctions string
3484 3485 const (
3486 JSONSchemaPGTrackFunctionsAll JSONSchemaPGTrackFunctions = "all"
3487 JSONSchemaPGTrackFunctionsPL JSONSchemaPGTrackFunctions = "pl"
3488 JSONSchemaPGTrackFunctionsNone JSONSchemaPGTrackFunctions = "none"
3489 )
3490 3491 type JSONSchemaPGTrackIoTiming string
3492 3493 const (
3494 JSONSchemaPGTrackIoTimingOff JSONSchemaPGTrackIoTiming = "off"
3495 JSONSchemaPGTrackIoTimingOn JSONSchemaPGTrackIoTiming = "on"
3496 )
3497 3498 // Write-ahead log (WAL) settings
3499 type JSONSchemaPGWal struct {
3500 // PostgreSQL maximum WAL size (MB) reserved for replication slots. If `-1` is specified, replication slots may retain an unlimited amount of WAL files. The default is `-1` (upstream default). wal_keep_size minimum WAL size setting takes precedence over this.
3501 MaxSlotWalKeepSize int `json:"max_slot_wal_keep_size,omitempty" validate:"omitempty,gte=-1,lte=2.147483647e+09"`
3502 // PostgreSQL maximum WAL senders. The default is `20`. Changing this parameter causes a service restart.
3503 MaxWalSenders int `json:"max_wal_senders,omitempty" validate:"omitempty,gte=20,lte=256"`
3504 // Terminate replication connections that are inactive for longer than this amount of time, in milliseconds.
3505 WalSenderTimeout int `json:"wal_sender_timeout,omitempty" validate:"omitempty,gte=0,lte=1.08e+07"`
3506 // WAL flush interval in milliseconds. The default is `200`. Setting this parameter to a lower value may negatively impact performance.
3507 WalWriterDelay int `json:"wal_writer_delay,omitempty" validate:"omitempty,gte=10,lte=200"`
3508 }
3509 3510 // postgresql.conf configuration values
3511 type JSONSchemaPG struct {
3512 // Autovacuum settings
3513 Autovacuum *JSONSchemaPGAutovacuum `json:"autovacuum,omitempty"`
3514 // Background (BG) writer settings
3515 BGWriter *JSONSchemaPGBGWriter `json:"bg-writer,omitempty"`
3516 // This is the amount of time, in milliseconds, to wait on a lock before checking to see if there is a deadlock condition. The default is `1000` (upstream default).
3517 DeadlockTimeout int `json:"deadlock_timeout,omitempty" validate:"omitempty,gte=500,lte=1.8e+06"`
3518 // Specifies the default TOAST compression method for values of compressible columns. The default is `lz4`. Only available for PostgreSQL 14+.
3519 DefaultToastCompression JSONSchemaPGDefaultToastCompression `json:"default_toast_compression,omitempty"`
3520 // Time out sessions with open transactions after this number of milliseconds
3521 IdleInTransactionSessionTimeout int `json:"idle_in_transaction_session_timeout,omitempty" validate:"omitempty,gte=0,lte=6.048e+08"`
3522 // EXPERIMENTAL: Controls the largest I/O size in operations that combine I/O in 8kB units. Version 17 and up only.
3523 IoCombineLimit int `json:"io_combine_limit,omitempty" validate:"omitempty,gte=1,lte=32"`
3524 // EXPERIMENTAL: Controls the largest I/O size in operations that combine I/O in 8kB units, and silently limits the user-settable parameter io_combine_limit. Version 18 and up only. Changing this parameter causes a service restart.
3525 IoMaxCombineLimit int `json:"io_max_combine_limit,omitempty" validate:"omitempty,gte=1,lte=128"`
3526 // EXPERIMENTAL: Controls the maximum number of I/O operations that one process can execute simultaneously. Version 18 and up only. Changing this parameter causes a service restart.
3527 IoMaxConcurrency int `json:"io_max_concurrency,omitempty" validate:"omitempty,gte=-1,lte=1024"`
3528 // EXPERIMENTAL: Controls the maximum number of I/O operations that one process can execute simultaneously. Version 18 and up only. Changing this parameter causes a service restart.
3529 IoMethod JSONSchemaPGIoMethod `json:"io_method,omitempty"`
3530 // EXPERIMENTAL: Number of IO worker processes, for io_method=worker. Version 18 and up only. Changing this parameter causes a service restart.
3531 IoWorkers int `json:"io_workers,omitempty" validate:"omitempty,gte=1,lte=32"`
3532 // Controls system-wide use of Just-in-Time Compilation (JIT).
3533 Jit *bool `json:"jit,omitempty"`
3534 // Controls the amount of detail written in the server log for each message that is logged.
3535 LogErrorVerbosity JSONSchemaPGLogErrorVerbosity `json:"log_error_verbosity,omitempty"`
3536 // Choose from one of the available log formats.
3537 LogLinePrefix string `json:"log_line_prefix,omitempty"`
3538 // Log statements that take more than this number of milliseconds to run, -1 disables
3539 LogMinDurationStatement int `json:"log_min_duration_statement,omitempty" validate:"omitempty,gte=-1,lte=8.64e+07"`
3540 // Log statements for each temporary file created larger than this number of kilobytes, -1 disables
3541 LogTempFiles int `json:"log_temp_files,omitempty" validate:"omitempty,gte=-1,lte=2.147483647e+09"`
3542 // PostgreSQL maximum number of files that can be open per process. The default is `1000` (upstream default). Changing this parameter causes a service restart.
3543 MaxFilesPerProcess int `json:"max_files_per_process,omitempty" validate:"omitempty,gte=1000,lte=4096"`
3544 // PostgreSQL maximum locks per transaction. Changing this parameter causes a service restart.
3545 MaxLocksPerTransaction int `json:"max_locks_per_transaction,omitempty" validate:"omitempty,gte=64,lte=6400"`
3546 // PostgreSQL maximum logical replication workers (taken from the pool of max_parallel_workers). The default is `4` (upstream default). Changing this parameter causes a service restart.
3547 MaxLogicalReplicationWorkers int `json:"max_logical_replication_workers,omitempty" validate:"omitempty,gte=4,lte=256"`
3548 // Sets the maximum number of workers that the system can support for parallel queries. The default is `8` (upstream default).
3549 MaxParallelWorkers int `json:"max_parallel_workers,omitempty" validate:"omitempty,gte=0,lte=96"`
3550 // Sets the maximum number of workers that can be started by a single Gather or Gather Merge node. The default is `2` (upstream default).
3551 MaxParallelWorkersPerGather int `json:"max_parallel_workers_per_gather,omitempty" validate:"omitempty,gte=0,lte=96"`
3552 // PostgreSQL maximum predicate locks per transaction. The default is `64` (upstream default). Changing this parameter causes a service restart.
3553 MaxPredLocksPerTransaction int `json:"max_pred_locks_per_transaction,omitempty" validate:"omitempty,gte=64,lte=5120"`
3554 // PostgreSQL maximum prepared transactions. The default is `0`. Changing this parameter causes a service restart.
3555 MaxPreparedTransactions int `json:"max_prepared_transactions,omitempty" validate:"omitempty,gte=0,lte=10000"`
3556 // PostgreSQL maximum replication slots. The default is `20`. Changing this parameter causes a service restart.
3557 MaxReplicationSlots int `json:"max_replication_slots,omitempty" validate:"omitempty,gte=8,lte=256"`
3558 // Maximum depth of the stack in bytes. The default is `2097152` (upstream default).
3559 MaxStackDepth int `json:"max_stack_depth,omitempty" validate:"omitempty,gte=2.097152e+06,lte=6.291456e+06"`
3560 // Max standby archive delay in milliseconds. The default is `30000` (upstream default).
3561 MaxStandbyArchiveDelay int `json:"max_standby_archive_delay,omitempty" validate:"omitempty,gte=1,lte=4.32e+07"`
3562 // Max standby streaming delay in milliseconds. The default is `30000` (upstream default).
3563 MaxStandbyStreamingDelay int `json:"max_standby_streaming_delay,omitempty" validate:"omitempty,gte=1,lte=4.32e+07"`
3564 // Maximum number of synchronization workers per subscription. The default is `2`.
3565 MaxSyncWorkersPerSubscription int `json:"max_sync_workers_per_subscription,omitempty" validate:"omitempty,gte=2,lte=8"`
3566 // Sets the maximum number of background processes that the system can support. The default is `8`. Changing this parameter causes a service restart.
3567 MaxWorkerProcesses int `json:"max_worker_processes,omitempty" validate:"omitempty,gte=8,lte=288"`
3568 // Chooses the algorithm for encrypting passwords.
3569 PasswordEncryption JSONSchemaPGPasswordEncryption `json:"password_encryption,omitempty"`
3570 // Sets the time interval in seconds to run pg_partman's scheduled tasks. The default is `3600`.
3571 PGPartmanBgwInterval int `json:"pg_partman_bgw.interval,omitempty" validate:"omitempty,gte=3600,lte=604800"`
3572 // Controls which role to use for pg_partman's scheduled background tasks.
3573 PGPartmanBgwRole string `json:"pg_partman_bgw.role,omitempty" validate:"omitempty,lte=64"`
3574 // Enables or disables query plan monitoring. Changing this parameter causes a service restart. Only available for PostgreSQL 13+.
3575 PGStatMonitorPgsmEnableQueryPlan *bool `json:"pg_stat_monitor.pgsm_enable_query_plan,omitempty"`
3576 // Sets the maximum number of buckets. Changing this parameter causes a service restart. Only available for PostgreSQL 13+.
3577 PGStatMonitorPgsmMaxBuckets int `json:"pg_stat_monitor.pgsm_max_buckets,omitempty" validate:"omitempty,gte=1,lte=10"`
3578 // Controls which statements are counted. Specify top to track top-level statements (those issued directly by clients), all to also track nested statements (such as statements invoked within functions), or none to disable statement statistics collection. The default is `top`.
3579 PGStatStatementsTrack JSONSchemaPGPGStatStatementsTrack `json:"pg_stat_statements.track,omitempty"`
3580 // PostgreSQL temporary file limit in KiB, -1 for unlimited
3581 TempFileLimit int `json:"temp_file_limit,omitempty" validate:"omitempty,gte=-1,lte=2.147483647e+09"`
3582 // PostgreSQL service timezone
3583 Timezone string `json:"timezone,omitempty" validate:"omitempty,lte=64"`
3584 // Specifies the number of bytes reserved to track the currently executing command for each active session. Changing this parameter causes a service restart.
3585 TrackActivityQuerySize int `json:"track_activity_query_size,omitempty" validate:"omitempty,gte=1024,lte=10240"`
3586 // Record commit time of transactions. Changing this parameter causes a service restart.
3587 TrackCommitTimestamp JSONSchemaPGTrackCommitTimestamp `json:"track_commit_timestamp,omitempty"`
3588 // Enables tracking of function call counts and time used.
3589 TrackFunctions JSONSchemaPGTrackFunctions `json:"track_functions,omitempty"`
3590 // Enables timing of database I/O calls. The default is `off`. When on, it will repeatedly query the operating system for the current time, which may cause significant overhead on some platforms.
3591 TrackIoTiming JSONSchemaPGTrackIoTiming `json:"track_io_timing,omitempty"`
3592 // Write-ahead log (WAL) settings
3593 Wal *JSONSchemaPGWal `json:"wal,omitempty"`
3594 }
3595 3596 type JSONSchemaPgbouncerAutodbPoolMode string
3597 3598 const (
3599 JSONSchemaPgbouncerAutodbPoolModeTransaction JSONSchemaPgbouncerAutodbPoolMode = "transaction"
3600 JSONSchemaPgbouncerAutodbPoolModeSession JSONSchemaPgbouncerAutodbPoolMode = "session"
3601 JSONSchemaPgbouncerAutodbPoolModeStatement JSONSchemaPgbouncerAutodbPoolMode = "statement"
3602 )
3603 3604 // System-wide settings for pgbouncer.
3605 type JSONSchemaPgbouncer struct {
3606 // If the automatically created database pools have been unused this many seconds, they are freed. If 0 then timeout is disabled. [seconds]
3607 AutodbIdleTimeout int `json:"autodb_idle_timeout,omitempty" validate:"omitempty,gte=0,lte=86400"`
3608 // Do not allow more than this many server connections per database (regardless of user). Setting it to 0 means unlimited.
3609 AutodbMaxDBConnections int `json:"autodb_max_db_connections,omitempty" validate:"omitempty,gte=0,lte=2.147483647e+09"`
3610 // PGBouncer pool mode
3611 AutodbPoolMode JSONSchemaPgbouncerAutodbPoolMode `json:"autodb_pool_mode,omitempty"`
3612 // If non-zero then create automatically a pool of that size per user when a pool doesn't exist.
3613 AutodbPoolSize int `json:"autodb_pool_size,omitempty" validate:"omitempty,gte=0,lte=10000"`
3614 // List of parameters to ignore when given in startup packet
3615 IgnoreStartupParameters []string `json:"ignore_startup_parameters,omitempty"`
3616 // PgBouncer tracks protocol-level named prepared statements related commands sent by the client in transaction and statement pooling modes when max_prepared_statements is set to a non-zero value. Setting it to 0 disables prepared statements. max_prepared_statements defaults to 100, and its maximum is 3000.
3617 MaxPreparedStatements int `json:"max_prepared_statements,omitempty" validate:"omitempty,gte=0,lte=3000"`
3618 // Add more server connections to pool if below this number. Improves behavior when usual load comes suddenly back after period of total inactivity. The value is effectively capped at the pool size.
3619 MinPoolSize int `json:"min_pool_size,omitempty" validate:"omitempty,gte=0,lte=10000"`
3620 // If a server connection has been idle more than this many seconds it will be dropped. If 0 then timeout is disabled. [seconds]
3621 ServerIdleTimeout int `json:"server_idle_timeout,omitempty" validate:"omitempty,gte=0,lte=86400"`
3622 // The pooler will close an unused server connection that has been connected longer than this. [seconds]
3623 ServerLifetime int `json:"server_lifetime,omitempty" validate:"omitempty,gte=60,lte=86400"`
3624 // Run server_reset_query (DISCARD ALL) in all pooling modes
3625 ServerResetQueryAlways *bool `json:"server_reset_query_always,omitempty"`
3626 }
3627 3628 // System-wide settings for pglookout.
3629 type JSONSchemaPglookout struct {
3630 // Number of seconds of master unavailability before triggering database failover to standby
3631 MaxFailoverReplicationTimeLag int `json:"max_failover_replication_time_lag,omitempty" validate:"omitempty,gte=10,lte=9.223372036854776e+18"`
3632 }
3633 3634 // Schema Registry configuration
3635 type JSONSchemaSchemaRegistry struct {
3636 // If true, Karapace / Schema Registry on the service nodes can participate in leader election. It might be needed to disable this when the schemas topic is replicated to a secondary cluster and Karapace / Schema Registry there must not participate in leader election. Defaults to `true`.
3637 LeaderEligibility *bool `json:"leader_eligibility,omitempty"`
3638 // The durable single partition topic that acts as the durable log for the data. This topic must be compacted to avoid losing data due to retention policy. Please note that changing this configuration in an existing Schema Registry / Karapace setup leads to previous schemas being inaccessible, data encoded with them potentially unreadable and schema ID sequence put out of order. It's only possible to do the switch while Schema Registry / Karapace is disabled. Defaults to `_schemas`.
3639 TopicName string `json:"topic_name,omitempty" validate:"omitempty,gte=1,lte=249"`
3640 }
3641 3642 // Configuration options for Thanos Compactor.
3643 type JSONSchemaThanosCompactor struct {
3644 // Retention time for data in days for each resolution (5m, 1h, raw)
3645 RetentionDays int `json:"retention.days,omitempty" validate:"omitempty,gte=0"`
3646 }
3647 3648 // Configuration options for Thanos Query.
3649 type JSONSchemaThanosQuery struct {
3650 // Set the default evaluation interval for subqueries.
3651 QueryDefaultEvaluationInterval string `json:"query.default-evaluation-interval,omitempty" validate:"omitempty,lte=20"`
3652 // The maximum lookback duration for retrieving metrics during expression evaluations in PromQL. PromQL always evaluates the query for a certain timestamp, and it looks back for the given amount of time to get the latest sample. If it exceeds the maximum lookback delta, it assumes the series is stale and returns none (a gap). The lookback delta should be set to at least 2 times the slowest scrape interval. If unset, it will use the promql default of 5m.
3653 QueryLookbackDelta string `json:"query.lookback-delta,omitempty" validate:"omitempty,lte=20"`
3654 // The default metadata time range duration for retrieving labels through Labels and Series API when the range parameters are not specified. The zero value means the range covers the time since the beginning.
3655 QueryMetadataDefaultTimeRange string `json:"query.metadata.default-time-range,omitempty" validate:"omitempty,lte=20"`
3656 // Maximum time to process a query by the query node.
3657 QueryTimeout string `json:"query.timeout,omitempty" validate:"omitempty,lte=20"`
3658 // The maximum samples allowed for a single Series request. The Series call fails if this limit is exceeded. Set to 0 for no limit. NOTE: For efficiency, the limit is internally implemented as 'chunks limit' considering each chunk contains a maximum of 120 samples. The default value is 100 * store.limits.request-series.
3659 StoreLimitsRequestSamples int `json:"store.limits.request-samples,omitempty" validate:"omitempty,gte=0,lte=1e+08"`
3660 // The maximum series allowed for a single Series request. The Series call fails if this limit is exceeded. Set to 0 for no limit. The default value is 1000 * cpu_count.
3661 StoreLimitsRequestSeries int `json:"store.limits.request-series,omitempty" validate:"omitempty,gte=0,lte=1e+08"`
3662 }
3663 3664 // Configuration options for Thanos Query Frontend.
3665 type JSONSchemaThanosQueryFrontend struct {
3666 // Whether to align the query range boundaries with the step. If enabled, the query range boundaries will be aligned to the step, providing more accurate results for queries with high-resolution data.
3667 QueryRangeAlignRangeWithStep *bool `json:"query-range.align-range-with-step,omitempty"`
3668 }
3669 3670 // Thanos settings
3671 type JSONSchemaThanos struct {
3672 // Configuration options for Thanos Compactor.
3673 Compactor *JSONSchemaThanosCompactor `json:"compactor,omitempty"`
3674 // Configuration options for Thanos Query.
3675 Query *JSONSchemaThanosQuery `json:"query,omitempty"`
3676 // Configuration options for Thanos Query Frontend.
3677 QueryFrontend *JSONSchemaThanosQueryFrontend `json:"query-frontend,omitempty"`
3678 }
3679 3680 // System-wide settings for the timescaledb extension
3681 type JSONSchemaTimescaledb struct {
3682 // The number of background workers for timescaledb operations. You should configure this setting to the sum of your number of databases and the total number of concurrent background workers you want running at any given point in time. Changing this parameter causes a service restart.
3683 MaxBackgroundWorkers int `json:"max_background_workers,omitempty" validate:"omitempty,gte=1,lte=4096"`
3684 }
3685 3686 type JSONSchemaValkeyAclChannelsDefault string
3687 3688 const (
3689 JSONSchemaValkeyAclChannelsDefaultAllchannels JSONSchemaValkeyAclChannelsDefault = "allchannels"
3690 JSONSchemaValkeyAclChannelsDefaultResetchannels JSONSchemaValkeyAclChannelsDefault = "resetchannels"
3691 )
3692 3693 type JSONSchemaValkeyMaxmemoryPolicy string
3694 3695 const (
3696 JSONSchemaValkeyMaxmemoryPolicyNoeviction JSONSchemaValkeyMaxmemoryPolicy = "noeviction"
3697 JSONSchemaValkeyMaxmemoryPolicyAllkeysLru JSONSchemaValkeyMaxmemoryPolicy = "allkeys-lru"
3698 JSONSchemaValkeyMaxmemoryPolicyVolatileLru JSONSchemaValkeyMaxmemoryPolicy = "volatile-lru"
3699 JSONSchemaValkeyMaxmemoryPolicyAllkeysRandom JSONSchemaValkeyMaxmemoryPolicy = "allkeys-random"
3700 JSONSchemaValkeyMaxmemoryPolicyVolatileRandom JSONSchemaValkeyMaxmemoryPolicy = "volatile-random"
3701 JSONSchemaValkeyMaxmemoryPolicyVolatileTtl JSONSchemaValkeyMaxmemoryPolicy = "volatile-ttl"
3702 JSONSchemaValkeyMaxmemoryPolicyVolatileLfu JSONSchemaValkeyMaxmemoryPolicy = "volatile-lfu"
3703 JSONSchemaValkeyMaxmemoryPolicyAllkeysLfu JSONSchemaValkeyMaxmemoryPolicy = "allkeys-lfu"
3704 )
3705 3706 type JSONSchemaValkeyPersistence string
3707 3708 const (
3709 JSONSchemaValkeyPersistenceOff JSONSchemaValkeyPersistence = "off"
3710 JSONSchemaValkeyPersistenceRdb JSONSchemaValkeyPersistence = "rdb"
3711 )
3712 3713 // Valkey settings
3714 type JSONSchemaValkey struct {
3715 // Determines default pub/sub channels' ACL for new users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Valkey configuration acl-pubsub-default.
3716 AclChannelsDefault JSONSchemaValkeyAclChannelsDefault `json:"acl_channels_default,omitempty"`
3717 // Set Valkey IO thread count. Changing this will cause a restart of the Valkey service.
3718 IoThreads int `json:"io_threads,omitempty" validate:"omitempty,gte=1,lte=32"`
3719 // LFU maxmemory-policy counter decay time in minutes
3720 LfuDecayTime int `json:"lfu_decay_time,omitempty" validate:"omitempty,gte=1,lte=120"`
3721 // Counter logarithm factor for volatile-lfu and allkeys-lfu maxmemory-policies
3722 LfuLogFactor int `json:"lfu_log_factor,omitempty" validate:"omitempty,gte=0,lte=100"`
3723 // Valkey maxmemory-policy
3724 MaxmemoryPolicy JSONSchemaValkeyMaxmemoryPolicy `json:"maxmemory_policy,omitempty"`
3725 // Set notify-keyspace-events option
3726 NotifyKeyspaceEvents string `json:"notify_keyspace_events,omitempty" validate:"omitempty,lte=32"`
3727 // Set number of Valkey databases. Changing this will cause a restart of the Valkey service.
3728 NumberOfDatabases int `json:"number_of_databases,omitempty" validate:"omitempty,gte=1,lte=128"`
3729 // When persistence is 'rdb', Valkey does RDB dumps each 10 minutes if any key is changed. Also RDB dumps are done according to backup schedule for backup purposes. When persistence is 'off', no RDB dumps and backups are done, so data can be lost at any moment if service is restarted for any reason, or if service is powered off. Also service can't be forked.
3730 Persistence JSONSchemaValkeyPersistence `json:"persistence,omitempty"`
3731 // Set output buffer limit for pub / sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.
3732 PubsubClientOutputBufferLimit int `json:"pubsub_client_output_buffer_limit,omitempty" validate:"omitempty,gte=32,lte=512"`
3733 // Require SSL to access Valkey
3734 SSL *bool `json:"ssl,omitempty"`
3735 // Valkey idle connection timeout in seconds
3736 Timeout int `json:"timeout,omitempty" validate:"omitempty,gte=0,lte=3.1536e+07"`
3737 }
3738 3739 // Kubelet image GC options
3740 type KubeletImageGC struct {
3741 HighThreshold int64 `json:"high-threshold,omitempty" validate:"omitempty,gte=0"`
3742 LowThreshold int64 `json:"low-threshold,omitempty" validate:"omitempty,gte=0"`
3743 MinAge string `json:"min-age,omitempty"`
3744 }
3745 3746 type Labels map[string]string
3747 3748 // AI model list
3749 type ListDeploymentsResponse struct {
3750 Deployments []ListDeploymentsResponseEntry `json:"deployments,omitempty"`
3751 }
3752 3753 type ListDeploymentsResponseEntryStatus string
3754 3755 const (
3756 ListDeploymentsResponseEntryStatusReady ListDeploymentsResponseEntryStatus = "ready"
3757 ListDeploymentsResponseEntryStatusCreating ListDeploymentsResponseEntryStatus = "creating"
3758 ListDeploymentsResponseEntryStatusError ListDeploymentsResponseEntryStatus = "error"
3759 ListDeploymentsResponseEntryStatusDeploying ListDeploymentsResponseEntryStatus = "deploying"
3760 )
3761 3762 // AI deployment
3763 type ListDeploymentsResponseEntry struct {
3764 // Creation time
3765 CreatedAT time.Time `json:"created-at,omitempty"`
3766 // Deployment URL (nullable)
3767 DeploymentURL string `json:"deployment-url,omitempty"`
3768 // Number of GPUs
3769 GpuCount int64 `json:"gpu-count,omitempty" validate:"omitempty,gt=0"`
3770 // GPU type family
3771 GpuType string `json:"gpu-type,omitempty" validate:"omitempty,gte=1"`
3772 // Deployment ID
3773 ID UUID `json:"id,omitempty"`
3774 Model *ModelRef `json:"model,omitempty"`
3775 // Deployment name
3776 Name string `json:"name,omitempty" validate:"omitempty,gte=1"`
3777 // Number of replicas (>=0)
3778 Replicas int64 `json:"replicas,omitempty" validate:"omitempty,gte=0"`
3779 // Service level
3780 ServiceLevel string `json:"service-level,omitempty" validate:"omitempty,gte=1"`
3781 // Deployment status
3782 Status ListDeploymentsResponseEntryStatus `json:"status,omitempty"`
3783 // Update time
3784 UpdatedAT time.Time `json:"updated-at,omitempty"`
3785 }
3786 3787 // AI model list
3788 type ListModelsResponse struct {
3789 Models []ListModelsResponseEntry `json:"models,omitempty"`
3790 }
3791 3792 type ListModelsResponseEntryStatus string
3793 3794 const (
3795 ListModelsResponseEntryStatusReady ListModelsResponseEntryStatus = "ready"
3796 ListModelsResponseEntryStatusCreating ListModelsResponseEntryStatus = "creating"
3797 ListModelsResponseEntryStatusDownloading ListModelsResponseEntryStatus = "downloading"
3798 ListModelsResponseEntryStatusError ListModelsResponseEntryStatus = "error"
3799 )
3800 3801 // AI model
3802 type ListModelsResponseEntry struct {
3803 // Creation time
3804 CreatedAT time.Time `json:"created-at,omitempty"`
3805 // Model ID
3806 ID UUID `json:"id,omitempty"`
3807 // Model size (nullable)
3808 ModelSize int64 `json:"model-size,omitempty" validate:"omitempty,gte=0"`
3809 // Model name
3810 Name string `json:"name,omitempty" validate:"omitempty,gte=1"`
3811 // Model status
3812 Status ListModelsResponseEntryStatus `json:"status,omitempty"`
3813 // Update time
3814 UpdatedAT time.Time `json:"updated-at,omitempty"`
3815 }
3816 3817 type LoadBalancerState string
3818 3819 const (
3820 LoadBalancerStateCreating LoadBalancerState = "creating"
3821 LoadBalancerStateMigrated LoadBalancerState = "migrated"
3822 LoadBalancerStateDeleting LoadBalancerState = "deleting"
3823 LoadBalancerStateRunning LoadBalancerState = "running"
3824 LoadBalancerStateMigrating LoadBalancerState = "migrating"
3825 LoadBalancerStateError LoadBalancerState = "error"
3826 )
3827 3828 // Load Balancer
3829 type LoadBalancer struct {
3830 // Load Balancer creation date
3831 CreatedAT time.Time `json:"created-at,omitempty"`
3832 // Load Balancer description
3833 Description string `json:"description,omitempty" validate:"omitempty,lte=255"`
3834 // Load Balancer ID
3835 ID UUID `json:"id,omitempty"`
3836 // Load Balancer public IP
3837 IP net.IP `json:"ip,omitempty"`
3838 Labels Labels `json:"labels,omitempty"`
3839 // Load Balancer name
3840 Name string `json:"name,omitempty" validate:"omitempty,gte=1,lte=255"`
3841 // Load Balancer Services
3842 Services []LoadBalancerService `json:"services,omitempty"`
3843 // Load Balancer state
3844 State LoadBalancerState `json:"state,omitempty"`
3845 }
3846 3847 type LoadBalancerServerStatusStatus string
3848 3849 const (
3850 LoadBalancerServerStatusStatusFailure LoadBalancerServerStatusStatus = "failure"
3851 LoadBalancerServerStatusStatusSuccess LoadBalancerServerStatusStatus = "success"
3852 )
3853 3854 // Load Balancer Service status
3855 type LoadBalancerServerStatus struct {
3856 // Backend server public IP
3857 PublicIP net.IP `json:"public-ip,omitempty"`
3858 // Status of the instance's healthcheck
3859 Status LoadBalancerServerStatusStatus `json:"status,omitempty"`
3860 }
3861 3862 type LoadBalancerServiceProtocol string
3863 3864 const (
3865 LoadBalancerServiceProtocolTCP LoadBalancerServiceProtocol = "tcp"
3866 LoadBalancerServiceProtocolUDP LoadBalancerServiceProtocol = "udp"
3867 )
3868 3869 type LoadBalancerServiceState string
3870 3871 const (
3872 LoadBalancerServiceStateCreating LoadBalancerServiceState = "creating"
3873 LoadBalancerServiceStateDeleting LoadBalancerServiceState = "deleting"
3874 LoadBalancerServiceStateRunning LoadBalancerServiceState = "running"
3875 LoadBalancerServiceStateUpdating LoadBalancerServiceState = "updating"
3876 LoadBalancerServiceStateError LoadBalancerServiceState = "error"
3877 )
3878 3879 type LoadBalancerServiceStrategy string
3880 3881 const (
3882 LoadBalancerServiceStrategyRoundRobin LoadBalancerServiceStrategy = "round-robin"
3883 LoadBalancerServiceStrategyMaglevHash LoadBalancerServiceStrategy = "maglev-hash"
3884 LoadBalancerServiceStrategySourceHash LoadBalancerServiceStrategy = "source-hash"
3885 )
3886 3887 // Load Balancer Service
3888 type LoadBalancerService struct {
3889 // Load Balancer Service description
3890 Description string `json:"description,omitempty" validate:"omitempty,lte=255"`
3891 // Load Balancer Service healthcheck
3892 Healthcheck *LoadBalancerServiceHealthcheck `json:"healthcheck,omitempty"`
3893 // Healthcheck status per backend server
3894 HealthcheckStatus []LoadBalancerServerStatus `json:"healthcheck-status,omitempty"`
3895 // Load Balancer Service ID
3896 ID UUID `json:"id,omitempty"`
3897 // Instance Pool
3898 InstancePool *InstancePool `json:"instance-pool,omitempty"`
3899 // Load Balancer Service name
3900 Name string `json:"name,omitempty" validate:"omitempty,gte=1,lte=255"`
3901 // Port exposed on the Load Balancer's public IP
3902 Port int64 `json:"port,omitempty" validate:"omitempty,gt=0"`
3903 // Network traffic protocol
3904 Protocol LoadBalancerServiceProtocol `json:"protocol,omitempty"`
3905 // Load Balancer Service state
3906 State LoadBalancerServiceState `json:"state,omitempty"`
3907 // Load balancing strategy
3908 Strategy LoadBalancerServiceStrategy `json:"strategy,omitempty"`
3909 // Port on which the network traffic will be forwarded to on the receiving instance
3910 TargetPort int64 `json:"target-port,omitempty" validate:"omitempty,gt=0"`
3911 }
3912 3913 type LoadBalancerServiceHealthcheckMode string
3914 3915 const (
3916 LoadBalancerServiceHealthcheckModeTCP LoadBalancerServiceHealthcheckMode = "tcp"
3917 LoadBalancerServiceHealthcheckModeHTTP LoadBalancerServiceHealthcheckMode = "http"
3918 LoadBalancerServiceHealthcheckModeHttps LoadBalancerServiceHealthcheckMode = "https"
3919 )
3920 3921 // Load Balancer Service healthcheck
3922 type LoadBalancerServiceHealthcheck struct {
3923 // Healthcheck interval (default: 10). Must be greater than or equal to Timeout
3924 Interval int64 `json:"interval,omitempty" validate:"omitempty,gte=5,lte=300"`
3925 // Healthcheck mode
3926 Mode LoadBalancerServiceHealthcheckMode `json:"mode,omitempty"`
3927 // Healthcheck port
3928 Port int64 `json:"port,omitempty" validate:"omitempty,gte=1,lte=65535"`
3929 // Number of retries before considering a Service failed
3930 Retries int64 `json:"retries,omitempty" validate:"omitempty,gte=1,lte=20"`
3931 // Healthcheck timeout value (default: 2). Must be lower than or equal to Interval
3932 Timeout int64 `json:"timeout,omitempty" validate:"omitempty,gte=2,lte=60"`
3933 // SNI domain for HTTPS healthchecks
3934 TlsSNI string `json:"tls-sni,omitempty" validate:"omitempty,gte=1,lte=255"`
3935 // An endpoint to use for the HTTP healthcheck, e.g. '/status'
3936 URI string `json:"uri,omitempty" validate:"omitempty,gte=1,lte=255"`
3937 }
3938 3939 type ManagerType string
3940 3941 const (
3942 ManagerTypeSKSNodepool ManagerType = "sks-nodepool"
3943 ManagerTypeInstancePool ManagerType = "instance-pool"
3944 )
3945 3946 // Resource manager
3947 type Manager struct {
3948 // Manager ID
3949 ID UUID `json:"id,omitempty"`
3950 // Manager type
3951 Type ManagerType `json:"type,omitempty"`
3952 }
3953 3954 type ModelRef struct {
3955 // Associated model ID
3956 ID UUID `json:"id,omitempty"`
3957 // Associated model name
3958 Name string `json:"name,omitempty" validate:"omitempty,gte=1"`
3959 }
3960 3961 // Cluster networking configuration.
3962 type Networking struct {
3963 // CIDR Range for Pods in cluster. This must not overlap with any IP ranges assigned to pods. Max of two, comma-separated, dual-stack CIDRs is allowed.
3964 // If not specified, defaults to 192.168.0.0/16.
3965 ClusterCidr string `json:"cluster-cidr,omitempty"`
3966 // Mask size for node cidr in cluster. It must be larger than the Pod CIDR subnet mask. Defaults to 24
3967 NodeCidrMaskSizeIpv4 int64 `json:"node-cidr-mask-size-ipv4,omitempty" validate:"omitempty,gt=0"`
3968 // Mask size for node cidr in cluster. It must be larger than the Pod CIDR subnet mask. Defaults to 64
3969 NodeCidrMaskSizeIpv6 int64 `json:"node-cidr-mask-size-ipv6,omitempty" validate:"omitempty,gt=0"`
3970 // CIDR range for service cluster IPs. This must not overlap with any IP ranges assigned to nodes or pods. Max of two, comma-separated, dual-stack CIDRs is allowed.
3971 // If not specified, defaults to 10.96.0.0/12.
3972 ServiceClusterIPRange string `json:"service-cluster-ip-range,omitempty"`
3973 }
3974 3975 type OperationReason string
3976 3977 const (
3978 OperationReasonIncorrect OperationReason = "incorrect"
3979 OperationReasonUnknown OperationReason = "unknown"
3980 OperationReasonUnavailable OperationReason = "unavailable"
3981 OperationReasonForbidden OperationReason = "forbidden"
3982 OperationReasonBusy OperationReason = "busy"
3983 OperationReasonFault OperationReason = "fault"
3984 OperationReasonPartial OperationReason = "partial"
3985 OperationReasonNotFound OperationReason = "not-found"
3986 OperationReasonInterrupted OperationReason = "interrupted"
3987 OperationReasonUnsupported OperationReason = "unsupported"
3988 OperationReasonConflict OperationReason = "conflict"
3989 )
3990 3991 // Related resource reference
3992 type OperationReference struct {
3993 // Command name
3994 Command string `json:"command,omitempty"`
3995 // Reference ID
3996 ID UUID `json:"id,omitempty"`
3997 // Link to the referenced resource
3998 Link string `json:"link,omitempty"`
3999 }
4000 4001 type OperationState string
4002 4003 const (
4004 OperationStateFailure OperationState = "failure"
4005 OperationStatePending OperationState = "pending"
4006 OperationStateSuccess OperationState = "success"
4007 OperationStateTimeout OperationState = "timeout"
4008 )
4009 4010 // Operation
4011 type Operation struct {
4012 // Operation ID
4013 ID UUID `json:"id,omitempty"`
4014 // Operation message
4015 Message string `json:"message,omitempty"`
4016 // Operation failure reason
4017 Reason OperationReason `json:"reason,omitempty"`
4018 // Related resource reference
4019 Reference *OperationReference `json:"reference,omitempty"`
4020 // Operation status
4021 State OperationState `json:"state,omitempty"`
4022 }
4023 4024 // Organization
4025 type Organization struct {
4026 // Organization address
4027 Address string `json:"address,omitempty"`
4028 // Organization balance
4029 Balance float64 `json:"balance,omitempty"`
4030 // Organization city
4031 City string `json:"city,omitempty"`
4032 // Organization country
4033 Country string `json:"country,omitempty"`
4034 // Organization currency
4035 Currency string `json:"currency,omitempty"`
4036 // Organization ID
4037 ID UUID `json:"id,omitempty"`
4038 // Organization name
4039 Name string `json:"name,omitempty"`
4040 // Organization postcode
4041 Postcode string `json:"postcode,omitempty"`
4042 }
4043 4044 // Private Network
4045 type PrivateNetwork struct {
4046 // Private Network description
4047 Description string `json:"description,omitempty" validate:"omitempty,lte=255"`
4048 // Private Network end IP address
4049 EndIP net.IP `json:"end-ip,omitempty"`
4050 // Private Network ID
4051 ID UUID `json:"id,omitempty"`
4052 Labels Labels `json:"labels,omitempty"`
4053 // Private Network leased IP addresses
4054 Leases []PrivateNetworkLease `json:"leases,omitempty"`
4055 // Private Network name
4056 Name string `json:"name,omitempty" validate:"omitempty,gte=1,lte=255"`
4057 // Private Network netmask
4058 Netmask net.IP `json:"netmask,omitempty"`
4059 // Private Network DHCP Options
4060 Options *PrivateNetworkOptions `json:"options,omitempty"`
4061 // Private Network start IP address
4062 StartIP net.IP `json:"start-ip,omitempty"`
4063 // Private Network VXLAN ID
4064 Vni int64 `json:"vni,omitempty" validate:"omitempty,gt=0"`
4065 }
4066 4067 // Private Network leased IP address
4068 type PrivateNetworkLease struct {
4069 // Attached instance ID
4070 InstanceID UUID `json:"instance-id,omitempty"`
4071 // Private Network IP address
4072 IP net.IP `json:"ip,omitempty"`
4073 }
4074 4075 // Private Network DHCP Options
4076 type PrivateNetworkOptions struct {
4077 // DNS Servers
4078 DNSServers []net.IP `json:"dns-servers,omitempty"`
4079 // Domain search list, limited to 255 octets
4080 DomainSearch []string `json:"domain-search,omitempty"`
4081 // NTP Servers
4082 NtpServers []net.IP `json:"ntp-servers,omitempty"`
4083 // Routers
4084 Routers []net.IP `json:"routers,omitempty"`
4085 }
4086 4087 type PublicIPAssignment string
4088 4089 const (
4090 PublicIPAssignmentInet4 PublicIPAssignment = "inet4"
4091 PublicIPAssignmentDual PublicIPAssignment = "dual"
4092 PublicIPAssignmentNone PublicIPAssignment = "none"
4093 )
4094 4095 // Organization Quota
4096 type Quota struct {
4097 // Resource Limit. -1 for Unlimited
4098 Limit int64 `json:"limit,omitempty"`
4099 // Resource Name
4100 Resource string `json:"resource,omitempty"`
4101 // Resource Usage
4102 Usage int64 `json:"usage,omitempty"`
4103 }
4104 4105 // Resource
4106 type Resource struct {
4107 // Resource ID
4108 ID UUID `json:"id,omitempty"`
4109 // Resource name
4110 Name string `json:"name,omitempty"`
4111 }
4112 4113 // AI deployment inference endpoint authentication key
4114 type RevealDeploymentAPIKeyResponse struct {
4115 APIKey string `json:"api-key,omitempty"`
4116 }
4117 4118 type ReverseDNSRecord struct {
4119 DomainName DomainName `json:"domain-name,omitempty" validate:"omitempty,gte=1,lte=253"`
4120 }
4121 4122 // Scale AI deployment
4123 type ScaleDeploymentRequest struct {
4124 // Number of replicas (>=0)
4125 Replicas int64 `json:"replicas" validate:"required,gte=0"`
4126 }
4127 4128 // Security Group
4129 type SecurityGroup struct {
4130 // Security Group description
4131 Description string `json:"description,omitempty" validate:"omitempty,lte=255"`
4132 // Security Group external sources
4133 ExternalSources []string `json:"external-sources,omitempty"`
4134 // Security Group ID
4135 ID UUID `json:"id,omitempty"`
4136 // Security Group name
4137 Name string `json:"name,omitempty" validate:"omitempty,gte=1,lte=255"`
4138 // Security Group rules
4139 Rules []SecurityGroupRule `json:"rules,omitempty"`
4140 }
4141 4142 type SecurityGroupResourceVisibility string
4143 4144 const (
4145 SecurityGroupResourceVisibilityPrivate SecurityGroupResourceVisibility = "private"
4146 SecurityGroupResourceVisibilityPublic SecurityGroupResourceVisibility = "public"
4147 )
4148 4149 // Security Group
4150 type SecurityGroupResource struct {
4151 // Security Group ID
4152 ID UUID `json:"id,omitempty"`
4153 // Security Group name
4154 Name string `json:"name,omitempty" validate:"omitempty,gte=1,lte=255"`
4155 // Whether this points to a public security group. This is only valid when in the context of
4156 // a rule addition which uses a public security group as a source or destination.
4157 Visibility SecurityGroupResourceVisibility `json:"visibility,omitempty"`
4158 }
4159 4160 type SecurityGroupRuleFlowDirection string
4161 4162 const (
4163 SecurityGroupRuleFlowDirectionIngress SecurityGroupRuleFlowDirection = "ingress"
4164 SecurityGroupRuleFlowDirectionEgress SecurityGroupRuleFlowDirection = "egress"
4165 )
4166 4167 // ICMP details
4168 type SecurityGroupRuleICMP struct {
4169 Code int64 `json:"code,omitempty" validate:"omitempty,gte=-1,lte=254"`
4170 Type int64 `json:"type,omitempty" validate:"omitempty,gte=-1,lte=254"`
4171 }
4172 4173 type SecurityGroupRuleProtocol string
4174 4175 const (
4176 SecurityGroupRuleProtocolTCP SecurityGroupRuleProtocol = "tcp"
4177 SecurityGroupRuleProtocolEsp SecurityGroupRuleProtocol = "esp"
4178 SecurityGroupRuleProtocolICMP SecurityGroupRuleProtocol = "icmp"
4179 SecurityGroupRuleProtocolUDP SecurityGroupRuleProtocol = "udp"
4180 SecurityGroupRuleProtocolGre SecurityGroupRuleProtocol = "gre"
4181 SecurityGroupRuleProtocolAh SecurityGroupRuleProtocol = "ah"
4182 SecurityGroupRuleProtocolIpip SecurityGroupRuleProtocol = "ipip"
4183 SecurityGroupRuleProtocolIcmpv6 SecurityGroupRuleProtocol = "icmpv6"
4184 )
4185 4186 // Security Group rule
4187 type SecurityGroupRule struct {
4188 // Security Group rule description
4189 Description string `json:"description,omitempty" validate:"omitempty,lte=255"`
4190 // End port of the range
4191 EndPort int64 `json:"end-port,omitempty" validate:"omitempty,gte=1,lte=65535"`
4192 // Network flow direction to match
4193 FlowDirection SecurityGroupRuleFlowDirection `json:"flow-direction,omitempty"`
4194 // ICMP details
4195 ICMP *SecurityGroupRuleICMP `json:"icmp,omitempty"`
4196 // Security Group rule ID
4197 ID UUID `json:"id,omitempty"`
4198 // CIDR-formatted network allowed
4199 Network string `json:"network,omitempty"`
4200 // Network protocol
4201 Protocol SecurityGroupRuleProtocol `json:"protocol,omitempty"`
4202 // Security Group
4203 SecurityGroup *SecurityGroupResource `json:"security-group,omitempty"`
4204 // Start port of the range
4205 StartPort int64 `json:"start-port,omitempty" validate:"omitempty,gte=1,lte=65535"`
4206 }
4207 4208 // Kubernetes Audit parameters
4209 type SKSAudit struct {
4210 // Enabled
4211 Enabled *bool `json:"enabled,omitempty"`
4212 Endpoint SKSAuditEndpoint `json:"endpoint,omitempty" validate:"omitempty,gte=1,lte=2000"`
4213 InitialBackoff SKSAuditInitialBackoff `json:"initial-backoff,omitempty" validate:"omitempty,gte=1,lte=10"`
4214 }
4215 4216 type SKSAuditBearerToken string
4217 4218 // Kubernetes Audit parameters
4219 type SKSAuditCreate struct {
4220 BearerToken SKSAuditBearerToken `json:"bearer-token" validate:"required,gte=1,lte=2000"`
4221 Endpoint SKSAuditEndpoint `json:"endpoint" validate:"required,gte=1,lte=2000"`
4222 InitialBackoff SKSAuditInitialBackoff `json:"initial-backoff,omitempty" validate:"omitempty,gte=1,lte=10"`
4223 }
4224 4225 type SKSAuditEndpoint string
4226 4227 type SKSAuditInitialBackoff string
4228 4229 // Kubernetes Audit parameters
4230 type SKSAuditUpdate struct {
4231 BearerToken SKSAuditBearerToken `json:"bearer-token,omitempty" validate:"omitempty,gte=1,lte=2000"`
4232 // Enable or Disable Kubernetes Audit
4233 Enabled *bool `json:"enabled,omitempty"`
4234 Endpoint SKSAuditEndpoint `json:"endpoint,omitempty" validate:"omitempty,gte=1,lte=2000"`
4235 InitialBackoff SKSAuditInitialBackoff `json:"initial-backoff,omitempty" validate:"omitempty,gte=1,lte=10"`
4236 }
4237 4238 type SKSClusterCni string
4239 4240 const (
4241 SKSClusterCniCalico SKSClusterCni = "calico"
4242 SKSClusterCniCilium SKSClusterCni = "cilium"
4243 )
4244 4245 type SKSClusterLevel string
4246 4247 const (
4248 SKSClusterLevelStarter SKSClusterLevel = "starter"
4249 SKSClusterLevelPro SKSClusterLevel = "pro"
4250 )
4251 4252 type SKSClusterState string
4253 4254 const (
4255 SKSClusterStateRotatingCsiCredentials SKSClusterState = "rotating-csi-credentials"
4256 SKSClusterStateRotatingCcmCredentials SKSClusterState = "rotating-ccm-credentials"
4257 SKSClusterStateCreating SKSClusterState = "creating"
4258 SKSClusterStateUpgrading SKSClusterState = "upgrading"
4259 SKSClusterStateDeleting SKSClusterState = "deleting"
4260 SKSClusterStateRunning SKSClusterState = "running"
4261 SKSClusterStateSuspending SKSClusterState = "suspending"
4262 SKSClusterStateUpdating SKSClusterState = "updating"
4263 SKSClusterStateError SKSClusterState = "error"
4264 SKSClusterStateRotatingKarpenterCredentials SKSClusterState = "rotating-karpenter-credentials"
4265 SKSClusterStateResuming SKSClusterState = "resuming"
4266 )
4267 4268 // SKS Cluster
4269 type SKSCluster struct {
4270 // Cluster addons
4271 Addons []string `json:"addons,omitempty"`
4272 // Kubernetes Audit parameters
4273 Audit *SKSAudit `json:"audit,omitempty"`
4274 // Enable auto upgrade of the control plane to the latest patch version available
4275 AutoUpgrade *bool `json:"auto-upgrade,omitempty"`
4276 // Cluster CNI
4277 Cni SKSClusterCni `json:"cni,omitempty"`
4278 // Cluster creation date
4279 CreatedAT time.Time `json:"created-at,omitempty"`
4280 // Cluster description
4281 Description string `json:"description,omitempty" validate:"omitempty,lte=255"`
4282 // Indicates whether to deploy the Kubernetes network proxy.
4283 EnableKubeProxy *bool `json:"enable-kube-proxy,omitempty"`
4284 // Indicates whether to add operators certificate authority (CA) as part of trusted CAs for the API server.
4285 EnableOperatorsCA *bool `json:"enable-operators-ca,omitempty"`
4286 // Cluster endpoint
4287 Endpoint string `json:"endpoint,omitempty"`
4288 // A list of Kubernetes-only Alpha features to enable for API server component
4289 FeatureGates []string `json:"feature-gates,omitempty"`
4290 // Cluster ID
4291 ID UUID `json:"id,omitempty"`
4292 Labels SKSClusterLabels `json:"labels,omitempty"`
4293 // Cluster level
4294 Level SKSClusterLevel `json:"level,omitempty"`
4295 // Cluster name
4296 Name string `json:"name,omitempty" validate:"omitempty,gte=1,lte=255"`
4297 // Cluster Nodepools
4298 Nodepools []SKSNodepool `json:"nodepools,omitempty"`
4299 // Cluster state
4300 State SKSClusterState `json:"state,omitempty"`
4301 // Control plane Kubernetes version
4302 Version string `json:"version,omitempty"`
4303 }
4304 4305 type SKSClusterDeprecatedResource struct {
4306 Group string `json:"group,omitempty"`
4307 RemovedRelease string `json:"removed-release,omitempty"`
4308 Resource string `json:"resource,omitempty"`
4309 Subresource string `json:"subresource,omitempty"`
4310 Version string `json:"version,omitempty"`
4311 }
4312 4313 type SKSClusterLabels map[string]string
4314 4315 // Kubeconfig request for a SKS cluster
4316 type SKSKubeconfigRequest struct {
4317 // List of roles. The certificate present in the Kubeconfig will have these roles set in the Org field.
4318 Groups []string `json:"groups" validate:"required"`
4319 // Validity in seconds of the Kubeconfig user certificate (default: 30 days)
4320 Ttl int64 `json:"ttl,omitempty" validate:"omitempty,gt=0"`
4321 // User name in the generated Kubeconfig. The certificate present in the Kubeconfig will also have this name set for the CN field.
4322 User string `json:"user" validate:"required"`
4323 }
4324 4325 type SKSNodepoolPublicIPAssignment string
4326 4327 const (
4328 SKSNodepoolPublicIPAssignmentInet4 SKSNodepoolPublicIPAssignment = "inet4"
4329 SKSNodepoolPublicIPAssignmentDual SKSNodepoolPublicIPAssignment = "dual"
4330 )
4331 4332 type SKSNodepoolState string
4333 4334 const (
4335 SKSNodepoolStateRenewingToken SKSNodepoolState = "renewing-token"
4336 SKSNodepoolStateCreating SKSNodepoolState = "creating"
4337 SKSNodepoolStateDeleting SKSNodepoolState = "deleting"
4338 SKSNodepoolStateRunning SKSNodepoolState = "running"
4339 SKSNodepoolStateScaling SKSNodepoolState = "scaling"
4340 SKSNodepoolStateUpdating SKSNodepoolState = "updating"
4341 SKSNodepoolStateError SKSNodepoolState = "error"
4342 )
4343 4344 // SKS Nodepool
4345 type SKSNodepool struct {
4346 // Nodepool addons
4347 Addons []string `json:"addons,omitempty"`
4348 // Nodepool Anti-affinity Groups
4349 AntiAffinityGroups []AntiAffinityGroup `json:"anti-affinity-groups,omitempty"`
4350 // Nodepool creation date
4351 CreatedAT time.Time `json:"created-at,omitempty"`
4352 // Deploy target
4353 DeployTarget *DeployTarget `json:"deploy-target,omitempty"`
4354 // Nodepool description
4355 Description string `json:"description,omitempty" validate:"omitempty,lte=255"`
4356 // Nodepool instances disk size in GiB
4357 DiskSize int64 `json:"disk-size,omitempty" validate:"omitempty,gte=20,lte=51200"`
4358 // Nodepool ID
4359 ID UUID `json:"id,omitempty"`
4360 // Instance Pool
4361 InstancePool *InstancePool `json:"instance-pool,omitempty"`
4362 // The instances created by the Nodepool will be prefixed with this value (default: pool)
4363 InstancePrefix string `json:"instance-prefix,omitempty" validate:"omitempty,gte=1,lte=30"`
4364 // Compute instance type
4365 InstanceType *InstanceType `json:"instance-type,omitempty"`
4366 // Kubelet image GC options
4367 KubeletImageGC *KubeletImageGC `json:"kubelet-image-gc,omitempty"`
4368 Labels SKSNodepoolLabels `json:"labels,omitempty"`
4369 // Nodepool name
4370 Name string `json:"name,omitempty" validate:"omitempty,gte=1,lte=255"`
4371 // Nodepool Private Networks
4372 PrivateNetworks []PrivateNetwork `json:"private-networks,omitempty"`
4373 // Nodepool public IP assignment of the Instances:
4374 // * IPv4 and IPv6 (`dual`) addressing.
4375 // * IPv4 and IPv6 (`dual`) addressing.
4376 PublicIPAssignment SKSNodepoolPublicIPAssignment `json:"public-ip-assignment,omitempty"`
4377 // Nodepool Security Groups
4378 SecurityGroups []SecurityGroup `json:"security-groups,omitempty"`
4379 // Number of instances
4380 Size int64 `json:"size,omitempty" validate:"omitempty,gte=0"`
4381 // Nodepool state
4382 State SKSNodepoolState `json:"state,omitempty"`
4383 Taints SKSNodepoolTaints `json:"taints,omitempty"`
4384 // Instance template
4385 Template *Template `json:"template,omitempty"`
4386 // Nodepool version
4387 Version string `json:"version,omitempty"`
4388 }
4389 4390 type SKSNodepoolLabels map[string]string
4391 4392 type SKSNodepoolTaintEffect string
4393 4394 const (
4395 SKSNodepoolTaintEffectNoExecute SKSNodepoolTaintEffect = "NoExecute"
4396 SKSNodepoolTaintEffectNoSchedule SKSNodepoolTaintEffect = "NoSchedule"
4397 SKSNodepoolTaintEffectPreferNoSchedule SKSNodepoolTaintEffect = "PreferNoSchedule"
4398 )
4399 4400 // Nodepool taint
4401 type SKSNodepoolTaint struct {
4402 // Nodepool taint effect
4403 Effect SKSNodepoolTaintEffect `json:"effect" validate:"required"`
4404 // Nodepool taint value
4405 Value string `json:"value" validate:"required,gte=1,lte=255"`
4406 }
4407 4408 type SKSNodepoolTaints map[string]SKSNodepoolTaint
4409 4410 // SKS Cluster OpenID config map
4411 type SKSOidc struct {
4412 // OpenID client ID
4413 ClientID string `json:"client-id" validate:"required,gte=1,lte=255"`
4414 // JWT claim to use as the user's group
4415 GroupsClaim string `json:"groups-claim,omitempty" validate:"omitempty,gte=1,lte=255"`
4416 // Prefix prepended to group claims
4417 GroupsPrefix string `json:"groups-prefix,omitempty" validate:"omitempty,gte=1,lte=255"`
4418 // OpenID provider URL
4419 IssuerURL string `json:"issuer-url" validate:"required,gte=1,lte=255"`
4420 // A key value map that describes a required claim in the ID Token
4421 RequiredClaim map[string]string `json:"required-claim,omitempty"`
4422 // JWT claim to use as the user name
4423 UsernameClaim string `json:"username-claim,omitempty" validate:"omitempty,gte=1,lte=255"`
4424 // Prefix prepended to username claims
4425 UsernamePrefix string `json:"username-prefix,omitempty" validate:"omitempty,gte=1,lte=255"`
4426 }
4427 4428 // Exported snapshot information
4429 type SnapshotExport struct {
4430 // Exported snapshot disk file MD5 checksum
4431 Md5sum string `json:"md5sum,omitempty"`
4432 // Exported snapshot disk file pre-signed URL
4433 PresignedURL string `json:"presigned-url,omitempty"`
4434 }
4435 4436 type SnapshotState string
4437 4438 const (
4439 SnapshotStateSnapshotting SnapshotState = "snapshotting"
4440 SnapshotStateDeleted SnapshotState = "deleted"
4441 SnapshotStateExporting SnapshotState = "exporting"
4442 SnapshotStateReady SnapshotState = "ready"
4443 SnapshotStateDeleting SnapshotState = "deleting"
4444 SnapshotStateError SnapshotState = "error"
4445 SnapshotStateExported SnapshotState = "exported"
4446 )
4447 4448 // Snapshot
4449 type Snapshot struct {
4450 // Indicates whether the snapshot was taken using an application-consistent method
4451 ApplicationConsistent *bool `json:"application-consistent,omitempty"`
4452 // Snapshot creation date
4453 CreatedAT time.Time `json:"created-at,omitempty"`
4454 // Exported snapshot information
4455 Export *SnapshotExport `json:"export,omitempty"`
4456 // Snapshot ID
4457 ID UUID `json:"id,omitempty"`
4458 // Instance
4459 Instance *Instance `json:"instance,omitempty"`
4460 // Snapshot name
4461 Name string `json:"name,omitempty" validate:"omitempty,gte=1,lte=255"`
4462 // Snapshot size in GiB
4463 Size int64 `json:"size,omitempty" validate:"omitempty,gte=10,lte=51200"`
4464 // Snapshot state
4465 State SnapshotState `json:"state,omitempty"`
4466 }
4467 4468 // SOS Bucket usage
4469 type SOSBucketUsage struct {
4470 // SOS Bucket creation date
4471 CreatedAT time.Time `json:"created-at,omitempty"`
4472 // SOS Bucket name
4473 Name string `json:"name,omitempty"`
4474 // SOS Bucket size in B
4475 Size int64 `json:"size,omitempty" validate:"omitempty,gte=0"`
4476 ZoneName ZoneName `json:"zone-name,omitempty"`
4477 }
4478 4479 // SSH key
4480 type SSHKey struct {
4481 // SSH key fingerprint
4482 Fingerprint string `json:"fingerprint,omitempty"`
4483 // SSH key name
4484 Name string `json:"name,omitempty" validate:"omitempty,gte=1,lte=255"`
4485 }
4486 4487 type TemplateBootMode string
4488 4489 const (
4490 TemplateBootModeLegacy TemplateBootMode = "legacy"
4491 TemplateBootModeUefi TemplateBootMode = "uefi"
4492 )
4493 4494 type TemplateVisibility string
4495 4496 const (
4497 TemplateVisibilityPrivate TemplateVisibility = "private"
4498 TemplateVisibilityPublic TemplateVisibility = "public"
4499 )
4500 4501 // Instance template
4502 type Template struct {
4503 // Template with Qemu Guest Agent installed for application consistent snapshot
4504 ApplicationConsistentSnapshotEnabled *bool `json:"application-consistent-snapshot-enabled,omitempty"`
4505 // Boot mode (default: legacy)
4506 BootMode TemplateBootMode `json:"boot-mode,omitempty"`
4507 // Template build
4508 Build string `json:"build,omitempty"`
4509 // Template MD5 checksum
4510 Checksum string `json:"checksum,omitempty"`
4511 // Template creation date
4512 CreatedAT time.Time `json:"created-at,omitempty"`
4513 // Template default user
4514 DefaultUser string `json:"default-user,omitempty" validate:"omitempty,gte=1,lte=255"`
4515 // Template description
4516 Description string `json:"description,omitempty" validate:"omitempty,lte=255"`
4517 // Template family
4518 Family string `json:"family,omitempty"`
4519 // Template ID
4520 ID UUID `json:"id,omitempty"`
4521 // Template maintainer
4522 Maintainer string `json:"maintainer,omitempty"`
4523 // Template name
4524 Name string `json:"name,omitempty" validate:"omitempty,gte=1,lte=255"`
4525 // Enable password-based login
4526 PasswordEnabled *bool `json:"password-enabled,omitempty"`
4527 // Template size
4528 Size int64 `json:"size,omitempty" validate:"omitempty,gt=0"`
4529 // Enable SSH key-based login
4530 SSHKeyEnabled *bool `json:"ssh-key-enabled,omitempty"`
4531 // Template source URL
4532 URL string `json:"url,omitempty"`
4533 // Template version
4534 Version string `json:"version,omitempty"`
4535 // Template visibility
4536 Visibility TemplateVisibility `json:"visibility,omitempty"`
4537 // Zones availability
4538 Zones []ZoneName `json:"zones,omitempty"`
4539 }
4540 4541 // User
4542 type User struct {
4543 // User Email
4544 Email string `json:"email" validate:"required"`
4545 // User ID
4546 ID UUID `json:"id,omitempty"`
4547 // True if the user has not yet created an Exoscale account
4548 Pending *bool `json:"pending,omitempty"`
4549 // IAM Role
4550 Role *IAMRole `json:"role" validate:"required"`
4551 // SSO enabled
4552 Sso *bool `json:"sso,omitempty"`
4553 // Two Factor Authentication enabled
4554 TwoFactorAuthentication *bool `json:"two-factor-authentication,omitempty"`
4555 }
4556 4557 // Zone
4558 type Zone struct {
4559 // Zone API endpoint
4560 APIEndpoint Endpoint `json:"api-endpoint,omitempty"`
4561 Name ZoneName `json:"name,omitempty"`
4562 // Zone SOS endpoint
4563 SOSEndpoint Endpoint `json:"sos-endpoint,omitempty"`
4564 }
4565 4566 type ZoneName string
4567 4568 const (
4569 ZoneNameCHDk2 ZoneName = "ch-dk-2"
4570 ZoneNameDEMuc1 ZoneName = "de-muc-1"
4571 ZoneNameCHGva2 ZoneName = "ch-gva-2"
4572 ZoneNameATVie1 ZoneName = "at-vie-1"
4573 ZoneNameDEFra1 ZoneName = "de-fra-1"
4574 ZoneNameBGSof1 ZoneName = "bg-sof-1"
4575 ZoneNameATVie2 ZoneName = "at-vie-2"
4576 ZoneNameHrZag1 ZoneName = "hr-zag-1"
4577 )
4578