1package workflows
2
3import "time"
4
5#Workflow: {
6 @jsonschema(schema="https://json-schema.org/draft/2020-12/schema")
7 @jsonschema(id="https://raw.githubusercontent.com/argoproj/argo-workflows/HEAD/api/jsonschema/schema.json")
8 matchN(1, [
9 #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate" & {},
10 #."io.argoproj.workflow.v1alpha1.CronWorkflow" & {},
11 #."io.argoproj.workflow.v1alpha1.Workflow" & {},
12 #."io.argoproj.workflow.v1alpha1.WorkflowEventBinding" & {},
13 #."io.argoproj.workflow.v1alpha1.WorkflowTemplate" & {}
14 ])
15
16 #: "eventsource.CreateEventSourceRequest": {
17 "eventSource"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"
18 "namespace"?: string
19 }
20
21 #: "eventsource.EventSourceDeletedResponse": {}
22
23 #: "eventsource.EventSourceWatchEvent": {
24 "object"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"
25 "type"?: string
26 }
27
28 // structured log entry
29 #: "eventsource.LogEntry": {
30 // optional - the event name (e.g. `example`)
31 "eventName"?: string
32 "eventSourceName"?: string
33
34 // optional - the event source type (e.g. `webhook`)
35 "eventSourceType"?: string
36 "level"?: string
37 "msg"?: string
38 "namespace"?: string
39 "time"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
40 }
41
42 #: "eventsource.UpdateEventSourceRequest": {
43 "eventSource"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"
44 "name"?: string
45 "namespace"?: string
46 }
47
48 // AMQPConsumeConfig holds the configuration to immediately starts delivering queued messages
49 // +k8s:openapi-gen=true
50 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPConsumeConfig": {
51 // AutoAck when true, the server will acknowledge deliveries to this consumer prior to writing
52 // the delivery to the network
53 // +optional
54 "autoAck"?: bool
55
56 // ConsumerTag is the identity of the consumer included in every delivery
57 // +optional
58 "consumerTag"?: string
59
60 // Exclusive when true, the server will ensure that this is the sole consumer from this queue
61 // +optional
62 "exclusive"?: bool
63
64 // NoLocal flag is not supported by RabbitMQ
65 // +optional
66 "noLocal"?: bool
67
68 // NowWait when true, do not wait for the server to confirm the request and
69 // immediately begin deliveries
70 // +optional
71 "noWait"?: bool
72 }
73
74 // AMQPEventSource refers to an event-source for AMQP stream events
75 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPEventSource": {
76 // Auth hosts secret selectors for username and password
77 // +optional
78 "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
79
80 // Backoff holds parameters applied to connection.
81 // +optional
82 "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
83
84 // Consume holds the configuration to immediately starts delivering queued messages
85 // For more information, visit https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.Consume
86 // +optional
87 "consume"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPConsumeConfig"
88
89 // ExchangeDeclare holds the configuration for the exchange on the server
90 // For more information, visit
91 // https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.ExchangeDeclare
92 // +optional
93 "exchangeDeclare"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPExchangeDeclareConfig"
94
95 // ExchangeName is the exchange name
96 // For more information, visit https://www.rabbitmq.com/tutorials/amqp-concepts.html
97 "exchangeName"?: string
98
99 // ExchangeType is rabbitmq exchange type
100 "exchangeType"?: string
101
102 // Filter
103 // +optional
104 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
105
106 // JSONBody specifies that all event body payload coming from this
107 // source will be JSON
108 // +optional
109 "jsonBody"?: bool
110
111 // Metadata holds the user defined metadata which will passed along the event payload.
112 // +optional
113 "metadata"?: [string]: string
114
115 // QueueBind holds the configuration that binds an exchange to a queue so that publishings to the
116 // exchange will be routed to the queue when the publishing routing key matches
117 // the binding routing key
118 // For more information, visit https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.QueueBind
119 // +optional
120 "queueBind"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueBindConfig"
121
122 // QueueDeclare holds the configuration of a queue to hold messages and deliver to consumers.
123 // Declaring creates a queue if it doesn't already exist, or ensures that an existing queue matches
124 // the same parameters
125 // For more information, visit
126 // https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.QueueDeclare
127 // +optional
128 "queueDeclare"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueDeclareConfig"
129
130 // Routing key for bindings
131 "routingKey"?: string
132
133 // TLS configuration for the amqp client.
134 // +optional
135 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
136
137 // URL for rabbitmq service
138 "url"?: string
139
140 // URLSecret is secret reference for rabbitmq service URL
141 "urlSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
142 }
143
144 // AMQPExchangeDeclareConfig holds the configuration for the exchange on the server
145 // +k8s:openapi-gen=true
146 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPExchangeDeclareConfig": {
147 // AutoDelete removes the exchange when no bindings are active
148 // +optional
149 "autoDelete"?: bool
150
151 // Durable keeps the exchange also after the server restarts
152 // +optional
153 "durable"?: bool
154
155 // Internal when true does not accept publishings
156 // +optional
157 "internal"?: bool
158
159 // NowWait when true does not wait for a confirmation from the server
160 // +optional
161 "noWait"?: bool
162 }
163
164 // AMQPQueueBindConfig holds the configuration that binds an exchange to a queue
165 // so that publishings to the
166 // exchange will be routed to the queue when the publishing routing key matches
167 // the binding routing key
168 // +k8s:openapi-gen=true
169 #: {
170 "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueBindConfig": {
171 // NowWait false and the queue could not be bound, the channel will be closed with an error
172 // +optional
173 "noWait"?: bool
174 }
175 }
176
177 // AMQPQueueDeclareConfig holds the configuration of a queue to hold messages
178 // and deliver to consumers.
179 // Declaring creates a queue if it doesn't already exist, or ensures that an existing queue matches
180 // the same parameters
181 // +k8s:openapi-gen=true
182 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueDeclareConfig": {
183 // Arguments of a queue (also known as "x-arguments") used for optional features and plugins
184 // +optional
185 "arguments"?: string
186
187 // AutoDelete removes the queue when no consumers are active
188 // +optional
189 "autoDelete"?: bool
190
191 // Durable keeps the queue also after the server restarts
192 // +optional
193 "durable"?: bool
194
195 // Exclusive sets the queues to be accessible only by the connection that declares them and will be
196 // deleted wgen the connection closes
197 // +optional
198 "exclusive"?: bool
199
200 // Name of the queue. If empty the server auto-generates a unique name for this queue
201 // +optional
202 "name"?: string
203
204 // NowWait when true, the queue assumes to be declared on the server
205 // +optional
206 "noWait"?: bool
207 }
208
209 // AWSLambdaTrigger refers to specification of the trigger to invoke an AWS Lambda function
210 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AWSLambdaTrigger": {
211 // AccessKey refers K8s secret containing aws access key
212 // +optional
213 "accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
214
215 // FunctionName refers to the name of the function to invoke.
216 "functionName"?: string
217
218 // Choose from the following options.
219 //
220 // * RequestResponse (default) - Invoke the function synchronously. Keep
221 // the connection open until the function returns a response or times out.
222 // The API response includes the function response and additional data.
223 //
224 // * Event - Invoke the function asynchronously. Send events that fail multiple
225 // times to the function's dead-letter queue (if it's configured). The API
226 // response only includes a status code.
227 //
228 // * DryRun - Validate parameter values and verify that the user or role
229 // has permission to invoke the function.
230 // +optional
231 "invocationType"?: string
232
233 // Parameters is the list of key-value extracted from event's payload that are applied to
234 // the trigger resource.
235 // +optional
236 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
237
238 // Payload is the list of key-value extracted from an event payload to construct
239 // the request payload.
240 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
241
242 // Region is AWS region
243 "region"?: string
244
245 // RoleARN is the Amazon Resource Name (ARN) of the role to assume.
246 // +optional
247 "roleARN"?: string
248
249 // SecretKey refers K8s secret containing aws secret key
250 // +optional
251 "secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
252 }
253
254 // Amount represent a numeric amount.
255 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount": "value"?: string
256
257 // ArgoWorkflowTrigger is the trigger for the Argo Workflow
258 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArgoWorkflowTrigger": {
259 // Args is the list of arguments to pass to the argo CLI
260 "args"?: [...string]
261
262 // Operation refers to the type of operation performed on the argo workflow resource.
263 // Default value is Submit.
264 // +optional
265 "operation"?: string
266
267 // Parameters is the list of parameters to pass to resolved Argo Workflow object
268 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
269
270 // Source of the K8s resource file(s)
271 "source"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation"
272 }
273
274 // ArtifactLocation describes the source location for an external artifact
275 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation": {
276 // Configmap that stores the artifact
277 "configmap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
278
279 // File artifact is artifact stored in a file
280 "file"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileArtifact"
281
282 // Git repository hosting the artifact
283 "git"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitArtifact"
284
285 // Inline artifact is embedded in sensor spec as a string
286 "inline"?: string
287
288 // Resource is generic template for K8s resource
289 "resource"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResource"
290
291 // S3 compliant artifact
292 "s3"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact"
293
294 // URL to fetch the artifact from
295 "url"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.URLArtifact"
296 }
297
298 // AzureEventHubsTrigger refers to specification of the Azure Event Hubs Trigger
299 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventHubsTrigger": {
300 // FQDN refers to the namespace dns of Azure Event Hubs to be used i.e.
301 // <namespace>.servicebus.windows.net
302 "fqdn"?: string
303
304 // HubName refers to the Azure Event Hub to send events to
305 "hubName"?: string
306
307 // Parameters is the list of key-value extracted from event's payload that are applied to
308 // the trigger resource.
309 // +optional
310 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
311
312 // Payload is the list of key-value extracted from an event payload to construct
313 // the request payload.
314 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
315
316 // SharedAccessKey refers to a K8s secret containing the primary key for the
317 "sharedAccessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
318
319 // SharedAccessKeyName refers to the name of the Shared Access Key
320 "sharedAccessKeyName"?: #."io.k8s.api.core.v1.SecretKeySelector"
321 }
322
323 // AzureEventsHubEventSource describes the event source for azure events hub
324 // More info at https://docs.microsoft.com/en-us/azure/event-hubs/
325 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventsHubEventSource": {
326 // Filter
327 // +optional
328 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
329
330 // FQDN of the EventHubs namespace you created
331 // More info at https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-get-connection-string
332 "fqdn"?: string
333
334 // Event Hub path/name
335 "hubName"?: string
336
337 // Metadata holds the user defined metadata which will passed along the event payload.
338 // +optional
339 "metadata"?: [string]: string
340
341 // SharedAccessKey is the generated value of the key. If both this field and
342 // SharedAccessKeyName are not provided
343 // it will try to access via Azure AD with DefaultAzureCredential, FQDN and HubName.
344 // +optional
345 "sharedAccessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
346
347 // SharedAccessKeyName is the name you chose for your application's SAS keys. If
348 // both this field and SharedAccessKey are not provided
349 // it will try to access via Azure AD with DefaultAzureCredential, FQDN and HubName.
350 // +optional
351 "sharedAccessKeyName"?: #."io.k8s.api.core.v1.SecretKeySelector"
352 }
353
354 // AzureQueueStorageEventSource describes the event source for azure queue storage
355 // more info at https://learn.microsoft.com/en-us/azure/storage/queues/
356 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureQueueStorageEventSource": {
357 // ConnectionString is the connection string to access Azure Queue Storage. If
358 // this fields is not provided
359 // it will try to access via Azure AD with StorageAccountName.
360 // +optional
361 "connectionString"?: #."io.k8s.api.core.v1.SecretKeySelector"
362
363 // DecodeMessage specifies if all the messages should be base64 decoded.
364 // If set to true the decoding is done before the evaluation of JSONBody
365 // +optional
366 "decodeMessage"?: bool
367
368 // DLQ specifies if a dead-letter queue is configured for messages that can't be
369 // processed successfully.
370 // If set to true, messages with invalid payload won't be acknowledged to allow
371 // to forward them farther to the dead-letter queue.
372 // The default value is false.
373 // +optional
374 "dlq"?: bool
375
376 // Filter
377 // +optional
378 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
379
380 // JSONBody specifies that all event body payload coming from this
381 // source will be JSON
382 // +optional
383 "jsonBody"?: bool
384
385 // Metadata holds the user defined metadata which will passed along the event payload.
386 // +optional
387 "metadata"?: [string]: string
388
389 // QueueName is the name of the queue
390 "queueName"?: string
391
392 // StorageAccountName is the name of the storage account where the queue is.
393 // This field is necessary to
394 // access via Azure AD (managed identity) and it is ignored if ConnectionString is set.
395 // +optional
396 "storageAccountName"?: string
397
398 // WaitTimeInSeconds is the duration (in seconds) for which the event source
399 // waits between empty results from the queue.
400 // The default value is 3 seconds.
401 // +optional
402 "waitTimeInSeconds"?: int
403 }
404
405 // AzureServiceBusEventSource describes the event source for azure service bus
406 // More info at https://docs.microsoft.com/en-us/azure/service-bus-messaging/
407 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusEventSource": {
408 // ConnectionString is the connection string for the Azure Service Bus. If this
409 // fields is not provided
410 // it will try to access via Azure AD with DefaultAzureCredential and FullyQualifiedNamespace.
411 // +optional
412 "connectionString"?: #."io.k8s.api.core.v1.SecretKeySelector"
413
414 // Filter
415 // +optional
416 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
417
418 // FullyQualifiedNamespace is the Service Bus namespace name (ex:
419 // myservicebus.servicebus.windows.net). This field is necessary to
420 // access via Azure AD (managed identity) and it is ignored if ConnectionString is set.
421 // +optional
422 "fullyQualifiedNamespace"?: string
423
424 // JSONBody specifies that all event body payload coming from this
425 // source will be JSON
426 // +optional
427 "jsonBody"?: bool
428
429 // Metadata holds the user defined metadata which will passed along the event payload.
430 // +optional
431 "metadata"?: [string]: string
432
433 // QueueName is the name of the Azure Service Bus Queue
434 "queueName"?: string
435
436 // SubscriptionName is the name of the Azure Service Bus Topic Subscription
437 "subscriptionName"?: string
438
439 // TLS configuration for the service bus client
440 // +optional
441 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
442
443 // TopicName is the name of the Azure Service Bus Topic
444 "topicName"?: string
445 }
446
447 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusTrigger": {
448 // ConnectionString is the connection string for the Azure Service Bus
449 "connectionString"?: #."io.k8s.api.core.v1.SecretKeySelector"
450
451 // Parameters is the list of key-value extracted from event's payload that are applied to
452 // the trigger resource.
453 // +optional
454 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
455
456 // Payload is the list of key-value extracted from an event payload to construct
457 // the request payload.
458 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
459
460 // QueueName is the name of the Azure Service Bus Queue
461 "queueName"?: string
462
463 // SubscriptionName is the name of the Azure Service Bus Topic Subscription
464 "subscriptionName"?: string
465
466 // TLS configuration for the service bus client
467 // +optional
468 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
469
470 // TopicName is the name of the Azure Service Bus Topic
471 "topicName"?: string
472 }
473
474 // Backoff for an operation
475 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff": {
476 // The initial duration in nanoseconds or strings like "1s", "3m"
477 // +optional
478 "duration"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Int64OrString"
479
480 // Duration is multiplied by factor each iteration
481 // +optional
482 "factor"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount"
483
484 // The amount of jitter applied each iteration
485 // +optional
486 "jitter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount"
487
488 // Exit with error after this many steps
489 // +optional
490 "steps"?: int
491 }
492
493 // BasicAuth contains the reference to K8s secrets that holds the username and password
494 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth": {
495 // Password refers to the Kubernetes secret that holds the password required for basic auth.
496 "password"?: #."io.k8s.api.core.v1.SecretKeySelector"
497
498 // Username refers to the Kubernetes secret that holds the username required for basic auth.
499 "username"?: #."io.k8s.api.core.v1.SecretKeySelector"
500 }
501
502 // BitbucketAuth holds the different auth strategies for connecting to Bitbucket
503 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketAuth": {
504 // Basic is BasicAuth auth strategy.
505 // +optional
506 "basic"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketBasicAuth"
507
508 // OAuthToken refers to the K8s secret that holds the OAuth Bearer token.
509 // +optional
510 "oauthToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
511 }
512
513 // BitbucketBasicAuth holds the information required to authenticate user via basic auth mechanism
514 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketBasicAuth": {
515 // Password refers to the K8s secret that holds the password.
516 "password"?: #."io.k8s.api.core.v1.SecretKeySelector"
517
518 // Username refers to the K8s secret that holds the username.
519 "username"?: #."io.k8s.api.core.v1.SecretKeySelector"
520 }
521
522 // BitbucketEventSource describes the event source for Bitbucket
523 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketEventSource": {
524 // Auth information required to connect to Bitbucket.
525 "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketAuth"
526
527 // DeleteHookOnFinish determines whether to delete the defined Bitbucket hook
528 // once the event source is stopped.
529 // +optional
530 "deleteHookOnFinish"?: bool
531
532 // Events this webhook is subscribed to.
533 "events"?: [...string]
534
535 // Filter
536 // +optional
537 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
538
539 // Metadata holds the user defined metadata which will be passed along the event payload.
540 // +optional
541 "metadata"?: [string]: string
542
543 // DeprecatedOwner is the owner of the repository.
544 // Deprecated: use Repositories instead. Will be unsupported in v1.9
545 // +optional
546 "owner"?: string
547
548 // DeprecatedProjectKey is the key of the project to which the repository relates
549 // Deprecated: use Repositories instead. Will be unsupported in v1.9
550 // +optional
551 "projectKey"?: string
552
553 // Repositories holds a list of repositories for which integration needs to set up
554 // +optional
555 "repositories"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketRepository"]
556
557 // DeprecatedRepositorySlug is a URL-friendly version of a repository name,
558 // automatically generated by Bitbucket for use in the URL
559 // Deprecated: use Repositories instead. Will be unsupported in v1.9
560 // +optional
561 "repositorySlug"?: string
562
563 // Webhook refers to the configuration required to run an http server
564 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
565 }
566
567 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketRepository": {
568 // Owner is the owner of the repository
569 "owner"?: string
570
571 // RepositorySlug is a URL-friendly version of a repository name, automatically
572 // generated by Bitbucket for use in the URL
573 "repositorySlug"?: string
574 }
575
576 // BitbucketServerEventSource refers to event-source related to Bitbucket Server events
577 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerEventSource": {
578 // AccessToken is reference to K8s secret which holds the bitbucket api access information.
579 // +optional
580 "accessToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
581
582 // BitbucketServerBaseURL is the base URL for API requests to a custom endpoint.
583 "bitbucketserverBaseURL"?: string
584
585 // CheckInterval is a duration in which to wait before checking that the
586 // webhooks exist, e.g. 1s, 30m, 2h... (defaults to 1m)
587 // +optional
588 "checkInterval"?: string
589
590 // DeleteHookOnFinish determines whether to delete the Bitbucket Server hook for
591 // the project once the event source is stopped.
592 // +optional
593 "deleteHookOnFinish"?: bool
594
595 // Events are bitbucket event to listen to.
596 // Refer https://confluence.atlassian.com/bitbucketserver/event-payload-938025882.html
597 // +optional
598 "events"?: [...string]
599
600 // Filter
601 // +optional
602 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
603
604 // Metadata holds the user defined metadata which will passed along the event payload.
605 // +optional
606 "metadata"?: [string]: string
607
608 // OneEventPerChange controls whether to process each change in a
609 // repo:refs_changed webhook event as a separate io.argoproj.workflow.v1alpha1.
610 // This setting is useful when multiple tags are
611 // pushed simultaneously for the same commit, and each tag needs to
612 // independently trigger an action, such as a distinct workflow in Argo
613 // Workflows. When enabled, the
614 // BitbucketServerEventSource publishes an individual BitbucketServerEventData
615 // for each change, ensuring independent processing of each tag or reference
616 // update in a
617 // single webhook event.
618 // +optional
619 "oneEventPerChange"?: bool
620
621 // DeprecatedProjectKey is the key of project for which integration needs to set up.
622 // Deprecated: use Repositories instead. Will be unsupported in v1.8.
623 // +optional
624 "projectKey"?: string
625
626 // Projects holds a list of projects for which integration needs to set up, this
627 // will add the webhook to all repositories in the project.
628 // +optional
629 "projects"?: [...string]
630
631 // Repositories holds a list of repositories for which integration needs to set up.
632 // +optional
633 "repositories"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerRepository"]
634
635 // DeprecatedRepositorySlug is the slug of the repository for which integration needs to set up.
636 // Deprecated: use Repositories instead. Will be unsupported in v1.8.
637 // +optional
638 "repositorySlug"?: string
639
640 // SkipBranchRefsChangedOnOpenPR bypasses the event repo:refs_changed for
641 // branches whenever there's an associated open pull request.
642 // This helps in optimizing the event handling process by avoiding unnecessary
643 // triggers for branch reference changes that are already part of a pull
644 // request under review.
645 // +optional
646 "skipBranchRefsChangedOnOpenPR"?: bool
647
648 // TLS configuration for the bitbucketserver client.
649 // +optional
650 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
651
652 // Webhook holds configuration to run a http server.
653 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
654
655 // WebhookSecret is reference to K8s secret which holds the bitbucket webhook
656 // secret (for HMAC validation).
657 // +optional
658 "webhookSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
659 }
660
661 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerRepository": {
662 // ProjectKey is the key of project for which integration needs to set up.
663 "projectKey"?: string
664
665 // RepositorySlug is the slug of the repository for which integration needs to set up.
666 "repositorySlug"?: string
667 }
668
669 // CalendarEventSource describes a time based dependency. One of the fields
670 // (schedule, interval, or recurrence) must be passed.
671 // Schedule takes precedence over interval; interval takes precedence over recurrence
672 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CalendarEventSource": {
673 // ExclusionDates defines the list of DATE-TIME exceptions for recurring events.
674 "exclusionDates"?: [...string]
675
676 // Filter
677 // +optional
678 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
679
680 // Interval is a string that describes an interval duration, e.g. 1s, 30m, 2h...
681 // +optional
682 "interval"?: string
683
684 // Metadata holds the user defined metadata which will passed along the event payload.
685 // +optional
686 "metadata"?: [string]: string
687
688 // Persistence hold the configuration for event persistence
689 "persistence"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventPersistence"
690
691 // Schedule is a cron-like expression. For reference, see: https://en.wikipedia.org/wiki/Cron
692 // +optional
693 "schedule"?: string
694
695 // Timezone in which to run the schedule
696 // +optional
697 "timezone"?: string
698 }
699
700 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CatchupConfiguration": {
701 // Enabled enables to triggered the missed schedule when eventsource restarts
702 "enabled"?: bool
703
704 // MaxDuration holds max catchup duration
705 "maxDuration"?: string
706 }
707
708 // Condition contains details about resource state
709 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Condition": {
710 // Last time the condition transitioned from one status to another.
711 // +optional
712 "lastTransitionTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
713
714 // Human-readable message indicating details about last transition.
715 // +optional
716 "message"?: string
717
718 // Unique, this should be a short, machine understandable string that gives the reason
719 // for condition's last transition. For example, "ImageNotFound"
720 // +optional
721 "reason"?: string
722
723 // Condition status, True, False or Unknown.
724 // +required
725 "status"?: string
726
727 // Condition type.
728 // +required
729 "type"?: string
730 }
731
732 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetByTime": {
733 // Cron is a cron-like expression. For reference, see: https://en.wikipedia.org/wiki/Cron
734 "cron"?: string
735
736 // +optional
737 "timezone"?: string
738 }
739
740 #: {
741 "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetCriteria": {
742 // Schedule is a cron-like expression. For reference, see: https://en.wikipedia.org/wiki/Cron
743 "byTime"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetByTime"
744 }
745 }
746
747 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConfigMapPersistence": {
748 // CreateIfNotExist will create configmap if it doesn't exists
749 "createIfNotExist"?: bool
750
751 // Name of the configmap
752 "name"?: string
753 }
754
755 // Container defines customized spec for a container
756 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Container": {
757 // +optional
758 "env"?: [...#."io.k8s.api.core.v1.EnvVar"]
759
760 // +optional
761 "envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
762
763 // +optional
764 "imagePullPolicy"?: string
765
766 // +optional
767 "resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
768
769 // +optional
770 "securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
771
772 // +optional
773 "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
774 }
775
776 // CustomTrigger refers to the specification of the custom trigger.
777 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CustomTrigger": {
778 // CertSecret refers to the secret that contains cert for secure connection
779 // between sensor and custom trigger gRPC server.
780 "certSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
781
782 // Parameters is the list of parameters that is applied to resolved custom trigger trigger object.
783 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
784
785 // Payload is the list of key-value extracted from an event payload to construct
786 // the request payload.
787 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
788
789 // Secure refers to type of the connection between sensor to custom trigger gRPC
790 "secure"?: bool
791
792 // ServerNameOverride for the secure connection between sensor and custom trigger gRPC server.
793 "serverNameOverride"?: string
794
795 // ServerURL is the url of the gRPC server that executes custom trigger
796 "serverURL"?: string
797
798 // Spec is the custom trigger resource specification that custom trigger gRPC
799 // server knows how to interpret.
800 "spec"?: [string]: string
801 }
802
803 // DataFilter describes constraints and filters for event data
804 // Regular Expressions are purposefully not a feature as they are overkill for our uses here
805 // See Rob Pike's Post:
806 // https://commandcenter.blogspot.com/2011/08/regular-expressions-in-lexing-and.html
807 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.DataFilter": {
808 // Comparator compares the event data with a user given value.
809 // Can be ">=", ">", "=", "!=", "<", or "<=".
810 // Is optional, and if left blank treated as equality "=".
811 "comparator"?: string
812
813 // Path is the JSONPath of the event's (JSON decoded) data key
814 // Path is a series of keys separated by a dot. A key may contain wildcard characters '*' and '?'.
815 // To access an array value use the index as the key. The dot and wildcard
816 // characters can be escaped with '\\'.
817 // See https://github.com/tidwall/gjson#path-syntax for more information on how to use this.
818 "path"?: string
819
820 // Template is a go-template for extracting a string from the event's data.
821 // A Template is evaluated with provided path, type and value.
822 // The templating follows the standard go-template syntax as well as sprig's extra functions.
823 // See https://pkg.go.dev/text/template and https://masterminds.github.io/sprig/
824 "template"?: string
825
826 // Type contains the JSON type of the data
827 "type"?: string
828
829 // Value is the allowed string values for this key
830 // Booleans are passed using strconv.ParseBool()
831 // Numbers are parsed using as float64 using strconv.ParseFloat()
832 // Strings are taken as is
833 // Nils this value is ignored
834 "value"?: [...string]
835 }
836
837 // EmailTrigger refers to the specification of the email notification trigger.
838 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmailTrigger": {
839 // Body refers to the body/content of the email send.
840 // +optional
841 "body"?: string
842
843 // From refers to the address from which the email is send from.
844 // +optional
845 "from"?: string
846
847 // Host refers to the smtp host url to which email is send.
848 "host"?: string
849
850 // Parameters is the list of key-value extracted from event's payload that are applied to
851 // the trigger resource.
852 // +optional
853 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
854
855 // Port refers to the smtp server port to which email is send.
856 // Defaults to 0.
857 // +optional
858 "port"?: int
859
860 // SMTPPassword refers to the Kubernetes secret that holds the smtp password
861 // used to connect to smtp server.
862 // +optional
863 "smtpPassword"?: #."io.k8s.api.core.v1.SecretKeySelector"
864
865 // Subject refers to the subject line for the email send.
866 // +optional
867 "subject"?: string
868
869 // To refers to the email addresses to which the emails are send.
870 // +optional
871 "to"?: [...string]
872
873 // Username refers to the username used to connect to the smtp server.
874 // +optional
875 "username"?: string
876 }
877
878 // EmitterEventSource describes the event source for emitter
879 // More info at https://emitter.io/develop/getting-started/
880 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmitterEventSource": {
881 // Broker URI to connect to.
882 "broker"?: string
883
884 // ChannelKey refers to the channel key
885 "channelKey"?: string
886
887 // ChannelName refers to the channel name
888 "channelName"?: string
889
890 // Backoff holds parameters applied to connection.
891 // +optional
892 "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
893
894 // Filter
895 // +optional
896 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
897
898 // JSONBody specifies that all event body payload coming from this
899 // source will be JSON
900 // +optional
901 "jsonBody"?: bool
902
903 // Metadata holds the user defined metadata which will passed along the event payload.
904 // +optional
905 "metadata"?: [string]: string
906
907 // Password to use to connect to broker
908 // +optional
909 "password"?: #."io.k8s.api.core.v1.SecretKeySelector"
910
911 // TLS configuration for the emitter client.
912 // +optional
913 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
914
915 // Username to use to connect to broker
916 // +optional
917 "username"?: #."io.k8s.api.core.v1.SecretKeySelector"
918 }
919
920 // EventContext holds the context of the cloudevent received from an event source.
921 // +protobuf.options.(gogoproto.goproto_stringer)=false
922 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventContext": {
923 // DataContentType - A MIME (RFC2046) string describing the media type of `data`.
924 "datacontenttype"?: string
925
926 // ID of the event; must be non-empty and unique within the scope of the producer.
927 "id"?: string
928
929 // Source - A URI describing the event producer.
930 "source"?: string
931
932 // SpecVersion - The version of the CloudEvents specification used by the
933 // io.argoproj.workflow.v1alpha1.
934 "specversion"?: string
935
936 // Subject - The subject of the event in the context of the event producer
937 "subject"?: string
938
939 // Time - A Timestamp when the event happened.
940 "time"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
941
942 // Type - The type of the occurrence which has happened.
943 "type"?: string
944 }
945
946 // EventDependency describes a dependency
947 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependency": {
948 // EventName is the name of the event
949 "eventName"?: string
950
951 // EventSourceName is the name of EventSource that Sensor depends on
952 "eventSourceName"?: string
953
954 // Filters and rules governing toleration of success and constraints on the
955 // context and data of an event
956 "filters"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyFilter"
957
958 // FiltersLogicalOperator defines how different filters are evaluated together.
959 // Available values: and (&&), or (||)
960 // Is optional and if left blank treated as and (&&).
961 "filtersLogicalOperator"?: string
962
963 // Name is a unique name of this dependency
964 "name"?: string
965
966 // Transform transforms the event data
967 "transform"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyTransformer"
968 }
969
970 // EventDependencyFilter defines filters and constraints for a io.argoproj.workflow.v1alpha1.
971 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyFilter": {
972 // Context filter constraints
973 "context"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventContext"
974
975 // Data filter constraints with escalation
976 "data"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.DataFilter"]
977
978 // DataLogicalOperator defines how multiple Data filters (if defined) are evaluated together.
979 // Available values: and (&&), or (||)
980 // Is optional and if left blank treated as and (&&).
981 "dataLogicalOperator"?: string
982
983 // ExprLogicalOperator defines how multiple Exprs filters (if defined) are evaluated together.
984 // Available values: and (&&), or (||)
985 // Is optional and if left blank treated as and (&&).
986 "exprLogicalOperator"?: string
987
988 // Exprs contains the list of expressions evaluated against the event payload.
989 "exprs"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ExprFilter"]
990
991 // Script refers to a Lua script evaluated to determine the validity of an
992 // io.argoproj.workflow.v1alpha1.
993 "script"?: string
994
995 // Time filter on the event with escalation
996 "time"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TimeFilter"
997 }
998
999 // EventDependencyTransformer transforms the event
1000 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyTransformer": {
1001 // JQ holds the jq command applied for transformation
1002 // +optional
1003 "jq"?: string
1004
1005 // Script refers to a Lua script used to transform the event
1006 // +optional
1007 "script"?: string
1008 }
1009
1010 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventPersistence": {
1011 // Catchup enables to triggered the missed schedule when eventsource restarts
1012 "catchup"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CatchupConfiguration"
1013
1014 // ConfigMap holds configmap details for persistence
1015 "configMap"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConfigMapPersistence"
1016 }
1017
1018 // EventSource is the definition of a eventsource resource
1019 // +genclient
1020 // +kubebuilder:resource:shortName=es
1021 // +kubebuilder:subresource:status
1022 // +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
1023 // +k8s:openapi-gen=true
1024 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource": {
1025 "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
1026 "spec"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceSpec"
1027
1028 // +optional
1029 "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceStatus"
1030 }
1031
1032 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter": "expression"?: string
1033
1034 // EventSourceList is the list of eventsource resources
1035 // +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
1036 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceList": {
1037 "items"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"]
1038 "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
1039 }
1040
1041 // EventSourceSpec refers to specification of event-source resource
1042 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceSpec": {
1043 // AMQP event sources
1044 "amqp"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPEventSource"
1045
1046 // AzureEventsHub event sources
1047 "azureEventsHub"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventsHubEventSource"
1048
1049 // AzureQueueStorage event source
1050 "azureQueueStorage"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureQueueStorageEventSource"
1051
1052 // Azure Service Bus event source
1053 "azureServiceBus"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusEventSource"
1054
1055 // Bitbucket event sources
1056 "bitbucket"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketEventSource"
1057
1058 // Bitbucket Server event sources
1059 "bitbucketserver"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerEventSource"
1060
1061 // Calendar event sources
1062 "calendar"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CalendarEventSource"
1063
1064 // Emitter event source
1065 "emitter"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmitterEventSource"
1066
1067 // EventBusName references to a EventBus name. By default the value is "default"
1068 "eventBusName"?: string
1069
1070 // File event sources
1071 "file"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileEventSource"
1072
1073 // Generic event source
1074 "generic"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GenericEventSource"
1075
1076 // Gerrit event source
1077 "gerrit"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GerritEventSource"
1078
1079 // Github event sources
1080 "github"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubEventSource"
1081
1082 // Gitlab event sources
1083 "gitlab"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitlabEventSource"
1084
1085 // HDFS event sources
1086 "hdfs"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HDFSEventSource"
1087
1088 // Kafka event sources
1089 "kafka"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaEventSource"
1090
1091 // Minio event sources
1092 "minio"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact"
1093
1094 // MQTT event sources
1095 "mqtt"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.MQTTEventSource"
1096
1097 // NATS event sources
1098 "nats"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSEventsSource"
1099
1100 // NSQ event source
1101 "nsq"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NSQEventSource"
1102
1103 // PubSub event sources
1104 "pubSub"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PubSubEventSource"
1105
1106 // Pulsar event source
1107 "pulsar"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarEventSource"
1108
1109 // Redis event source
1110 "redis"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisEventSource"
1111
1112 // Redis stream source
1113 "redisStream"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisStreamEventSource"
1114
1115 // Replicas is the event source deployment replicas
1116 "replicas"?: int
1117
1118 // Resource event sources
1119 "resource"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceEventSource"
1120
1121 // Service is the specifications of the service to expose the event source
1122 // +optional
1123 "service"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Service"
1124
1125 // SFTP event sources
1126 "sftp"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SFTPEventSource"
1127
1128 // Slack event sources
1129 "slack"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackEventSource"
1130
1131 // SNS event sources
1132 "sns"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SNSEventSource"
1133
1134 // SQS event sources
1135 "sqs"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SQSEventSource"
1136
1137 // StorageGrid event sources
1138 "storageGrid"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridEventSource"
1139
1140 // Stripe event sources
1141 "stripe"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StripeEventSource"
1142
1143 // Template is the pod specification for the event source
1144 // +optional
1145 "template"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template"
1146
1147 // Webhook event sources
1148 "webhook"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookEventSource"
1149 }
1150
1151 // EventSourceStatus holds the status of the event-source resource
1152 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceStatus": "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status"
1153
1154 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ExprFilter": {
1155 // Expr refers to the expression that determines the outcome of the filter.
1156 "expr"?: string
1157
1158 // Fields refers to set of keys that refer to the paths within event payload.
1159 "fields"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PayloadField"]
1160 }
1161
1162 // FileArtifact contains information about an artifact in a filesystem
1163 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileArtifact": "path"?: string
1164
1165 // FileEventSource describes an event-source for file related events.
1166 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileEventSource": {
1167 // Type of file operations to watch
1168 // Refer https://github.com/fsnotify/fsnotify/blob/master/fsnotify.go for more information
1169 "eventType"?: string
1170
1171 // Filter
1172 // +optional
1173 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1174
1175 // Metadata holds the user defined metadata which will passed along the event payload.
1176 // +optional
1177 "metadata"?: [string]: string
1178
1179 // Use polling instead of inotify
1180 "polling"?: bool
1181
1182 // WatchPathConfig contains configuration about the file path to watch
1183 "watchPathConfig"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig"
1184 }
1185
1186 // GenericEventSource refers to a generic event source. It can be used to
1187 // implement a custom event source.
1188 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GenericEventSource": {
1189 // AuthSecret holds a secret selector that contains a bearer token for authentication
1190 // +optional
1191 "authSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1192
1193 // Config is the event source configuration
1194 "config"?: string
1195
1196 // Filter
1197 // +optional
1198 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1199
1200 // Insecure determines the type of connection.
1201 "insecure"?: bool
1202
1203 // JSONBody specifies that all event body payload coming from this
1204 // source will be JSON
1205 // +optional
1206 "jsonBody"?: bool
1207
1208 // Metadata holds the user defined metadata which will passed along the event payload.
1209 // +optional
1210 "metadata"?: [string]: string
1211
1212 // URL of the gRPC server that implements the event source.
1213 "url"?: string
1214 }
1215
1216 // GerritEventSource refers to event-source related to gerrit events
1217 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GerritEventSource": {
1218 // Auth hosts secret selectors for username and password
1219 // +optional
1220 "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
1221
1222 // DeleteHookOnFinish determines whether to delete the Gerrit hook for the
1223 // project once the event source is stopped.
1224 // +optional
1225 "deleteHookOnFinish"?: bool
1226
1227 // Events are gerrit event to listen to.
1228 // Refer https://gerrit-review.googlesource.com/Documentation/cmd-stream-events.html#events
1229 "events"?: [...string]
1230
1231 // Filter
1232 // +optional
1233 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1234
1235 // GerritBaseURL is the base URL for API requests to a custom endpoint
1236 "gerritBaseURL"?: string
1237
1238 // HookName is the name of the webhook
1239 "hookName"?: string
1240
1241 // Metadata holds the user defined metadata which will passed along the event payload.
1242 // +optional
1243 "metadata"?: [string]: string
1244
1245 // List of project namespace paths like "whynowy/test".
1246 "projects"?: [...string]
1247
1248 // SslVerify to enable ssl verification
1249 // +optional
1250 "sslVerify"?: bool
1251
1252 // Webhook holds configuration to run a http server
1253 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
1254 }
1255
1256 // GitArtifact contains information about an artifact stored in git
1257 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitArtifact": {
1258 // Branch to use to pull trigger resource
1259 // +optional
1260 "branch"?: string
1261
1262 // Directory to clone the repository. We clone complete directory because
1263 // GitArtifact is not limited to any specific Git service providers.
1264 // Hence we don't use any specific git provider client.
1265 "cloneDirectory"?: string
1266
1267 // Creds contain reference to git username and password
1268 // +optional
1269 "creds"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitCreds"
1270
1271 // Path to file that contains trigger resource definition
1272 "filePath"?: string
1273
1274 // Whether to ignore host key
1275 // +optional
1276 "insecureIgnoreHostKey"?: bool
1277
1278 // Ref to use to pull trigger resource. Will result in a shallow clone and
1279 // fetch.
1280 // +optional
1281 "ref"?: string
1282
1283 // Remote to manage set of tracked repositories. Defaults to "origin".
1284 // Refer https://git-scm.com/docs/git-remote
1285 // +optional
1286 "remote"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitRemoteConfig"
1287
1288 // SSHKeySecret refers to the secret that contains SSH key
1289 "sshKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1290
1291 // Tag to use to pull trigger resource
1292 // +optional
1293 "tag"?: string
1294
1295 // Git URL
1296 "url"?: string
1297 }
1298
1299 // GitCreds contain reference to git username and password
1300 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitCreds": {
1301 "password"?: #."io.k8s.api.core.v1.SecretKeySelector"
1302 "username"?: #."io.k8s.api.core.v1.SecretKeySelector"
1303 }
1304
1305 // GitRemoteConfig contains the configuration of a Git remote
1306 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitRemoteConfig": {
1307 // Name of the remote to fetch from.
1308 "name"?: string
1309
1310 // URLs the URLs of a remote repository. It must be non-empty. Fetch will
1311 // always use the first URL, while push will use all of them.
1312 "urls"?: [...string]
1313 }
1314
1315 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubAppCreds": {
1316 // AppID refers to the GitHub App ID for the application you created
1317 "appID"?: string
1318
1319 // InstallationID refers to the Installation ID of the GitHub app you created and installed
1320 "installationID"?: string
1321
1322 // PrivateKey refers to a K8s secret containing the GitHub app private key
1323 "privateKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
1324 }
1325
1326 // GithubEventSource refers to event-source for github related events
1327 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubEventSource": {
1328 // Active refers to status of the webhook for event deliveries.
1329 // https://developer.github.com/webhooks/creating/#active
1330 // +optional
1331 "active"?: bool
1332
1333 // APIToken refers to a K8s secret containing github api token
1334 // +optional
1335 "apiToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
1336
1337 // ContentType of the event delivery
1338 "contentType"?: string
1339
1340 // DeleteHookOnFinish determines whether to delete the GitHub hook for the
1341 // repository once the event source is stopped.
1342 // +optional
1343 "deleteHookOnFinish"?: bool
1344
1345 // Events refer to Github events to which the event source will subscribe
1346 "events"?: [...string]
1347
1348 // Filter
1349 // +optional
1350 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1351
1352 // GitHubApp holds the GitHub app credentials
1353 // +optional
1354 "githubApp"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubAppCreds"
1355
1356 // GitHub base URL (for GitHub Enterprise)
1357 // +optional
1358 "githubBaseURL"?: string
1359
1360 // GitHub upload URL (for GitHub Enterprise)
1361 // +optional
1362 "githubUploadURL"?: string
1363
1364 // Id is the webhook's id
1365 // Deprecated: This is not used at all, will be removed in v1.6
1366 // +optional
1367 "id"?: string
1368
1369 // Insecure tls verification
1370 "insecure"?: bool
1371
1372 // Metadata holds the user defined metadata which will passed along the event payload.
1373 // +optional
1374 "metadata"?: [string]: string
1375
1376 // Organizations holds the names of organizations (used for organization level
1377 // webhooks). Not required if Repositories is set.
1378 "organizations"?: [...string]
1379
1380 // DeprecatedOwner refers to GitHub owner name i.e. argoproj
1381 // Deprecated: use Repositories instead. Will be unsupported in v 1.6
1382 // +optional
1383 "owner"?: string
1384
1385 // Repositories holds the information of repositories, which uses repo owner as the key,
1386 // and list of repo names as the value. Not required if Organizations is set.
1387 "repositories"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OwnedRepositories"]
1388
1389 // DeprecatedRepository refers to GitHub repo name i.e. argo-events
1390 // Deprecated: use Repositories instead. Will be unsupported in v 1.6
1391 // +optional
1392 "repository"?: string
1393
1394 // Webhook refers to the configuration required to run a http server
1395 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
1396
1397 // WebhookSecret refers to K8s secret containing GitHub webhook secret
1398 // https://developer.github.com/webhooks/securing/
1399 // +optional
1400 "webhookSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1401 }
1402
1403 // GitlabEventSource refers to event-source related to Gitlab events
1404 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitlabEventSource": {
1405 // AccessToken references to k8 secret which holds the gitlab api access information
1406 "accessToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
1407
1408 // DeleteHookOnFinish determines whether to delete the GitLab hook for the
1409 // project once the event source is stopped.
1410 // +optional
1411 "deleteHookOnFinish"?: bool
1412
1413 // EnableSSLVerification to enable ssl verification
1414 // +optional
1415 "enableSSLVerification"?: bool
1416
1417 // Events are gitlab event to listen to.
1418 // Refer
1419 // https://github.com/xanzy/go-gitlab/blob/bf34eca5d13a9f4c3f501d8a97b8ac226d55e4d9/projects.go#L794.
1420 "events"?: [...string]
1421
1422 // Filter
1423 // +optional
1424 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1425
1426 // GitlabBaseURL is the base URL for API requests to a custom endpoint
1427 "gitlabBaseURL"?: string
1428
1429 // List of group IDs or group name like "test".
1430 // Group level hook available in Premium and Ultimate Gitlab.
1431 // +optional
1432 "groups"?: [...string]
1433
1434 // Metadata holds the user defined metadata which will passed along the event payload.
1435 // +optional
1436 "metadata"?: [string]: string
1437
1438 // DeprecatedProjectID is the id of project for which integration needs to setup
1439 // Deprecated: use Projects instead. Will be unsupported in v 1.7
1440 // +optional
1441 "projectID"?: string
1442
1443 // List of project IDs or project namespace paths like "whynowy/test".
1444 // If neither a project nor a group is defined, the EventSource will not manage webhooks.
1445 // +optional
1446 "projects"?: [...string]
1447
1448 // SecretToken references to k8 secret which holds the Secret Token used by webhook config
1449 "secretToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
1450
1451 // Webhook holds configuration to run a http server
1452 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
1453 }
1454
1455 // HDFSEventSource refers to event-source for HDFS related events
1456 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HDFSEventSource": {
1457 "addresses"?: [...string]
1458
1459 // CheckInterval is a string that describes an interval duration to check the
1460 // directory state, e.g. 1s, 30m, 2h... (defaults to 1m)
1461 "checkInterval"?: string
1462
1463 // Filter
1464 // +optional
1465 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1466
1467 // HDFSUser is the user to access HDFS file system.
1468 // It is ignored if either ccache or keytab is used.
1469 "hdfsUser"?: string
1470
1471 // KrbCCacheSecret is the secret selector for Kerberos ccache
1472 // Either ccache or keytab can be set to use Kerberos.
1473 "krbCCacheSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1474
1475 // KrbConfig is the configmap selector for Kerberos config as string
1476 // It must be set if either ccache or keytab is used.
1477 "krbConfigConfigMap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
1478
1479 // KrbKeytabSecret is the secret selector for Kerberos keytab
1480 // Either ccache or keytab can be set to use Kerberos.
1481 "krbKeytabSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1482
1483 // KrbRealm is the Kerberos realm used with Kerberos keytab
1484 // It must be set if keytab is used.
1485 "krbRealm"?: string
1486
1487 // KrbServicePrincipalName is the principal name of Kerberos service
1488 // It must be set if either ccache or keytab is used.
1489 "krbServicePrincipalName"?: string
1490
1491 // KrbUsername is the Kerberos username used with Kerberos keytab
1492 // It must be set if keytab is used.
1493 "krbUsername"?: string
1494
1495 // Metadata holds the user defined metadata which will passed along the event payload.
1496 // +optional
1497 "metadata"?: [string]: string
1498
1499 // Type of file operations to watch
1500 "type"?: string
1501 "watchPathConfig"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig"
1502 }
1503
1504 // HTTPTrigger is the trigger for the HTTP request
1505 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HTTPTrigger": {
1506 // BasicAuth configuration for the http request.
1507 // +optional
1508 "basicAuth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
1509
1510 // Headers for the HTTP request.
1511 // +optional
1512 "headers"?: [string]: string
1513
1514 // Method refers to the type of the HTTP request.
1515 // Refer https://golang.org/src/net/http/method.go for more io.argoproj.workflow.v1alpha1.
1516 // Default value is POST.
1517 // +optional
1518 "method"?: string
1519
1520 // Parameters is the list of key-value extracted from event's payload that are applied to
1521 // the HTTP trigger resource.
1522 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1523 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1524
1525 // Secure Headers stored in Kubernetes Secrets for the HTTP requests.
1526 // +optional
1527 "secureHeaders"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader"]
1528
1529 // Timeout refers to the HTTP request timeout in seconds.
1530 // Default value is 60 seconds.
1531 // +optional
1532 "timeout"?: string
1533
1534 // TLS configuration for the HTTP client.
1535 // +optional
1536 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1537
1538 // URL refers to the URL to send HTTP request to.
1539 "url"?: string
1540 }
1541
1542 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Int64OrString": {
1543 "int64Val"?: string
1544 "strVal"?: string
1545 "type"?: string
1546 }
1547
1548 // K8SResource represent arbitrary structured data.
1549 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResource": "value"?: string
1550
1551 // K8SResourcePolicy refers to the policy used to check the state of K8s based triggers using labels
1552 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResourcePolicy": {
1553 // Backoff before checking resource state
1554 "backoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1555
1556 // ErrorOnBackoffTimeout determines whether sensor should transition to error
1557 // state if the trigger policy is unable to determine
1558 // the state of the resource
1559 "errorOnBackoffTimeout"?: bool
1560
1561 // Labels required to identify whether a resource is in success state
1562 "labels"?: [string]: string
1563 }
1564
1565 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaConsumerGroup": {
1566 // The name for the consumer group to use
1567 "groupName"?: string
1568
1569 // When starting up a new group do we want to start from the oldest event (true)
1570 // or the newest event (false), defaults to false
1571 // +optional
1572 "oldest"?: bool
1573
1574 // Rebalance strategy can be one of: sticky, roundrobin, range. Range is the default.
1575 // +optional
1576 "rebalanceStrategy"?: string
1577 }
1578
1579 // KafkaEventSource refers to event-source for Kafka related events
1580 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaEventSource": {
1581 // Yaml format Sarama config for Kafka connection.
1582 // It follows the struct of sarama.Config. See https://github.com/IBM/sarama/blob/main/config.go
1583 // e.g.
1584 //
1585 // consumer:
1586 // fetch:
1587 // min: 1
1588 // net:
1589 // MaxOpenRequests: 5
1590 //
1591 // +optional
1592 "config"?: string
1593
1594 // Backoff holds parameters applied to connection.
1595 "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1596
1597 // Consumer group for kafka client
1598 // +optional
1599 "consumerGroup"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaConsumerGroup"
1600
1601 // Filter
1602 // +optional
1603 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1604
1605 // JSONBody specifies that all event body payload coming from this
1606 // source will be JSON
1607 // +optional
1608 "jsonBody"?: bool
1609
1610 // Sets a limit on how many events get read from kafka per second.
1611 // +optional
1612 "limitEventsPerSecond"?: string
1613
1614 // Metadata holds the user defined metadata which will passed along the event payload.
1615 // +optional
1616 "metadata"?: [string]: string
1617
1618 // Partition name
1619 // +optional
1620 "partition"?: string
1621
1622 // SASL configuration for the kafka client
1623 // +optional
1624 "sasl"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig"
1625
1626 // TLS configuration for the kafka client.
1627 // +optional
1628 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1629
1630 // Topic name
1631 "topic"?: string
1632
1633 // URL to kafka cluster, multiple URLs separated by comma
1634 "url"?: string
1635
1636 // Specify what kafka version is being connected to enables certain features in
1637 // sarama, defaults to 1.0.0
1638 // +optional
1639 "version"?: string
1640 }
1641
1642 // KafkaTrigger refers to the specification of the Kafka trigger.
1643 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaTrigger": {
1644 // Compress determines whether to compress message or not.
1645 // Defaults to false.
1646 // If set to true, compresses message using snappy compression.
1647 // +optional
1648 "compress"?: bool
1649
1650 // FlushFrequency refers to the frequency in milliseconds to flush batches.
1651 // Defaults to 500 milliseconds.
1652 // +optional
1653 "flushFrequency"?: int
1654
1655 // Headers for the Kafka Messages.
1656 // +optional
1657 "headers"?: [string]: string
1658
1659 // Parameters is the list of parameters that is applied to resolved Kafka trigger object.
1660 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1661
1662 // +optional
1663 // DEPRECATED
1664 "partition"?: int
1665
1666 // The partitioning key for the messages put on the Kafka topic.
1667 // +optional.
1668 "partitioningKey"?: string
1669
1670 // Payload is the list of key-value extracted from an event payload to construct
1671 // the request payload.
1672 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1673
1674 // RequiredAcks used in producer to tell the broker how many replica acknowledgements
1675 // Defaults to 1 (Only wait for the leader to ack).
1676 // +optional.
1677 "requiredAcks"?: int
1678
1679 // SASL configuration for the kafka client
1680 // +optional
1681 "sasl"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig"
1682
1683 // Schema Registry configuration to producer message with avro format
1684 // +optional
1685 "schemaRegistry"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SchemaRegistryConfig"
1686
1687 // Secure Headers stored in Kubernetes Secrets for the Kafka messages.
1688 // +optional
1689 "secureHeaders"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader"]
1690
1691 // TLS configuration for the Kafka producer.
1692 // +optional
1693 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1694
1695 // Name of the topic.
1696 // More info at https://kafka.apache.org/documentation/#intro_topics
1697 "topic"?: string
1698
1699 // URL of the Kafka broker, multiple URLs separated by comma.
1700 "url"?: string
1701
1702 // Specify what kafka version is being connected to enables certain features in
1703 // sarama, defaults to 1.0.0
1704 // +optional
1705 "version"?: string
1706 }
1707
1708 #: {
1709 "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.LogTrigger": {
1710 // Only print messages every interval. Useful to prevent logging too much data for busy events.
1711 // +optional
1712 "intervalSeconds"?: string
1713 }
1714 }
1715
1716 // MQTTEventSource refers to event-source for MQTT related events
1717 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.MQTTEventSource": {
1718 // Auth hosts secret selectors for username and password
1719 // +optional
1720 "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
1721
1722 // ClientID is the id of the client
1723 "clientId"?: string
1724
1725 // ConnectionBackoff holds backoff applied to connection.
1726 "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1727
1728 // Filter
1729 // +optional
1730 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1731
1732 // JSONBody specifies that all event body payload coming from this
1733 // source will be JSON
1734 // +optional
1735 "jsonBody"?: bool
1736
1737 // Metadata holds the user defined metadata which will passed along the event payload.
1738 // +optional
1739 "metadata"?: [string]: string
1740
1741 // TLS configuration for the mqtt client.
1742 // +optional
1743 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1744
1745 // Topic name
1746 "topic"?: string
1747
1748 // URL to connect to broker
1749 "url"?: string
1750 }
1751
1752 // Metadata holds the annotations and labels of an event source pod
1753 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata": {
1754 "annotations"?: [string]: string
1755 "labels"?: [string]: string
1756 }
1757
1758 // NATSAuth refers to the auth info for NATS EventSource
1759 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth": {
1760 // Baisc auth with username and password
1761 // +optional
1762 "basic"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
1763
1764 // credential used to connect
1765 // +optional
1766 "credential"?: #."io.k8s.api.core.v1.SecretKeySelector"
1767
1768 // NKey used to connect
1769 // +optional
1770 "nkey"?: #."io.k8s.api.core.v1.SecretKeySelector"
1771
1772 // Token used to connect
1773 // +optional
1774 "token"?: #."io.k8s.api.core.v1.SecretKeySelector"
1775 }
1776
1777 // NATSEventsSource refers to event-source for NATS related events
1778 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSEventsSource": {
1779 // Auth information
1780 // +optional
1781 "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth"
1782
1783 // ConnectionBackoff holds backoff applied to connection.
1784 "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1785
1786 // Filter
1787 // +optional
1788 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1789
1790 // JSONBody specifies that all event body payload coming from this
1791 // source will be JSON
1792 // +optional
1793 "jsonBody"?: bool
1794
1795 // Metadata holds the user defined metadata which will passed along the event payload.
1796 // +optional
1797 "metadata"?: [string]: string
1798
1799 // Queue is the name of the queue group to subscribe as if specified. Uses QueueSubscribe
1800 // logic to subscribe as queue group. If the queue is empty, uses default Subscribe logic.
1801 // +optional
1802 "queue"?: string
1803
1804 // Subject holds the name of the subject onto which messages are published
1805 "subject"?: string
1806
1807 // TLS configuration for the nats client.
1808 // +optional
1809 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1810
1811 // URL to connect to NATS cluster
1812 "url"?: string
1813 }
1814
1815 // NATSTrigger refers to the specification of the NATS trigger.
1816 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSTrigger": {
1817 // AuthInformation
1818 // +optional
1819 "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth"
1820 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1821 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1822
1823 // Name of the subject to put message on.
1824 "subject"?: string
1825
1826 // TLS configuration for the NATS producer.
1827 // +optional
1828 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1829
1830 // URL of the NATS cluster.
1831 "url"?: string
1832 }
1833
1834 // NSQEventSource describes the event source for NSQ PubSub
1835 // More info at https://godoc.org/github.com/nsqio/go-nsq
1836 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NSQEventSource": {
1837 // Channel used for subscription
1838 "channel"?: string
1839
1840 // Backoff holds parameters applied to connection.
1841 // +optional
1842 "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1843
1844 // Filter
1845 // +optional
1846 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1847
1848 // HostAddress is the address of the host for NSQ lookup
1849 "hostAddress"?: string
1850
1851 // JSONBody specifies that all event body payload coming from this
1852 // source will be JSON
1853 // +optional
1854 "jsonBody"?: bool
1855
1856 // Metadata holds the user defined metadata which will passed along the event payload.
1857 // +optional
1858 "metadata"?: [string]: string
1859
1860 // TLS configuration for the nsq client.
1861 // +optional
1862 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1863
1864 // Topic to subscribe to.
1865 "topic"?: string
1866 }
1867
1868 // OpenWhiskTrigger refers to the specification of the OpenWhisk trigger.
1869 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OpenWhiskTrigger": {
1870 // Name of the action/function.
1871 "actionName"?: string
1872
1873 // AuthToken for authentication.
1874 // +optional
1875 "authToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
1876
1877 // Host URL of the OpenWhisk.
1878 "host"?: string
1879
1880 // Namespace for the action.
1881 // Defaults to "_".
1882 // +optional.
1883 "namespace"?: string
1884
1885 // Parameters is the list of key-value extracted from event's payload that are applied to
1886 // the trigger resource.
1887 // +optional
1888 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1889
1890 // Payload is the list of key-value extracted from an event payload to construct
1891 // the request payload.
1892 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1893
1894 // Version for the API.
1895 // Defaults to v1.
1896 // +optional
1897 "version"?: string
1898 }
1899
1900 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OwnedRepositories": {
1901 // Repository names
1902 "names"?: [...string]
1903
1904 // Organization or user name
1905 "owner"?: string
1906 }
1907
1908 // PayloadField binds a value at path within the event payload against a name.
1909 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PayloadField": {
1910 // Name acts as key that holds the value at the path.
1911 "name"?: string
1912
1913 // Path is the JSONPath of the event's (JSON decoded) data key
1914 // Path is a series of keys separated by a dot. A key may contain wildcard characters '*' and '?'.
1915 // To access an array value use the index as the key. The dot and wildcard
1916 // characters can be escaped with '\\'.
1917 // See https://github.com/tidwall/gjson#path-syntax for more information on how to use this.
1918 "path"?: string
1919 }
1920
1921 // PubSubEventSource refers to event-source for GCP PubSub related events.
1922 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PubSubEventSource": {
1923 // CredentialSecret references to the secret that contains JSON credentials to access GCP.
1924 // If it is missing, it implicitly uses Workload Identity to access.
1925 // https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
1926 // +optional
1927 "credentialSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1928
1929 // DeleteSubscriptionOnFinish determines whether to delete the GCP PubSub
1930 // subscription once the event source is stopped.
1931 // +optional
1932 "deleteSubscriptionOnFinish"?: bool
1933
1934 // Filter
1935 // +optional
1936 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1937
1938 // JSONBody specifies that all event body payload coming from this
1939 // source will be JSON
1940 // +optional
1941 "jsonBody"?: bool
1942
1943 // Metadata holds the user defined metadata which will passed along the event payload.
1944 // +optional
1945 "metadata"?: [string]: string
1946
1947 // ProjectID is GCP project ID for the subscription.
1948 // Required if you run Argo Events outside of GKE/GCE.
1949 // (otherwise, the default value is its project)
1950 // +optional
1951 "projectID"?: string
1952
1953 // SubscriptionID is ID of subscription.
1954 // Required if you use existing subscription.
1955 // The default value will be auto generated hash based on this eventsource
1956 // setting, so the subscription
1957 // might be recreated every time you update the setting, which has a possibility of event loss.
1958 // +optional
1959 "subscriptionID"?: string
1960
1961 // Topic to which the subscription should belongs.
1962 // Required if you want the eventsource to create a new subscription.
1963 // If you specify this field along with an existing subscription,
1964 // it will be verified whether it actually belongs to the specified topic.
1965 // +optional
1966 "topic"?: string
1967
1968 // TopicProjectID is GCP project ID for the topic.
1969 // By default, it is same as ProjectID.
1970 // +optional
1971 "topicProjectID"?: string
1972 }
1973
1974 // PulsarEventSource describes the event source for Apache Pulsar
1975 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarEventSource": {
1976 // Authentication athenz parameters for the pulsar client.
1977 // Refer https://github.com/apache/pulsar-client-go/blob/master/pulsar/auth/athenz.go
1978 // Either token or athenz can be set to use auth.
1979 // +optional
1980 "authAthenzParams"?: [string]: string
1981
1982 // Authentication athenz privateKey secret for the pulsar client.
1983 // AuthAthenzSecret must be set if AuthAthenzParams is used.
1984 // +optional
1985 "authAthenzSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1986
1987 // Authentication token for the pulsar client.
1988 // Either token or athenz can be set to use auth.
1989 // +optional
1990 "authTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1991
1992 // Backoff holds parameters applied to connection.
1993 // +optional
1994 "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1995
1996 // Filter
1997 // +optional
1998 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1999
2000 // JSONBody specifies that all event body payload coming from this
2001 // source will be JSON
2002 // +optional
2003 "jsonBody"?: bool
2004
2005 // Metadata holds the user defined metadata which will passed along the event payload.
2006 // +optional
2007 "metadata"?: [string]: string
2008
2009 // TLS configuration for the pulsar client.
2010 // +optional
2011 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2012
2013 // Whether the Pulsar client accept untrusted TLS certificate from broker.
2014 // +optional
2015 "tlsAllowInsecureConnection"?: bool
2016
2017 // Trusted TLS certificate secret.
2018 // +optional
2019 "tlsTrustCertsSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2020
2021 // Whether the Pulsar client verify the validity of the host name from broker.
2022 // +optional
2023 "tlsValidateHostname"?: bool
2024
2025 // Name of the topics to subscribe to.
2026 // +required
2027 "topics"?: [...string]
2028
2029 // Type of the subscription.
2030 // Only "exclusive" and "shared" is supported.
2031 // Defaults to exclusive.
2032 // +optional
2033 "type"?: string
2034
2035 // Configure the service URL for the Pulsar service.
2036 // +required
2037 "url"?: string
2038 }
2039
2040 // PulsarTrigger refers to the specification of the Pulsar trigger.
2041 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarTrigger": {
2042 // Authentication athenz parameters for the pulsar client.
2043 // Refer https://github.com/apache/pulsar-client-go/blob/master/pulsar/auth/athenz.go
2044 // Either token or athenz can be set to use auth.
2045 // +optional
2046 "authAthenzParams"?: [string]: string
2047
2048 // Authentication athenz privateKey secret for the pulsar client.
2049 // AuthAthenzSecret must be set if AuthAthenzParams is used.
2050 // +optional
2051 "authAthenzSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2052
2053 // Authentication token for the pulsar client.
2054 // Either token or athenz can be set to use auth.
2055 // +optional
2056 "authTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2057
2058 // Backoff holds parameters applied to connection.
2059 // +optional
2060 "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
2061
2062 // Parameters is the list of parameters that is applied to resolved Kafka trigger object.
2063 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2064
2065 // Payload is the list of key-value extracted from an event payload to construct
2066 // the request payload.
2067 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2068
2069 // TLS configuration for the pulsar client.
2070 // +optional
2071 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2072
2073 // Whether the Pulsar client accept untrusted TLS certificate from broker.
2074 // +optional
2075 "tlsAllowInsecureConnection"?: bool
2076
2077 // Trusted TLS certificate secret.
2078 // +optional
2079 "tlsTrustCertsSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2080
2081 // Whether the Pulsar client verify the validity of the host name from broker.
2082 // +optional
2083 "tlsValidateHostname"?: bool
2084
2085 // Name of the topic.
2086 // See https://pulsar.apache.org/docs/en/concepts-messaging/
2087 "topic"?: string
2088
2089 // Configure the service URL for the Pulsar service.
2090 // +required
2091 "url"?: string
2092 }
2093
2094 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RateLimit": {
2095 "requestsPerUnit"?: int
2096
2097 // Defaults to Second
2098 "unit"?: string
2099 }
2100
2101 // RedisEventSource describes an event source for the Redis PubSub.
2102 // More info at https://godoc.org/github.com/go-redis/redis#example-PubSub
2103 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisEventSource": {
2104 "channels"?: [...string]
2105
2106 // DB to use. If not specified, default DB 0 will be used.
2107 // +optional
2108 "db"?: int
2109
2110 // Filter
2111 // +optional
2112 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2113
2114 // HostAddress refers to the address of the Redis host/server
2115 "hostAddress"?: string
2116
2117 // JSONBody specifies that all event body payload coming from this
2118 // source will be JSON
2119 // +optional
2120 "jsonBody"?: bool
2121
2122 // Metadata holds the user defined metadata which will passed along the event payload.
2123 // +optional
2124 "metadata"?: [string]: string
2125
2126 // Namespace to use to retrieve the password from. It should only be specified
2127 // if password is declared
2128 // +optional
2129 "namespace"?: string
2130
2131 // Password required for authentication if any.
2132 // +optional
2133 "password"?: #."io.k8s.api.core.v1.SecretKeySelector"
2134
2135 // TLS configuration for the redis client.
2136 // +optional
2137 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2138
2139 // Username required for ACL style authentication if any.
2140 // +optional
2141 "username"?: string
2142 }
2143
2144 // RedisStreamEventSource describes an event source for
2145 // Redis streams (https://redis.io/topics/streams-intro)
2146 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisStreamEventSource": {
2147 // ConsumerGroup refers to the Redis stream consumer group that will be
2148 // created on all redis streams. Messages are read through this group. Defaults to 'argo-events-cg'
2149 // +optional
2150 "consumerGroup"?: string
2151
2152 // DB to use. If not specified, default DB 0 will be used.
2153 // +optional
2154 "db"?: int
2155
2156 // Filter
2157 // +optional
2158 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2159
2160 // HostAddress refers to the address of the Redis host/server (master instance)
2161 "hostAddress"?: string
2162
2163 // MaxMsgCountPerRead holds the maximum number of messages per stream that will
2164 // be read in each XREADGROUP of all streams
2165 // Example: if there are 2 streams and MaxMsgCountPerRead=10, then each
2166 // XREADGROUP may read upto a total of 20 messages.
2167 // Same as COUNT option in XREADGROUP(https://redis.io/topics/streams-intro). Defaults to 10
2168 // +optional
2169 "maxMsgCountPerRead"?: int
2170
2171 // Metadata holds the user defined metadata which will passed along the event payload.
2172 // +optional
2173 "metadata"?: [string]: string
2174
2175 // Password required for authentication if any.
2176 // +optional
2177 "password"?: #."io.k8s.api.core.v1.SecretKeySelector"
2178
2179 // Streams to look for entries. XREADGROUP is used on all streams using a single consumer group.
2180 "streams"?: [...string]
2181
2182 // TLS configuration for the redis client.
2183 // +optional
2184 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2185
2186 // Username required for ACL style authentication if any.
2187 // +optional
2188 "username"?: string
2189 }
2190
2191 // ResourceEventSource refers to a event-source for K8s resource related events.
2192 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceEventSource": {
2193 // EventTypes is the list of event type to watch.
2194 // Possible values are - ADD, UPDATE and DELETE.
2195 "eventTypes"?: [...string]
2196
2197 // Filter is applied on the metadata of the resource
2198 // If you apply filter, then the internal event informer will only monitor
2199 // objects that pass the filter.
2200 // +optional
2201 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceFilter"
2202
2203 // Group of the resource
2204 "groupVersionResource"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource"
2205
2206 // Metadata holds the user defined metadata which will passed along the event payload.
2207 // +optional
2208 "metadata"?: [string]: string
2209
2210 // Namespace where resource is deployed
2211 "namespace"?: string
2212 }
2213
2214 // ResourceFilter contains K8s ObjectMeta information to further filter resource event objects
2215 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceFilter": {
2216 // If the resource is created after the start time then the event is treated as valid.
2217 // +optional
2218 "afterStart"?: bool
2219
2220 // If resource is created before the specified time then the event is treated as valid.
2221 // +optional
2222 "createdBy"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
2223
2224 // Fields provide field filters similar to K8s field selector
2225 // (see https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/).
2226 // Unlike K8s field selector, it supports arbitrary fileds like "spec.serviceAccountName",
2227 // and the value could be a string or a regex.
2228 // Same as K8s field selector, operator "=", "==" and "!=" are supported.
2229 // +optional
2230 "fields"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector"]
2231
2232 // Labels provide listing options to K8s API to watch resource/s.
2233 // Refer
2234 // https://kubernetes.io/docs/concepts/overview/working-with-objects/label-selectors/
2235 // for more io.argoproj.workflow.v1alpha1.
2236 // Unlike K8s field selector, multiple values are passed as comma separated
2237 // values instead of list of values.
2238 // Eg: value: value1,value2.
2239 // Same as K8s label selector, operator "=", "==", "!=", "exists", "!", "notin", "in", "gt" and "lt"
2240 // are supported
2241 // +optional
2242 "labels"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector"]
2243
2244 // Prefix filter is applied on the resource name.
2245 // +optional
2246 "prefix"?: string
2247 }
2248
2249 // S3Artifact contains information about an S3 connection and bucket
2250 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact": {
2251 "accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2252 "bucket"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Bucket"
2253 "caCertificate"?: #."io.k8s.api.core.v1.SecretKeySelector"
2254 "endpoint"?: string
2255 "events"?: [...string]
2256 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Filter"
2257 "insecure"?: bool
2258 "metadata"?: [string]: string
2259 "region"?: string
2260 "secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2261 }
2262
2263 // S3Bucket contains information to describe an S3 Bucket
2264 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Bucket": {
2265 "key"?: string
2266 "name"?: string
2267 }
2268
2269 // S3Filter represents filters to apply to bucket notifications for specifying
2270 // constraints on objects
2271 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Filter": {
2272 "prefix"?: string
2273 "suffix"?: string
2274 }
2275
2276 // SASLConfig refers to SASL configuration for a client
2277 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig": {
2278 // SASLMechanism is the name of the enabled SASL mechanism.
2279 // Possible values: OAUTHBEARER, PLAIN (defaults to PLAIN).
2280 // +optional
2281 "mechanism"?: string
2282
2283 // Password for SASL/PLAIN authentication
2284 "passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2285
2286 // User is the authentication identity (authcid) to present for
2287 // SASL/PLAIN or SASL/SCRAM authentication
2288 "userSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2289 }
2290
2291 // SFTPEventSource describes an event-source for sftp related events.
2292 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SFTPEventSource": {
2293 // Address sftp address.
2294 "address"?: #."io.k8s.api.core.v1.SecretKeySelector"
2295
2296 // Type of file operations to watch
2297 // Refer https://github.com/fsnotify/fsnotify/blob/master/fsnotify.go for more information
2298 "eventType"?: string
2299
2300 // Filter
2301 // +optional
2302 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2303
2304 // Metadata holds the user defined metadata which will passed along the event payload.
2305 // +optional
2306 "metadata"?: [string]: string
2307
2308 // Password required for authentication if any.
2309 "password"?: #."io.k8s.api.core.v1.SecretKeySelector"
2310
2311 // PollIntervalDuration the interval at which to poll the SFTP server
2312 // defaults to 10 seconds
2313 // +optional
2314 "pollIntervalDuration"?: string
2315
2316 // SSHKeySecret refers to the secret that contains SSH key. Key needs to contain
2317 // private key and public key.
2318 "sshKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2319
2320 // Username required for authentication if any.
2321 "username"?: #."io.k8s.api.core.v1.SecretKeySelector"
2322
2323 // WatchPathConfig contains configuration about the file path to watch
2324 "watchPathConfig"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig"
2325 }
2326
2327 // SNSEventSource refers to event-source for AWS SNS related events
2328 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SNSEventSource": {
2329 // AccessKey refers K8s secret containing aws access key
2330 "accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2331
2332 // Endpoint configures connection to a specific SNS endpoint instead of Amazons servers
2333 // +optional
2334 "endpoint"?: string
2335
2336 // Filter
2337 // +optional
2338 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2339
2340 // Metadata holds the user defined metadata which will passed along the event payload.
2341 // +optional
2342 "metadata"?: [string]: string
2343
2344 // Region is AWS region
2345 "region"?: string
2346
2347 // RoleARN is the Amazon Resource Name (ARN) of the role to assume.
2348 // +optional
2349 "roleARN"?: string
2350
2351 // SecretKey refers K8s secret containing aws secret key
2352 "secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2353
2354 // TopicArn
2355 "topicArn"?: string
2356
2357 // ValidateSignature is boolean that can be set to true for SNS signature verification
2358 // +optional
2359 "validateSignature"?: bool
2360
2361 // Webhook configuration for http server
2362 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
2363 }
2364
2365 // SQSEventSource refers to event-source for AWS SQS related events
2366 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SQSEventSource": {
2367 // AccessKey refers K8s secret containing aws access key
2368 "accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2369
2370 // DLQ specifies if a dead-letter queue is configured for messages that can't be
2371 // processed successfully.
2372 // If set to true, messages with invalid payload won't be acknowledged to allow
2373 // to forward them farther to the dead-letter queue.
2374 // The default value is false.
2375 // +optional
2376 "dlq"?: bool
2377
2378 // Endpoint configures connection to a specific SQS endpoint instead of Amazons servers
2379 // +optional
2380 "endpoint"?: string
2381
2382 // Filter
2383 // +optional
2384 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2385
2386 // JSONBody specifies that all event body payload coming from this
2387 // source will be JSON
2388 // +optional
2389 "jsonBody"?: bool
2390
2391 // Metadata holds the user defined metadata which will passed along the event payload.
2392 // +optional
2393 "metadata"?: [string]: string
2394
2395 // Queue is AWS SQS queue to listen to for messages
2396 "queue"?: string
2397
2398 // QueueAccountID is the ID of the account that created the queue to monitor
2399 // +optional
2400 "queueAccountId"?: string
2401
2402 // Region is AWS region
2403 "region"?: string
2404
2405 // RoleARN is the Amazon Resource Name (ARN) of the role to assume.
2406 // +optional
2407 "roleARN"?: string
2408
2409 // SecretKey refers K8s secret containing aws secret key
2410 "secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2411
2412 // SessionToken refers to K8s secret containing AWS temporary credentials(STS) session token
2413 // +optional
2414 "sessionToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
2415
2416 // WaitTimeSeconds is The duration (in seconds) for which the call waits for a message to arrive
2417 // in the queue before returning.
2418 "waitTimeSeconds"?: string
2419 }
2420
2421 // SchemaRegistryConfig refers to configuration for a client
2422 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SchemaRegistryConfig": {
2423 // +optional
2424 // SchemaRegistry - basic authentication
2425 "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
2426
2427 // Schema ID
2428 "schemaId"?: int
2429
2430 // Schema Registry URL.
2431 "url"?: string
2432 }
2433
2434 // SecureHeader refers to HTTP Headers with auth tokens as values
2435 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader": {
2436 "name"?: string
2437
2438 // Values can be read from either secrets or configmaps
2439 "valueFrom"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ValueFromSource"
2440 }
2441
2442 // Selector represents conditional operation to select K8s objects.
2443 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector": {
2444 // Key name
2445 "key"?: string
2446
2447 // Supported operations like ==, != etc.
2448 // Defaults to ==.
2449 // Refer
2450 // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
2451 // for more io.argoproj.workflow.v1alpha1.
2452 // +optional
2453 "operation"?: string
2454
2455 // Value
2456 "value"?: string
2457 }
2458
2459 // Sensor is the definition of a sensor resource
2460 // +genclient
2461 // +genclient:noStatus
2462 // +kubebuilder:resource:shortName=sn
2463 // +kubebuilder:subresource:status
2464 // +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
2465 // +k8s:openapi-gen=true
2466 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor": {
2467 "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
2468 "spec"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorSpec"
2469
2470 // +optional
2471 "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorStatus"
2472 }
2473
2474 // SensorList is the list of Sensor resources
2475 // +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
2476 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorList": {
2477 "items"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"]
2478 "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
2479 }
2480
2481 // SensorSpec represents desired sensor state
2482 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorSpec": {
2483 // Dependencies is a list of the events that this sensor is dependent on.
2484 "dependencies"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependency"]
2485
2486 // ErrorOnFailedRound if set to true, marks sensor state as `error` if the
2487 // previous trigger round fails.
2488 // Once sensor state is set to `error`, no further triggers will be processed.
2489 "errorOnFailedRound"?: bool
2490
2491 // EventBusName references to a EventBus name. By default the value is "default"
2492 "eventBusName"?: string
2493
2494 // LoggingFields add additional key-value pairs when logging happens
2495 // +optional
2496 "loggingFields"?: [string]: string
2497
2498 // Replicas is the sensor deployment replicas
2499 "replicas"?: int
2500
2501 // RevisionHistoryLimit specifies how many old deployment revisions to retain
2502 // +optional
2503 "revisionHistoryLimit"?: int
2504
2505 // Template is the pod specification for the sensor
2506 // +optional
2507 "template"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template"
2508
2509 // Triggers is a list of the things that this sensor evokes. These are the outputs from this sensor.
2510 "triggers"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger"]
2511 }
2512
2513 // SensorStatus contains information about the status of a sensor.
2514 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorStatus": "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status"
2515
2516 // Service holds the service information eventsource exposes
2517 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Service": {
2518 // clusterIP is the IP address of the service and is usually assigned
2519 // randomly by the master. If an address is specified manually and is not in
2520 // use by others, it will be allocated to the service; otherwise, creation
2521 // of the service will fail. This field can not be changed through updates.
2522 // Valid values are "None", empty string (""), or a valid IP address. "None"
2523 // can be specified for headless services when proxying is not required.
2524 // More info:
2525 // https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
2526 // +optional
2527 "clusterIP"?: string
2528
2529 // Metadata sets the pods's metadata, i.e. annotations and labels
2530 // default={annotations: {}, labels: {}}
2531 "metadata"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata"
2532
2533 // The list of ports that are exposed by this ClusterIP service.
2534 // +patchMergeKey=port
2535 // +patchStrategy=merge
2536 // +listType=map
2537 // +listMapKey=port
2538 // +listMapKey=protocol
2539 "ports"?: [...#."io.k8s.api.core.v1.ServicePort"]
2540 }
2541
2542 // SlackEventSource refers to event-source for Slack related events
2543 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackEventSource": {
2544 // Filter
2545 // +optional
2546 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2547
2548 // Metadata holds the user defined metadata which will passed along the event payload.
2549 // +optional
2550 "metadata"?: [string]: string
2551
2552 // Slack App signing secret
2553 "signingSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2554
2555 // Token for URL verification handshake
2556 "token"?: #."io.k8s.api.core.v1.SecretKeySelector"
2557
2558 // Webhook holds configuration for a REST endpoint
2559 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
2560 }
2561
2562 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackSender": {
2563 // Icon is the Slack application's icon, e.g. :robot_face: or https://example.com/image.png
2564 // +optional
2565 "icon"?: string
2566
2567 // Username is the Slack application's username
2568 // +optional
2569 "username"?: string
2570 }
2571
2572 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackThread": {
2573 // BroadcastMessageToChannel allows to also broadcast the message from the thread to the channel
2574 // +optional
2575 "broadcastMessageToChannel"?: bool
2576
2577 // MessageAggregationKey allows to aggregate the messages to a thread by some key.
2578 // +optional
2579 "messageAggregationKey"?: string
2580 }
2581
2582 // SlackTrigger refers to the specification of the slack notification trigger.
2583 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackTrigger": {
2584 // Attachments is a JSON format string that represents an array of Slack
2585 // attachments according to the attachments API:
2586 // https://api.slack.com/reference/messaging/attachments .
2587 // +optional
2588 "attachments"?: string
2589
2590 // Blocks is a JSON format string that represents an array of Slack blocks
2591 // according to the blocks API:
2592 // https://api.slack.com/reference/block-kit/blocks .
2593 // +optional
2594 "blocks"?: string
2595
2596 // Channel refers to which Slack channel to send Slack message.
2597 // +optional
2598 "channel"?: string
2599
2600 // Message refers to the message to send to the Slack channel.
2601 // +optional
2602 "message"?: string
2603
2604 // Parameters is the list of key-value extracted from event's payload that are applied to
2605 // the trigger resource.
2606 // +optional
2607 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2608
2609 // Sender refers to additional configuration of the Slack application that sends the message.
2610 // +optional
2611 "sender"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackSender"
2612
2613 // SlackToken refers to the Kubernetes secret that holds the slack token required to send messages.
2614 "slackToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
2615
2616 // Thread refers to additional options for sending messages to a Slack thread.
2617 // +optional
2618 "thread"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackThread"
2619 }
2620
2621 // StandardK8STrigger is the standard Kubernetes resource trigger
2622 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StandardK8STrigger": {
2623 // LiveObject specifies whether the resource should be directly fetched from K8s instead
2624 // of being marshaled from the resource artifact. If set to true, the resource artifact
2625 // must contain the information required to uniquely identify the resource in the cluster,
2626 // that is, you must specify "apiVersion", "kind" as well as "name" and "namespace" meta
2627 // data.
2628 // Only valid for operation type `update`
2629 // +optional
2630 "liveObject"?: bool
2631
2632 // Operation refers to the type of operation performed on the k8s resource.
2633 // Default value is Create.
2634 // +optional
2635 "operation"?: string
2636
2637 // Parameters is the list of parameters that is applied to resolved K8s trigger object.
2638 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2639
2640 // PatchStrategy controls the K8s object patching strategy when the trigger
2641 // operation is specified as patch.
2642 // possible values:
2643 // "application/json-patch+json"
2644 // "application/merge-patch+json"
2645 // "application/strategic-merge-patch+json"
2646 // "application/apply-patch+yaml".
2647 // Defaults to "application/merge-patch+json"
2648 // +optional
2649 "patchStrategy"?: string
2650
2651 // Source of the K8s resource file(s)
2652 "source"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation"
2653 }
2654
2655 // Status is a common structure which can be used for Status field.
2656 #: {
2657 "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status": {
2658 // Conditions are the latest available observations of a resource's current state.
2659 // +optional
2660 // +patchMergeKey=type
2661 // +patchStrategy=merge
2662 "conditions"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Condition"]
2663 }
2664 }
2665
2666 // StatusPolicy refers to the policy used to check the state of the trigger using response status
2667 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StatusPolicy": "allow"?: [...int]
2668
2669 // StorageGridEventSource refers to event-source for StorageGrid related events
2670 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridEventSource": {
2671 // APIURL is the url of the storagegrid api.
2672 "apiURL"?: string
2673
2674 // Auth token for storagegrid api
2675 "authToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
2676
2677 // Name of the bucket to register notifications for.
2678 "bucket"?: string
2679 "events"?: [...string]
2680
2681 // Filter on object key which caused the notification.
2682 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridFilter"
2683
2684 // Metadata holds the user defined metadata which will passed along the event payload.
2685 // +optional
2686 "metadata"?: [string]: string
2687
2688 // S3 region.
2689 // Defaults to us-east-1
2690 // +optional
2691 "region"?: string
2692
2693 // TopicArn
2694 "topicArn"?: string
2695
2696 // Webhook holds configuration for a REST endpoint
2697 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
2698 }
2699
2700 // StorageGridFilter represents filters to apply to bucket notifications for
2701 // specifying constraints on objects
2702 // +k8s:openapi-gen=true
2703 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridFilter": {
2704 "prefix"?: string
2705 "suffix"?: string
2706 }
2707
2708 // StripeEventSource describes the event source for stripe webhook notifications
2709 // More info at https://stripe.com/docs/webhooks
2710 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StripeEventSource": {
2711 // APIKey refers to K8s secret that holds Stripe API key. Used only if CreateWebhook is enabled.
2712 // +optional
2713 "apiKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2714
2715 // CreateWebhook if specified creates a new webhook programmatically.
2716 // +optional
2717 "createWebhook"?: bool
2718
2719 // EventFilter describes the type of events to listen to. If not specified, all
2720 // types of events will be processed.
2721 // More info at https://stripe.com/docs/api/events/list
2722 // +optional
2723 "eventFilter"?: [...string]
2724
2725 // Metadata holds the user defined metadata which will passed along the event payload.
2726 // +optional
2727 "metadata"?: [string]: string
2728
2729 // Webhook holds configuration for a REST endpoint
2730 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
2731 }
2732
2733 // TLSConfig refers to TLS configuration for a client.
2734 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig": {
2735 // CACertSecret refers to the secret that contains the CA cert
2736 "caCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2737
2738 // ClientCertSecret refers to the secret that contains the client cert
2739 "clientCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2740
2741 // ClientKeySecret refers to the secret that contains the client key
2742 "clientKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2743
2744 // If true, skips creation of TLSConfig with certs and creates an empty
2745 // TLSConfig. (Defaults to false)
2746 // +optional
2747 "insecureSkipVerify"?: bool
2748 }
2749
2750 // Template holds the information of a deployment template
2751 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template": {
2752 // If specified, the pod's scheduling constraints
2753 // +optional
2754 "affinity"?: #."io.k8s.api.core.v1.Affinity"
2755
2756 // Container is the main container image to run in the sensor pod
2757 // +optional
2758 "container"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Container"
2759
2760 // ImagePullSecrets is an optional list of references to secrets in the same
2761 // namespace to use for pulling any of the images used by this PodSpec.
2762 // If specified, these secrets will be passed to individual puller
2763 // implementations for them to use. For example,
2764 // in the case of docker, only DockerConfig type secrets are honored.
2765 // More info:
2766 // https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
2767 // +optional
2768 // +patchMergeKey=name
2769 // +patchStrategy=merge
2770 "imagePullSecrets"?: [...#."io.k8s.api.core.v1.LocalObjectReference"]
2771
2772 // Metadata sets the pods's metadata, i.e. annotations and labels
2773 "metadata"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata"
2774
2775 // NodeSelector is a selector which must be true for the pod to fit on a node.
2776 // Selector which must match a node's labels for the pod to be scheduled on that node.
2777 // More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
2778 // +optional
2779 "nodeSelector"?: [string]: string
2780
2781 // The priority value. Various system components use this field to find the
2782 // priority of the EventSource pod. When Priority Admission Controller is enabled,
2783 // it prevents users from setting this field. The admission controller populates
2784 // this field from PriorityClassName.
2785 // The higher the value, the higher the priority.
2786 // More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
2787 // +optional
2788 "priority"?: int
2789
2790 // If specified, indicates the EventSource pod's priority. "system-node-critical"
2791 // and "system-cluster-critical" are two special keywords which indicate the
2792 // highest priorities with the former being the highest priority. Any other
2793 // name must be defined by creating a PriorityClass object with that name.
2794 // If not specified, the pod priority will be default or zero if there is no
2795 // default.
2796 // More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
2797 // +optional
2798 "priorityClassName"?: string
2799
2800 // SecurityContext holds pod-level security attributes and common container settings.
2801 // Optional: Defaults to empty. See type description for default values of each field.
2802 // +optional
2803 "securityContext"?: #."io.k8s.api.core.v1.PodSecurityContext"
2804
2805 // ServiceAccountName is the name of the ServiceAccount to use to run sensor pod.
2806 // More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2807 // +optional
2808 "serviceAccountName"?: string
2809
2810 // If specified, the pod's tolerations.
2811 // +optional
2812 "tolerations"?: [...#."io.k8s.api.core.v1.Toleration"]
2813
2814 // Volumes is a list of volumes that can be mounted by containers in a
2815 // io.argoproj.workflow.v1alpha1.
2816 // +patchStrategy=merge
2817 // +patchMergeKey=name
2818 // +optional
2819 "volumes"?: [...#."io.k8s.api.core.v1.Volume"]
2820 }
2821
2822 // TimeFilter describes a window in time.
2823 // It filters out events that occur outside the time limits.
2824 // In other words, only events that occur after Start and before Stop
2825 // will pass this filter.
2826 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TimeFilter": {
2827 // Start is the beginning of a time window in UTC.
2828 // Before this time, events for this dependency are ignored.
2829 // Format is hh:mm:ss.
2830 "start"?: string
2831
2832 // Stop is the end of a time window in UTC.
2833 // After or equal to this time, events for this dependency are ignored and
2834 // Format is hh:mm:ss.
2835 // If it is smaller than Start, it is treated as next day of Start
2836 // (e.g.: 22:00:00-01:00:00 means 22:00:00-25:00:00).
2837 "stop"?: string
2838 }
2839
2840 // Trigger is an action taken, output produced, an event created, a message sent
2841 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger": {
2842 // AtLeastOnce determines the trigger execution semantics.
2843 // Defaults to false. Trigger execution will use at-most-once semantics.
2844 // If set to true, Trigger execution will switch to at-least-once semantics.
2845 // +kubebuilder:default=false
2846 // +optional
2847 "atLeastOnce"?: bool
2848
2849 // If the trigger fails, it will retry up to the configured number of
2850 // retries. If the maximum retries are reached and the trigger is set to
2851 // execute atLeastOnce, the dead letter queue (DLQ) trigger will be invoked if
2852 // specified. Invoking the dead letter queue trigger helps prevent data
2853 // loss.
2854 // +optional
2855 "dlqTrigger"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger"
2856
2857 // Parameters is the list of parameters applied to the trigger template definition
2858 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2859
2860 // Policy to configure backoff and execution criteria for the trigger
2861 // +optional
2862 "policy"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerPolicy"
2863
2864 // Rate limit, default unit is Second
2865 // +optional
2866 "rateLimit"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RateLimit"
2867
2868 // Retry strategy, defaults to no retry
2869 // +optional
2870 "retryStrategy"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
2871
2872 // Template describes the trigger specification.
2873 "template"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerTemplate"
2874 }
2875
2876 // TriggerParameter indicates a passed parameter to a service template
2877 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter": {
2878 // Dest is the JSONPath of a resource key.
2879 // A path is a series of keys separated by a dot. The colon character can be escaped with '.'
2880 // The -1 key can be used to append a value to an existing array.
2881 // See https://github.com/tidwall/sjson#path-syntax for more information about how this is used.
2882 "dest"?: string
2883
2884 // Operation is what to do with the existing value at Dest, whether to
2885 // 'prepend', 'overwrite', or 'append' it.
2886 "operation"?: string
2887
2888 // Src contains a source reference to the value of the parameter from a dependency
2889 "src"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameterSource"
2890 }
2891
2892 // TriggerParameterSource defines the source for a parameter from a event event
2893 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameterSource": {
2894 // ContextKey is the JSONPath of the event's (JSON decoded) context key
2895 // ContextKey is a series of keys separated by a dot. A key may contain wildcard
2896 // characters '*' and '?'.
2897 // To access an array value use the index as the key. The dot and wildcard
2898 // characters can be escaped with '\\'.
2899 // See https://github.com/tidwall/gjson#path-syntax for more information on how to use this.
2900 "contextKey"?: string
2901
2902 // ContextTemplate is a go-template for extracting a string from the event's context.
2903 // If a ContextTemplate is provided with a ContextKey, the template will be
2904 // evaluated first and fallback to the ContextKey.
2905 // The templating follows the standard go-template syntax as well as sprig's extra functions.
2906 // See https://pkg.go.dev/text/template and https://masterminds.github.io/sprig/
2907 "contextTemplate"?: string
2908
2909 // DataKey is the JSONPath of the event's (JSON decoded) data key
2910 // DataKey is a series of keys separated by a dot. A key may contain wildcard
2911 // characters '*' and '?'.
2912 // To access an array value use the index as the key. The dot and wildcard
2913 // characters can be escaped with '\\'.
2914 // See https://github.com/tidwall/gjson#path-syntax for more information on how to use this.
2915 "dataKey"?: string
2916
2917 // DataTemplate is a go-template for extracting a string from the event's data.
2918 // If a DataTemplate is provided with a DataKey, the template will be evaluated
2919 // first and fallback to the DataKey.
2920 // The templating follows the standard go-template syntax as well as sprig's extra functions.
2921 // See https://pkg.go.dev/text/template and https://masterminds.github.io/sprig/
2922 "dataTemplate"?: string
2923
2924 // DependencyName refers to the name of the dependency. The event which is
2925 // stored for this dependency is used as payload
2926 // for the parameterization. Make sure to refer to one of the dependencies you
2927 // have defined under Dependencies list.
2928 "dependencyName"?: string
2929
2930 // UseRawData indicates if the value in an event at data key should be used
2931 // without converting to string.
2932 // When true, a number, boolean, json or string parameter may be extracted. When
2933 // the field is unspecified, or explicitly
2934 // false, the behavior is to turn the extracted field into a string. (e.g. when
2935 // set to true, the parameter
2936 // 123 will resolve to the numerical type, but when false, or not provided, the
2937 // string "123" will be resolved)
2938 // +optional
2939 "useRawData"?: bool
2940
2941 // Value is the default literal value to use for this parameter source
2942 // This is only used if the DataKey is invalid.
2943 // If the DataKey is invalid and this is not defined, this param source will produce an error.
2944 "value"?: string
2945 }
2946
2947 // TriggerPolicy dictates the policy for the trigger retries
2948 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerPolicy": {
2949 // K8SResourcePolicy refers to the policy used to check the state of K8s based
2950 // triggers using using labels
2951 "k8s"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResourcePolicy"
2952
2953 // Status refers to the policy used to check the state of the trigger using response status
2954 "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StatusPolicy"
2955 }
2956
2957 // TriggerTemplate is the template that describes trigger specification.
2958 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerTemplate": {
2959 // ArgoWorkflow refers to the trigger that can perform various operations on an
2960 // Argo io.argoproj.workflow.v1alpha1.
2961 // +optional
2962 "argoWorkflow"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArgoWorkflowTrigger"
2963
2964 // AWSLambda refers to the trigger designed to invoke AWS Lambda function with
2965 // with on-the-fly constructable payload.
2966 // +optional
2967 "awsLambda"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AWSLambdaTrigger"
2968
2969 // AzureEventHubs refers to the trigger send an event to an Azure Event Hub.
2970 // +optional
2971 "azureEventHubs"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventHubsTrigger"
2972
2973 // AzureServiceBus refers to the trigger designed to place messages on Azure Service Bus
2974 // +optional
2975 "azureServiceBus"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusTrigger"
2976
2977 // Conditions is the conditions to execute the trigger.
2978 // For example: "(dep01 || dep02) && dep04"
2979 // +optional
2980 "conditions"?: string
2981
2982 // Criteria to reset the conditons
2983 // +optional
2984 "conditionsReset"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetCriteria"]
2985
2986 // CustomTrigger refers to the trigger designed to connect to a gRPC trigger
2987 // server and execute a custom trigger.
2988 // +optional
2989 "custom"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CustomTrigger"
2990
2991 // Email refers to the trigger designed to send an email notification
2992 // +optional
2993 "email"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmailTrigger"
2994
2995 // HTTP refers to the trigger designed to dispatch a HTTP request with
2996 // on-the-fly constructable payload.
2997 // +optional
2998 "http"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HTTPTrigger"
2999
3000 // StandardK8STrigger refers to the trigger designed to create or update a
3001 // generic Kubernetes resource.
3002 // +optional
3003 "k8s"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StandardK8STrigger"
3004
3005 // Kafka refers to the trigger designed to place messages on Kafka topic.
3006 // +optional.
3007 "kafka"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaTrigger"
3008
3009 // Log refers to the trigger designed to invoke log the io.argoproj.workflow.v1alpha1.
3010 // +optional
3011 "log"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.LogTrigger"
3012
3013 // Name is a unique name of the action to take.
3014 "name"?: string
3015
3016 // NATS refers to the trigger designed to place message on NATS subject.
3017 // +optional.
3018 "nats"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSTrigger"
3019
3020 // OpenWhisk refers to the trigger designed to invoke OpenWhisk action.
3021 // +optional
3022 "openWhisk"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OpenWhiskTrigger"
3023
3024 // Pulsar refers to the trigger designed to place messages on Pulsar topic.
3025 // +optional
3026 "pulsar"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarTrigger"
3027
3028 // Slack refers to the trigger designed to send slack notification message.
3029 // +optional
3030 "slack"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackTrigger"
3031 }
3032
3033 // URLArtifact contains information about an artifact at an http endpoint.
3034 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.URLArtifact": {
3035 // Path is the complete URL
3036 "path"?: string
3037
3038 // VerifyCert decides whether the connection is secure or not
3039 "verifyCert"?: bool
3040 }
3041
3042 // ValueFromSource allows you to reference keys from either a Configmap or Secret
3043 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ValueFromSource": {
3044 "configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
3045 "secretKeyRef"?: #."io.k8s.api.core.v1.SecretKeySelector"
3046 }
3047
3048 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig": {
3049 // Directory to watch for events
3050 "directory"?: string
3051
3052 // Path is relative path of object to watch with respect to the directory
3053 "path"?: string
3054
3055 // PathRegexp is regexp of relative path of object to watch with respect to the directory
3056 "pathRegexp"?: string
3057 }
3058
3059 // WebhookContext holds a general purpose REST API context
3060 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext": {
3061 // AuthSecret holds a secret selector that contains a bearer token for authentication
3062 // +optional
3063 "authSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3064
3065 // REST API endpoint
3066 "endpoint"?: string
3067
3068 // MaxPayloadSize is the maximum webhook payload size that the server will accept.
3069 // Requests exceeding that limit will be rejected with "request too large" response.
3070 // Default value: 1048576 (1MB).
3071 // +optional
3072 "maxPayloadSize"?: string
3073
3074 // Metadata holds the user defined metadata which will passed along the event payload.
3075 // +optional
3076 "metadata"?: [string]: string
3077
3078 // Method is HTTP request method that indicates the desired action to be
3079 // performed for a given resource.
3080 // See RFC7231 Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
3081 "method"?: string
3082
3083 // Port on which HTTP server is listening for incoming events.
3084 "port"?: string
3085
3086 // ServerCertPath refers the file that contains the cert.
3087 "serverCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3088
3089 // ServerKeyPath refers the file that contains private key
3090 "serverKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3091
3092 // URL is the url of the server.
3093 "url"?: string
3094 }
3095
3096 // CalendarEventSource describes an HTTP based EventSource
3097 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookEventSource": {
3098 // Filter
3099 // +optional
3100 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
3101 "webhookContext"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
3102 }
3103
3104 #: "google.protobuf.Any": {
3105 "type_url"?: string
3106 "value"?: string
3107 }
3108
3109 #: "grpc.gateway.runtime.Error": {
3110 "code"?: int
3111 "details"?: [...#."google.protobuf.Any"]
3112 "error"?: string
3113 "message"?: string
3114 }
3115
3116 #: "grpc.gateway.runtime.StreamError": {
3117 "details"?: [...#."google.protobuf.Any"]
3118 "grpc_code"?: int
3119 "http_code"?: int
3120 "http_status"?: string
3121 "message"?: string
3122 }
3123
3124 // Amount represent a numeric amount.
3125 #: "io.argoproj.workflow.v1alpha1.Amount": number
3126
3127 // ArchiveStrategy describes how to archive files/directory when saving artifacts
3128 #: "io.argoproj.workflow.v1alpha1.ArchiveStrategy": {
3129 "none"?: #."io.argoproj.workflow.v1alpha1.NoneStrategy"
3130 "tar"?: #."io.argoproj.workflow.v1alpha1.TarStrategy"
3131 "zip"?: #."io.argoproj.workflow.v1alpha1.ZipStrategy"
3132 }
3133
3134 #: "io.argoproj.workflow.v1alpha1.ArchivedWorkflowDeletedResponse": {}
3135
3136 // Arguments to a template
3137 #: "io.argoproj.workflow.v1alpha1.Arguments": {
3138 // Artifacts is the list of artifacts to pass to the template or workflow
3139 "artifacts"?: [...#."io.argoproj.workflow.v1alpha1.Artifact"]
3140
3141 // Parameters is the list of parameters to pass to the template or workflow
3142 "parameters"?: [...#."io.argoproj.workflow.v1alpha1.Parameter"]
3143 }
3144
3145 // ArtGCStatus maintains state related to ArtifactGC
3146 #: "io.argoproj.workflow.v1alpha1.ArtGCStatus": {
3147 // if this is true, we already checked to see if we need to do it and we don't
3148 "notSpecified"?: bool
3149
3150 // have completed Pods been processed? (mapped by Pod name) used to prevent
3151 // re-processing the Status of a Pod more than once
3152 "podsRecouped"?: [string]: bool
3153
3154 // have Pods been started to perform this strategy? (enables us not to
3155 // re-process what we've already done)
3156 "strategiesProcessed"?: [string]: bool
3157 }
3158
3159 // Artifact indicates an artifact to place at a specified path
3160 #: "io.argoproj.workflow.v1alpha1.Artifact": {
3161 // Archive controls how the artifact will be saved to the artifact repository.
3162 "archive"?: #."io.argoproj.workflow.v1alpha1.ArchiveStrategy"
3163
3164 // ArchiveLogs indicates if the container logs should be archived
3165 "archiveLogs"?: bool
3166
3167 // ArtifactGC describes the strategy to use when to deleting an artifact from
3168 // completed or deleted workflows
3169 "artifactGC"?: #."io.argoproj.workflow.v1alpha1.ArtifactGC"
3170
3171 // Artifactory contains artifactory artifact location details
3172 "artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact"
3173
3174 // Azure contains Azure Storage artifact location details
3175 "azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifact"
3176
3177 // Has this been deleted?
3178 "deleted"?: bool
3179
3180 // From allows an artifact to reference an artifact from a previous step
3181 "from"?: string
3182
3183 // FromExpression, if defined, is evaluated to specify the value for the artifact
3184 "fromExpression"?: string
3185
3186 // GCS contains GCS artifact location details
3187 "gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifact"
3188
3189 // Git contains git artifact location details
3190 "git"?: #."io.argoproj.workflow.v1alpha1.GitArtifact"
3191
3192 // GlobalName exports an output artifact to the global scope, making it
3193 // available as io.argoproj.workflow.v1alpha1.outputs.artifacts.XXXX and in
3194 // workflow.status.outputs.artifacts
3195 "globalName"?: string
3196
3197 // HDFS contains HDFS artifact location details
3198 "hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact"
3199
3200 // HTTP contains HTTP artifact location details
3201 "http"?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact"
3202
3203 // mode bits to use on this file, must be a value between 0 and 0777. Set when
3204 // loading input artifacts. It is recommended to set the mode value to ensure
3205 // the artifact has the expected permissions in your container.
3206 "mode"?: int
3207
3208 // name of the artifact. must be unique within a template's inputs/outputs.
3209 "name"!: string
3210
3211 // Make Artifacts optional, if Artifacts doesn't generate or exist
3212 "optional"?: bool
3213
3214 // OSS contains OSS artifact location details
3215 "oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifact"
3216
3217 // Path is the container path to the artifact
3218 "path"?: string
3219
3220 // Plugin contains plugin artifact location details
3221 "plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifact"
3222
3223 // Raw contains raw artifact location details
3224 "raw"?: #."io.argoproj.workflow.v1alpha1.RawArtifact"
3225
3226 // If mode is set, apply the permission recursively into the artifact if it is a folder
3227 "recurseMode"?: bool
3228
3229 // S3 contains S3 artifact location details
3230 "s3"?: #."io.argoproj.workflow.v1alpha1.S3Artifact"
3231
3232 // SubPath allows an artifact to be sourced from a subpath within the specified source
3233 "subPath"?: string
3234 }
3235
3236 // ArtifactGC describes how to delete artifacts from completed Workflows - this
3237 // is embedded into the WorkflowLevelArtifactGC, and also used for individual
3238 // Artifacts to override that as needed
3239 #: "io.argoproj.workflow.v1alpha1.ArtifactGC": {
3240 // PodMetadata is an optional field for specifying the Labels and Annotations
3241 // that should be assigned to the Pod doing the deletion
3242 "podMetadata"?: #."io.argoproj.workflow.v1alpha1.Metadata"
3243
3244 // ServiceAccountName is an optional field for specifying the Service Account
3245 // that should be assigned to the Pod doing the deletion
3246 "serviceAccountName"?: string
3247
3248 // Strategy is the strategy to use.
3249 "strategy"?: string
3250 }
3251
3252 // ArtifactLocation describes a location for a single or multiple artifacts. It
3253 // is used as single artifact in the context of inputs/outputs (e.g.
3254 // outputs.artifacts.artname). It is also used to describe the location of
3255 // multiple artifacts such as the archive location of a single workflow step,
3256 // which the executor will use as a default location to store its files.
3257 #: "io.argoproj.workflow.v1alpha1.ArtifactLocation": {
3258 // ArchiveLogs indicates if the container logs should be archived
3259 "archiveLogs"?: bool
3260
3261 // Artifactory contains artifactory artifact location details
3262 "artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact"
3263
3264 // Azure contains Azure Storage artifact location details
3265 "azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifact"
3266
3267 // GCS contains GCS artifact location details
3268 "gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifact"
3269
3270 // Git contains git artifact location details
3271 "git"?: #."io.argoproj.workflow.v1alpha1.GitArtifact"
3272
3273 // HDFS contains HDFS artifact location details
3274 "hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact"
3275
3276 // HTTP contains HTTP artifact location details
3277 "http"?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact"
3278
3279 // OSS contains OSS artifact location details
3280 "oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifact"
3281
3282 // Plugin contains plugin artifact location details
3283 "plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifact"
3284
3285 // Raw contains raw artifact location details
3286 "raw"?: #."io.argoproj.workflow.v1alpha1.RawArtifact"
3287
3288 // S3 contains S3 artifact location details
3289 "s3"?: #."io.argoproj.workflow.v1alpha1.S3Artifact"
3290 }
3291
3292 // ArtifactPaths expands a step from a collection of artifacts
3293 #: "io.argoproj.workflow.v1alpha1.ArtifactPaths": {
3294 // Archive controls how the artifact will be saved to the artifact repository.
3295 "archive"?: #."io.argoproj.workflow.v1alpha1.ArchiveStrategy"
3296
3297 // ArchiveLogs indicates if the container logs should be archived
3298 "archiveLogs"?: bool
3299
3300 // ArtifactGC describes the strategy to use when to deleting an artifact from
3301 // completed or deleted workflows
3302 "artifactGC"?: #."io.argoproj.workflow.v1alpha1.ArtifactGC"
3303
3304 // Artifactory contains artifactory artifact location details
3305 "artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact"
3306
3307 // Azure contains Azure Storage artifact location details
3308 "azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifact"
3309
3310 // Has this been deleted?
3311 "deleted"?: bool
3312
3313 // From allows an artifact to reference an artifact from a previous step
3314 "from"?: string
3315
3316 // FromExpression, if defined, is evaluated to specify the value for the artifact
3317 "fromExpression"?: string
3318
3319 // GCS contains GCS artifact location details
3320 "gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifact"
3321
3322 // Git contains git artifact location details
3323 "git"?: #."io.argoproj.workflow.v1alpha1.GitArtifact"
3324
3325 // GlobalName exports an output artifact to the global scope, making it
3326 // available as io.argoproj.workflow.v1alpha1.outputs.artifacts.XXXX and in
3327 // workflow.status.outputs.artifacts
3328 "globalName"?: string
3329
3330 // HDFS contains HDFS artifact location details
3331 "hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact"
3332
3333 // HTTP contains HTTP artifact location details
3334 "http"?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact"
3335
3336 // mode bits to use on this file, must be a value between 0 and 0777. Set when
3337 // loading input artifacts. It is recommended to set the mode value to ensure
3338 // the artifact has the expected permissions in your container.
3339 "mode"?: int
3340
3341 // name of the artifact. must be unique within a template's inputs/outputs.
3342 "name"!: string
3343
3344 // Make Artifacts optional, if Artifacts doesn't generate or exist
3345 "optional"?: bool
3346
3347 // OSS contains OSS artifact location details
3348 "oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifact"
3349
3350 // Path is the container path to the artifact
3351 "path"?: string
3352
3353 // Plugin contains plugin artifact location details
3354 "plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifact"
3355
3356 // Raw contains raw artifact location details
3357 "raw"?: #."io.argoproj.workflow.v1alpha1.RawArtifact"
3358
3359 // If mode is set, apply the permission recursively into the artifact if it is a folder
3360 "recurseMode"?: bool
3361
3362 // S3 contains S3 artifact location details
3363 "s3"?: #."io.argoproj.workflow.v1alpha1.S3Artifact"
3364
3365 // SubPath allows an artifact to be sourced from a subpath within the specified source
3366 "subPath"?: string
3367 }
3368
3369 // ArtifactRepository represents an artifact repository in which a controller
3370 // will store its artifacts
3371 #: "io.argoproj.workflow.v1alpha1.ArtifactRepository": {
3372 // ArchiveLogs enables log archiving
3373 "archiveLogs"?: bool
3374
3375 // Artifactory stores artifacts to JFrog Artifactory
3376 "artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifactRepository"
3377
3378 // Azure stores artifact in an Azure Storage account
3379 "azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifactRepository"
3380
3381 // GCS stores artifact in a GCS object store
3382 "gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifactRepository"
3383
3384 // HDFS stores artifacts in HDFS
3385 "hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifactRepository"
3386
3387 // OSS stores artifact in a OSS-compliant object store
3388 "oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifactRepository"
3389
3390 // Plugin stores artifact in a plugin-specific artifact repository
3391 "plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifactRepository"
3392
3393 // S3 stores artifact in a S3-compliant object store
3394 "s3"?: #."io.argoproj.workflow.v1alpha1.S3ArtifactRepository"
3395 }
3396
3397 #: "io.argoproj.workflow.v1alpha1.ArtifactRepositoryRef": {
3398 // The name of the config map. Defaults to "artifact-repositories".
3399 "configMap"?: string
3400
3401 // The config map key. Defaults to the value of the
3402 // "workflows.argoproj.io/default-artifact-repository" annotation.
3403 "key"?: string
3404 }
3405
3406 #: "io.argoproj.workflow.v1alpha1.ArtifactRepositoryRefStatus": {
3407 // The repository the workflow will use. This maybe empty before v3.1.
3408 "artifactRepository"?: #."io.argoproj.workflow.v1alpha1.ArtifactRepository"
3409
3410 // The name of the config map. Defaults to "artifact-repositories".
3411 "configMap"?: string
3412
3413 // If this ref represents the default artifact repository, rather than a config map.
3414 "default"?: bool
3415
3416 // The config map key. Defaults to the value of the
3417 // "workflows.argoproj.io/default-artifact-repository" annotation.
3418 "key"?: string
3419
3420 // The namespace of the config map. Defaults to the workflow's namespace, or the
3421 // controller's namespace (if found).
3422 "namespace"?: string
3423 }
3424
3425 // ArtifactoryArtifact is the location of an artifactory artifact
3426 #: "io.argoproj.workflow.v1alpha1.ArtifactoryArtifact": {
3427 // PasswordSecret is the secret selector to the repository password
3428 "passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3429
3430 // URL of the artifact
3431 "url"!: string
3432
3433 // UsernameSecret is the secret selector to the repository username
3434 "usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3435 }
3436
3437 // ArtifactoryArtifactRepository defines the controller configuration for an
3438 // artifactory artifact repository
3439 #: "io.argoproj.workflow.v1alpha1.ArtifactoryArtifactRepository": {
3440 // KeyFormat defines the format of how to store keys and can reference workflow variables.
3441 "keyFormat"?: string
3442
3443 // PasswordSecret is the secret selector to the repository password
3444 "passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3445
3446 // RepoURL is the url for artifactory repo.
3447 "repoURL"?: string
3448
3449 // UsernameSecret is the secret selector to the repository username
3450 "usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3451 }
3452
3453 // AzureArtifact is the location of an Azure Storage artifact
3454 #: "io.argoproj.workflow.v1alpha1.AzureArtifact": {
3455 // AccountKeySecret is the secret selector to the Azure Blob Storage account access key
3456 "accountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3457
3458 // Blob is the blob name (i.e., path) in the container where the artifact resides
3459 "blob"!: string
3460
3461 // Container is the container where resources will be stored
3462 "container"!: string
3463
3464 // Endpoint is the service url associated with an account. It is most likely
3465 // "https://<ACCOUNT_NAME>.blob.core.windows.net"
3466 "endpoint"!: string
3467
3468 // UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
3469 "useSDKCreds"?: bool
3470 }
3471
3472 // AzureArtifactRepository defines the controller configuration for an Azure
3473 // Blob Storage artifact repository
3474 #: "io.argoproj.workflow.v1alpha1.AzureArtifactRepository": {
3475 // AccountKeySecret is the secret selector to the Azure Blob Storage account access key
3476 "accountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3477
3478 // BlobNameFormat is defines the format of how to store blob names. Can reference workflow variables
3479 "blobNameFormat"?: string
3480
3481 // Container is the container where resources will be stored
3482 "container"!: string
3483
3484 // Endpoint is the service url associated with an account. It is most likely
3485 // "https://<ACCOUNT_NAME>.blob.core.windows.net"
3486 "endpoint"!: string
3487
3488 // UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
3489 "useSDKCreds"?: bool
3490 }
3491
3492 // Backoff is a backoff strategy to use within retryStrategy
3493 #: "io.argoproj.workflow.v1alpha1.Backoff": {
3494 // Cap is a limit on revised values of the duration parameter. If a
3495 // multiplication by the factor parameter would make the duration exceed the
3496 // cap then the duration is set to the cap
3497 "cap"?: string
3498
3499 // Duration is the amount to back off. Default unit is seconds, but could also
3500 // be a duration (e.g. "2m", "1h")
3501 "duration"?: string
3502
3503 // Factor is a factor to multiply the base duration after each failed retry
3504 "factor"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
3505
3506 // MaxDuration is the maximum amount of time allowed for a workflow in the
3507 // backoff strategy. It is important to note that if the workflow template
3508 // includes activeDeadlineSeconds, the pod's deadline is initially set with
3509 // activeDeadlineSeconds. However, when the workflow fails, the pod's deadline
3510 // is then overridden by maxDuration. This ensures that the workflow does not
3511 // exceed the specified maximum duration when retries are involved.
3512 "maxDuration"?: string
3513 }
3514
3515 // BasicAuth describes the secret selectors required for basic authentication
3516 #: "io.argoproj.workflow.v1alpha1.BasicAuth": {
3517 // PasswordSecret is the secret selector to the repository password
3518 "passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3519
3520 // UsernameSecret is the secret selector to the repository username
3521 "usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3522 }
3523
3524 // Cache is the configuration for the type of cache to be used
3525 #: {
3526 "io.argoproj.workflow.v1alpha1.Cache": {
3527 // ConfigMap sets a ConfigMap-based cache
3528 "configMap"!: #."io.k8s.api.core.v1.LocalObjectReference"
3529 }
3530 }
3531
3532 // ClientCertAuth holds necessary information for client authentication via certificates
3533 #: "io.argoproj.workflow.v1alpha1.ClientCertAuth": {
3534 "clientCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3535 "clientKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3536 }
3537
3538 // ClusterWorkflowTemplate is the definition of a workflow template resource in cluster scope
3539 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate": {
3540 // APIVersion defines the versioned schema of this representation of an object.
3541 // Servers should convert recognized schemas to the latest internal value, and
3542 // may reject unrecognized values. More info:
3543 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
3544 "apiVersion"?: "argoproj.io/v1alpha1"
3545
3546 // Kind is a string value representing the REST resource this object represents.
3547 // Servers may infer this from the endpoint the client submits requests to.
3548 // Cannot be updated. In CamelCase. More info:
3549 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
3550 "kind"?: "ClusterWorkflowTemplate"
3551 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
3552 "spec"!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
3553 }
3554
3555 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateCreateRequest": {
3556 "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
3557 "template"?: #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"
3558 }
3559
3560 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateDeleteResponse": {}
3561
3562 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateLintRequest": {
3563 "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
3564 "template"?: #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"
3565 }
3566
3567 // ClusterWorkflowTemplateList is list of ClusterWorkflowTemplate resources
3568 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateList": {
3569 // APIVersion defines the versioned schema of this representation of an object.
3570 // Servers should convert recognized schemas to the latest internal value, and
3571 // may reject unrecognized values. More info:
3572 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
3573 "apiVersion"?: string
3574 "items"!: [...#."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"]
3575
3576 // Kind is a string value representing the REST resource this object represents.
3577 // Servers may infer this from the endpoint the client submits requests to.
3578 // Cannot be updated. In CamelCase. More info:
3579 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
3580 "kind"?: string
3581 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
3582 }
3583
3584 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateUpdateRequest": {
3585 // DEPRECATED: This field is ignored.
3586 "name"?: string
3587 "template"?: #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"
3588 }
3589
3590 #: "io.argoproj.workflow.v1alpha1.CollectEventRequest": "name"?: string
3591
3592 #: "io.argoproj.workflow.v1alpha1.CollectEventResponse": {}
3593
3594 // Column is a custom column that will be exposed in the Workflow List View.
3595 #: "io.argoproj.workflow.v1alpha1.Column": {
3596 // The key of the label or annotation, e.g., "workflows.argoproj.io/completed".
3597 "key"!: string
3598
3599 // The name of this column, e.g., "Workflow Completed".
3600 "name"!: string
3601
3602 // The type of this column, "label" or "annotation".
3603 "type"!: string
3604 }
3605
3606 #: "io.argoproj.workflow.v1alpha1.Condition": {
3607 // Message is the condition message
3608 "message"?: string
3609
3610 // Status is the status of the condition
3611 "status"?: string
3612
3613 // Type is the type of condition
3614 "type"?: string
3615 }
3616
3617 #: "io.argoproj.workflow.v1alpha1.ContainerNode": {
3618 // Arguments to the entrypoint. The container image's CMD is used if this is not
3619 // provided. Variable references $(VAR_NAME) are expanded using the container's
3620 // environment. If a variable cannot be resolved, the reference in the input
3621 // string will be unchanged. Double $$ are reduced to a single $, which allows
3622 // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
3623 // string literal "$(VAR_NAME)". Escaped references will never be expanded,
3624 // regardless of whether the variable exists or not. Cannot be updated. More
3625 // info:
3626 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
3627 "args"?: [...string]
3628
3629 // Entrypoint array. Not executed within a shell. The container image's
3630 // ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME)
3631 // are expanded using the container's environment. If a variable cannot be
3632 // resolved, the reference in the input string will be unchanged. Double $$ are
3633 // reduced to a single $, which allows for escaping the $(VAR_NAME) syntax:
3634 // i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped
3635 // references will never be expanded, regardless of whether the variable exists
3636 // or not. Cannot be updated. More info:
3637 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
3638 "command"?: [...string]
3639 "dependencies"?: [...string]
3640
3641 // List of environment variables to set in the container. Cannot be updated.
3642 "env"?: [...#."io.k8s.api.core.v1.EnvVar"]
3643
3644 // List of sources to populate environment variables in the container. The keys
3645 // defined within a source must be a C_IDENTIFIER. All invalid keys will be
3646 // reported as an event when the container is starting. When a key exists in
3647 // multiple sources, the value associated with the last source will take
3648 // precedence. Values defined by an Env with a duplicate key will take
3649 // precedence. Cannot be updated.
3650 "envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
3651
3652 // Container image name. More info:
3653 // https://kubernetes.io/docs/concepts/containers/images This field is optional
3654 // to allow higher level config management to default or override container
3655 // images in workload controllers like Deployments and StatefulSets.
3656 "image"?: string
3657
3658 // Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if
3659 // :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More
3660 // info: https://kubernetes.io/docs/concepts/containers/images#updating-images
3661 "imagePullPolicy"?: string
3662
3663 // Actions that the management system should take in response to container
3664 // lifecycle events. Cannot be updated.
3665 "lifecycle"?: #."io.k8s.api.core.v1.Lifecycle"
3666
3667 // Periodic probe of container liveness. Container will be restarted if the
3668 // probe fails. Cannot be updated. More info:
3669 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
3670 "livenessProbe"?: #."io.k8s.api.core.v1.Probe"
3671
3672 // Name of the container specified as a DNS_LABEL. Each container in a pod must
3673 // have a unique name (DNS_LABEL). Cannot be updated.
3674 "name"!: string
3675
3676 // List of ports to expose from the container. Not specifying a port here DOES
3677 // NOT prevent that port from being exposed. Any port which is listening on the
3678 // default "0.0.0.0" address inside a container will be accessible from the
3679 // network. Modifying this array with strategic merge patch may corrupt the
3680 // data. For more information See
3681 // https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.
3682 "ports"?: [...#."io.k8s.api.core.v1.ContainerPort"]
3683
3684 // Periodic probe of container service readiness. Container will be removed from
3685 // service endpoints if the probe fails. Cannot be updated. More info:
3686 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
3687 "readinessProbe"?: #."io.k8s.api.core.v1.Probe"
3688
3689 // Resources resize policy for the container.
3690 "resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
3691
3692 // Compute Resources required by this container. Cannot be updated. More info:
3693 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
3694 "resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
3695
3696 // RestartPolicy defines the restart behavior of individual containers in a pod.
3697 // This field may only be set for init containers, and the only allowed value
3698 // is "Always". For non-init containers or when this field is not specified,
3699 // the restart behavior is defined by the Pod's restart policy and the
3700 // container type. Setting the RestartPolicy as "Always" for the init container
3701 // will have the following effect: this init container will be continually
3702 // restarted on exit until all regular containers have terminated. Once all
3703 // regular containers have completed, all init containers with restartPolicy
3704 // "Always" will be shut down. This lifecycle differs from normal init
3705 // containers and is often referred to as a "sidecar" container. Although this
3706 // init container still starts in the init container sequence, it does not wait
3707 // for the container to complete before proceeding to the next init container.
3708 // Instead, the next init container starts immediately after this init
3709 // container is started, or after any startupProbe has successfully completed.
3710 "restartPolicy"?: string
3711
3712 // SecurityContext defines the security options the container should be run
3713 // with. If set, the fields of SecurityContext override the equivalent fields
3714 // of PodSecurityContext. More info:
3715 // https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
3716 "securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
3717
3718 // StartupProbe indicates that the Pod has successfully initialized. If
3719 // specified, no other probes are executed until this completes successfully.
3720 // If this probe fails, the Pod will be restarted, just as if the livenessProbe
3721 // failed. This can be used to provide different probe parameters at the
3722 // beginning of a Pod's lifecycle, when it might take a long time to load data
3723 // or warm a cache, than during steady-state operation. This cannot be updated.
3724 // More info:
3725 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
3726 "startupProbe"?: #."io.k8s.api.core.v1.Probe"
3727
3728 // Whether this container should allocate a buffer for stdin in the container
3729 // runtime. If this is not set, reads from stdin in the container will always
3730 // result in EOF. Default is false.
3731 "stdin"?: bool
3732
3733 // Whether the container runtime should close the stdin channel after it has
3734 // been opened by a single attach. When stdin is true the stdin stream will
3735 // remain open across multiple attach sessions. If stdinOnce is set to true,
3736 // stdin is opened on container start, is empty until the first client attaches
3737 // to stdin, and then remains open and accepts data until the client
3738 // disconnects, at which time stdin is closed and remains closed until the
3739 // container is restarted. If this flag is false, a container processes that
3740 // reads from stdin will never receive an EOF. Default is false
3741 "stdinOnce"?: bool
3742
3743 // Optional: Path at which the file to which the container's termination message
3744 // will be written is mounted into the container's filesystem. Message written
3745 // is intended to be brief final status, such as an assertion failure message.
3746 // Will be truncated by the node if greater than 4096 bytes. The total message
3747 // length across all containers will be limited to 12kb. Defaults to
3748 // /dev/termination-log. Cannot be updated.
3749 "terminationMessagePath"?: string
3750
3751 // Indicate how the termination message should be populated. File will use the
3752 // contents of terminationMessagePath to populate the container status message
3753 // on both success and failure. FallbackToLogsOnError will use the last chunk
3754 // of container log output if the termination message file is empty and the
3755 // container exited with an error. The log output is limited to 2048 bytes or
3756 // 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
3757 "terminationMessagePolicy"?: string
3758
3759 // Whether this container should allocate a TTY for itself, also requires
3760 // 'stdin' to be true. Default is false.
3761 "tty"?: bool
3762
3763 // volumeDevices is the list of block devices to be used by the container.
3764 "volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"]
3765
3766 // Pod volumes to mount into the container's filesystem. Cannot be updated.
3767 "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
3768
3769 // Container's working directory. If not specified, the container runtime's
3770 // default will be used, which might be configured in the container image.
3771 // Cannot be updated.
3772 "workingDir"?: string
3773 }
3774
3775 // ContainerSetRetryStrategy provides controls on how to retry a container set
3776 #: "io.argoproj.workflow.v1alpha1.ContainerSetRetryStrategy": {
3777 // Duration is the time between each retry, examples values are "300ms", "1s" or
3778 // "5m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
3779 "duration"?: string
3780
3781 // Retries is the maximum number of retry attempts for each container. It does
3782 // not include the first, original attempt; the maximum number of total
3783 // attempts will be `retries + 1`.
3784 "retries"!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
3785 }
3786
3787 #: "io.argoproj.workflow.v1alpha1.ContainerSetTemplate": {
3788 "containers"!: [...#."io.argoproj.workflow.v1alpha1.ContainerNode"]
3789
3790 // RetryStrategy describes how to retry container nodes if the container set
3791 // fails. Note that this works differently from the template-level
3792 // `retryStrategy` as it is a process-level retry that does not create new Pods
3793 // or containers.
3794 "retryStrategy"?: #."io.argoproj.workflow.v1alpha1.ContainerSetRetryStrategy"
3795 "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
3796 }
3797
3798 // ContinueOn defines if a workflow should continue even if a task or step
3799 // fails/errors. It can be specified if the workflow should continue when the
3800 // pod errors, fails or both.
3801 #: "io.argoproj.workflow.v1alpha1.ContinueOn": {
3802 "error"?: bool
3803 "failed"?: bool
3804 }
3805
3806 // Counter is a Counter prometheus metric
3807 #: {
3808 "io.argoproj.workflow.v1alpha1.Counter": {
3809 // Value is the value of the metric
3810 "value"!: string
3811 }
3812 }
3813
3814 #: "io.argoproj.workflow.v1alpha1.CreateCronWorkflowRequest": {
3815 "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
3816 "cronWorkflow"?: #."io.argoproj.workflow.v1alpha1.CronWorkflow"
3817 "namespace"?: string
3818 }
3819
3820 // CreateS3BucketOptions options used to determine automatic automatic bucket-creation process
3821 #: {
3822 "io.argoproj.workflow.v1alpha1.CreateS3BucketOptions": {
3823 // ObjectLocking Enable object locking
3824 "objectLocking"?: bool
3825 }
3826 }
3827
3828 // CronWorkflow is the definition of a scheduled workflow resource
3829 #: "io.argoproj.workflow.v1alpha1.CronWorkflow": {
3830 // APIVersion defines the versioned schema of this representation of an object.
3831 // Servers should convert recognized schemas to the latest internal value, and
3832 // may reject unrecognized values. More info:
3833 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
3834 "apiVersion"?: "argoproj.io/v1alpha1"
3835
3836 // Kind is a string value representing the REST resource this object represents.
3837 // Servers may infer this from the endpoint the client submits requests to.
3838 // Cannot be updated. In CamelCase. More info:
3839 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
3840 "kind"?: "CronWorkflow"
3841 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
3842 "spec"!: #."io.argoproj.workflow.v1alpha1.CronWorkflowSpec"
3843 "status"?: #."io.argoproj.workflow.v1alpha1.CronWorkflowStatus"
3844 }
3845
3846 #: "io.argoproj.workflow.v1alpha1.CronWorkflowDeletedResponse": {}
3847
3848 // CronWorkflowList is list of CronWorkflow resources
3849 #: "io.argoproj.workflow.v1alpha1.CronWorkflowList": {
3850 // APIVersion defines the versioned schema of this representation of an object.
3851 // Servers should convert recognized schemas to the latest internal value, and
3852 // may reject unrecognized values. More info:
3853 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
3854 "apiVersion"?: string
3855 "items"!: [...#."io.argoproj.workflow.v1alpha1.CronWorkflow"]
3856
3857 // Kind is a string value representing the REST resource this object represents.
3858 // Servers may infer this from the endpoint the client submits requests to.
3859 // Cannot be updated. In CamelCase. More info:
3860 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
3861 "kind"?: string
3862 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
3863 }
3864
3865 #: "io.argoproj.workflow.v1alpha1.CronWorkflowResumeRequest": {
3866 "name"?: string
3867 "namespace"?: string
3868 }
3869
3870 // CronWorkflowSpec is the specification of a CronWorkflow
3871 #: "io.argoproj.workflow.v1alpha1.CronWorkflowSpec": {
3872 // ConcurrencyPolicy is the K8s-style concurrency policy that will be used
3873 "concurrencyPolicy"?: string
3874
3875 // FailedJobsHistoryLimit is the number of failed jobs to be kept at a time
3876 "failedJobsHistoryLimit"?: int
3877
3878 // v3.6 and after: Schedules is a list of schedules to run the Workflow in Cron format
3879 "schedules"!: [...string]
3880
3881 // StartingDeadlineSeconds is the K8s-style deadline that will limit the time a
3882 // CronWorkflow will be run after its original scheduled time if it is missed.
3883 "startingDeadlineSeconds"?: int
3884
3885 // v3.6 and after: StopStrategy defines if the CronWorkflow should stop
3886 // scheduling based on a condition
3887 "stopStrategy"?: #."io.argoproj.workflow.v1alpha1.StopStrategy"
3888
3889 // SuccessfulJobsHistoryLimit is the number of successful jobs to be kept at a time
3890 "successfulJobsHistoryLimit"?: int
3891
3892 // Suspend is a flag that will stop new CronWorkflows from running if set to true
3893 "suspend"?: bool
3894
3895 // Timezone is the timezone against which the cron schedule will be calculated,
3896 // e.g. "Asia/Tokyo". Default is machine's local time.
3897 "timezone"?: string
3898
3899 // v3.6 and after: When is an expression that determines if a run should be scheduled.
3900 "when"?: string
3901
3902 // WorkflowMetadata contains some metadata of the workflow to be run
3903 "workflowMetadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
3904
3905 // WorkflowSpec is the spec of the workflow to be run
3906 "workflowSpec"!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
3907 }
3908
3909 // CronWorkflowStatus is the status of a CronWorkflow
3910 #: "io.argoproj.workflow.v1alpha1.CronWorkflowStatus": {
3911 // Active is a list of active workflows stemming from this CronWorkflow
3912 "active"?: [...#."io.k8s.api.core.v1.ObjectReference"]
3913
3914 // Conditions is a list of conditions the CronWorkflow may have
3915 "conditions"?: [...#."io.argoproj.workflow.v1alpha1.Condition"]
3916
3917 // v3.6 and after: Failed counts how many times child workflows failed
3918 "failed"?: int
3919
3920 // LastScheduleTime is the last time the CronWorkflow was scheduled
3921 "lastScheduledTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
3922
3923 // v3.6 and after: Phase is an enum of Active or Stopped. It changes to Stopped
3924 // when stopStrategy.expression is true
3925 "phase"?: string
3926
3927 // v3.6 and after: Succeeded counts how many times child workflows succeeded
3928 "succeeded"?: int
3929 }
3930
3931 #: "io.argoproj.workflow.v1alpha1.CronWorkflowSuspendRequest": {
3932 "name"?: string
3933 "namespace"?: string
3934 }
3935
3936 // DAGTask represents a node in the graph during DAG execution Note: CEL
3937 // validation cannot check withItems (Schemaless) or inline
3938 // (PreserveUnknownFields) fields.
3939 #: "io.argoproj.workflow.v1alpha1.DAGTask": {
3940 // Arguments are the parameter and artifact arguments to the template
3941 "arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
3942
3943 // ContinueOn makes argo to proceed with the following step even if this step
3944 // fails. Errors and Failed states can be specified
3945 "continueOn"?: #."io.argoproj.workflow.v1alpha1.ContinueOn"
3946
3947 // Dependencies are name of other targets which this depends on
3948 "dependencies"?: [...string]
3949
3950 // Depends are name of other targets which this depends on
3951 "depends"?: string
3952
3953 // Hooks hold the lifecycle hook which is invoked at lifecycle of task,
3954 // irrespective of the success, failure, or error status of the primary task
3955 "hooks"?: [string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook"
3956
3957 // Inline is the template. Template must be empty if this is declared (and
3958 // vice-versa). Note: As mentioned in the corresponding definition in
3959 // WorkflowStep, this struct is defined recursively, so we need
3960 // "x-kubernetes-preserve-unknown-fields: true" in the validation schema.
3961 "inline"?: #."io.argoproj.workflow.v1alpha1.Template"
3962
3963 // Name is the name of the target
3964 "name"!: string
3965
3966 // OnExit is a template reference which is invoked at the end of the template,
3967 // irrespective of the success, failure, or error of the primary template.
3968 // DEPRECATED: Use Hooks[exit].Template instead.
3969 "onExit"?: string
3970
3971 // Name of template to execute
3972 "template"?: string
3973
3974 // TemplateRef is the reference to the template resource to execute.
3975 "templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
3976
3977 // When is an expression in which the task should conditionally execute
3978 "when"?: string
3979
3980 // WithItems expands a task into multiple parallel tasks from the items in the
3981 // list Note: The structure of WithItems is free-form, so we need
3982 // "x-kubernetes-preserve-unknown-fields: true" in the validation schema.
3983 "withItems"?: [...#."io.argoproj.workflow.v1alpha1.Item"]
3984
3985 // WithParam expands a task into multiple parallel tasks from the value in the
3986 // parameter, which is expected to be a JSON list.
3987 "withParam"?: string
3988
3989 // WithSequence expands a task into a numeric sequence
3990 "withSequence"?: #."io.argoproj.workflow.v1alpha1.Sequence"
3991 }
3992
3993 // DAGTemplate is a template subtype for directed acyclic graph templates
3994 #: "io.argoproj.workflow.v1alpha1.DAGTemplate": {
3995 // This flag is for DAG logic. The DAG logic has a built-in "fail fast" feature
3996 // to stop scheduling new steps, as soon as it detects that one of the DAG
3997 // nodes is failed. Then it waits until all DAG nodes are completed before
3998 // failing the DAG itself. The FailFast flag default is true, if set to false,
3999 // it will allow a DAG to run all branches of the DAG to completion (either
4000 // success or failure), regardless of the failed outcomes of branches in the
4001 // DAG. More info and example about this feature at
4002 // https://github.com/argoproj/argo-workflows/issues/1442
4003 "failFast"?: bool
4004
4005 // Target are one or more names of targets to execute in a DAG
4006 "target"?: string
4007
4008 // Tasks are a list of DAG tasks MaxItems is an artificial limit to limit CEL
4009 // validation costs - see note at top of file
4010 "tasks"!: [...#."io.argoproj.workflow.v1alpha1.DAGTask"]
4011 }
4012
4013 // Data is a data template
4014 #: "io.argoproj.workflow.v1alpha1.Data": {
4015 // Source sources external data into a data template
4016 "source"!: #."io.argoproj.workflow.v1alpha1.DataSource"
4017
4018 // Transformation applies a set of transformations
4019 "transformation"!: [...#."io.argoproj.workflow.v1alpha1.TransformationStep"]
4020 }
4021
4022 // DataSource sources external data into a data template
4023 #: {
4024 "io.argoproj.workflow.v1alpha1.DataSource": {
4025 // ArtifactPaths is a data transformation that collects a list of artifact paths
4026 "artifactPaths"?: #."io.argoproj.workflow.v1alpha1.ArtifactPaths"
4027 }
4028 }
4029
4030 #: {
4031 "io.argoproj.workflow.v1alpha1.Event": {
4032 // Selector (https://github.com/expr-lang/expr) that we must must match the
4033 // io.argoproj.workflow.v1alpha1. E.g. `payload.message == "test"`
4034 "selector"!: string
4035 }
4036 }
4037
4038 #: "io.argoproj.workflow.v1alpha1.EventResponse": {}
4039
4040 // ExecutorConfig holds configurations of an executor container.
4041 #: {
4042 "io.argoproj.workflow.v1alpha1.ExecutorConfig": {
4043 // ServiceAccountName specifies the service account name of the executor container.
4044 "serviceAccountName"?: string
4045 }
4046 }
4047
4048 // GCSArtifact is the location of a GCS artifact
4049 #: "io.argoproj.workflow.v1alpha1.GCSArtifact": {
4050 // Bucket is the name of the bucket
4051 "bucket"?: string
4052
4053 // Key is the path in the bucket where the artifact resides
4054 "key"!: string
4055
4056 // ServiceAccountKeySecret is the secret selector to the bucket's service account key
4057 "serviceAccountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4058 }
4059
4060 // GCSArtifactRepository defines the controller configuration for a GCS artifact repository
4061 #: "io.argoproj.workflow.v1alpha1.GCSArtifactRepository": {
4062 // Bucket is the name of the bucket
4063 "bucket"?: string
4064
4065 // KeyFormat defines the format of how to store keys and can reference workflow variables.
4066 "keyFormat"?: string
4067
4068 // ServiceAccountKeySecret is the secret selector to the bucket's service account key
4069 "serviceAccountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4070 }
4071
4072 // Gauge is a Gauge prometheus metric
4073 #: "io.argoproj.workflow.v1alpha1.Gauge": {
4074 // Operation defines the operation to apply with value and the metrics' current value
4075 "operation"?: string
4076
4077 // Realtime emits this metric in real time if applicable
4078 "realtime"!: bool
4079
4080 // Value is the value to be used in the operation with the metric's current
4081 // value. If no operation is set, value is the value of the metric MaxLength is
4082 // an artificial limit to limit CEL validation costs - see note at top of file
4083 "value"!: string
4084 }
4085
4086 #: "io.argoproj.workflow.v1alpha1.GetUserInfoResponse": {
4087 "email"?: string
4088 "emailVerified"?: bool
4089 "groups"?: [...string]
4090 "issuer"?: string
4091 "name"?: string
4092 "serviceAccountName"?: string
4093 "serviceAccountNamespace"?: string
4094 "subject"?: string
4095 }
4096
4097 // GitArtifact is the location of a git artifact
4098 #: "io.argoproj.workflow.v1alpha1.GitArtifact": {
4099 // Branch is the branch to fetch when `SingleBranch` is enabled
4100 "branch"?: string
4101
4102 // Depth specifies clones/fetches should be shallow and include the given number
4103 // of commits from the branch tip
4104 "depth"?: int
4105
4106 // DisableSubmodules disables submodules during git clone
4107 "disableSubmodules"?: bool
4108
4109 // Fetch specifies a number of refs that should be fetched before checkout
4110 "fetch"?: [...string]
4111
4112 // InsecureIgnoreHostKey disables SSH strict host key checking during git clone
4113 "insecureIgnoreHostKey"?: bool
4114
4115 // InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
4116 "insecureSkipTLS"?: bool
4117
4118 // PasswordSecret is the secret selector to the repository password
4119 "passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4120
4121 // Repo is the git repository
4122 "repo"!: string
4123
4124 // Revision is the git commit, tag, branch to checkout
4125 "revision"?: string
4126
4127 // SingleBranch enables single branch clone, using the `branch` parameter
4128 "singleBranch"?: bool
4129
4130 // SSHPrivateKeySecret is the secret selector to the repository ssh private key
4131 "sshPrivateKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4132
4133 // UsernameSecret is the secret selector to the repository username
4134 "usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4135 }
4136
4137 // HDFSArtifact is the location of an HDFS artifact
4138 #: "io.argoproj.workflow.v1alpha1.HDFSArtifact": {
4139 // Addresses is accessible addresses of HDFS name nodes
4140 "addresses"?: [...string]
4141
4142 // DataTransferProtection is the protection level for HDFS data transfer. It
4143 // corresponds to the dfs.data.transfer.protection configuration in HDFS.
4144 "dataTransferProtection"?: string
4145
4146 // Force copies a file forcibly even if it exists
4147 "force"?: bool
4148
4149 // HDFSUser is the user to access HDFS file system. It is ignored if either
4150 // ccache or keytab is used.
4151 "hdfsUser"?: string
4152
4153 // KrbCCacheSecret is the secret selector for Kerberos ccache Either ccache or
4154 // keytab can be set to use Kerberos.
4155 "krbCCacheSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4156
4157 // KrbConfig is the configmap selector for Kerberos config as string It must be
4158 // set if either ccache or keytab is used.
4159 "krbConfigConfigMap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
4160
4161 // KrbKeytabSecret is the secret selector for Kerberos keytab Either ccache or
4162 // keytab can be set to use Kerberos.
4163 "krbKeytabSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4164
4165 // KrbRealm is the Kerberos realm used with Kerberos keytab It must be set if keytab is used.
4166 "krbRealm"?: string
4167
4168 // KrbServicePrincipalName is the principal name of Kerberos service It must be
4169 // set if either ccache or keytab is used.
4170 "krbServicePrincipalName"?: string
4171
4172 // KrbUsername is the Kerberos username used with Kerberos keytab It must be set if keytab is used.
4173 "krbUsername"?: string
4174
4175 // Path is a file path in HDFS
4176 "path"!: string
4177 }
4178
4179 // HDFSArtifactRepository defines the controller configuration for an HDFS artifact repository
4180 #: "io.argoproj.workflow.v1alpha1.HDFSArtifactRepository": {
4181 // Addresses is accessible addresses of HDFS name nodes
4182 "addresses"?: [...string]
4183
4184 // DataTransferProtection is the protection level for HDFS data transfer. It
4185 // corresponds to the dfs.data.transfer.protection configuration in HDFS.
4186 "dataTransferProtection"?: string
4187
4188 // Force copies a file forcibly even if it exists
4189 "force"?: bool
4190
4191 // HDFSUser is the user to access HDFS file system. It is ignored if either
4192 // ccache or keytab is used.
4193 "hdfsUser"?: string
4194
4195 // KrbCCacheSecret is the secret selector for Kerberos ccache Either ccache or
4196 // keytab can be set to use Kerberos.
4197 "krbCCacheSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4198
4199 // KrbConfig is the configmap selector for Kerberos config as string It must be
4200 // set if either ccache or keytab is used.
4201 "krbConfigConfigMap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
4202
4203 // KrbKeytabSecret is the secret selector for Kerberos keytab Either ccache or
4204 // keytab can be set to use Kerberos.
4205 "krbKeytabSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4206
4207 // KrbRealm is the Kerberos realm used with Kerberos keytab It must be set if keytab is used.
4208 "krbRealm"?: string
4209
4210 // KrbServicePrincipalName is the principal name of Kerberos service It must be
4211 // set if either ccache or keytab is used.
4212 "krbServicePrincipalName"?: string
4213
4214 // KrbUsername is the Kerberos username used with Kerberos keytab It must be set if keytab is used.
4215 "krbUsername"?: string
4216
4217 // PathFormat is defines the format of path to store a file. Can reference workflow variables
4218 "pathFormat"?: string
4219 }
4220
4221 #: "io.argoproj.workflow.v1alpha1.HTTP": {
4222 // Body is content of the HTTP Request
4223 "body"?: string
4224
4225 // BodyFrom is content of the HTTP Request as Bytes
4226 "bodyFrom"?: #."io.argoproj.workflow.v1alpha1.HTTPBodySource"
4227
4228 // Headers are an optional list of headers to send with HTTP requests
4229 "headers"?: [...#."io.argoproj.workflow.v1alpha1.HTTPHeader"]
4230
4231 // InsecureSkipVerify is a bool when if set to true will skip TLS verification for the HTTP client
4232 "insecureSkipVerify"?: bool
4233
4234 // Method is HTTP methods for HTTP Request
4235 "method"?: string
4236
4237 // SuccessCondition is an expression if evaluated to true is considered successful
4238 "successCondition"?: string
4239
4240 // TimeoutSeconds is request timeout for HTTP Request. Default is 30 seconds
4241 "timeoutSeconds"?: int
4242
4243 // URL of the HTTP Request
4244 "url"!: string
4245 }
4246
4247 // HTTPArtifact allows a file served on HTTP to be placed as an input artifact in a container
4248 #: "io.argoproj.workflow.v1alpha1.HTTPArtifact": {
4249 // Auth contains information for client authentication
4250 "auth"?: #."io.argoproj.workflow.v1alpha1.HTTPAuth"
4251
4252 // Headers are an optional list of headers to send with HTTP requests for artifacts
4253 "headers"?: [...#."io.argoproj.workflow.v1alpha1.Header"]
4254
4255 // URL of the artifact
4256 "url"!: string
4257 }
4258
4259 #: "io.argoproj.workflow.v1alpha1.HTTPAuth": {
4260 "basicAuth"?: #."io.argoproj.workflow.v1alpha1.BasicAuth"
4261 "clientCert"?: #."io.argoproj.workflow.v1alpha1.ClientCertAuth"
4262 "oauth2"?: #."io.argoproj.workflow.v1alpha1.OAuth2Auth"
4263 }
4264
4265 // HTTPBodySource contains the source of the HTTP body.
4266 #: "io.argoproj.workflow.v1alpha1.HTTPBodySource": "bytes"?: string
4267
4268 #: "io.argoproj.workflow.v1alpha1.HTTPHeader": {
4269 "name"!: string
4270 "value"?: string
4271 "valueFrom"?: #."io.argoproj.workflow.v1alpha1.HTTPHeaderSource"
4272 }
4273
4274 #: "io.argoproj.workflow.v1alpha1.HTTPHeaderSource": "secretKeyRef"?: #."io.k8s.api.core.v1.SecretKeySelector"
4275
4276 // Header indicate a key-value request header to be used when fetching artifacts over HTTP
4277 #: "io.argoproj.workflow.v1alpha1.Header": {
4278 // Name is the header name
4279 "name"!: string
4280
4281 // Value is the literal value to use for the header
4282 "value"!: string
4283 }
4284
4285 // Histogram is a Histogram prometheus metric
4286 #: "io.argoproj.workflow.v1alpha1.Histogram": {
4287 // Buckets is a list of bucket divisors for the histogram
4288 "buckets"!: [...#."io.argoproj.workflow.v1alpha1.Amount"]
4289
4290 // Value is the value of the metric
4291 "value"!: string
4292 }
4293
4294 #: "io.argoproj.workflow.v1alpha1.InfoResponse": {
4295 "columns"?: [...#."io.argoproj.workflow.v1alpha1.Column"]
4296 "links"?: [...#."io.argoproj.workflow.v1alpha1.Link"]
4297 "managedNamespace"?: string
4298
4299 // which modals to show
4300 "modals"?: [string]: bool
4301 "navColor"?: string
4302 }
4303
4304 // Inputs are the mechanism for passing parameters, artifacts, volumes from one template to another
4305 #: "io.argoproj.workflow.v1alpha1.Inputs": {
4306 // Artifact are a list of artifacts passed as inputs
4307 "artifacts"?: [...#."io.argoproj.workflow.v1alpha1.Artifact"]
4308
4309 // Parameters are a list of parameters passed as inputs MaxItems is an
4310 // artificial limit to limit CEL validation costs - see note at top of file
4311 "parameters"?: [...#."io.argoproj.workflow.v1alpha1.Parameter"]
4312 }
4313
4314 // Item expands a single workflow step into multiple parallel steps The value of
4315 // Item can be a map, string, bool, or number
4316 #: "io.argoproj.workflow.v1alpha1.Item": _
4317
4318 // LabelKeys is list of keys
4319 #: "io.argoproj.workflow.v1alpha1.LabelKeys": "items"?: [...string]
4320
4321 #: "io.argoproj.workflow.v1alpha1.LabelValueFrom": "expression"!: string
4322
4323 // Labels is list of workflow labels
4324 #: "io.argoproj.workflow.v1alpha1.LabelValues": "items"?: [...string]
4325
4326 #: "io.argoproj.workflow.v1alpha1.LifecycleHook": {
4327 // Arguments hold arguments to the template
4328 "arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
4329
4330 // Expression is a condition expression for when a node will be retried. If it
4331 // evaluates to false, the node will not be retried and the retry strategy will
4332 // be ignored
4333 "expression"?: string
4334
4335 // Template is the name of the template to execute by the hook
4336 "template"?: string
4337
4338 // TemplateRef is the reference to the template resource to execute by the hook
4339 "templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
4340 }
4341
4342 // A link to another app.
4343 #: "io.argoproj.workflow.v1alpha1.Link": {
4344 // The name of the link, E.g. "Workflow Logs" or "Pod Logs"
4345 "name"!: string
4346
4347 // "workflow", "pod", "pod-logs", "event-source-logs", "sensor-logs", "workflow-list" or "chat"
4348 "scope"!: string
4349
4350 // Target attribute specifies where a linked document will be opened when a user
4351 // clicks on a link. E.g. "_blank", "_self". If the target is _blank, it will
4352 // open in a new tab.
4353 "target"!: string
4354
4355 // The URL. Can contain "${metadata.namespace}", "${metadata.name}",
4356 // "${status.startedAt}", "${status.finishedAt}" or any other element in
4357 // workflow yaml, e.g.
4358 // "${io.argoproj.workflow.v1alpha1.metadata.annotations.userDefinedKey}"
4359 "url"!: string
4360 }
4361
4362 #: "io.argoproj.workflow.v1alpha1.LintCronWorkflowRequest": {
4363 "cronWorkflow"?: #."io.argoproj.workflow.v1alpha1.CronWorkflow"
4364 "namespace"?: string
4365 }
4366
4367 #: "io.argoproj.workflow.v1alpha1.LogEntry": {
4368 "content"?: string
4369 "podName"?: string
4370 }
4371
4372 #: {
4373 "io.argoproj.workflow.v1alpha1.ManifestFrom": {
4374 // Artifact contains the artifact to use
4375 "artifact"!: #."io.argoproj.workflow.v1alpha1.Artifact"
4376 }
4377 }
4378
4379 // MemoizationStatus is the status of this memoized node
4380 #: "io.argoproj.workflow.v1alpha1.MemoizationStatus": {
4381 // Cache is the name of the cache that was used
4382 "cacheName"!: string
4383
4384 // Hit indicates whether this node was created from a cache entry
4385 "hit"!: bool
4386
4387 // Key is the name of the key used for this node's cache
4388 "key"!: string
4389 }
4390
4391 // Memoization enables caching for the Outputs of the template
4392 #: "io.argoproj.workflow.v1alpha1.Memoize": {
4393 // Cache sets and configures the kind of cache
4394 "cache"!: #."io.argoproj.workflow.v1alpha1.Cache"
4395
4396 // Key is the key to use as the caching key
4397 "key"!: string
4398
4399 // MaxAge is the maximum age (e.g. "180s", "24h") of an entry that is still
4400 // considered valid. If an entry is older than the MaxAge, it will be ignored.
4401 "maxAge"!: string
4402 }
4403
4404 // Pod metadata
4405 #: "io.argoproj.workflow.v1alpha1.Metadata": {
4406 "annotations"?: [string]: string
4407 "labels"?: [string]: string
4408 }
4409
4410 // MetricLabel is a single label for a prometheus metric
4411 #: "io.argoproj.workflow.v1alpha1.MetricLabel": {
4412 "key"!: string
4413 "value"!: string
4414 }
4415
4416 // Metrics are a list of metrics emitted from a Workflow/Template
4417 #: {
4418 "io.argoproj.workflow.v1alpha1.Metrics": {
4419 // Prometheus is a list of prometheus metrics to be emitted MaxItems is an
4420 // artificial limit to limit CEL validation costs - see note at top of file
4421 "prometheus"!: [...#."io.argoproj.workflow.v1alpha1.Prometheus"]
4422 }
4423 }
4424
4425 // Mutex holds Mutex configuration
4426 #: "io.argoproj.workflow.v1alpha1.Mutex": {
4427 // Database specifies this is database controlled if this is set true
4428 "database"?: bool
4429
4430 // name of the mutex
4431 "name"?: string
4432
4433 // Namespace is the namespace of the mutex, default: [namespace of workflow]
4434 "namespace"?: string
4435 }
4436
4437 // MutexHolding describes the mutex and the object which is holding it.
4438 #: "io.argoproj.workflow.v1alpha1.MutexHolding": {
4439 // Holder is a reference to the object which holds the Mutex. Holding Scenario:
4440 // 1. Current workflow's NodeID which is holding the lock.
4441 // e.g: ${NodeID}
4442 // Waiting Scenario:
4443 // 1. Current workflow or other workflow NodeID which is holding the lock.
4444 // e.g: ${WorkflowName}/${NodeID}
4445 "holder"?: string
4446
4447 // Reference for the mutex e.g: ${namespace}/mutex/${mutexName}
4448 "mutex"?: string
4449 }
4450
4451 // MutexStatus contains which objects hold mutex locks, and which objects this
4452 // workflow is waiting on to release locks.
4453 #: "io.argoproj.workflow.v1alpha1.MutexStatus": {
4454 // Holding is a list of mutexes and their respective objects that are held by
4455 // mutex lock for this io.argoproj.workflow.v1alpha1.
4456 "holding"?: [...#."io.argoproj.workflow.v1alpha1.MutexHolding"]
4457
4458 // Waiting is a list of mutexes and their respective objects this workflow is waiting for.
4459 "waiting"?: [...#."io.argoproj.workflow.v1alpha1.MutexHolding"]
4460 }
4461
4462 #: "io.argoproj.workflow.v1alpha1.NodeFlag": {
4463 // Hooked tracks whether or not this node was triggered by hook or onExit
4464 "hooked"?: bool
4465
4466 // Retried tracks whether or not this node was retried by retryStrategy
4467 "retried"?: bool
4468 }
4469
4470 // NodeStatus contains status information about an individual node in the workflow
4471 #: "io.argoproj.workflow.v1alpha1.NodeStatus": {
4472 // BoundaryID indicates the node ID of the associated template root node in
4473 // which this node belongs to
4474 "boundaryID"?: string
4475
4476 // Children is a list of child node IDs
4477 "children"?: [...string]
4478
4479 // Daemoned tracks whether or not this node was daemoned and need to be terminated
4480 "daemoned"?: bool
4481
4482 // DisplayName is a human readable representation of the node. Unique within a template boundary
4483 "displayName"?: string
4484
4485 // EstimatedDuration in seconds.
4486 "estimatedDuration"?: int
4487
4488 // FailedPodRestarts tracks the number of times the pod for this node was
4489 // restarted due to infrastructure failures before the main container started.
4490 "failedPodRestarts"?: int
4491
4492 // Time at which this node completed
4493 "finishedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
4494
4495 // HostNodeName name of the Kubernetes node on which the Pod is running, if applicable
4496 "hostNodeName"?: string
4497
4498 // ID is a unique identifier of a node within the worklow It is implemented as a
4499 // hash of the node name, which makes the ID deterministic
4500 "id"!: string
4501
4502 // Inputs captures input parameter values and artifact locations supplied to
4503 // this template invocation
4504 "inputs"?: #."io.argoproj.workflow.v1alpha1.Inputs"
4505
4506 // MemoizationStatus holds information about cached nodes
4507 "memoizationStatus"?: #."io.argoproj.workflow.v1alpha1.MemoizationStatus"
4508
4509 // A human readable message indicating details about why the node is in this condition.
4510 "message"?: string
4511
4512 // Name is unique name in the node tree used to generate the node ID
4513 "name"!: string
4514
4515 // NodeFlag tracks some history of node. e.g.) hooked, retried, etc.
4516 "nodeFlag"?: #."io.argoproj.workflow.v1alpha1.NodeFlag"
4517
4518 // OutboundNodes tracks the node IDs which are considered "outbound" nodes to a
4519 // template invocation. For every invocation of a template, there are nodes
4520 // which we considered as "outbound". Essentially, these are last nodes in the
4521 // execution sequence to run, before the template is considered completed.
4522 // These nodes are then connected as parents to a following step.
4523 //
4524 // In the case of single pod steps (i.e. container, script, resource templates),
4525 // this list will be nil since the pod itself is already considered the
4526 // "outbound" node. In the case of DAGs, outbound nodes are the "target" tasks
4527 // (tasks with no children). In the case of steps, outbound nodes are all the
4528 // containers involved in the last step group. NOTE: since templates are
4529 // composable, the list of outbound nodes are carried upwards when a DAG/steps
4530 // template invokes another DAG/steps template. In other words, the outbound
4531 // nodes of a template, will be a superset of the outbound nodes of its last
4532 // children.
4533 "outboundNodes"?: [...string]
4534
4535 // Outputs captures output parameter values and artifact locations produced by
4536 // this template invocation
4537 "outputs"?: #."io.argoproj.workflow.v1alpha1.Outputs"
4538
4539 // Phase a simple, high-level summary of where the node is in its lifecycle. Can
4540 // be used as a state machine. Will be one of these values "Pending", "Running"
4541 // before the node is completed, or "Succeeded", "Skipped", "Failed", "Error",
4542 // or "Omitted" as a final state.
4543 "phase"?: string
4544
4545 // PodIP captures the IP of the pod for daemoned steps
4546 "podIP"?: string
4547
4548 // Progress to completion
4549 "progress"?: string
4550
4551 // ResourcesDuration is indicative, but not accurate, resource duration. This is
4552 // populated when the nodes completes.
4553 "resourcesDuration"?: [string]: int
4554
4555 // RestartingPodUID tracks the UID of the pod that is currently being restarted.
4556 // This prevents duplicate restart attempts when the controller processes the
4557 // same failed pod multiple times. Cleared when the replacement pod starts
4558 // running.
4559 "restartingPodUID"?: string
4560
4561 // Time at which this node started
4562 "startedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
4563
4564 // SynchronizationStatus is the synchronization status of the node
4565 "synchronizationStatus"?: #."io.argoproj.workflow.v1alpha1.NodeSynchronizationStatus"
4566
4567 // TaskResultSynced is used to determine if the node's output has been received
4568 "taskResultSynced"?: bool
4569
4570 // TemplateName is the template name which this node corresponds to. Not
4571 // applicable to virtual nodes (e.g. Retry, StepGroup)
4572 "templateName"?: string
4573
4574 // TemplateRef is the reference to the template resource which this node
4575 // corresponds to. Not applicable to virtual nodes (e.g. Retry, StepGroup)
4576 "templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
4577
4578 // TemplateScope is the template scope in which the template of this node was retrieved.
4579 "templateScope"?: string
4580
4581 // Type indicates type of node
4582 "type"!: string
4583 }
4584
4585 // NodeSynchronizationStatus stores the status of a node
4586 #: {
4587 "io.argoproj.workflow.v1alpha1.NodeSynchronizationStatus": {
4588 // Waiting is the name of the lock that this node is waiting for
4589 "waiting"?: string
4590 }
4591 }
4592
4593 // NoneStrategy indicates to skip tar process and upload the files or directory
4594 // tree as independent files. Note that if the artifact is a directory, the
4595 // artifact driver must support the ability to save/load the directory
4596 // appropriately.
4597 #: "io.argoproj.workflow.v1alpha1.NoneStrategy": {}
4598
4599 // OAuth2Auth holds all information for client authentication via OAuth2 tokens
4600 #: "io.argoproj.workflow.v1alpha1.OAuth2Auth": {
4601 "clientIDSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4602 "clientSecretSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4603 "endpointParams"?: [...#."io.argoproj.workflow.v1alpha1.OAuth2EndpointParam"]
4604 "scopes"?: [...string]
4605 "tokenURLSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4606 }
4607
4608 // EndpointParam is for requesting optional fields that should be sent in the oauth request
4609 #: "io.argoproj.workflow.v1alpha1.OAuth2EndpointParam": {
4610 // Name is the header name
4611 "key"!: string
4612
4613 // Value is the literal value to use for the header
4614 "value"?: string
4615 }
4616
4617 // OSSArtifact is the location of an Alibaba Cloud OSS artifact
4618 #: "io.argoproj.workflow.v1alpha1.OSSArtifact": {
4619 // AccessKeySecret is the secret selector to the bucket's access key
4620 "accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4621
4622 // Bucket is the name of the bucket
4623 "bucket"?: string
4624
4625 // CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket
4626 // for output artifacts, if it doesn't exist
4627 "createBucketIfNotPresent"?: bool
4628
4629 // Endpoint is the hostname of the bucket endpoint
4630 "endpoint"?: string
4631
4632 // Key is the path in the bucket where the artifact resides
4633 "key"!: string
4634
4635 // LifecycleRule specifies how to manage bucket's lifecycle
4636 "lifecycleRule"?: #."io.argoproj.workflow.v1alpha1.OSSLifecycleRule"
4637
4638 // SecretKeySecret is the secret selector to the bucket's secret key
4639 "secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4640
4641 // SecurityToken is the user's temporary security token. For more details, check
4642 // out: https://www.alibabacloud.com/help/doc-detail/100624.htm
4643 "securityToken"?: string
4644
4645 // UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
4646 "useSDKCreds"?: bool
4647 }
4648
4649 // OSSArtifactRepository defines the controller configuration for an OSS artifact repository
4650 #: "io.argoproj.workflow.v1alpha1.OSSArtifactRepository": {
4651 // AccessKeySecret is the secret selector to the bucket's access key
4652 "accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4653
4654 // Bucket is the name of the bucket
4655 "bucket"?: string
4656
4657 // CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket
4658 // for output artifacts, if it doesn't exist
4659 "createBucketIfNotPresent"?: bool
4660
4661 // Endpoint is the hostname of the bucket endpoint
4662 "endpoint"?: string
4663
4664 // KeyFormat defines the format of how to store keys and can reference workflow variables.
4665 "keyFormat"?: string
4666
4667 // LifecycleRule specifies how to manage bucket's lifecycle
4668 "lifecycleRule"?: #."io.argoproj.workflow.v1alpha1.OSSLifecycleRule"
4669
4670 // SecretKeySecret is the secret selector to the bucket's secret key
4671 "secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4672
4673 // SecurityToken is the user's temporary security token. For more details, check
4674 // out: https://www.alibabacloud.com/help/doc-detail/100624.htm
4675 "securityToken"?: string
4676
4677 // UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
4678 "useSDKCreds"?: bool
4679 }
4680
4681 // OSSLifecycleRule specifies how to manage bucket's lifecycle
4682 #: "io.argoproj.workflow.v1alpha1.OSSLifecycleRule": {
4683 // MarkDeletionAfterDays is the number of days before we delete objects in the bucket
4684 "markDeletionAfterDays"?: int
4685
4686 // MarkInfrequentAccessAfterDays is the number of days before we convert the
4687 // objects in the bucket to Infrequent Access (IA) storage type
4688 "markInfrequentAccessAfterDays"?: int
4689 }
4690
4691 // Outputs hold parameters, artifacts, and results from a step
4692 #: "io.argoproj.workflow.v1alpha1.Outputs": {
4693 // Artifacts holds the list of output artifacts produced by a step
4694 "artifacts"?: [...#."io.argoproj.workflow.v1alpha1.Artifact"]
4695
4696 // ExitCode holds the exit code of a script template
4697 "exitCode"?: string
4698
4699 // Parameters holds the list of output parameters produced by a step
4700 "parameters"?: [...#."io.argoproj.workflow.v1alpha1.Parameter"]
4701
4702 // Result holds the result (stdout) of a script or container template, or the
4703 // response body of an HTTP template
4704 "result"?: string
4705 }
4706
4707 #: "io.argoproj.workflow.v1alpha1.ParallelSteps": [...#."io.argoproj.workflow.v1alpha1.WorkflowStep"]
4708
4709 // Parameter indicate a passed string parameter to a service template with an optional default value
4710 #: "io.argoproj.workflow.v1alpha1.Parameter": {
4711 // Default is the default value to use for an input parameter if a value was not supplied
4712 "default"?: string
4713
4714 // Description is the parameter description
4715 "description"?: string
4716
4717 // Enum holds a list of string values to choose from, for the actual value of the parameter
4718 "enum"?: [...string]
4719
4720 // GlobalName exports an output parameter to the global scope, making it
4721 // available as io.argoproj.workflow.v1alpha1.outputs.parameters.XXXX and in
4722 // workflow.status.outputs.parameters
4723 "globalName"?: string
4724
4725 // Name is the parameter name
4726 "name"!: string
4727
4728 // Value is the literal value to use for the parameter. If specified in the
4729 // context of an input parameter, any passed values take precedence over the
4730 // specified value
4731 "value"?: string
4732
4733 // ValueFrom is the source for the output parameter's value
4734 "valueFrom"?: #."io.argoproj.workflow.v1alpha1.ValueFrom"
4735 }
4736
4737 // Plugin is an Object with exactly one key
4738 #: "io.argoproj.workflow.v1alpha1.Plugin": {}
4739
4740 // PluginArtifact is the location of a plugin artifact
4741 #: "io.argoproj.workflow.v1alpha1.PluginArtifact": {
4742 // Configuration is the plugin defined configuration for the artifact driver plugin
4743 "configuration"?: string
4744
4745 // ConnectionTimeoutSeconds is the timeout for the artifact driver connection,
4746 // overriding the driver's timeout
4747 "connectionTimeoutSeconds"?: int
4748
4749 // Key is the path in the artifact repository where the artifact resides
4750 "key"!: string
4751
4752 // Name is the name of the artifact driver plugin
4753 "name"?: string
4754 }
4755
4756 // PluginArtifactRepository defines the controller configuration for a plugin artifact repository
4757 #: "io.argoproj.workflow.v1alpha1.PluginArtifactRepository": {
4758 "configuration"!: string
4759 "keyFormat"?: string
4760 "name"!: string
4761 }
4762
4763 // PodGC describes how to delete completed pods as they complete
4764 #: "io.argoproj.workflow.v1alpha1.PodGC": {
4765 // DeleteDelayDuration specifies the duration before pods in the GC queue get deleted.
4766 "deleteDelayDuration"?: string
4767
4768 // LabelSelector is the label selector to check if the pods match the labels
4769 // before being added to the pod GC queue.
4770 "labelSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
4771
4772 // Strategy is the strategy to use. One of "OnPodCompletion", "OnPodSuccess",
4773 // "OnWorkflowCompletion", "OnWorkflowSuccess". If unset, does not delete Pods
4774 "strategy"?: string
4775 }
4776
4777 // Prometheus is a prometheus metric to be emitted
4778 #: "io.argoproj.workflow.v1alpha1.Prometheus": {
4779 // Counter is a counter metric
4780 "counter"?: #."io.argoproj.workflow.v1alpha1.Counter"
4781
4782 // Gauge is a gauge metric
4783 "gauge"?: #."io.argoproj.workflow.v1alpha1.Gauge"
4784
4785 // Help is a string that describes the metric
4786 "help"!: string
4787
4788 // Histogram is a histogram metric
4789 "histogram"?: #."io.argoproj.workflow.v1alpha1.Histogram"
4790
4791 // Labels is a list of metric labels
4792 "labels"?: [...#."io.argoproj.workflow.v1alpha1.MetricLabel"]
4793
4794 // Name is the name of the metric
4795 "name"!: string
4796
4797 // When is a conditional statement that decides when to emit the metric
4798 "when"?: string
4799 }
4800
4801 // RawArtifact allows raw string content to be placed as an artifact in a container
4802 #: {
4803 "io.argoproj.workflow.v1alpha1.RawArtifact": {
4804 // Data is the string contents of the artifact
4805 "data"!: string
4806 }
4807 }
4808
4809 // ResourceTemplate is a template subtype to manipulate kubernetes resources
4810 #: "io.argoproj.workflow.v1alpha1.ResourceTemplate": {
4811 // Action is the action to perform to the resource. Must be one of: get, create,
4812 // apply, delete, replace, patch
4813 "action"!: string
4814
4815 // FailureCondition is a label selector expression which describes the
4816 // conditions of the k8s resource in which the step was considered failed
4817 "failureCondition"?: string
4818
4819 // Flags is a set of additional options passed to kubectl before submitting a
4820 // resource I.e. to disable resource validation: flags: [
4821 // "--validate=false" # disable resource validation
4822 // ]
4823 "flags"?: [...string]
4824
4825 // Manifest contains the kubernetes manifest
4826 "manifest"?: string
4827
4828 // ManifestFrom is the source for a single kubernetes manifest
4829 "manifestFrom"?: #."io.argoproj.workflow.v1alpha1.ManifestFrom"
4830
4831 // MergeStrategy is the strategy used to merge a patch. It defaults to
4832 // "strategic" Must be one of: strategic, merge, json
4833 "mergeStrategy"?: string
4834
4835 // SetOwnerReference sets the reference to the workflow on the OwnerReference of generated resource.
4836 "setOwnerReference"?: bool
4837
4838 // SuccessCondition is a label selector expression which describes the
4839 // conditions of the k8s resource in which it is acceptable to proceed to the
4840 // following step
4841 "successCondition"?: string
4842 }
4843
4844 #: "io.argoproj.workflow.v1alpha1.ResubmitArchivedWorkflowRequest": {
4845 "memoized"?: bool
4846 "name"?: string
4847 "namespace"?: string
4848 "parameters"?: [...string]
4849 "uid"?: string
4850 }
4851
4852 // RetryAffinity prevents running steps on the same host.
4853 #: "io.argoproj.workflow.v1alpha1.RetryAffinity": "nodeAntiAffinity"?: #."io.argoproj.workflow.v1alpha1.RetryNodeAntiAffinity"
4854
4855 #: "io.argoproj.workflow.v1alpha1.RetryArchivedWorkflowRequest": {
4856 "name"?: string
4857 "namespace"?: string
4858 "nodeFieldSelector"?: string
4859 "parameters"?: [...string]
4860 "restartSuccessful"?: bool
4861 "uid"?: string
4862 }
4863
4864 // RetryNodeAntiAffinity is a placeholder for future expansion, only empty
4865 // nodeAntiAffinity is allowed. In order to prevent running steps on the same
4866 // host, it uses "kubernetes.io/hostname".
4867 #: "io.argoproj.workflow.v1alpha1.RetryNodeAntiAffinity": {}
4868
4869 // RetryStrategy provides controls on how to retry a workflow step
4870 #: "io.argoproj.workflow.v1alpha1.RetryStrategy": {
4871 // Affinity prevents running workflow's step on the same host
4872 "affinity"?: #."io.argoproj.workflow.v1alpha1.RetryAffinity"
4873
4874 // Backoff is a backoff strategy
4875 "backoff"?: #."io.argoproj.workflow.v1alpha1.Backoff"
4876
4877 // Expression is a condition expression for when a node will be retried. If it
4878 // evaluates to false, the node will not be retried and the retry strategy will
4879 // be ignored
4880 "expression"?: string
4881
4882 // Limit is the maximum number of retry attempts when retrying a container. It
4883 // does not include the original container; the maximum number of total
4884 // attempts will be `limit + 1`.
4885 "limit"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
4886
4887 // RetryPolicy is a policy of NodePhase statuses that will be retried
4888 "retryPolicy"?: string
4889 }
4890
4891 // S3Artifact is the location of an S3 artifact
4892 #: "io.argoproj.workflow.v1alpha1.S3Artifact": {
4893 // AccessKeySecret is the secret selector to the bucket's access key
4894 "accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4895
4896 // Bucket is the name of the bucket
4897 "bucket"?: string
4898
4899 // CASecret specifies the secret that contains the CA, used to verify the TLS connection
4900 "caSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4901
4902 // CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket
4903 // for output artifacts, if it doesn't exist. Setting Enabled Encryption will
4904 // apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it
4905 // is.
4906 "createBucketIfNotPresent"?: #."io.argoproj.workflow.v1alpha1.CreateS3BucketOptions"
4907 "encryptionOptions"?: #."io.argoproj.workflow.v1alpha1.S3EncryptionOptions"
4908
4909 // Endpoint is the hostname of the bucket endpoint
4910 "endpoint"?: string
4911
4912 // Insecure will connect to the service with TLS
4913 "insecure"?: bool
4914
4915 // Key is the key in the bucket where the artifact resides
4916 "key"?: string
4917
4918 // Region contains the optional bucket region
4919 "region"?: string
4920
4921 // RoleARN is the Amazon Resource Name (ARN) of the role to assume.
4922 "roleARN"?: string
4923
4924 // SecretKeySecret is the secret selector to the bucket's secret key
4925 "secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4926
4927 // SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
4928 "sessionTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4929
4930 // UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
4931 "useSDKCreds"?: bool
4932 }
4933
4934 // S3ArtifactRepository defines the controller configuration for an S3 artifact repository
4935 #: "io.argoproj.workflow.v1alpha1.S3ArtifactRepository": {
4936 // AccessKeySecret is the secret selector to the bucket's access key
4937 "accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4938
4939 // Bucket is the name of the bucket
4940 "bucket"?: string
4941
4942 // CASecret specifies the secret that contains the CA, used to verify the TLS connection
4943 "caSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4944
4945 // CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket
4946 // for output artifacts, if it doesn't exist. Setting Enabled Encryption will
4947 // apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it
4948 // is.
4949 "createBucketIfNotPresent"?: #."io.argoproj.workflow.v1alpha1.CreateS3BucketOptions"
4950 "encryptionOptions"?: #."io.argoproj.workflow.v1alpha1.S3EncryptionOptions"
4951
4952 // Endpoint is the hostname of the bucket endpoint
4953 "endpoint"?: string
4954
4955 // Insecure will connect to the service with TLS
4956 "insecure"?: bool
4957
4958 // KeyFormat defines the format of how to store keys and can reference workflow variables.
4959 "keyFormat"?: string
4960
4961 // KeyPrefix is prefix used as part of the bucket key in which the controller
4962 // will store artifacts. DEPRECATED. Use KeyFormat instead
4963 "keyPrefix"?: string
4964
4965 // Region contains the optional bucket region
4966 "region"?: string
4967
4968 // RoleARN is the Amazon Resource Name (ARN) of the role to assume.
4969 "roleARN"?: string
4970
4971 // SecretKeySecret is the secret selector to the bucket's secret key
4972 "secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4973
4974 // SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
4975 "sessionTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4976
4977 // UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
4978 "useSDKCreds"?: bool
4979 }
4980
4981 // S3EncryptionOptions used to determine encryption options during s3 operations
4982 #: "io.argoproj.workflow.v1alpha1.S3EncryptionOptions": {
4983 // EnableEncryption tells the driver to encrypt objects if set to true. If
4984 // kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
4985 "enableEncryption"?: bool
4986
4987 // KmsEncryptionContext is a json blob that contains an encryption context. See
4988 // https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
4989 // for more information
4990 "kmsEncryptionContext"?: string
4991
4992 // KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
4993 "kmsKeyId"?: string
4994
4995 // ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts
4996 // using SSE-C with the specified secret.
4997 "serverSideCustomerKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4998 }
4999
5000 // ScriptTemplate is a template subtype to enable scripting through code steps
5001 #: "io.argoproj.workflow.v1alpha1.ScriptTemplate": {
5002 // Arguments to the entrypoint. The container image's CMD is used if this is not
5003 // provided. Variable references $(VAR_NAME) are expanded using the container's
5004 // environment. If a variable cannot be resolved, the reference in the input
5005 // string will be unchanged. Double $$ are reduced to a single $, which allows
5006 // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
5007 // string literal "$(VAR_NAME)". Escaped references will never be expanded,
5008 // regardless of whether the variable exists or not. Cannot be updated. More
5009 // info:
5010 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
5011 "args"?: [...string]
5012
5013 // Entrypoint array. Not executed within a shell. The container image's
5014 // ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME)
5015 // are expanded using the container's environment. If a variable cannot be
5016 // resolved, the reference in the input string will be unchanged. Double $$ are
5017 // reduced to a single $, which allows for escaping the $(VAR_NAME) syntax:
5018 // i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped
5019 // references will never be expanded, regardless of whether the variable exists
5020 // or not. Cannot be updated. More info:
5021 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
5022 "command"?: [...string]
5023
5024 // List of environment variables to set in the container. Cannot be updated.
5025 "env"?: [...#."io.k8s.api.core.v1.EnvVar"]
5026
5027 // List of sources to populate environment variables in the container. The keys
5028 // defined within a source must be a C_IDENTIFIER. All invalid keys will be
5029 // reported as an event when the container is starting. When a key exists in
5030 // multiple sources, the value associated with the last source will take
5031 // precedence. Values defined by an Env with a duplicate key will take
5032 // precedence. Cannot be updated.
5033 "envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
5034
5035 // Container image name. More info:
5036 // https://kubernetes.io/docs/concepts/containers/images This field is optional
5037 // to allow higher level config management to default or override container
5038 // images in workload controllers like Deployments and StatefulSets.
5039 "image"!: string
5040
5041 // Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if
5042 // :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More
5043 // info: https://kubernetes.io/docs/concepts/containers/images#updating-images
5044 "imagePullPolicy"?: string
5045
5046 // Actions that the management system should take in response to container
5047 // lifecycle events. Cannot be updated.
5048 "lifecycle"?: #."io.k8s.api.core.v1.Lifecycle"
5049
5050 // Periodic probe of container liveness. Container will be restarted if the
5051 // probe fails. Cannot be updated. More info:
5052 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5053 "livenessProbe"?: #."io.k8s.api.core.v1.Probe"
5054
5055 // Name of the container specified as a DNS_LABEL. Each container in a pod must
5056 // have a unique name (DNS_LABEL). Cannot be updated.
5057 "name"?: string
5058
5059 // List of ports to expose from the container. Not specifying a port here DOES
5060 // NOT prevent that port from being exposed. Any port which is listening on the
5061 // default "0.0.0.0" address inside a container will be accessible from the
5062 // network. Modifying this array with strategic merge patch may corrupt the
5063 // data. For more information See
5064 // https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.
5065 "ports"?: [...#."io.k8s.api.core.v1.ContainerPort"]
5066
5067 // Periodic probe of container service readiness. Container will be removed from
5068 // service endpoints if the probe fails. Cannot be updated. More info:
5069 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5070 "readinessProbe"?: #."io.k8s.api.core.v1.Probe"
5071
5072 // Resources resize policy for the container.
5073 "resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
5074
5075 // Compute Resources required by this container. Cannot be updated. More info:
5076 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
5077 "resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
5078
5079 // RestartPolicy defines the restart behavior of individual containers in a pod.
5080 // This field may only be set for init containers, and the only allowed value
5081 // is "Always". For non-init containers or when this field is not specified,
5082 // the restart behavior is defined by the Pod's restart policy and the
5083 // container type. Setting the RestartPolicy as "Always" for the init container
5084 // will have the following effect: this init container will be continually
5085 // restarted on exit until all regular containers have terminated. Once all
5086 // regular containers have completed, all init containers with restartPolicy
5087 // "Always" will be shut down. This lifecycle differs from normal init
5088 // containers and is often referred to as a "sidecar" container. Although this
5089 // init container still starts in the init container sequence, it does not wait
5090 // for the container to complete before proceeding to the next init container.
5091 // Instead, the next init container starts immediately after this init
5092 // container is started, or after any startupProbe has successfully completed.
5093 "restartPolicy"?: string
5094
5095 // SecurityContext defines the security options the container should be run
5096 // with. If set, the fields of SecurityContext override the equivalent fields
5097 // of PodSecurityContext. More info:
5098 // https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
5099 "securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
5100
5101 // Source contains the source code of the script to execute
5102 "source"!: string
5103
5104 // StartupProbe indicates that the Pod has successfully initialized. If
5105 // specified, no other probes are executed until this completes successfully.
5106 // If this probe fails, the Pod will be restarted, just as if the livenessProbe
5107 // failed. This can be used to provide different probe parameters at the
5108 // beginning of a Pod's lifecycle, when it might take a long time to load data
5109 // or warm a cache, than during steady-state operation. This cannot be updated.
5110 // More info:
5111 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5112 "startupProbe"?: #."io.k8s.api.core.v1.Probe"
5113
5114 // Whether this container should allocate a buffer for stdin in the container
5115 // runtime. If this is not set, reads from stdin in the container will always
5116 // result in EOF. Default is false.
5117 "stdin"?: bool
5118
5119 // Whether the container runtime should close the stdin channel after it has
5120 // been opened by a single attach. When stdin is true the stdin stream will
5121 // remain open across multiple attach sessions. If stdinOnce is set to true,
5122 // stdin is opened on container start, is empty until the first client attaches
5123 // to stdin, and then remains open and accepts data until the client
5124 // disconnects, at which time stdin is closed and remains closed until the
5125 // container is restarted. If this flag is false, a container processes that
5126 // reads from stdin will never receive an EOF. Default is false
5127 "stdinOnce"?: bool
5128
5129 // Optional: Path at which the file to which the container's termination message
5130 // will be written is mounted into the container's filesystem. Message written
5131 // is intended to be brief final status, such as an assertion failure message.
5132 // Will be truncated by the node if greater than 4096 bytes. The total message
5133 // length across all containers will be limited to 12kb. Defaults to
5134 // /dev/termination-log. Cannot be updated.
5135 "terminationMessagePath"?: string
5136
5137 // Indicate how the termination message should be populated. File will use the
5138 // contents of terminationMessagePath to populate the container status message
5139 // on both success and failure. FallbackToLogsOnError will use the last chunk
5140 // of container log output if the termination message file is empty and the
5141 // container exited with an error. The log output is limited to 2048 bytes or
5142 // 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
5143 "terminationMessagePolicy"?: string
5144
5145 // Whether this container should allocate a TTY for itself, also requires
5146 // 'stdin' to be true. Default is false.
5147 "tty"?: bool
5148
5149 // volumeDevices is the list of block devices to be used by the container.
5150 "volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"]
5151
5152 // Pod volumes to mount into the container's filesystem. Cannot be updated.
5153 "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
5154
5155 // Container's working directory. If not specified, the container runtime's
5156 // default will be used, which might be configured in the container image.
5157 // Cannot be updated.
5158 "workingDir"?: string
5159 }
5160
5161 #: "io.argoproj.workflow.v1alpha1.SemaphoreHolding": {
5162 // Holders stores the list of current holder names in the io.argoproj.workflow.v1alpha1.
5163 "holders"?: [...string]
5164
5165 // Semaphore stores the semaphore name.
5166 "semaphore"?: string
5167 }
5168
5169 // SemaphoreRef is a reference of Semaphore
5170 #: "io.argoproj.workflow.v1alpha1.SemaphoreRef": {
5171 // ConfigMapKeyRef is a configmap selector for Semaphore configuration
5172 "configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
5173
5174 // SyncDatabaseRef is a database reference for Semaphore configuration
5175 "database"?: #."io.argoproj.workflow.v1alpha1.SyncDatabaseRef"
5176
5177 // Namespace is the namespace of the configmap, default: [namespace of workflow]
5178 "namespace"?: string
5179 }
5180
5181 #: "io.argoproj.workflow.v1alpha1.SemaphoreStatus": {
5182 // Holding stores the list of resource acquired synchronization lock for workflows.
5183 "holding"?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreHolding"]
5184
5185 // Waiting indicates the list of current synchronization lock holders.
5186 "waiting"?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreHolding"]
5187 }
5188
5189 // Sequence expands a workflow step into numeric range
5190 #: "io.argoproj.workflow.v1alpha1.Sequence": {
5191 // Count is number of elements in the sequence (default: 0). Not to be used with end
5192 "count"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
5193
5194 // Number at which to end the sequence (default: 0). Not to be used with Count
5195 "end"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
5196
5197 // Format is a printf format string to format the value in the sequence
5198 "format"?: string
5199
5200 // Number at which to start the sequence (default: 0)
5201 "start"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
5202 }
5203
5204 // StopStrategy defines if the CronWorkflow should stop scheduling based on an
5205 // expression. v3.6 and after
5206 #: {
5207 "io.argoproj.workflow.v1alpha1.StopStrategy": {
5208 // v3.6 and after: Expression is an expression that stops scheduling workflows
5209 // when true. Use the variables `cronworkflow`.`failed` or
5210 // `cronworkflow`.`succeeded` to access the number of failed or successful
5211 // child workflows.
5212 "expression"!: string
5213 }
5214 }
5215
5216 #: "io.argoproj.workflow.v1alpha1.Submit": {
5217 // Arguments extracted from the event and then set as arguments to the workflow created.
5218 "arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
5219
5220 // Metadata optional means to customize select fields of the workflow metadata
5221 "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
5222
5223 // WorkflowTemplateRef the workflow template to submit
5224 "workflowTemplateRef"!: #."io.argoproj.workflow.v1alpha1.WorkflowTemplateRef"
5225 }
5226
5227 // SubmitOpts are workflow submission options
5228 #: "io.argoproj.workflow.v1alpha1.SubmitOpts": {
5229 // Annotations adds to metadata.labels
5230 "annotations"?: string
5231
5232 // DryRun validates the workflow on the client-side without creating it. This
5233 // option is not supported in API
5234 "dryRun"?: bool
5235
5236 // Entrypoint overrides spec.entrypoint
5237 "entryPoint"?: string
5238
5239 // GenerateName overrides metadata.generateName
5240 "generateName"?: string
5241
5242 // Labels adds to metadata.labels
5243 "labels"?: string
5244
5245 // Name overrides metadata.name
5246 "name"?: string
5247
5248 // OwnerReference creates a metadata.ownerReference
5249 "ownerReference"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference"
5250
5251 // Parameters passes input parameters to workflow
5252 "parameters"?: [...string]
5253
5254 // Set the podPriorityClassName of the workflow
5255 "podPriorityClassName"?: string
5256
5257 // Priority is used if controller is configured to process limited number of
5258 // workflows in parallel, higher priority workflows are processed first.
5259 "priority"?: int
5260
5261 // ServerDryRun validates the workflow on the server-side without creating it
5262 "serverDryRun"?: bool
5263
5264 // ServiceAccount runs all pods in the workflow using specified ServiceAccount.
5265 "serviceAccount"?: string
5266 }
5267
5268 // SuppliedValueFrom is a placeholder for a value to be filled in directly,
5269 // either through the CLI, API, etc.
5270 #: "io.argoproj.workflow.v1alpha1.SuppliedValueFrom": {}
5271
5272 // SuspendTemplate is a template subtype to suspend a workflow at a predetermined point in time
5273 #: {
5274 "io.argoproj.workflow.v1alpha1.SuspendTemplate": {
5275 // Duration is the seconds to wait before automatically resuming a template.
5276 // Must be a string. Default unit is seconds. Could also be a Duration, e.g.:
5277 // "2m", "6h"
5278 "duration"?: string
5279 }
5280 }
5281
5282 #: "io.argoproj.workflow.v1alpha1.SyncDatabaseRef": "key"!: string
5283
5284 // Synchronization holds synchronization lock configuration
5285 #: "io.argoproj.workflow.v1alpha1.Synchronization": {
5286 // v3.6 and after: Mutexes holds the list of Mutex lock details
5287 "mutexes"?: [...#."io.argoproj.workflow.v1alpha1.Mutex"]
5288
5289 // v3.6 and after: Semaphores holds the list of Semaphores configuration
5290 "semaphores"?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreRef"]
5291 }
5292
5293 // SynchronizationStatus stores the status of semaphore and mutex.
5294 #: "io.argoproj.workflow.v1alpha1.SynchronizationStatus": {
5295 // Mutex stores this workflow's mutex holder details
5296 "mutex"?: #."io.argoproj.workflow.v1alpha1.MutexStatus"
5297
5298 // Semaphore stores this workflow's Semaphore holder details
5299 "semaphore"?: #."io.argoproj.workflow.v1alpha1.SemaphoreStatus"
5300 }
5301
5302 // TTLStrategy is the strategy for the time to live depending on if the workflow succeeded or failed
5303 #: "io.argoproj.workflow.v1alpha1.TTLStrategy": {
5304 // SecondsAfterCompletion is the number of seconds to live after completion
5305 "secondsAfterCompletion"?: int
5306
5307 // SecondsAfterFailure is the number of seconds to live after failure
5308 "secondsAfterFailure"?: int
5309
5310 // SecondsAfterSuccess is the number of seconds to live after success
5311 "secondsAfterSuccess"?: int
5312 }
5313
5314 // TarStrategy will tar and gzip the file or directory when saving
5315 #: {
5316 "io.argoproj.workflow.v1alpha1.TarStrategy": {
5317 // CompressionLevel specifies the gzip compression level to use for the
5318 // artifact. Defaults to gzip.DefaultCompression.
5319 "compressionLevel"?: int
5320 }
5321 }
5322
5323 // Template is a reusable and composable unit of execution in a workflow
5324 #: "io.argoproj.workflow.v1alpha1.Template": {
5325 // Optional duration in seconds relative to the StartTime that the pod may be
5326 // active on a node before the system actively tries to terminate the pod;
5327 // value must be positive integer This field is only applicable to container
5328 // and script templates.
5329 "activeDeadlineSeconds"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
5330
5331 // Affinity sets the pod's scheduling constraints Overrides the affinity set at
5332 // the workflow level (if any)
5333 "affinity"?: #."io.k8s.api.core.v1.Affinity"
5334
5335 // Annotations is a list of annotations to add to the template at runtime
5336 "annotations"?: [string]: string
5337
5338 // Location in which all files related to the step will be stored (logs,
5339 // artifacts, etc...). Can be overridden by individual items in Outputs. If
5340 // omitted, will use the default artifact repository location configured in the
5341 // controller, appended with the <workflowname>/<nodename> in the key.
5342 "archiveLocation"?: #."io.argoproj.workflow.v1alpha1.ArtifactLocation"
5343
5344 // AutomountServiceAccountToken indicates whether a service account token should
5345 // be automatically mounted in pods. ServiceAccountName of ExecutorConfig must
5346 // be specified if this value is false.
5347 "automountServiceAccountToken"?: bool
5348
5349 // Container is the main container image to run in the pod
5350 "container"?: #."io.k8s.api.core.v1.Container"
5351
5352 // ContainerSet groups multiple containers within a single pod.
5353 "containerSet"?: #."io.argoproj.workflow.v1alpha1.ContainerSetTemplate"
5354
5355 // Daemon will allow a workflow to proceed to the next step so long as the
5356 // container reaches readiness
5357 "daemon"?: bool
5358
5359 // DAG template subtype which runs a DAG
5360 "dag"?: #."io.argoproj.workflow.v1alpha1.DAGTemplate"
5361
5362 // Data is a data template
5363 "data"?: #."io.argoproj.workflow.v1alpha1.Data"
5364
5365 // Executor holds configurations of the executor container.
5366 "executor"?: #."io.argoproj.workflow.v1alpha1.ExecutorConfig"
5367
5368 // FailFast, if specified, will fail this template if any of its child pods has
5369 // failed. This is useful for when this template is expanded with `withItems`,
5370 // etc.
5371 "failFast"?: bool
5372
5373 // HostAliases is an optional list of hosts and IPs that will be injected into the pod spec
5374 "hostAliases"?: [...#."io.k8s.api.core.v1.HostAlias"]
5375
5376 // HTTP makes a HTTP request
5377 "http"?: #."io.argoproj.workflow.v1alpha1.HTTP"
5378
5379 // InitContainers is a list of containers which run before the main container.
5380 "initContainers"?: [...#."io.argoproj.workflow.v1alpha1.UserContainer"]
5381
5382 // Inputs describe what inputs parameters and artifacts are supplied to this template
5383 "inputs"?: #."io.argoproj.workflow.v1alpha1.Inputs"
5384
5385 // Memoize allows templates to use outputs generated from already executed templates
5386 "memoize"?: #."io.argoproj.workflow.v1alpha1.Memoize"
5387
5388 // Metadata sets the pods's metadata, i.e. annotations and labels
5389 "metadata"?: #."io.argoproj.workflow.v1alpha1.Metadata"
5390
5391 // Metrics are a list of metrics emitted from this template
5392 "metrics"?: #."io.argoproj.workflow.v1alpha1.Metrics"
5393
5394 // Name is the name of the template
5395 "name"?: string
5396
5397 // NodeSelector is a selector to schedule this step of the workflow to be run on
5398 // the selected node(s). Overrides the selector set at the workflow level.
5399 "nodeSelector"?: [string]: string
5400
5401 // Outputs describe the parameters and artifacts that this template produces
5402 "outputs"?: #."io.argoproj.workflow.v1alpha1.Outputs"
5403
5404 // Parallelism limits the max total parallel pods that can execute at the same
5405 // time within the boundaries of this template invocation. If additional
5406 // steps/dag templates are invoked, the pods created by those templates will
5407 // not be counted towards this total.
5408 "parallelism"?: int
5409
5410 // Plugin is a plugin template Note: the structure of a plugin template is
5411 // free-form, so we need to have "x-kubernetes-preserve-unknown-fields: true"
5412 // in the validation schema.
5413 "plugin"?: #."io.argoproj.workflow.v1alpha1.Plugin"
5414
5415 // PodSpecPatch holds strategic merge patch to apply against the pod spec.
5416 // Allows parameterization of container fields which are not strings (e.g.
5417 // resource limits).
5418 "podSpecPatch"?: string
5419
5420 // PriorityClassName to apply to workflow pods.
5421 "priorityClassName"?: string
5422
5423 // Resource template subtype which can run k8s resources
5424 "resource"?: #."io.argoproj.workflow.v1alpha1.ResourceTemplate"
5425
5426 // RetryStrategy describes how to retry a template when it fails
5427 "retryStrategy"?: #."io.argoproj.workflow.v1alpha1.RetryStrategy"
5428
5429 // If specified, the pod will be dispatched by specified scheduler. Or it will
5430 // be dispatched by workflow scope scheduler if specified. If neither
5431 // specified, the pod will be dispatched by default scheduler.
5432 "schedulerName"?: string
5433
5434 // Script runs a portion of code against an interpreter
5435 "script"?: #."io.argoproj.workflow.v1alpha1.ScriptTemplate"
5436
5437 // SecurityContext holds pod-level security attributes and common container
5438 // settings. Optional: Defaults to empty. See type description for default
5439 // values of each field.
5440 "securityContext"?: #."io.k8s.api.core.v1.PodSecurityContext"
5441
5442 // ServiceAccountName to apply to workflow pods
5443 "serviceAccountName"?: string
5444
5445 // Sidecars is a list of containers which run alongside the main container
5446 // Sidecars are automatically killed when the main container completes
5447 "sidecars"?: [...#."io.argoproj.workflow.v1alpha1.UserContainer"]
5448
5449 // Steps define a series of sequential/parallel workflow steps
5450 "steps"?: [...#."io.argoproj.workflow.v1alpha1.ParallelSteps"]
5451
5452 // Suspend template subtype which can suspend a workflow when reaching the step
5453 "suspend"?: #."io.argoproj.workflow.v1alpha1.SuspendTemplate"
5454
5455 // Synchronization holds synchronization lock configuration for this template
5456 "synchronization"?: #."io.argoproj.workflow.v1alpha1.Synchronization"
5457
5458 // Timeout allows to set the total node execution timeout duration counting from
5459 // the node's start time. This duration also includes time in which the node
5460 // spends in Pending state. This duration may not be applied to Step or DAG
5461 // templates.
5462 "timeout"?: string
5463
5464 // Tolerations to apply to workflow pods.
5465 "tolerations"?: [...#."io.k8s.api.core.v1.Toleration"]
5466
5467 // Volumes is a list of volumes that can be mounted by containers in a template.
5468 "volumes"?: [...#."io.k8s.api.core.v1.Volume"]
5469 }
5470
5471 // TemplateRef is a reference of template resource.
5472 #: "io.argoproj.workflow.v1alpha1.TemplateRef": {
5473 // ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
5474 "clusterScope"?: bool
5475
5476 // Name is the resource name of the template.
5477 "name"?: string
5478
5479 // Template is the name of referred template in the resource.
5480 "template"?: string
5481 }
5482
5483 #: {
5484 "io.argoproj.workflow.v1alpha1.TransformationStep": {
5485 // Expression defines an expr expression to apply
5486 "expression"!: string
5487 }
5488 }
5489
5490 #: "io.argoproj.workflow.v1alpha1.UpdateCronWorkflowRequest": {
5491 "cronWorkflow"?: #."io.argoproj.workflow.v1alpha1.CronWorkflow"
5492
5493 // DEPRECATED: This field is ignored.
5494 "name"?: string
5495 "namespace"?: string
5496 }
5497
5498 // UserContainer is a container specified by a user.
5499 #: "io.argoproj.workflow.v1alpha1.UserContainer": {
5500 // Arguments to the entrypoint. The container image's CMD is used if this is not
5501 // provided. Variable references $(VAR_NAME) are expanded using the container's
5502 // environment. If a variable cannot be resolved, the reference in the input
5503 // string will be unchanged. Double $$ are reduced to a single $, which allows
5504 // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
5505 // string literal "$(VAR_NAME)". Escaped references will never be expanded,
5506 // regardless of whether the variable exists or not. Cannot be updated. More
5507 // info:
5508 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
5509 "args"?: [...string]
5510
5511 // Entrypoint array. Not executed within a shell. The container image's
5512 // ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME)
5513 // are expanded using the container's environment. If a variable cannot be
5514 // resolved, the reference in the input string will be unchanged. Double $$ are
5515 // reduced to a single $, which allows for escaping the $(VAR_NAME) syntax:
5516 // i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped
5517 // references will never be expanded, regardless of whether the variable exists
5518 // or not. Cannot be updated. More info:
5519 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
5520 "command"?: [...string]
5521
5522 // List of environment variables to set in the container. Cannot be updated.
5523 "env"?: [...#."io.k8s.api.core.v1.EnvVar"]
5524
5525 // List of sources to populate environment variables in the container. The keys
5526 // defined within a source must be a C_IDENTIFIER. All invalid keys will be
5527 // reported as an event when the container is starting. When a key exists in
5528 // multiple sources, the value associated with the last source will take
5529 // precedence. Values defined by an Env with a duplicate key will take
5530 // precedence. Cannot be updated.
5531 "envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
5532
5533 // Container image name. More info:
5534 // https://kubernetes.io/docs/concepts/containers/images This field is optional
5535 // to allow higher level config management to default or override container
5536 // images in workload controllers like Deployments and StatefulSets.
5537 "image"?: string
5538
5539 // Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if
5540 // :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More
5541 // info: https://kubernetes.io/docs/concepts/containers/images#updating-images
5542 "imagePullPolicy"?: string
5543
5544 // Actions that the management system should take in response to container
5545 // lifecycle events. Cannot be updated.
5546 "lifecycle"?: #."io.k8s.api.core.v1.Lifecycle"
5547
5548 // Periodic probe of container liveness. Container will be restarted if the
5549 // probe fails. Cannot be updated. More info:
5550 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5551 "livenessProbe"?: #."io.k8s.api.core.v1.Probe"
5552
5553 // MirrorVolumeMounts will mount the same volumes specified in the main
5554 // container to the container (including artifacts), at the same mountPaths.
5555 // This enables dind daemon to partially see the same filesystem as the main
5556 // container in order to use features such as docker volume binding
5557 "mirrorVolumeMounts"?: bool
5558
5559 // Name of the container specified as a DNS_LABEL. Each container in a pod must
5560 // have a unique name (DNS_LABEL). Cannot be updated.
5561 "name"!: string
5562
5563 // List of ports to expose from the container. Not specifying a port here DOES
5564 // NOT prevent that port from being exposed. Any port which is listening on the
5565 // default "0.0.0.0" address inside a container will be accessible from the
5566 // network. Modifying this array with strategic merge patch may corrupt the
5567 // data. For more information See
5568 // https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.
5569 "ports"?: [...#."io.k8s.api.core.v1.ContainerPort"]
5570
5571 // Periodic probe of container service readiness. Container will be removed from
5572 // service endpoints if the probe fails. Cannot be updated. More info:
5573 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5574 "readinessProbe"?: #."io.k8s.api.core.v1.Probe"
5575
5576 // Resources resize policy for the container.
5577 "resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
5578
5579 // Compute Resources required by this container. Cannot be updated. More info:
5580 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
5581 "resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
5582
5583 // RestartPolicy defines the restart behavior of individual containers in a pod.
5584 // This field may only be set for init containers, and the only allowed value
5585 // is "Always". For non-init containers or when this field is not specified,
5586 // the restart behavior is defined by the Pod's restart policy and the
5587 // container type. Setting the RestartPolicy as "Always" for the init container
5588 // will have the following effect: this init container will be continually
5589 // restarted on exit until all regular containers have terminated. Once all
5590 // regular containers have completed, all init containers with restartPolicy
5591 // "Always" will be shut down. This lifecycle differs from normal init
5592 // containers and is often referred to as a "sidecar" container. Although this
5593 // init container still starts in the init container sequence, it does not wait
5594 // for the container to complete before proceeding to the next init container.
5595 // Instead, the next init container starts immediately after this init
5596 // container is started, or after any startupProbe has successfully completed.
5597 "restartPolicy"?: string
5598
5599 // SecurityContext defines the security options the container should be run
5600 // with. If set, the fields of SecurityContext override the equivalent fields
5601 // of PodSecurityContext. More info:
5602 // https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
5603 "securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
5604
5605 // StartupProbe indicates that the Pod has successfully initialized. If
5606 // specified, no other probes are executed until this completes successfully.
5607 // If this probe fails, the Pod will be restarted, just as if the livenessProbe
5608 // failed. This can be used to provide different probe parameters at the
5609 // beginning of a Pod's lifecycle, when it might take a long time to load data
5610 // or warm a cache, than during steady-state operation. This cannot be updated.
5611 // More info:
5612 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5613 "startupProbe"?: #."io.k8s.api.core.v1.Probe"
5614
5615 // Whether this container should allocate a buffer for stdin in the container
5616 // runtime. If this is not set, reads from stdin in the container will always
5617 // result in EOF. Default is false.
5618 "stdin"?: bool
5619
5620 // Whether the container runtime should close the stdin channel after it has
5621 // been opened by a single attach. When stdin is true the stdin stream will
5622 // remain open across multiple attach sessions. If stdinOnce is set to true,
5623 // stdin is opened on container start, is empty until the first client attaches
5624 // to stdin, and then remains open and accepts data until the client
5625 // disconnects, at which time stdin is closed and remains closed until the
5626 // container is restarted. If this flag is false, a container processes that
5627 // reads from stdin will never receive an EOF. Default is false
5628 "stdinOnce"?: bool
5629
5630 // Optional: Path at which the file to which the container's termination message
5631 // will be written is mounted into the container's filesystem. Message written
5632 // is intended to be brief final status, such as an assertion failure message.
5633 // Will be truncated by the node if greater than 4096 bytes. The total message
5634 // length across all containers will be limited to 12kb. Defaults to
5635 // /dev/termination-log. Cannot be updated.
5636 "terminationMessagePath"?: string
5637
5638 // Indicate how the termination message should be populated. File will use the
5639 // contents of terminationMessagePath to populate the container status message
5640 // on both success and failure. FallbackToLogsOnError will use the last chunk
5641 // of container log output if the termination message file is empty and the
5642 // container exited with an error. The log output is limited to 2048 bytes or
5643 // 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
5644 "terminationMessagePolicy"?: string
5645
5646 // Whether this container should allocate a TTY for itself, also requires
5647 // 'stdin' to be true. Default is false.
5648 "tty"?: bool
5649
5650 // volumeDevices is the list of block devices to be used by the container.
5651 "volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"]
5652
5653 // Pod volumes to mount into the container's filesystem. Cannot be updated.
5654 "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
5655
5656 // Container's working directory. If not specified, the container runtime's
5657 // default will be used, which might be configured in the container image.
5658 // Cannot be updated.
5659 "workingDir"?: string
5660 }
5661
5662 // ValueFrom describes a location in which to obtain the value to a parameter
5663 #: "io.argoproj.workflow.v1alpha1.ValueFrom": {
5664 // ConfigMapKeyRef is configmap selector for input parameter configuration
5665 "configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
5666
5667 // Default specifies a value to be used if retrieving the value from the specified source fails
5668 "default"?: string
5669
5670 // Selector (https://github.com/expr-lang/expr) that is evaluated against the
5671 // event to get the value of the parameter. E.g. `payload.message`
5672 "event"?: string
5673
5674 // Expression, if defined, is evaluated to specify the value for the parameter
5675 "expression"?: string
5676
5677 // JQFilter expression against the resource object in resource templates
5678 "jqFilter"?: string
5679
5680 // JSONPath of a resource to retrieve an output parameter value from in resource templates
5681 "jsonPath"?: string
5682
5683 // Parameter reference to a step or dag task in which to retrieve an output
5684 // parameter value from (e.g. steps.mystep.outputs.myparam)
5685 "parameter"?: string
5686
5687 // Path in the container to retrieve an output parameter value from in container templates
5688 "path"?: string
5689
5690 // Supplied value to be filled in directly, either through the CLI, API, etc.
5691 "supplied"?: #."io.argoproj.workflow.v1alpha1.SuppliedValueFrom"
5692 }
5693
5694 #: "io.argoproj.workflow.v1alpha1.Version": {
5695 "buildDate"!: string
5696 "compiler"!: string
5697 "gitCommit"!: string
5698 "gitTag"!: string
5699 "gitTreeState"!: string
5700 "goVersion"!: string
5701 "platform"!: string
5702 "version"!: string
5703 }
5704
5705 // VolumeClaimGC describes how to delete volumes from completed Workflows
5706 #: {
5707 "io.argoproj.workflow.v1alpha1.VolumeClaimGC": {
5708 // Strategy is the strategy to use. One of "OnWorkflowCompletion",
5709 // "OnWorkflowSuccess". Defaults to "OnWorkflowSuccess"
5710 "strategy"?: string
5711 }
5712 }
5713
5714 // Workflow is the definition of a workflow resource
5715 #: "io.argoproj.workflow.v1alpha1.Workflow": {
5716 // APIVersion defines the versioned schema of this representation of an object.
5717 // Servers should convert recognized schemas to the latest internal value, and
5718 // may reject unrecognized values. More info:
5719 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
5720 "apiVersion"?: "argoproj.io/v1alpha1"
5721
5722 // Kind is a string value representing the REST resource this object represents.
5723 // Servers may infer this from the endpoint the client submits requests to.
5724 // Cannot be updated. In CamelCase. More info:
5725 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
5726 "kind"?: "Workflow"
5727 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
5728 "spec"!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
5729 "status"?: #."io.argoproj.workflow.v1alpha1.WorkflowStatus"
5730 }
5731
5732 #: "io.argoproj.workflow.v1alpha1.WorkflowCreateRequest": {
5733 "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
5734
5735 // This field is no longer used.
5736 "instanceID"?: string
5737 "namespace"?: string
5738 "serverDryRun"?: bool
5739 "workflow"?: #."io.argoproj.workflow.v1alpha1.Workflow"
5740 }
5741
5742 #: "io.argoproj.workflow.v1alpha1.WorkflowDeleteResponse": {}
5743
5744 // WorkflowEventBinding is the definition of an event resource
5745 #: "io.argoproj.workflow.v1alpha1.WorkflowEventBinding": {
5746 // APIVersion defines the versioned schema of this representation of an object.
5747 // Servers should convert recognized schemas to the latest internal value, and
5748 // may reject unrecognized values. More info:
5749 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
5750 "apiVersion"?: "argoproj.io/v1alpha1"
5751
5752 // Kind is a string value representing the REST resource this object represents.
5753 // Servers may infer this from the endpoint the client submits requests to.
5754 // Cannot be updated. In CamelCase. More info:
5755 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
5756 "kind"?: "WorkflowEventBinding"
5757 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
5758 "spec"!: #."io.argoproj.workflow.v1alpha1.WorkflowEventBindingSpec"
5759 }
5760
5761 // WorkflowEventBindingList is list of event resources
5762 #: "io.argoproj.workflow.v1alpha1.WorkflowEventBindingList": {
5763 // APIVersion defines the versioned schema of this representation of an object.
5764 // Servers should convert recognized schemas to the latest internal value, and
5765 // may reject unrecognized values. More info:
5766 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
5767 "apiVersion"?: string
5768 "items"!: [...#."io.argoproj.workflow.v1alpha1.WorkflowEventBinding"]
5769
5770 // Kind is a string value representing the REST resource this object represents.
5771 // Servers may infer this from the endpoint the client submits requests to.
5772 // Cannot be updated. In CamelCase. More info:
5773 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
5774 "kind"?: string
5775 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
5776 }
5777
5778 #: "io.argoproj.workflow.v1alpha1.WorkflowEventBindingSpec": {
5779 // Event is the event to bind to
5780 "event"!: #."io.argoproj.workflow.v1alpha1.Event"
5781
5782 // Submit is the workflow template to submit
5783 "submit"?: #."io.argoproj.workflow.v1alpha1.Submit"
5784 }
5785
5786 // WorkflowLevelArtifactGC describes how to delete artifacts from completed
5787 // Workflows - this spec is used on the Workflow level
5788 #: "io.argoproj.workflow.v1alpha1.WorkflowLevelArtifactGC": {
5789 // ForceFinalizerRemoval: if set to true, the finalizer will be removed in the
5790 // case that Artifact GC fails
5791 "forceFinalizerRemoval"?: bool
5792
5793 // PodMetadata is an optional field for specifying the Labels and Annotations
5794 // that should be assigned to the Pod doing the deletion
5795 "podMetadata"?: #."io.argoproj.workflow.v1alpha1.Metadata"
5796
5797 // PodSpecPatch holds strategic merge patch to apply against the artgc pod spec.
5798 "podSpecPatch"?: string
5799
5800 // ServiceAccountName is an optional field for specifying the Service Account
5801 // that should be assigned to the Pod doing the deletion
5802 "serviceAccountName"?: string
5803
5804 // Strategy is the strategy to use.
5805 "strategy"?: string
5806 }
5807
5808 #: "io.argoproj.workflow.v1alpha1.WorkflowLintRequest": {
5809 "namespace"?: string
5810 "workflow"?: #."io.argoproj.workflow.v1alpha1.Workflow"
5811 }
5812
5813 // WorkflowList is list of Workflow resources
5814 #: "io.argoproj.workflow.v1alpha1.WorkflowList": {
5815 // APIVersion defines the versioned schema of this representation of an object.
5816 // Servers should convert recognized schemas to the latest internal value, and
5817 // may reject unrecognized values. More info:
5818 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
5819 "apiVersion"?: string
5820 "items"!: [...#."io.argoproj.workflow.v1alpha1.Workflow"]
5821
5822 // Kind is a string value representing the REST resource this object represents.
5823 // Servers may infer this from the endpoint the client submits requests to.
5824 // Cannot be updated. In CamelCase. More info:
5825 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
5826 "kind"?: string
5827 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
5828 }
5829
5830 #: "io.argoproj.workflow.v1alpha1.WorkflowMetadata": {
5831 "annotations"?: [string]: string
5832 "labels"?: [string]: string
5833 "labelsFrom"?: [string]: #."io.argoproj.workflow.v1alpha1.LabelValueFrom"
5834 }
5835
5836 #: "io.argoproj.workflow.v1alpha1.WorkflowResubmitRequest": {
5837 "memoized"?: bool
5838 "name"?: string
5839 "namespace"?: string
5840 "parameters"?: [...string]
5841 }
5842
5843 #: "io.argoproj.workflow.v1alpha1.WorkflowResumeRequest": {
5844 "name"?: string
5845 "namespace"?: string
5846 "nodeFieldSelector"?: string
5847 }
5848
5849 #: "io.argoproj.workflow.v1alpha1.WorkflowRetryRequest": {
5850 "name"?: string
5851 "namespace"?: string
5852 "nodeFieldSelector"?: string
5853 "parameters"?: [...string]
5854 "restartSuccessful"?: bool
5855 }
5856
5857 #: "io.argoproj.workflow.v1alpha1.WorkflowSetRequest": {
5858 "message"?: string
5859 "name"?: string
5860 "namespace"?: string
5861 "nodeFieldSelector"?: string
5862 "outputParameters"?: string
5863 "phase"?: string
5864 }
5865
5866 // WorkflowSpec is the specification of a Workflow.
5867 #: "io.argoproj.workflow.v1alpha1.WorkflowSpec": {
5868 // Optional duration in seconds relative to the workflow start time which the
5869 // workflow is allowed to run before the controller terminates the
5870 // io.argoproj.workflow.v1alpha1. A value of zero is used to terminate a
5871 // Running workflow
5872 "activeDeadlineSeconds"?: int
5873
5874 // Affinity sets the scheduling constraints for all pods in the
5875 // io.argoproj.workflow.v1alpha1. Can be overridden by an affinity specified in
5876 // the template
5877 "affinity"?: #."io.k8s.api.core.v1.Affinity"
5878
5879 // ArchiveLogs indicates if the container logs should be archived
5880 "archiveLogs"?: bool
5881
5882 // Arguments contain the parameters and artifacts sent to the workflow
5883 // entrypoint Parameters are referencable globally using the 'workflow'
5884 // variable prefix. e.g. io.argoproj.workflow.v1alpha1.parameters.myparam
5885 "arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
5886
5887 // ArtifactGC describes the strategy to use when deleting artifacts from
5888 // completed or deleted workflows (applies to all output Artifacts unless
5889 // Artifact.ArtifactGC is specified, which overrides this)
5890 "artifactGC"?: #."io.argoproj.workflow.v1alpha1.WorkflowLevelArtifactGC"
5891
5892 // ArtifactRepositoryRef specifies the configMap name and key containing the
5893 // artifact repository config.
5894 "artifactRepositoryRef"?: #."io.argoproj.workflow.v1alpha1.ArtifactRepositoryRef"
5895
5896 // AutomountServiceAccountToken indicates whether a service account token should
5897 // be automatically mounted in pods. ServiceAccountName of ExecutorConfig must
5898 // be specified if this value is false.
5899 "automountServiceAccountToken"?: bool
5900
5901 // PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.
5902 "dnsConfig"?: #."io.k8s.api.core.v1.PodDNSConfig"
5903
5904 // Set DNS policy for workflow pods. Defaults to "ClusterFirst". Valid values
5905 // are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS
5906 // parameters given in DNSConfig will be merged with the policy selected with
5907 // DNSPolicy. To have DNS options set along with hostNetwork, you have to
5908 // specify DNS policy explicitly to 'ClusterFirstWithHostNet'.
5909 "dnsPolicy"?: string
5910
5911 // Entrypoint is a template reference to the starting point of the io.argoproj.workflow.v1alpha1.
5912 "entrypoint"?: string
5913
5914 // Executor holds configurations of executor containers of the io.argoproj.workflow.v1alpha1.
5915 "executor"?: #."io.argoproj.workflow.v1alpha1.ExecutorConfig"
5916
5917 // Hooks holds the lifecycle hook which is invoked at lifecycle of step,
5918 // irrespective of the success, failure, or error status of the primary step
5919 "hooks"?: [string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook"
5920 "hostAliases"?: [...#."io.k8s.api.core.v1.HostAlias"]
5921
5922 // Host networking requested for this workflow pod. Default to false.
5923 "hostNetwork"?: bool
5924
5925 // ImagePullSecrets is a list of references to secrets in the same namespace to
5926 // use for pulling any images in pods that reference this ServiceAccount.
5927 // ImagePullSecrets are distinct from Secrets because Secrets can be mounted in
5928 // the pod, but ImagePullSecrets are only accessed by the kubelet. More info:
5929 // https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
5930 "imagePullSecrets"?: [...#."io.k8s.api.core.v1.LocalObjectReference"]
5931
5932 // Metrics are a list of metrics emitted from this Workflow
5933 "metrics"?: #."io.argoproj.workflow.v1alpha1.Metrics"
5934
5935 // NodeSelector is a selector which will result in all pods of the workflow to
5936 // be scheduled on the selected node(s). This is able to be overridden by a
5937 // nodeSelector specified in the template.
5938 "nodeSelector"?: [string]: string
5939
5940 // OnExit is a template reference which is invoked at the end of the workflow,
5941 // irrespective of the success, failure, or error of the primary
5942 // io.argoproj.workflow.v1alpha1.
5943 "onExit"?: string
5944
5945 // Parallelism limits the max total parallel pods that can execute at the same time in a workflow
5946 "parallelism"?: int
5947
5948 // PodDisruptionBudget holds the number of concurrent disruptions that you allow
5949 // for Workflow's Pods. Controller will automatically add the selector with
5950 // workflow name, if selector is empty. Optional: Defaults to empty.
5951 "podDisruptionBudget"?: #."io.k8s.api.policy.v1.PodDisruptionBudgetSpec"
5952
5953 // PodGC describes the strategy to use when deleting completed pods
5954 "podGC"?: #."io.argoproj.workflow.v1alpha1.PodGC"
5955
5956 // PodMetadata defines additional metadata that should be applied to workflow pods
5957 "podMetadata"?: #."io.argoproj.workflow.v1alpha1.Metadata"
5958
5959 // PriorityClassName to apply to workflow pods.
5960 "podPriorityClassName"?: string
5961
5962 // PodSpecPatch holds strategic merge patch to apply against the pod spec.
5963 // Allows parameterization of container fields which are not strings (e.g.
5964 // resource limits).
5965 "podSpecPatch"?: string
5966
5967 // Priority is used if controller is configured to process limited number of
5968 // workflows in parallel. Workflows with higher priority are processed first.
5969 "priority"?: int
5970
5971 // RetryStrategy for all templates in the io.argoproj.workflow.v1alpha1.
5972 "retryStrategy"?: #."io.argoproj.workflow.v1alpha1.RetryStrategy"
5973
5974 // Set scheduler name for all pods. Will be overridden if container/script
5975 // template's scheduler name is set. Default scheduler will be used if neither
5976 // specified.
5977 "schedulerName"?: string
5978
5979 // SecurityContext holds pod-level security attributes and common container
5980 // settings. Optional: Defaults to empty. See type description for default
5981 // values of each field.
5982 "securityContext"?: #."io.k8s.api.core.v1.PodSecurityContext"
5983
5984 // ServiceAccountName is the name of the ServiceAccount to run all pods of the workflow as.
5985 "serviceAccountName"?: string
5986
5987 // Shutdown will shutdown the workflow according to its ShutdownStrategy
5988 "shutdown"?: string
5989
5990 // Suspend will suspend the workflow and prevent execution of any future steps in the workflow
5991 "suspend"?: bool
5992
5993 // Synchronization holds synchronization lock configuration for this Workflow
5994 "synchronization"?: #."io.argoproj.workflow.v1alpha1.Synchronization"
5995
5996 // TemplateDefaults holds default template values that will apply to all
5997 // templates in the Workflow, unless overridden on the template-level
5998 "templateDefaults"?: #."io.argoproj.workflow.v1alpha1.Template"
5999
6000 // Templates is a list of workflow templates used in a workflow MaxItems is an
6001 // artificial limit to limit CEL validation costs - see note at top of file
6002 "templates"?: [...#."io.argoproj.workflow.v1alpha1.Template"]
6003
6004 // Tolerations to apply to workflow pods.
6005 "tolerations"?: [...#."io.k8s.api.core.v1.Toleration"]
6006
6007 // TTLStrategy limits the lifetime of a Workflow that has finished execution
6008 // depending on if it Succeeded or Failed. If this struct is set, once the
6009 // Workflow finishes, it will be deleted after the time to live expires. If
6010 // this field is unset, the controller config map will hold the default values.
6011 "ttlStrategy"?: #."io.argoproj.workflow.v1alpha1.TTLStrategy"
6012
6013 // VolumeClaimGC describes the strategy to use when deleting volumes from completed workflows
6014 "volumeClaimGC"?: #."io.argoproj.workflow.v1alpha1.VolumeClaimGC"
6015
6016 // VolumeClaimTemplates is a list of claims that containers are allowed to
6017 // reference. The Workflow controller will create the claims at the beginning
6018 // of the workflow and delete the claims upon completion of the workflow
6019 "volumeClaimTemplates"?: [...#."io.k8s.api.core.v1.PersistentVolumeClaim"]
6020
6021 // Volumes is a list of volumes that can be mounted by containers in a
6022 // io.argoproj.workflow.v1alpha1.
6023 "volumes"?: [...#."io.k8s.api.core.v1.Volume"]
6024
6025 // WorkflowMetadata contains some metadata of the workflow to refer to
6026 "workflowMetadata"?: #."io.argoproj.workflow.v1alpha1.WorkflowMetadata"
6027
6028 // WorkflowTemplateRef holds a reference to a WorkflowTemplate for execution
6029 "workflowTemplateRef"?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplateRef"
6030 }
6031
6032 // WorkflowStatus contains overall status information about a workflow
6033 #: "io.argoproj.workflow.v1alpha1.WorkflowStatus": {
6034 // ArtifactGCStatus maintains the status of Artifact Garbage Collection
6035 "artifactGCStatus"?: #."io.argoproj.workflow.v1alpha1.ArtGCStatus"
6036
6037 // ArtifactRepositoryRef is used to cache the repository to use so we do not
6038 // need to determine it everytime we reconcile.
6039 "artifactRepositoryRef"?: #."io.argoproj.workflow.v1alpha1.ArtifactRepositoryRefStatus"
6040
6041 // Compressed and base64 decoded Nodes map
6042 "compressedNodes"?: string
6043
6044 // Conditions is a list of conditions the Workflow may have
6045 "conditions"?: [...#."io.argoproj.workflow.v1alpha1.Condition"]
6046
6047 // EstimatedDuration in seconds.
6048 "estimatedDuration"?: int
6049
6050 // Time at which this workflow completed
6051 "finishedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
6052
6053 // A human readable message indicating details about why the workflow is in this condition.
6054 "message"?: string
6055
6056 // Nodes is a mapping between a node ID and the node's status.
6057 "nodes"?: [string]: #."io.argoproj.workflow.v1alpha1.NodeStatus"
6058
6059 // Whether on not node status has been offloaded to a database. If exists, then
6060 // Nodes and CompressedNodes will be empty. This will actually be populated
6061 // with a hash of the offloaded data.
6062 "offloadNodeStatusVersion"?: string
6063
6064 // Outputs captures output values and artifact locations produced by the workflow via global outputs
6065 "outputs"?: #."io.argoproj.workflow.v1alpha1.Outputs"
6066
6067 // PersistentVolumeClaims tracks all PVCs that were created as part of the
6068 // io.argoproj.workflow.v1alpha1. The contents of this list are drained at the
6069 // end of the workflow.
6070 "persistentVolumeClaims"?: [...#."io.k8s.api.core.v1.Volume"]
6071
6072 // Phase a simple, high-level summary of where the workflow is in its lifecycle.
6073 // Will be "" (Unknown), "Pending", or "Running" before the workflow is
6074 // completed, and "Succeeded", "Failed" or "Error" once the workflow has
6075 // completed.
6076 "phase"?: string
6077
6078 // Progress to completion
6079 "progress"?: string
6080
6081 // ResourcesDuration is the total for the workflow
6082 "resourcesDuration"?: [string]: int
6083
6084 // Time at which this workflow started
6085 "startedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
6086
6087 // StoredTemplates is a mapping between a template ref and the node's status.
6088 "storedTemplates"?: [string]: #."io.argoproj.workflow.v1alpha1.Template"
6089
6090 // StoredWorkflowSpec stores the WorkflowTemplate spec for future execution.
6091 "storedWorkflowTemplateSpec"?: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
6092
6093 // Synchronization stores the status of synchronization locks
6094 "synchronization"?: #."io.argoproj.workflow.v1alpha1.SynchronizationStatus"
6095
6096 // TaskResultsCompletionStatus tracks task result completion status (mapped by
6097 // node ID). Used to prevent premature archiving and garbage collection.
6098 "taskResultsCompletionStatus"?: [string]: bool
6099 }
6100
6101 // WorkflowStep is a reference to a template to execute in a series of step
6102 // Note: CEL validation cannot check withItems (Schemaless) or inline
6103 // (PreserveUnknownFields) fields.
6104 #: "io.argoproj.workflow.v1alpha1.WorkflowStep": {
6105 // Arguments hold arguments to the template
6106 "arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
6107
6108 // ContinueOn makes argo to proceed with the following step even if this step
6109 // fails. Errors and Failed states can be specified
6110 "continueOn"?: #."io.argoproj.workflow.v1alpha1.ContinueOn"
6111
6112 // Hooks holds the lifecycle hook which is invoked at lifecycle of step,
6113 // irrespective of the success, failure, or error status of the primary step
6114 "hooks"?: [string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook"
6115
6116 // Inline is the template. Template must be empty if this is declared (and
6117 // vice-versa). Note: This struct is defined recursively, since the inline
6118 // template can potentially contain steps/DAGs that also has an "inline" field.
6119 // Kubernetes doesn't allow recursive types, so we need
6120 // "x-kubernetes-preserve-unknown-fields: true" in the validation schema.
6121 "inline"?: #."io.argoproj.workflow.v1alpha1.Template"
6122
6123 // Name of the step
6124 "name"?: string
6125
6126 // OnExit is a template reference which is invoked at the end of the template,
6127 // irrespective of the success, failure, or error of the primary template.
6128 // DEPRECATED: Use Hooks[exit].Template instead.
6129 "onExit"?: string
6130
6131 // Template is the name of the template to execute as the step
6132 "template"?: string
6133
6134 // TemplateRef is the reference to the template resource to execute as the step.
6135 "templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
6136
6137 // When is an expression in which the step should conditionally execute
6138 "when"?: string
6139
6140 // WithItems expands a step into multiple parallel steps from the items in the
6141 // list Note: The structure of WithItems is free-form, so we need
6142 // "x-kubernetes-preserve-unknown-fields: true" in the validation schema.
6143 "withItems"?: [...#."io.argoproj.workflow.v1alpha1.Item"]
6144
6145 // WithParam expands a step into multiple parallel steps from the value in the
6146 // parameter, which is expected to be a JSON list.
6147 "withParam"?: string
6148
6149 // WithSequence expands a step into a numeric sequence
6150 "withSequence"?: #."io.argoproj.workflow.v1alpha1.Sequence"
6151 }
6152
6153 #: "io.argoproj.workflow.v1alpha1.WorkflowStopRequest": {
6154 "message"?: string
6155 "name"?: string
6156 "namespace"?: string
6157 "nodeFieldSelector"?: string
6158 }
6159
6160 #: "io.argoproj.workflow.v1alpha1.WorkflowSubmitRequest": {
6161 "namespace"?: string
6162 "resourceKind"?: string
6163 "resourceName"?: string
6164 "submitOptions"?: #."io.argoproj.workflow.v1alpha1.SubmitOpts"
6165 }
6166
6167 #: "io.argoproj.workflow.v1alpha1.WorkflowSuspendRequest": {
6168 "name"?: string
6169 "namespace"?: string
6170 }
6171
6172 // WorkflowTemplate is the definition of a workflow template resource
6173 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplate": {
6174 // APIVersion defines the versioned schema of this representation of an object.
6175 // Servers should convert recognized schemas to the latest internal value, and
6176 // may reject unrecognized values. More info:
6177 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
6178 "apiVersion"?: "argoproj.io/v1alpha1"
6179
6180 // Kind is a string value representing the REST resource this object represents.
6181 // Servers may infer this from the endpoint the client submits requests to.
6182 // Cannot be updated. In CamelCase. More info:
6183 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
6184 "kind"?: "WorkflowTemplate"
6185 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
6186 "spec"!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
6187 }
6188
6189 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateCreateRequest": {
6190 "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
6191 "namespace"?: string
6192 "template"?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplate"
6193 }
6194
6195 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateDeleteResponse": {}
6196
6197 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateLintRequest": {
6198 "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
6199 "namespace"?: string
6200 "template"?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplate"
6201 }
6202
6203 // WorkflowTemplateList is list of WorkflowTemplate resources
6204 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateList": {
6205 // APIVersion defines the versioned schema of this representation of an object.
6206 // Servers should convert recognized schemas to the latest internal value, and
6207 // may reject unrecognized values. More info:
6208 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
6209 "apiVersion"?: string
6210 "items"!: [...#."io.argoproj.workflow.v1alpha1.WorkflowTemplate"]
6211
6212 // Kind is a string value representing the REST resource this object represents.
6213 // Servers may infer this from the endpoint the client submits requests to.
6214 // Cannot be updated. In CamelCase. More info:
6215 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
6216 "kind"?: string
6217 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
6218 }
6219
6220 // WorkflowTemplateRef is a reference to a WorkflowTemplate resource.
6221 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateRef": {
6222 // ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
6223 "clusterScope"?: bool
6224
6225 // Name is the resource name of the workflow template.
6226 "name"?: string
6227 }
6228
6229 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateUpdateRequest": {
6230 // DEPRECATED: This field is ignored.
6231 "name"?: string
6232 "namespace"?: string
6233 "template"?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplate"
6234 }
6235
6236 #: "io.argoproj.workflow.v1alpha1.WorkflowTerminateRequest": {
6237 "name"?: string
6238 "namespace"?: string
6239 }
6240
6241 #: "io.argoproj.workflow.v1alpha1.WorkflowWatchEvent": {
6242 // the workflow
6243 "object"?: #."io.argoproj.workflow.v1alpha1.Workflow"
6244
6245 // the type of change
6246 "type"?: string
6247 }
6248
6249 // ZipStrategy will unzip zipped input artifacts
6250 #: "io.argoproj.workflow.v1alpha1.ZipStrategy": {}
6251
6252 // Represents a Persistent Disk resource in AWS.
6253 //
6254 // An AWS EBS disk must exist before mounting to a container. The disk must also
6255 // be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted
6256 // as read/write once. AWS EBS volumes support ownership management and SELinux
6257 // relabeling.
6258 #: "io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource": {
6259 // fsType is the filesystem type of the volume that you want to mount. Tip:
6260 // Ensure that the filesystem type is supported by the host operating system.
6261 // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
6262 // unspecified. More info:
6263 // https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
6264 "fsType"?: string
6265
6266 // partition is the partition in the volume that you want to mount. If omitted,
6267 // the default is to mount by volume name. Examples: For volume /dev/sda1, you
6268 // specify the partition as "1". Similarly, the volume partition for /dev/sda
6269 // is "0" (or you can leave the property empty).
6270 "partition"?: int
6271
6272 // readOnly value true will force the readOnly setting in VolumeMounts. More
6273 // info:
6274 // https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
6275 "readOnly"?: bool
6276
6277 // volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS
6278 // volume). More info:
6279 // https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
6280 "volumeID"!: string
6281 }
6282
6283 // Affinity is a group of affinity scheduling rules.
6284 #: "io.k8s.api.core.v1.Affinity": {
6285 // Describes node affinity scheduling rules for the pod.
6286 "nodeAffinity"?: #."io.k8s.api.core.v1.NodeAffinity"
6287
6288 // Describes pod affinity scheduling rules (e.g. co-locate this pod in the same
6289 // node, zone, etc. as some other pod(s)).
6290 "podAffinity"?: #."io.k8s.api.core.v1.PodAffinity"
6291
6292 // Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in
6293 // the same node, zone, etc. as some other pod(s)).
6294 "podAntiAffinity"?: #."io.k8s.api.core.v1.PodAntiAffinity"
6295 }
6296
6297 // AppArmorProfile defines a pod or container's AppArmor settings.
6298 #: "io.k8s.api.core.v1.AppArmorProfile": {
6299 // localhostProfile indicates a profile loaded on the node that should be used.
6300 // The profile must be preconfigured on the node to work. Must match the loaded
6301 // name of the profile. Must be set if and only if type is "Localhost".
6302 "localhostProfile"?: string
6303
6304 // type indicates which kind of AppArmor profile will be applied. Valid options are:
6305 // Localhost - a profile pre-loaded on the node.
6306 // RuntimeDefault - the container runtime's default profile.
6307 // Unconfined - no AppArmor enforcement.
6308 "type"!: string
6309 }
6310
6311 // AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
6312 #: "io.k8s.api.core.v1.AzureDiskVolumeSource": {
6313 // cachingMode is the Host Caching mode: None, Read Only, Read Write.
6314 "cachingMode"?: string
6315
6316 // diskName is the Name of the data disk in the blob storage
6317 "diskName"!: string
6318
6319 // diskURI is the URI of data disk in the blob storage
6320 "diskURI"!: string
6321
6322 // fsType is Filesystem type to mount. Must be a filesystem type supported by
6323 // the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to
6324 // be "ext4" if unspecified.
6325 "fsType"?: string
6326
6327 // kind expected values are Shared: multiple blob disks per storage account
6328 // Dedicated: single blob disk per storage account Managed: azure managed data
6329 // disk (only in managed availability set). defaults to shared
6330 "kind"?: string
6331
6332 // readOnly Defaults to false (read/write). ReadOnly here will force the
6333 // ReadOnly setting in VolumeMounts.
6334 "readOnly"?: bool
6335 }
6336
6337 // AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
6338 #: "io.k8s.api.core.v1.AzureFileVolumeSource": {
6339 // readOnly defaults to false (read/write). ReadOnly here will force the
6340 // ReadOnly setting in VolumeMounts.
6341 "readOnly"?: bool
6342
6343 // secretName is the name of secret that contains Azure Storage Account Name and Key
6344 "secretName"!: string
6345
6346 // shareName is the azure share Name
6347 "shareName"!: string
6348 }
6349
6350 // Represents a source location of a volume to mount, managed by an external CSI driver
6351 #: "io.k8s.api.core.v1.CSIVolumeSource": {
6352 // driver is the name of the CSI driver that handles this volume. Consult with
6353 // your admin for the correct name as registered in the cluster.
6354 "driver"!: string
6355
6356 // fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value
6357 // is passed to the associated CSI driver which will determine the default
6358 // filesystem to apply.
6359 "fsType"?: string
6360
6361 // nodePublishSecretRef is a reference to the secret object containing sensitive
6362 // information to pass to the CSI driver to complete the CSI NodePublishVolume
6363 // and NodeUnpublishVolume calls. This field is optional, and may be empty if
6364 // no secret is required. If the secret object contains more than one secret,
6365 // all secret references are passed.
6366 "nodePublishSecretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
6367
6368 // readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).
6369 "readOnly"?: bool
6370
6371 // volumeAttributes stores driver-specific properties that are passed to the CSI
6372 // driver. Consult your driver's documentation for supported values.
6373 "volumeAttributes"?: [string]: string
6374 }
6375
6376 // Adds and removes POSIX capabilities from running containers.
6377 #: "io.k8s.api.core.v1.Capabilities": {
6378 // Added capabilities
6379 "add"?: [...string]
6380
6381 // Removed capabilities
6382 "drop"?: [...string]
6383 }
6384
6385 // Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs
6386 // volumes do not support ownership management or SELinux relabeling.
6387 #: "io.k8s.api.core.v1.CephFSVolumeSource": {
6388 // monitors is Required: Monitors is a collection of Ceph monitors More info:
6389 // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
6390 "monitors"!: [...string]
6391
6392 // path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /
6393 "path"?: string
6394
6395 // readOnly is Optional: Defaults to false (read/write). ReadOnly here will
6396 // force the ReadOnly setting in VolumeMounts. More info:
6397 // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
6398 "readOnly"?: bool
6399
6400 // secretFile is Optional: SecretFile is the path to key ring for User, default
6401 // is /etc/ceph/user.secret More info:
6402 // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
6403 "secretFile"?: string
6404
6405 // secretRef is Optional: SecretRef is reference to the authentication secret
6406 // for User, default is empty. More info:
6407 // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
6408 "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
6409
6410 // user is optional: User is the rados user name, default is admin More info:
6411 // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
6412 "user"?: string
6413 }
6414
6415 // Represents a cinder volume resource in Openstack. A Cinder volume must exist
6416 // before mounting to a container. The volume must also be in the same region
6417 // as the kubelet. Cinder volumes support ownership management and SELinux
6418 // relabeling.
6419 #: "io.k8s.api.core.v1.CinderVolumeSource": {
6420 // fsType is the filesystem type to mount. Must be a filesystem type supported
6421 // by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly
6422 // inferred to be "ext4" if unspecified. More info:
6423 // https://examples.k8s.io/mysql-cinder-pd/README.md
6424 "fsType"?: string
6425
6426 // readOnly defaults to false (read/write). ReadOnly here will force the
6427 // ReadOnly setting in VolumeMounts. More info:
6428 // https://examples.k8s.io/mysql-cinder-pd/README.md
6429 "readOnly"?: bool
6430
6431 // secretRef is optional: points to a secret object containing parameters used
6432 // to connect to OpenStack.
6433 "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
6434
6435 // volumeID used to identify the volume in cinder. More info:
6436 // https://examples.k8s.io/mysql-cinder-pd/README.md
6437 "volumeID"!: string
6438 }
6439
6440 // ClusterTrustBundleProjection describes how to select a set of
6441 // ClusterTrustBundle objects and project their contents into the pod
6442 // filesystem.
6443 #: "io.k8s.api.core.v1.ClusterTrustBundleProjection": {
6444 // Select all ClusterTrustBundles that match this label selector. Only has
6445 // effect if signerName is set. Mutually-exclusive with name. If unset,
6446 // interpreted as "match nothing". If set but empty, interpreted as "match
6447 // everything".
6448 "labelSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
6449
6450 // Select a single ClusterTrustBundle by object name. Mutually-exclusive with
6451 // signerName and labelSelector.
6452 "name"?: string
6453
6454 // If true, don't block pod startup if the referenced ClusterTrustBundle(s)
6455 // aren't available. If using name, then the named ClusterTrustBundle is
6456 // allowed not to exist. If using signerName, then the combination of
6457 // signerName and labelSelector is allowed to match zero ClusterTrustBundles.
6458 "optional"?: bool
6459
6460 // Relative path from the volume root to write the bundle.
6461 "path"!: string
6462
6463 // Select all ClusterTrustBundles that match this signer name.
6464 // Mutually-exclusive with name. The contents of all selected
6465 // ClusterTrustBundles will be unified and deduplicated.
6466 "signerName"?: string
6467 }
6468
6469 // ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.
6470 //
6471 // The contents of the target ConfigMap's Data field will represent the
6472 // key-value pairs as environment variables.
6473 #: "io.k8s.api.core.v1.ConfigMapEnvSource": {
6474 // Name of the referent. This field is effectively required, but due to
6475 // backwards compatibility is allowed to be empty. Instances of this type with
6476 // an empty value here are almost certainly wrong. More info:
6477 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6478 "name"?: string
6479
6480 // Specify whether the ConfigMap must be defined
6481 "optional"?: bool
6482 }
6483
6484 // Selects a key from a ConfigMap.
6485 #: "io.k8s.api.core.v1.ConfigMapKeySelector": {
6486 // The key to select.
6487 "key"!: string
6488
6489 // Name of the referent. This field is effectively required, but due to
6490 // backwards compatibility is allowed to be empty. Instances of this type with
6491 // an empty value here are almost certainly wrong. More info:
6492 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6493 "name"?: string
6494
6495 // Specify whether the ConfigMap or its key must be defined
6496 "optional"?: bool
6497 }
6498
6499 // Adapts a ConfigMap into a projected volume.
6500 //
6501 // The contents of the target ConfigMap's Data field will be presented in a
6502 // projected volume as files using the keys in the Data field as the file
6503 // names, unless the items element is populated with specific mappings of keys
6504 // to paths. Note that this is identical to a configmap volume source without
6505 // the default mode.
6506 #: "io.k8s.api.core.v1.ConfigMapProjection": {
6507 // items if unspecified, each key-value pair in the Data field of the referenced
6508 // ConfigMap will be projected into the volume as a file whose name is the key
6509 // and content is the value. If specified, the listed keys will be projected
6510 // into the specified paths, and unlisted keys will not be present. If a key is
6511 // specified which is not present in the ConfigMap, the volume setup will error
6512 // unless it is marked optional. Paths must be relative and may not contain the
6513 // '..' path or start with '..'.
6514 "items"?: [...#."io.k8s.api.core.v1.KeyToPath"]
6515
6516 // Name of the referent. This field is effectively required, but due to
6517 // backwards compatibility is allowed to be empty. Instances of this type with
6518 // an empty value here are almost certainly wrong. More info:
6519 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6520 "name"?: string
6521
6522 // optional specify whether the ConfigMap or its keys must be defined
6523 "optional"?: bool
6524 }
6525
6526 // Adapts a ConfigMap into a volume.
6527 //
6528 // The contents of the target ConfigMap's Data field will be presented in a
6529 // volume as files using the keys in the Data field as the file names, unless
6530 // the items element is populated with specific mappings of keys to paths.
6531 // ConfigMap volumes support ownership management and SELinux relabeling.
6532 #: "io.k8s.api.core.v1.ConfigMapVolumeSource": {
6533 // defaultMode is optional: mode bits used to set permissions on created files
6534 // by default. Must be an octal value between 0000 and 0777 or a decimal value
6535 // between 0 and 511. YAML accepts both octal and decimal values, JSON requires
6536 // decimal values for mode bits. Defaults to 0644. Directories within the path
6537 // are not affected by this setting. This might be in conflict with other
6538 // options that affect the file mode, like fsGroup, and the result can be other
6539 // mode bits set.
6540 "defaultMode"?: int
6541
6542 // items if unspecified, each key-value pair in the Data field of the referenced
6543 // ConfigMap will be projected into the volume as a file whose name is the key
6544 // and content is the value. If specified, the listed keys will be projected
6545 // into the specified paths, and unlisted keys will not be present. If a key is
6546 // specified which is not present in the ConfigMap, the volume setup will error
6547 // unless it is marked optional. Paths must be relative and may not contain the
6548 // '..' path or start with '..'.
6549 "items"?: [...#."io.k8s.api.core.v1.KeyToPath"]
6550
6551 // Name of the referent. This field is effectively required, but due to
6552 // backwards compatibility is allowed to be empty. Instances of this type with
6553 // an empty value here are almost certainly wrong. More info:
6554 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6555 "name"?: string
6556
6557 // optional specify whether the ConfigMap or its keys must be defined
6558 "optional"?: bool
6559 }
6560
6561 // A single application container that you want to run within a pod.
6562 #: "io.k8s.api.core.v1.Container": {
6563 // Arguments to the entrypoint. The container image's CMD is used if this is not
6564 // provided. Variable references $(VAR_NAME) are expanded using the container's
6565 // environment. If a variable cannot be resolved, the reference in the input
6566 // string will be unchanged. Double $$ are reduced to a single $, which allows
6567 // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
6568 // string literal "$(VAR_NAME)". Escaped references will never be expanded,
6569 // regardless of whether the variable exists or not. Cannot be updated. More
6570 // info:
6571 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
6572 "args"?: [...string]
6573
6574 // Entrypoint array. Not executed within a shell. The container image's
6575 // ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME)
6576 // are expanded using the container's environment. If a variable cannot be
6577 // resolved, the reference in the input string will be unchanged. Double $$ are
6578 // reduced to a single $, which allows for escaping the $(VAR_NAME) syntax:
6579 // i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped
6580 // references will never be expanded, regardless of whether the variable exists
6581 // or not. Cannot be updated. More info:
6582 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
6583 "command"?: [...string]
6584
6585 // List of environment variables to set in the container. Cannot be updated.
6586 "env"?: [...#."io.k8s.api.core.v1.EnvVar"]
6587
6588 // List of sources to populate environment variables in the container. The keys
6589 // defined within a source must be a C_IDENTIFIER. All invalid keys will be
6590 // reported as an event when the container is starting. When a key exists in
6591 // multiple sources, the value associated with the last source will take
6592 // precedence. Values defined by an Env with a duplicate key will take
6593 // precedence. Cannot be updated.
6594 "envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
6595
6596 // Container image name. More info:
6597 // https://kubernetes.io/docs/concepts/containers/images This field is optional
6598 // to allow higher level config management to default or override container
6599 // images in workload controllers like Deployments and StatefulSets.
6600 "image"!: string
6601
6602 // Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if
6603 // :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More
6604 // info: https://kubernetes.io/docs/concepts/containers/images#updating-images
6605 "imagePullPolicy"?: string
6606
6607 // Actions that the management system should take in response to container
6608 // lifecycle events. Cannot be updated.
6609 "lifecycle"?: #."io.k8s.api.core.v1.Lifecycle"
6610
6611 // Periodic probe of container liveness. Container will be restarted if the
6612 // probe fails. Cannot be updated. More info:
6613 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
6614 "livenessProbe"?: #."io.k8s.api.core.v1.Probe"
6615
6616 // Name of the container specified as a DNS_LABEL. Each container in a pod must
6617 // have a unique name (DNS_LABEL). Cannot be updated.
6618 "name"?: string
6619
6620 // List of ports to expose from the container. Not specifying a port here DOES
6621 // NOT prevent that port from being exposed. Any port which is listening on the
6622 // default "0.0.0.0" address inside a container will be accessible from the
6623 // network. Modifying this array with strategic merge patch may corrupt the
6624 // data. For more information See
6625 // https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.
6626 "ports"?: [...#."io.k8s.api.core.v1.ContainerPort"]
6627
6628 // Periodic probe of container service readiness. Container will be removed from
6629 // service endpoints if the probe fails. Cannot be updated. More info:
6630 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
6631 "readinessProbe"?: #."io.k8s.api.core.v1.Probe"
6632
6633 // Resources resize policy for the container.
6634 "resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
6635
6636 // Compute Resources required by this container. Cannot be updated. More info:
6637 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
6638 "resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
6639
6640 // RestartPolicy defines the restart behavior of individual containers in a pod.
6641 // This field may only be set for init containers, and the only allowed value
6642 // is "Always". For non-init containers or when this field is not specified,
6643 // the restart behavior is defined by the Pod's restart policy and the
6644 // container type. Setting the RestartPolicy as "Always" for the init container
6645 // will have the following effect: this init container will be continually
6646 // restarted on exit until all regular containers have terminated. Once all
6647 // regular containers have completed, all init containers with restartPolicy
6648 // "Always" will be shut down. This lifecycle differs from normal init
6649 // containers and is often referred to as a "sidecar" container. Although this
6650 // init container still starts in the init container sequence, it does not wait
6651 // for the container to complete before proceeding to the next init container.
6652 // Instead, the next init container starts immediately after this init
6653 // container is started, or after any startupProbe has successfully completed.
6654 "restartPolicy"?: string
6655
6656 // SecurityContext defines the security options the container should be run
6657 // with. If set, the fields of SecurityContext override the equivalent fields
6658 // of PodSecurityContext. More info:
6659 // https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
6660 "securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
6661
6662 // StartupProbe indicates that the Pod has successfully initialized. If
6663 // specified, no other probes are executed until this completes successfully.
6664 // If this probe fails, the Pod will be restarted, just as if the livenessProbe
6665 // failed. This can be used to provide different probe parameters at the
6666 // beginning of a Pod's lifecycle, when it might take a long time to load data
6667 // or warm a cache, than during steady-state operation. This cannot be updated.
6668 // More info:
6669 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
6670 "startupProbe"?: #."io.k8s.api.core.v1.Probe"
6671
6672 // Whether this container should allocate a buffer for stdin in the container
6673 // runtime. If this is not set, reads from stdin in the container will always
6674 // result in EOF. Default is false.
6675 "stdin"?: bool
6676
6677 // Whether the container runtime should close the stdin channel after it has
6678 // been opened by a single attach. When stdin is true the stdin stream will
6679 // remain open across multiple attach sessions. If stdinOnce is set to true,
6680 // stdin is opened on container start, is empty until the first client attaches
6681 // to stdin, and then remains open and accepts data until the client
6682 // disconnects, at which time stdin is closed and remains closed until the
6683 // container is restarted. If this flag is false, a container processes that
6684 // reads from stdin will never receive an EOF. Default is false
6685 "stdinOnce"?: bool
6686
6687 // Optional: Path at which the file to which the container's termination message
6688 // will be written is mounted into the container's filesystem. Message written
6689 // is intended to be brief final status, such as an assertion failure message.
6690 // Will be truncated by the node if greater than 4096 bytes. The total message
6691 // length across all containers will be limited to 12kb. Defaults to
6692 // /dev/termination-log. Cannot be updated.
6693 "terminationMessagePath"?: string
6694
6695 // Indicate how the termination message should be populated. File will use the
6696 // contents of terminationMessagePath to populate the container status message
6697 // on both success and failure. FallbackToLogsOnError will use the last chunk
6698 // of container log output if the termination message file is empty and the
6699 // container exited with an error. The log output is limited to 2048 bytes or
6700 // 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
6701 "terminationMessagePolicy"?: string
6702
6703 // Whether this container should allocate a TTY for itself, also requires
6704 // 'stdin' to be true. Default is false.
6705 "tty"?: bool
6706
6707 // volumeDevices is the list of block devices to be used by the container.
6708 "volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"]
6709
6710 // Pod volumes to mount into the container's filesystem. Cannot be updated.
6711 "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
6712
6713 // Container's working directory. If not specified, the container runtime's
6714 // default will be used, which might be configured in the container image.
6715 // Cannot be updated.
6716 "workingDir"?: string
6717 }
6718
6719 // ContainerPort represents a network port in a single container.
6720 #: "io.k8s.api.core.v1.ContainerPort": {
6721 // Number of port to expose on the pod's IP address. This must be a valid port
6722 // number, 0 < x < 65536.
6723 "containerPort"!: int
6724
6725 // What host IP to bind the external port to.
6726 "hostIP"?: string
6727
6728 // Number of port to expose on the host. If specified, this must be a valid port
6729 // number, 0 < x < 65536. If HostNetwork is specified, this must match
6730 // ContainerPort. Most containers do not need this.
6731 "hostPort"?: int
6732
6733 // If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
6734 // named port in a pod must have a unique name. Name for the port that can be
6735 // referred to by services.
6736 "name"?: string
6737
6738 // Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP".
6739 "protocol"?: string
6740 }
6741
6742 // ContainerResizePolicy represents resource resize policy for the container.
6743 #: "io.k8s.api.core.v1.ContainerResizePolicy": {
6744 // Name of the resource to which this resource resize policy applies. Supported values: cpu, memory.
6745 "resourceName"!: string
6746
6747 // Restart policy to apply when specified resource is resized. If not specified,
6748 // it defaults to NotRequired.
6749 "restartPolicy"!: string
6750 }
6751
6752 // Represents downward API info for projecting into a projected volume. Note
6753 // that this is identical to a downwardAPI volume source without the default
6754 // mode.
6755 #: {
6756 "io.k8s.api.core.v1.DownwardAPIProjection": {
6757 // Items is a list of DownwardAPIVolume file
6758 "items"?: [...#."io.k8s.api.core.v1.DownwardAPIVolumeFile"]
6759 }
6760 }
6761
6762 // DownwardAPIVolumeFile represents information to create the file containing the pod field
6763 #: "io.k8s.api.core.v1.DownwardAPIVolumeFile": {
6764 // Required: Selects a field of the pod: only annotations, labels, name,
6765 // namespace and uid are supported.
6766 "fieldRef"?: #."io.k8s.api.core.v1.ObjectFieldSelector"
6767
6768 // Optional: mode bits used to set permissions on this file, must be an octal
6769 // value between 0000 and 0777 or a decimal value between 0 and 511. YAML
6770 // accepts both octal and decimal values, JSON requires decimal values for mode
6771 // bits. If not specified, the volume defaultMode will be used. This might be
6772 // in conflict with other options that affect the file mode, like fsGroup, and
6773 // the result can be other mode bits set.
6774 "mode"?: int
6775
6776 // Required: Path is the relative path name of the file to be created. Must not
6777 // be absolute or contain the '..' path. Must be utf-8 encoded. The first item
6778 // of the relative path must not start with '..'
6779 "path"!: string
6780
6781 // Selects a resource of the container: only resources limits and requests
6782 // (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently
6783 // supported.
6784 "resourceFieldRef"?: #."io.k8s.api.core.v1.ResourceFieldSelector"
6785 }
6786
6787 // DownwardAPIVolumeSource represents a volume containing downward API info.
6788 // Downward API volumes support ownership management and SELinux relabeling.
6789 #: "io.k8s.api.core.v1.DownwardAPIVolumeSource": {
6790 // Optional: mode bits to use on created files by default. Must be a Optional:
6791 // mode bits used to set permissions on created files by default. Must be an
6792 // octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML
6793 // accepts both octal and decimal values, JSON requires decimal values for mode
6794 // bits. Defaults to 0644. Directories within the path are not affected by this
6795 // setting. This might be in conflict with other options that affect the file
6796 // mode, like fsGroup, and the result can be other mode bits set.
6797 "defaultMode"?: int
6798
6799 // Items is a list of downward API volume file
6800 "items"?: [...#."io.k8s.api.core.v1.DownwardAPIVolumeFile"]
6801 }
6802
6803 // Represents an empty directory for a pod. Empty directory volumes support
6804 // ownership management and SELinux relabeling.
6805 #: "io.k8s.api.core.v1.EmptyDirVolumeSource": {
6806 // medium represents what type of storage medium should back this directory. The
6807 // default is "" which means to use the node's default medium. Must be an empty
6808 // string (default) or Memory. More info:
6809 // https://kubernetes.io/docs/concepts/storage/volumes#emptydir
6810 "medium"?: string
6811
6812 // sizeLimit is the total amount of local storage required for this EmptyDir
6813 // volume. The size limit is also applicable for memory medium. The maximum
6814 // usage on memory medium EmptyDir would be the minimum value between the
6815 // SizeLimit specified here and the sum of memory limits of all containers in a
6816 // pod. The default is nil which means that the limit is undefined. More info:
6817 // https://kubernetes.io/docs/concepts/storage/volumes#emptydir
6818 "sizeLimit"?: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
6819 }
6820
6821 // EnvFromSource represents the source of a set of ConfigMaps or Secrets
6822 #: "io.k8s.api.core.v1.EnvFromSource": {
6823 // The ConfigMap to select from
6824 "configMapRef"?: #."io.k8s.api.core.v1.ConfigMapEnvSource"
6825
6826 // Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
6827 "prefix"?: string
6828
6829 // The Secret to select from
6830 "secretRef"?: #."io.k8s.api.core.v1.SecretEnvSource"
6831 }
6832
6833 // EnvVar represents an environment variable present in a Container.
6834 #: "io.k8s.api.core.v1.EnvVar": {
6835 // Name of the environment variable. Must be a C_IDENTIFIER.
6836 "name"!: string
6837
6838 // Variable references $(VAR_NAME) are expanded using the previously defined
6839 // environment variables in the container and any service environment
6840 // variables. If a variable cannot be resolved, the reference in the input
6841 // string will be unchanged. Double $$ are reduced to a single $, which allows
6842 // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
6843 // string literal "$(VAR_NAME)". Escaped references will never be expanded,
6844 // regardless of whether the variable exists or not. Defaults to "".
6845 "value"?: string
6846
6847 // Source for the environment variable's value. Cannot be used if value is not empty.
6848 "valueFrom"?: #."io.k8s.api.core.v1.EnvVarSource"
6849 }
6850
6851 // EnvVarSource represents a source for the value of an EnvVar.
6852 #: "io.k8s.api.core.v1.EnvVarSource": {
6853 // Selects a key of a ConfigMap.
6854 "configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
6855
6856 // Selects a field of the pod: supports metadata.name, metadata.namespace,
6857 // `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`, spec.nodeName,
6858 // spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
6859 "fieldRef"?: #."io.k8s.api.core.v1.ObjectFieldSelector"
6860
6861 // Selects a resource of the container: only resources limits and requests
6862 // (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu,
6863 // requests.memory and requests.ephemeral-storage) are currently supported.
6864 "resourceFieldRef"?: #."io.k8s.api.core.v1.ResourceFieldSelector"
6865
6866 // Selects a key of a secret in the pod's namespace
6867 "secretKeyRef"?: #."io.k8s.api.core.v1.SecretKeySelector"
6868 }
6869
6870 // Represents an ephemeral volume that is handled by a normal storage driver.
6871 #: {
6872 "io.k8s.api.core.v1.EphemeralVolumeSource": {
6873 // Will be used to create a stand-alone PVC to provision the volume. The pod in
6874 // which this EphemeralVolumeSource is embedded will be the owner of the PVC,
6875 // i.e. the PVC will be deleted together with the pod. The name of the PVC will
6876 // be `<pod name>-<volume name>` where `<volume name>` is the name from the
6877 // `PodSpec.Volumes` array entry. Pod validation will reject the pod if the
6878 // concatenated name is not valid for a PVC (for example, too long).
6879 //
6880 // An existing PVC with that name that is not owned by the pod will *not* be
6881 // used for the pod to avoid using an unrelated volume by mistake. Starting the
6882 // pod is then blocked until the unrelated PVC is removed. If such a
6883 // pre-created PVC is meant to be used by the pod, the PVC has to updated with
6884 // an owner reference to the pod once the pod exists. Normally this should not
6885 // be necessary, but it may be useful when manually reconstructing a broken
6886 // cluster.
6887 //
6888 // This field is read-only and no changes will be made by Kubernetes to the PVC
6889 // after it has been created.
6890 //
6891 // Required, must not be nil.
6892 "volumeClaimTemplate"?: #."io.k8s.api.core.v1.PersistentVolumeClaimTemplate"
6893 }
6894 }
6895
6896 // Event is a report of an event somewhere in the cluster. Events have a limited
6897 // retention time and triggers and messages may evolve with time. Event
6898 // consumers should not rely on the timing of an event with a given Reason
6899 // reflecting a consistent underlying trigger, or the continued existence of
6900 // events with that Reason. Events should be treated as informative,
6901 // best-effort, supplemental data.
6902 #: "io.k8s.api.core.v1.Event": {
6903 // What action was taken/failed regarding to the Regarding object.
6904 "action"?: string
6905
6906 // APIVersion defines the versioned schema of this representation of an object.
6907 // Servers should convert recognized schemas to the latest internal value, and
6908 // may reject unrecognized values. More info:
6909 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
6910 "apiVersion"?: string
6911
6912 // The number of times this event has occurred.
6913 "count"?: int
6914
6915 // Time when this Event was first observed.
6916 "eventTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime"
6917
6918 // The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
6919 "firstTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
6920
6921 // The object that this event is about.
6922 "involvedObject"!: #."io.k8s.api.core.v1.ObjectReference"
6923
6924 // Kind is a string value representing the REST resource this object represents.
6925 // Servers may infer this from the endpoint the client submits requests to.
6926 // Cannot be updated. In CamelCase. More info:
6927 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
6928 "kind"?: string
6929
6930 // The time at which the most recent occurrence of this event was recorded.
6931 "lastTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
6932
6933 // A human-readable description of the status of this operation.
6934 "message"?: string
6935
6936 // Standard object's metadata. More info:
6937 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
6938 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
6939
6940 // This should be a short, machine understandable string that gives the reason
6941 // for the transition into the object's current status.
6942 "reason"?: string
6943
6944 // Optional secondary object for more complex actions.
6945 "related"?: #."io.k8s.api.core.v1.ObjectReference"
6946
6947 // Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
6948 "reportingComponent"?: string
6949
6950 // ID of the controller instance, e.g. `kubelet-xyzf`.
6951 "reportingInstance"?: string
6952
6953 // Data about the Event series this event represents or nil if it's a singleton Event.
6954 "series"?: #."io.k8s.api.core.v1.EventSeries"
6955
6956 // The component reporting this event. Should be a short machine understandable string.
6957 "source"?: #."io.k8s.api.core.v1.EventSource"
6958
6959 // Type of this event (Normal, Warning), new types could be added in the future
6960 "type"?: string
6961 }
6962
6963 // EventSeries contain information on series of events, i.e. thing that was/is
6964 // happening continuously for some time.
6965 #: "io.k8s.api.core.v1.EventSeries": {
6966 // Number of occurrences in this series up to the last heartbeat time
6967 "count"?: int
6968
6969 // Time of the last occurrence observed
6970 "lastObservedTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime"
6971 }
6972
6973 // EventSource contains information for an event.
6974 #: "io.k8s.api.core.v1.EventSource": {
6975 // Component from which the event is generated.
6976 "component"?: string
6977
6978 // Node name on which the event is generated.
6979 "host"?: string
6980 }
6981
6982 // ExecAction describes a "run in container" action.
6983 #: {
6984 "io.k8s.api.core.v1.ExecAction": {
6985 // Command is the command line to execute inside the container, the working
6986 // directory for the command is root ('/') in the container's filesystem. The
6987 // command is simply exec'd, it is not run inside a shell, so traditional shell
6988 // instructions ('|', etc) won't work. To use a shell, you need to explicitly
6989 // call out to that shell. Exit status of 0 is treated as live/healthy and
6990 // non-zero is unhealthy.
6991 "command"?: [...string]
6992 }
6993 }
6994
6995 // Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted
6996 // as read/write once. Fibre Channel volumes support ownership management and
6997 // SELinux relabeling.
6998 #: "io.k8s.api.core.v1.FCVolumeSource": {
6999 // fsType is the filesystem type to mount. Must be a filesystem type supported
7000 // by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred
7001 // to be "ext4" if unspecified.
7002 "fsType"?: string
7003
7004 // lun is Optional: FC target lun number
7005 "lun"?: int
7006
7007 // readOnly is Optional: Defaults to false (read/write). ReadOnly here will
7008 // force the ReadOnly setting in VolumeMounts.
7009 "readOnly"?: bool
7010
7011 // targetWWNs is Optional: FC target worldwide names (WWNs)
7012 "targetWWNs"?: [...string]
7013
7014 // wwids Optional: FC volume world wide identifiers (wwids) Either wwids or
7015 // combination of targetWWNs and lun must be set, but not both simultaneously.
7016 "wwids"?: [...string]
7017 }
7018
7019 // FlexVolume represents a generic volume resource that is provisioned/attached
7020 // using an exec based plugin.
7021 #: "io.k8s.api.core.v1.FlexVolumeSource": {
7022 // driver is the name of the driver to use for this volume.
7023 "driver"!: string
7024
7025 // fsType is the filesystem type to mount. Must be a filesystem type supported
7026 // by the host operating system. Ex. "ext4", "xfs", "ntfs". The default
7027 // filesystem depends on FlexVolume script.
7028 "fsType"?: string
7029
7030 // options is Optional: this field holds extra command options if any.
7031 "options"?: [string]: string
7032
7033 // readOnly is Optional: defaults to false (read/write). ReadOnly here will
7034 // force the ReadOnly setting in VolumeMounts.
7035 "readOnly"?: bool
7036
7037 // secretRef is Optional: secretRef is reference to the secret object containing
7038 // sensitive information to pass to the plugin scripts. This may be empty if no
7039 // secret object is specified. If the secret object contains more than one
7040 // secret, all secrets are passed to the plugin scripts.
7041 "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
7042 }
7043
7044 // Represents a Flocker volume mounted by the Flocker agent. One and only one of
7045 // datasetName and datasetUUID should be set. Flocker volumes do not support
7046 // ownership management or SELinux relabeling.
7047 #: "io.k8s.api.core.v1.FlockerVolumeSource": {
7048 // datasetName is Name of the dataset stored as metadata -> name on the dataset
7049 // for Flocker should be considered as deprecated
7050 "datasetName"?: string
7051
7052 // datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset
7053 "datasetUUID"?: string
7054 }
7055
7056 // Represents a Persistent Disk resource in Google Compute Engine.
7057 //
7058 // A GCE PD must exist before mounting to a container. The disk must also be in
7059 // the same GCE project and zone as the kubelet. A GCE PD can only be mounted
7060 // as read/write once or read-only many times. GCE PDs support ownership
7061 // management and SELinux relabeling.
7062 #: "io.k8s.api.core.v1.GCEPersistentDiskVolumeSource": {
7063 // fsType is filesystem type of the volume that you want to mount. Tip: Ensure
7064 // that the filesystem type is supported by the host operating system.
7065 // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
7066 // unspecified. More info:
7067 // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
7068 "fsType"?: string
7069
7070 // partition is the partition in the volume that you want to mount. If omitted,
7071 // the default is to mount by volume name. Examples: For volume /dev/sda1, you
7072 // specify the partition as "1". Similarly, the volume partition for /dev/sda
7073 // is "0" (or you can leave the property empty). More info:
7074 // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
7075 "partition"?: int
7076
7077 // pdName is unique name of the PD resource in GCE. Used to identify the disk in
7078 // GCE. More info:
7079 // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
7080 "pdName"!: string
7081
7082 // readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to
7083 // false. More info:
7084 // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
7085 "readOnly"?: bool
7086 }
7087
7088 // GRPCAction specifies an action involving a GRPC service.
7089 #: "io.k8s.api.core.v1.GRPCAction": {
7090 // Port number of the gRPC service. Number must be in the range 1 to 65535.
7091 "port"!: int
7092
7093 // Service is the name of the service to place in the gRPC HealthCheckRequest
7094 // (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
7095 //
7096 // If this is not specified, the default behavior is defined by gRPC.
7097 "service"?: string
7098 }
7099
7100 // Represents a volume that is populated with the contents of a git repository.
7101 // Git repo volumes do not support ownership management. Git repo volumes
7102 // support SELinux relabeling.
7103 //
7104 // DEPRECATED: GitRepo is deprecated. To provision a container with a git repo,
7105 // mount an EmptyDir into an InitContainer that clones the repo using git, then
7106 // mount the EmptyDir into the Pod's container.
7107 #: "io.k8s.api.core.v1.GitRepoVolumeSource": {
7108 // directory is the target directory name. Must not contain or start with '..'.
7109 // If '.' is supplied, the volume directory will be the git repository.
7110 // Otherwise, if specified, the volume will contain the git repository in the
7111 // subdirectory with the given name.
7112 "directory"?: string
7113
7114 // repository is the URL
7115 "repository"!: string
7116
7117 // revision is the commit hash for the specified revision.
7118 "revision"?: string
7119 }
7120
7121 // Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs
7122 // volumes do not support ownership management or SELinux relabeling.
7123 #: "io.k8s.api.core.v1.GlusterfsVolumeSource": {
7124 // endpoints is the endpoint name that details Glusterfs topology. More info:
7125 // https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
7126 "endpoints"!: string
7127
7128 // path is the Glusterfs volume path. More info:
7129 // https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
7130 "path"!: string
7131
7132 // readOnly here will force the Glusterfs volume to be mounted with read-only
7133 // permissions. Defaults to false. More info:
7134 // https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
7135 "readOnly"?: bool
7136 }
7137
7138 // HTTPGetAction describes an action based on HTTP Get requests.
7139 #: "io.k8s.api.core.v1.HTTPGetAction": {
7140 // Host name to connect to, defaults to the pod IP. You probably want to set
7141 // "Host" in httpHeaders instead.
7142 "host"?: string
7143
7144 // Custom headers to set in the request. HTTP allows repeated headers.
7145 "httpHeaders"?: [...#."io.k8s.api.core.v1.HTTPHeader"]
7146
7147 // Path to access on the HTTP server.
7148 "path"?: string
7149
7150 // Name or number of the port to access on the container. Number must be in the
7151 // range 1 to 65535. Name must be an IANA_SVC_NAME.
7152 "port"!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
7153
7154 // Scheme to use for connecting to the host. Defaults to HTTP.
7155 "scheme"?: string
7156 }
7157
7158 // HTTPHeader describes a custom header to be used in HTTP probes
7159 #: "io.k8s.api.core.v1.HTTPHeader": {
7160 // The header field name. This will be canonicalized upon output, so
7161 // case-variant names will be understood as the same header.
7162 "name"!: string
7163
7164 // The header field value
7165 "value"!: string
7166 }
7167
7168 // HostAlias holds the mapping between IP and hostnames that will be injected as
7169 // an entry in the pod's hosts file.
7170 #: "io.k8s.api.core.v1.HostAlias": {
7171 // Hostnames for the above IP address.
7172 "hostnames"?: [...string]
7173
7174 // IP address of the host file entry.
7175 "ip"!: string
7176 }
7177
7178 // Represents a host path mapped into a pod. Host path volumes do not support
7179 // ownership management or SELinux relabeling.
7180 #: "io.k8s.api.core.v1.HostPathVolumeSource": {
7181 // path of the directory on the host. If the path is a symlink, it will follow
7182 // the link to the real path. More info:
7183 // https://kubernetes.io/docs/concepts/storage/volumes#hostpath
7184 "path"!: string
7185
7186 // type for HostPath Volume Defaults to "" More info:
7187 // https://kubernetes.io/docs/concepts/storage/volumes#hostpath
7188 "type"?: string
7189 }
7190
7191 // Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write
7192 // once. ISCSI volumes support ownership management and SELinux relabeling.
7193 #: "io.k8s.api.core.v1.ISCSIVolumeSource": {
7194 // chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication
7195 "chapAuthDiscovery"?: bool
7196
7197 // chapAuthSession defines whether support iSCSI Session CHAP authentication
7198 "chapAuthSession"?: bool
7199
7200 // fsType is the filesystem type of the volume that you want to mount. Tip:
7201 // Ensure that the filesystem type is supported by the host operating system.
7202 // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
7203 // unspecified. More info:
7204 // https://kubernetes.io/docs/concepts/storage/volumes#iscsi
7205 "fsType"?: string
7206
7207 // initiatorName is the custom iSCSI Initiator Name. If initiatorName is
7208 // specified with iscsiInterface simultaneously, new iSCSI interface <target
7209 // portal>:<volume name> will be created for the connection.
7210 "initiatorName"?: string
7211
7212 // iqn is the target iSCSI Qualified Name.
7213 "iqn"!: string
7214
7215 // iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).
7216 "iscsiInterface"?: string
7217
7218 // lun represents iSCSI Target Lun number.
7219 "lun"!: int
7220
7221 // portals is the iSCSI Target Portal List. The portal is either an IP or
7222 // ip_addr:port if the port is other than default (typically TCP ports 860 and
7223 // 3260).
7224 "portals"?: [...string]
7225
7226 // readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.
7227 "readOnly"?: bool
7228
7229 // secretRef is the CHAP Secret for iSCSI target and initiator authentication
7230 "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
7231
7232 // targetPortal is iSCSI Target Portal. The Portal is either an IP or
7233 // ip_addr:port if the port is other than default (typically TCP ports 860 and
7234 // 3260).
7235 "targetPortal"!: string
7236 }
7237
7238 // ImageVolumeSource represents a image volume resource.
7239 #: "io.k8s.api.core.v1.ImageVolumeSource": {
7240 // Policy for pulling OCI objects. Possible values are: Always: the kubelet
7241 // always attempts to pull the reference. Container creation will fail If the
7242 // pull fails. Never: the kubelet never pulls the reference and only uses a
7243 // local image or artifact. Container creation will fail if the reference isn't
7244 // present. IfNotPresent: the kubelet pulls if the reference isn't already
7245 // present on disk. Container creation will fail if the reference isn't present
7246 // and the pull fails. Defaults to Always if :latest tag is specified, or
7247 // IfNotPresent otherwise.
7248 "pullPolicy"?: string
7249
7250 // Required: Image or artifact reference to be used. Behaves in the same way as
7251 // pod.spec.containers[*].image. Pull secrets will be assembled in the same way
7252 // as for the container image by looking up node credentials, SA image pull
7253 // secrets, and pod spec image pull secrets. More info:
7254 // https://kubernetes.io/docs/concepts/containers/images This field is optional
7255 // to allow higher level config management to default or override container
7256 // images in workload controllers like Deployments and StatefulSets.
7257 "reference"?: string
7258 }
7259
7260 // Maps a string key to a path within a volume.
7261 #: "io.k8s.api.core.v1.KeyToPath": {
7262 // key is the key to project.
7263 "key"!: string
7264
7265 // mode is Optional: mode bits used to set permissions on this file. Must be an
7266 // octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML
7267 // accepts both octal and decimal values, JSON requires decimal values for mode
7268 // bits. If not specified, the volume defaultMode will be used. This might be
7269 // in conflict with other options that affect the file mode, like fsGroup, and
7270 // the result can be other mode bits set.
7271 "mode"?: int
7272
7273 // path is the relative path of the file to map the key to. May not be an
7274 // absolute path. May not contain the path element '..'. May not start with the
7275 // string '..'.
7276 "path"!: string
7277 }
7278
7279 // Lifecycle describes actions that the management system should take in
7280 // response to container lifecycle events. For the PostStart and PreStop
7281 // lifecycle handlers, management of the container blocks until the action is
7282 // complete, unless the container process fails, in which case the handler is
7283 // aborted.
7284 #: "io.k8s.api.core.v1.Lifecycle": {
7285 // PostStart is called immediately after a container is created. If the handler
7286 // fails, the container is terminated and restarted according to its restart
7287 // policy. Other management of the container blocks until the hook completes.
7288 // More info:
7289 // https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
7290 "postStart"?: #."io.k8s.api.core.v1.LifecycleHandler"
7291
7292 // PreStop is called immediately before a container is terminated due to an API
7293 // request or management event such as liveness/startup probe failure,
7294 // preemption, resource contention, etc. The handler is not called if the
7295 // container crashes or exits. The Pod's termination grace period countdown
7296 // begins before the PreStop hook is executed. Regardless of the outcome of the
7297 // handler, the container will eventually terminate within the Pod's
7298 // termination grace period (unless delayed by finalizers). Other management of
7299 // the container blocks until the hook completes or until the termination grace
7300 // period is reached. More info:
7301 // https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
7302 "preStop"?: #."io.k8s.api.core.v1.LifecycleHandler"
7303
7304 // StopSignal defines which signal will be sent to a container when it is being
7305 // stopped. If not specified, the default is defined by the container runtime
7306 // in use. StopSignal can only be set for Pods with a non-empty .spec.os.name
7307 "stopSignal"?: string
7308 }
7309
7310 // LifecycleHandler defines a specific action that should be taken in a
7311 // lifecycle hook. One and only one of the fields, except TCPSocket must be
7312 // specified.
7313 #: "io.k8s.api.core.v1.LifecycleHandler": {
7314 // Exec specifies a command to execute in the container.
7315 "exec"?: #."io.k8s.api.core.v1.ExecAction"
7316
7317 // HTTPGet specifies an HTTP GET request to perform.
7318 "httpGet"?: #."io.k8s.api.core.v1.HTTPGetAction"
7319
7320 // Sleep represents a duration that the container should sleep.
7321 "sleep"?: #."io.k8s.api.core.v1.SleepAction"
7322
7323 // Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for
7324 // backward compatibility. There is no validation of this field and lifecycle
7325 // hooks will fail at runtime when it is specified.
7326 "tcpSocket"?: #."io.k8s.api.core.v1.TCPSocketAction"
7327 }
7328
7329 // LocalObjectReference contains enough information to let you locate the
7330 // referenced object inside the same namespace.
7331 #: {
7332 "io.k8s.api.core.v1.LocalObjectReference": {
7333 // Name of the referent. This field is effectively required, but due to
7334 // backwards compatibility is allowed to be empty. Instances of this type with
7335 // an empty value here are almost certainly wrong. More info:
7336 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7337 "name"?: string
7338 }
7339 }
7340
7341 // ModifyVolumeStatus represents the status object of ControllerModifyVolume operation
7342 #: "io.k8s.api.core.v1.ModifyVolumeStatus": {
7343 // status is the status of the ControllerModifyVolume operation. It can be in
7344 // any of following states:
7345 // - Pending
7346 // Pending indicates that the PersistentVolumeClaim cannot be modified due to
7347 // unmet requirements, such as
7348 // the specified VolumeAttributesClass not existing.
7349 // - InProgress
7350 // InProgress indicates that the volume is being modified.
7351 // - Infeasible
7352 // Infeasible indicates that the request has been rejected as invalid by the CSI driver. To
7353 // resolve the error, a valid VolumeAttributesClass needs to be specified.
7354 // Note: New statuses can be added in the future. Consumers should check for
7355 // unknown statuses and fail appropriately.
7356 "status"!: string
7357
7358 // targetVolumeAttributesClassName is the name of the VolumeAttributesClass the
7359 // PVC currently being reconciled
7360 "targetVolumeAttributesClassName"?: string
7361 }
7362
7363 // Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not
7364 // support ownership management or SELinux relabeling.
7365 #: "io.k8s.api.core.v1.NFSVolumeSource": {
7366 // path that is exported by the NFS server. More info:
7367 // https://kubernetes.io/docs/concepts/storage/volumes#nfs
7368 "path"!: string
7369
7370 // readOnly here will force the NFS export to be mounted with read-only
7371 // permissions. Defaults to false. More info:
7372 // https://kubernetes.io/docs/concepts/storage/volumes#nfs
7373 "readOnly"?: bool
7374
7375 // server is the hostname or IP address of the NFS server. More info:
7376 // https://kubernetes.io/docs/concepts/storage/volumes#nfs
7377 "server"!: string
7378 }
7379
7380 // Node affinity is a group of node affinity scheduling rules.
7381 #: "io.k8s.api.core.v1.NodeAffinity": {
7382 // The scheduler will prefer to schedule pods to nodes that satisfy the affinity
7383 // expressions specified by this field, but it may choose a node that violates
7384 // one or more of the expressions. The node that is most preferred is the one
7385 // with the greatest sum of weights, i.e. for each node that meets all of the
7386 // scheduling requirements (resource request, requiredDuringScheduling affinity
7387 // expressions, etc.), compute a sum by iterating through the elements of this
7388 // field and adding "weight" to the sum if the node matches the corresponding
7389 // matchExpressions; the node(s) with the highest sum are the most preferred.
7390 "preferredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.PreferredSchedulingTerm"]
7391
7392 // If the affinity requirements specified by this field are not met at
7393 // scheduling time, the pod will not be scheduled onto the node. If the
7394 // affinity requirements specified by this field cease to be met at some point
7395 // during pod execution (e.g. due to an update), the system may or may not try
7396 // to eventually evict the pod from its node.
7397 "requiredDuringSchedulingIgnoredDuringExecution"?: #."io.k8s.api.core.v1.NodeSelector"
7398 }
7399
7400 // A node selector represents the union of the results of one or more label
7401 // queries over a set of nodes; that is, it represents the OR of the selectors
7402 // represented by the node selector terms.
7403 #: {
7404 "io.k8s.api.core.v1.NodeSelector": {
7405 // Required. A list of node selector terms. The terms are ORed.
7406 "nodeSelectorTerms"!: [...#."io.k8s.api.core.v1.NodeSelectorTerm"]
7407 }
7408 }
7409
7410 // A node selector requirement is a selector that contains values, a key, and an
7411 // operator that relates the key and values.
7412 #: "io.k8s.api.core.v1.NodeSelectorRequirement": {
7413 // The label key that the selector applies to.
7414 "key"!: string
7415
7416 // Represents a key's relationship to a set of values. Valid operators are In,
7417 // NotIn, Exists, DoesNotExist. Gt, and Lt.
7418 "operator"!: string
7419
7420 // An array of string values. If the operator is In or NotIn, the values array
7421 // must be non-empty. If the operator is Exists or DoesNotExist, the values
7422 // array must be empty. If the operator is Gt or Lt, the values array must have
7423 // a single element, which will be interpreted as an integer. This array is
7424 // replaced during a strategic merge patch.
7425 "values"?: [...string]
7426 }
7427
7428 // A null or empty node selector term matches no objects. The requirements of
7429 // them are ANDed. The TopologySelectorTerm type implements a subset of the
7430 // NodeSelectorTerm.
7431 #: "io.k8s.api.core.v1.NodeSelectorTerm": {
7432 // A list of node selector requirements by node's labels.
7433 "matchExpressions"?: [...#."io.k8s.api.core.v1.NodeSelectorRequirement"]
7434
7435 // A list of node selector requirements by node's fields.
7436 "matchFields"?: [...#."io.k8s.api.core.v1.NodeSelectorRequirement"]
7437 }
7438
7439 // ObjectFieldSelector selects an APIVersioned field of an object.
7440 #: "io.k8s.api.core.v1.ObjectFieldSelector": {
7441 // Version of the schema the FieldPath is written in terms of, defaults to "v1".
7442 "apiVersion"?: string
7443
7444 // Path of the field to select in the specified API version.
7445 "fieldPath"!: string
7446 }
7447
7448 // ObjectReference contains enough information to let you inspect or modify the referred object.
7449 #: "io.k8s.api.core.v1.ObjectReference": {
7450 // API version of the referent.
7451 "apiVersion"?: string
7452
7453 // If referring to a piece of an object instead of an entire object, this string
7454 // should contain a valid JSON/Go field access statement, such as
7455 // desiredState.manifest.containers[2]. For example, if the object reference is
7456 // to a container within a pod, this would take on a value like:
7457 // "spec.containers{name}" (where "name" refers to the name of the container
7458 // that triggered the event) or if no container name is specified
7459 // "spec.containers[2]" (container with index 2 in this pod). This syntax is
7460 // chosen only to have some well-defined way of referencing a part of an
7461 // object.
7462 "fieldPath"?: string
7463
7464 // Kind of the referent. More info:
7465 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
7466 "kind"?: string
7467
7468 // Name of the referent. More info:
7469 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7470 "name"?: string
7471
7472 // Namespace of the referent. More info:
7473 // https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
7474 "namespace"?: string
7475
7476 // Specific resourceVersion to which this reference is made, if any. More info:
7477 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
7478 "resourceVersion"?: string
7479
7480 // UID of the referent. More info:
7481 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
7482 "uid"?: string
7483 }
7484
7485 // PersistentVolumeClaim is a user's request for and claim to a persistent volume
7486 #: "io.k8s.api.core.v1.PersistentVolumeClaim": {
7487 // APIVersion defines the versioned schema of this representation of an object.
7488 // Servers should convert recognized schemas to the latest internal value, and
7489 // may reject unrecognized values. More info:
7490 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
7491 "apiVersion"?: string
7492
7493 // Kind is a string value representing the REST resource this object represents.
7494 // Servers may infer this from the endpoint the client submits requests to.
7495 // Cannot be updated. In CamelCase. More info:
7496 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
7497 "kind"?: string
7498
7499 // Standard object's metadata. More info:
7500 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
7501 "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
7502
7503 // spec defines the desired characteristics of a volume requested by a pod
7504 // author. More info:
7505 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
7506 "spec"?: #."io.k8s.api.core.v1.PersistentVolumeClaimSpec"
7507
7508 // status represents the current information/status of a persistent volume
7509 // claim. Read-only. More info:
7510 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
7511 "status"?: #."io.k8s.api.core.v1.PersistentVolumeClaimStatus"
7512 }
7513
7514 // PersistentVolumeClaimCondition contains details about state of pvc
7515 #: "io.k8s.api.core.v1.PersistentVolumeClaimCondition": {
7516 // lastProbeTime is the time we probed the condition.
7517 "lastProbeTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
7518
7519 // lastTransitionTime is the time the condition transitioned from one status to another.
7520 "lastTransitionTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
7521
7522 // message is the human-readable message indicating details about last transition.
7523 "message"?: string
7524
7525 // reason is a unique, this should be a short, machine understandable string
7526 // that gives the reason for condition's last transition. If it reports
7527 // "Resizing" that means the underlying persistent volume is being resized.
7528 "reason"?: string
7529
7530 // Status is the status of the condition. Can be True, False, Unknown. More
7531 // info:
7532 // https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required
7533 "status"!: string
7534
7535 // Type is the type of the condition. More info:
7536 // https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about
7537 "type"!: string
7538 }
7539
7540 // PersistentVolumeClaimSpec describes the common attributes of storage devices
7541 // and allows a Source for provider-specific attributes
7542 #: "io.k8s.api.core.v1.PersistentVolumeClaimSpec": {
7543 // accessModes contains the desired access modes the volume should have. More
7544 // info:
7545 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
7546 "accessModes"?: [...string]
7547
7548 // dataSource field can be used to specify either: * An existing VolumeSnapshot
7549 // object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC
7550 // (PersistentVolumeClaim) If the provisioner or an external controller can
7551 // support the specified data source, it will create a new volume based on the
7552 // contents of the specified data source. When the AnyVolumeDataSource feature
7553 // gate is enabled, dataSource contents will be copied to dataSourceRef, and
7554 // dataSourceRef contents will be copied to dataSource when
7555 // dataSourceRef.namespace is not specified. If the namespace is specified,
7556 // then dataSourceRef will not be copied to dataSource.
7557 "dataSource"?: #."io.k8s.api.core.v1.TypedLocalObjectReference"
7558
7559 // dataSourceRef specifies the object from which to populate the volume with
7560 // data, if a non-empty volume is desired. This may be any object from a
7561 // non-empty API group (non core object) or a PersistentVolumeClaim object.
7562 // When this field is specified, volume binding will only succeed if the type
7563 // of the specified object matches some installed volume populator or dynamic
7564 // provisioner. This field will replace the functionality of the dataSource
7565 // field and as such if both fields are non-empty, they must have the same
7566 // value. For backwards compatibility, when namespace isn't specified in
7567 // dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the
7568 // same value automatically if one of them is empty and the other is non-empty.
7569 // When namespace is specified in dataSourceRef, dataSource isn't set to the
7570 // same value and must be empty. There are three important differences between
7571 // dataSource and dataSourceRef: * While dataSource only allows two specific
7572 // types of objects, dataSourceRef
7573 // allows any non-core object, as well as PersistentVolumeClaim objects.
7574 // * While dataSource ignores disallowed values (dropping them), dataSourceRef
7575 // preserves all values, and generates an error if a disallowed value is
7576 // specified.
7577 // * While dataSource only allows local objects, dataSourceRef allows objects
7578 // in any namespaces.
7579 // (Beta) Using this field requires the AnyVolumeDataSource feature gate to be
7580 // enabled. (Alpha) Using the namespace field of dataSourceRef requires the
7581 // CrossNamespaceVolumeDataSource feature gate to be enabled.
7582 "dataSourceRef"?: #."io.k8s.api.core.v1.TypedObjectReference"
7583
7584 // resources represents the minimum resources the volume should have. If
7585 // RecoverVolumeExpansionFailure feature is enabled users are allowed to
7586 // specify resource requirements that are lower than previous value but must
7587 // still be higher than capacity recorded in the status field of the claim.
7588 // More info:
7589 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
7590 "resources"?: #."io.k8s.api.core.v1.VolumeResourceRequirements"
7591
7592 // selector is a label query over volumes to consider for binding.
7593 "selector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
7594
7595 // storageClassName is the name of the StorageClass required by the claim. More
7596 // info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
7597 "storageClassName"?: string
7598
7599 // volumeAttributesClassName may be used to set the VolumeAttributesClass used
7600 // by this claim. If specified, the CSI driver will create or update the volume
7601 // with the attributes defined in the corresponding VolumeAttributesClass. This
7602 // has a different purpose than storageClassName, it can be changed after the
7603 // claim is created. An empty string value means that no VolumeAttributesClass
7604 // will be applied to the claim but it's not allowed to reset this field to
7605 // empty string once it is set. If unspecified and the PersistentVolumeClaim is
7606 // unbound, the default VolumeAttributesClass will be set by the
7607 // persistentvolume controller if it exists. If the resource referred to by
7608 // volumeAttributesClass does not exist, this PersistentVolumeClaim will be set
7609 // to a Pending state, as reflected by the modifyVolumeStatus field, until such
7610 // as a resource exists. More info:
7611 // https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
7612 // (Beta) Using this field requires the VolumeAttributesClass feature gate to
7613 // be enabled (off by default).
7614 "volumeAttributesClassName"?: string
7615
7616 // volumeMode defines what type of volume is required by the claim. Value of
7617 // Filesystem is implied when not included in claim spec.
7618 "volumeMode"?: string
7619
7620 // volumeName is the binding reference to the PersistentVolume backing this claim.
7621 "volumeName"?: string
7622 }
7623
7624 // PersistentVolumeClaimStatus is the current status of a persistent volume claim.
7625 #: "io.k8s.api.core.v1.PersistentVolumeClaimStatus": {
7626 // accessModes contains the actual access modes the volume backing the PVC has.
7627 // More info:
7628 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
7629 "accessModes"?: [...string]
7630
7631 // allocatedResourceStatuses stores status of resource being resized for the
7632 // given PVC. Key names follow standard Kubernetes label syntax. Valid values
7633 // are either:
7634 // * Un-prefixed keys:
7635 // - storage - the capacity of the volume.
7636 // * Custom resources must use implementation-defined prefixed names such as
7637 // "example.com/my-custom-resource"
7638 // Apart from above values - keys that are unprefixed or have kubernetes.io
7639 // prefix are considered reserved and hence may not be used.
7640 //
7641 // ClaimResourceStatus can be in any of following states:
7642 // - ControllerResizeInProgress:
7643 // State set when resize controller starts resizing the volume in control-plane.
7644 // - ControllerResizeFailed:
7645 // State set when resize has failed in resize controller with a terminal error.
7646 // - NodeResizePending:
7647 // State set when resize controller has finished resizing the volume but further resizing of
7648 // volume is needed on the node.
7649 // - NodeResizeInProgress:
7650 // State set when kubelet starts resizing the volume.
7651 // - NodeResizeFailed:
7652 // State set when resizing has failed in kubelet with a terminal error. Transient errors don't set
7653 // NodeResizeFailed.
7654 // For example: if expanding a PVC for more capacity - this field can be one of
7655 // the following states:
7656 // - pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeInProgress"
7657 // - pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeFailed"
7658 // - pvc.status.allocatedResourceStatus['storage'] = "NodeResizePending"
7659 // - pvc.status.allocatedResourceStatus['storage'] = "NodeResizeInProgress"
7660 // - pvc.status.allocatedResourceStatus['storage'] = "NodeResizeFailed"
7661 // When this field is not set, it means that no resize operation is in progress for the given PVC.
7662 //
7663 // A controller that receives PVC update with previously unknown resourceName or
7664 // ClaimResourceStatus should ignore the update for the purpose it was
7665 // designed. For example - a controller that only is responsible for resizing
7666 // capacity of the volume, should ignore PVC updates that change other valid
7667 // resources associated with PVC.
7668 //
7669 // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
7670 "allocatedResourceStatuses"?: [string]: string
7671
7672 // allocatedResources tracks the resources allocated to a PVC including its
7673 // capacity. Key names follow standard Kubernetes label syntax. Valid values
7674 // are either:
7675 // * Un-prefixed keys:
7676 // - storage - the capacity of the volume.
7677 // * Custom resources must use implementation-defined prefixed names such as
7678 // "example.com/my-custom-resource"
7679 // Apart from above values - keys that are unprefixed or have kubernetes.io
7680 // prefix are considered reserved and hence may not be used.
7681 //
7682 // Capacity reported here may be larger than the actual capacity when a volume
7683 // expansion operation is requested. For storage quota, the larger value from
7684 // allocatedResources and PVC.spec.resources is used. If allocatedResources is
7685 // not set, PVC.spec.resources alone is used for quota calculation. If a volume
7686 // expansion capacity request is lowered, allocatedResources is only lowered if
7687 // there are no expansion operations in progress and if the actual volume
7688 // capacity is equal or lower than the requested capacity.
7689 //
7690 // A controller that receives PVC update with previously unknown resourceName
7691 // should ignore the update for the purpose it was designed. For example - a
7692 // controller that only is responsible for resizing capacity of the volume,
7693 // should ignore PVC updates that change other valid resources associated with
7694 // PVC.
7695 //
7696 // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
7697 "allocatedResources"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
7698
7699 // capacity represents the actual resources of the underlying volume.
7700 "capacity"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
7701
7702 // conditions is the current Condition of persistent volume claim. If underlying
7703 // persistent volume is being resized then the Condition will be set to
7704 // 'Resizing'.
7705 "conditions"?: [...#."io.k8s.api.core.v1.PersistentVolumeClaimCondition"]
7706
7707 // currentVolumeAttributesClassName is the current name of the
7708 // VolumeAttributesClass the PVC is using. When unset, there is no
7709 // VolumeAttributeClass applied to this PersistentVolumeClaim This is a beta
7710 // field and requires enabling VolumeAttributesClass feature (off by default).
7711 "currentVolumeAttributesClassName"?: string
7712
7713 // ModifyVolumeStatus represents the status object of ControllerModifyVolume
7714 // operation. When this is unset, there is no ModifyVolume operation being
7715 // attempted. This is a beta field and requires enabling VolumeAttributesClass
7716 // feature (off by default).
7717 "modifyVolumeStatus"?: #."io.k8s.api.core.v1.ModifyVolumeStatus"
7718
7719 // phase represents the current phase of PersistentVolumeClaim.
7720 "phase"?: string
7721 }
7722
7723 // PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim
7724 // objects as part of an EphemeralVolumeSource.
7725 #: "io.k8s.api.core.v1.PersistentVolumeClaimTemplate": {
7726 // May contain labels and annotations that will be copied into the PVC when
7727 // creating it. No other fields are allowed and will be rejected during
7728 // validation.
7729 "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
7730
7731 // The specification for the PersistentVolumeClaim. The entire content is copied
7732 // unchanged into the PVC that gets created from this template. The same fields
7733 // as in a PersistentVolumeClaim are also valid here.
7734 "spec"!: #."io.k8s.api.core.v1.PersistentVolumeClaimSpec"
7735 }
7736
7737 // PersistentVolumeClaimVolumeSource references the user's PVC in the same
7738 // namespace. This volume finds the bound PV and mounts that volume for the
7739 // pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around
7740 // another type of volume that is owned by someone else (the system).
7741 #: "io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource": {
7742 // claimName is the name of a PersistentVolumeClaim in the same namespace as the
7743 // pod using this volume. More info:
7744 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
7745 "claimName"!: string
7746
7747 // readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
7748 "readOnly"?: bool
7749 }
7750
7751 // Represents a Photon Controller persistent disk resource.
7752 #: "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": {
7753 // fsType is the filesystem type to mount. Must be a filesystem type supported
7754 // by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred
7755 // to be "ext4" if unspecified.
7756 "fsType"?: string
7757
7758 // pdID is the ID that identifies Photon Controller persistent disk
7759 "pdID"!: string
7760 }
7761
7762 // Pod affinity is a group of inter pod affinity scheduling rules.
7763 #: "io.k8s.api.core.v1.PodAffinity": {
7764 // The scheduler will prefer to schedule pods to nodes that satisfy the affinity
7765 // expressions specified by this field, but it may choose a node that violates
7766 // one or more of the expressions. The node that is most preferred is the one
7767 // with the greatest sum of weights, i.e. for each node that meets all of the
7768 // scheduling requirements (resource request, requiredDuringScheduling affinity
7769 // expressions, etc.), compute a sum by iterating through the elements of this
7770 // field and adding "weight" to the sum if the node has pods which matches the
7771 // corresponding podAffinityTerm; the node(s) with the highest sum are the most
7772 // preferred.
7773 "preferredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.WeightedPodAffinityTerm"]
7774
7775 // If the affinity requirements specified by this field are not met at
7776 // scheduling time, the pod will not be scheduled onto the node. If the
7777 // affinity requirements specified by this field cease to be met at some point
7778 // during pod execution (e.g. due to a pod label update), the system may or may
7779 // not try to eventually evict the pod from its node. When there are multiple
7780 // elements, the lists of nodes corresponding to each podAffinityTerm are
7781 // intersected, i.e. all terms must be satisfied.
7782 "requiredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.PodAffinityTerm"]
7783 }
7784
7785 // Defines a set of pods (namely those matching the labelSelector relative to
7786 // the given namespace(s)) that this pod should be co-located (affinity) or not
7787 // co-located (anti-affinity) with, where co-located is defined as running on a
7788 // node whose value of the label with key <topologyKey> matches that of any
7789 // node on which a pod of the set of pods is running
7790 #: "io.k8s.api.core.v1.PodAffinityTerm": {
7791 // A label query over a set of resources, in this case pods. If it's null, this
7792 // PodAffinityTerm matches with no Pods.
7793 "labelSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
7794
7795 // MatchLabelKeys is a set of pod label keys to select which pods will be taken
7796 // into consideration. The keys are used to lookup values from the incoming pod
7797 // labels, those key-value labels are merged with `labelSelector` as `key in
7798 // (value)` to select the group of existing pods which pods will be taken into
7799 // consideration for the incoming pod's pod (anti) affinity. Keys that don't
7800 // exist in the incoming pod labels will be ignored. The default value is
7801 // empty. The same key is forbidden to exist in both matchLabelKeys and
7802 // labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't
7803 // set.
7804 "matchLabelKeys"?: [...string]
7805
7806 // MismatchLabelKeys is a set of pod label keys to select which pods will be
7807 // taken into consideration. The keys are used to lookup values from the
7808 // incoming pod labels, those key-value labels are merged with `labelSelector`
7809 // as `key notin (value)` to select the group of existing pods which pods will
7810 // be taken into consideration for the incoming pod's pod (anti) affinity. Keys
7811 // that don't exist in the incoming pod labels will be ignored. The default
7812 // value is empty. The same key is forbidden to exist in both mismatchLabelKeys
7813 // and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector
7814 // isn't set.
7815 "mismatchLabelKeys"?: [...string]
7816
7817 // A label query over the set of namespaces that the term applies to. The term
7818 // is applied to the union of the namespaces selected by this field and the
7819 // ones listed in the namespaces field. null selector and null or empty
7820 // namespaces list means "this pod's namespace". An empty selector ({}) matches
7821 // all namespaces.
7822 "namespaceSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
7823
7824 // namespaces specifies a static list of namespace names that the term applies
7825 // to. The term is applied to the union of the namespaces listed in this field
7826 // and the ones selected by namespaceSelector. null or empty namespaces list
7827 // and null namespaceSelector means "this pod's namespace".
7828 "namespaces"?: [...string]
7829
7830 // This pod should be co-located (affinity) or not co-located (anti-affinity)
7831 // with the pods matching the labelSelector in the specified namespaces, where
7832 // co-located is defined as running on a node whose value of the label with key
7833 // topologyKey matches that of any node on which any of the selected pods is
7834 // running. Empty topologyKey is not allowed.
7835 "topologyKey"!: string
7836 }
7837
7838 // Pod anti affinity is a group of inter pod anti affinity scheduling rules.
7839 #: "io.k8s.api.core.v1.PodAntiAffinity": {
7840 // The scheduler will prefer to schedule pods to nodes that satisfy the
7841 // anti-affinity expressions specified by this field, but it may choose a node
7842 // that violates one or more of the expressions. The node that is most
7843 // preferred is the one with the greatest sum of weights, i.e. for each node
7844 // that meets all of the scheduling requirements (resource request,
7845 // requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by
7846 // iterating through the elements of this field and adding "weight" to the sum
7847 // if the node has pods which matches the corresponding podAffinityTerm; the
7848 // node(s) with the highest sum are the most preferred.
7849 "preferredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.WeightedPodAffinityTerm"]
7850
7851 // If the anti-affinity requirements specified by this field are not met at
7852 // scheduling time, the pod will not be scheduled onto the node. If the
7853 // anti-affinity requirements specified by this field cease to be met at some
7854 // point during pod execution (e.g. due to a pod label update), the system may
7855 // or may not try to eventually evict the pod from its node. When there are
7856 // multiple elements, the lists of nodes corresponding to each podAffinityTerm
7857 // are intersected, i.e. all terms must be satisfied.
7858 "requiredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.PodAffinityTerm"]
7859 }
7860
7861 // PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.
7862 #: "io.k8s.api.core.v1.PodDNSConfig": {
7863 // A list of DNS name server IP addresses. This will be appended to the base
7864 // nameservers generated from DNSPolicy. Duplicated nameservers will be
7865 // removed.
7866 "nameservers"?: [...string]
7867
7868 // A list of DNS resolver options. This will be merged with the base options
7869 // generated from DNSPolicy. Duplicated entries will be removed. Resolution
7870 // options given in Options will override those that appear in the base
7871 // DNSPolicy.
7872 "options"?: [...#."io.k8s.api.core.v1.PodDNSConfigOption"]
7873
7874 // A list of DNS search domains for host-name lookup. This will be appended to
7875 // the base search paths generated from DNSPolicy. Duplicated search paths will
7876 // be removed.
7877 "searches"?: [...string]
7878 }
7879
7880 // PodDNSConfigOption defines DNS resolver options of a pod.
7881 #: "io.k8s.api.core.v1.PodDNSConfigOption": {
7882 // Name is this DNS resolver option's name. Required.
7883 "name"?: string
7884
7885 // Value is this DNS resolver option's value.
7886 "value"?: string
7887 }
7888
7889 // PodSecurityContext holds pod-level security attributes and common container
7890 // settings. Some fields are also present in container.securityContext. Field
7891 // values of container.securityContext take precedence over field values of
7892 // PodSecurityContext.
7893 #: "io.k8s.api.core.v1.PodSecurityContext": {
7894 // appArmorProfile is the AppArmor options to use by the containers in this pod.
7895 // Note that this field cannot be set when spec.os.name is windows.
7896 "appArmorProfile"?: #."io.k8s.api.core.v1.AppArmorProfile"
7897
7898 // A special supplemental group that applies to all containers in a pod. Some
7899 // volume types allow the Kubelet to change the ownership of that volume to be
7900 // owned by the pod:
7901 //
7902 // 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files
7903 // created in the volume will be owned by FSGroup) 3. The permission bits are
7904 // OR'd with rw-rw----
7905 //
7906 // If unset, the Kubelet will not modify the ownership and permissions of any
7907 // volume. Note that this field cannot be set when spec.os.name is windows.
7908 "fsGroup"?: int
7909
7910 // fsGroupChangePolicy defines behavior of changing ownership and permission of
7911 // the volume before being exposed inside Pod. This field will only apply to
7912 // volume types which support fsGroup based ownership(and permissions). It will
7913 // have no effect on ephemeral volume types such as: secret, configmaps and
7914 // emptydir. Valid values are "OnRootMismatch" and "Always". If not specified,
7915 // "Always" is used. Note that this field cannot be set when spec.os.name is
7916 // windows.
7917 "fsGroupChangePolicy"?: string
7918
7919 // The GID to run the entrypoint of the container process. Uses runtime default
7920 // if unset. May also be set in SecurityContext. If set in both SecurityContext
7921 // and PodSecurityContext, the value specified in SecurityContext takes
7922 // precedence for that container. Note that this field cannot be set when
7923 // spec.os.name is windows.
7924 "runAsGroup"?: int
7925
7926 // Indicates that the container must run as a non-root user. If true, the
7927 // Kubelet will validate the image at runtime to ensure that it does not run as
7928 // UID 0 (root) and fail to start the container if it does. If unset or false,
7929 // no such validation will be performed. May also be set in SecurityContext. If
7930 // set in both SecurityContext and PodSecurityContext, the value specified in
7931 // SecurityContext takes precedence.
7932 "runAsNonRoot"?: bool
7933
7934 // The UID to run the entrypoint of the container process. Defaults to user
7935 // specified in image metadata if unspecified. May also be set in
7936 // SecurityContext. If set in both SecurityContext and PodSecurityContext, the
7937 // value specified in SecurityContext takes precedence for that container. Note
7938 // that this field cannot be set when spec.os.name is windows.
7939 "runAsUser"?: int
7940
7941 // seLinuxChangePolicy defines how the container's SELinux label is applied to
7942 // all volumes used by the Pod. It has no effect on nodes that do not support
7943 // SELinux or to volumes does not support SELinux. Valid values are
7944 // "MountOption" and "Recursive".
7945 //
7946 // "Recursive" means relabeling of all files on all Pod volumes by the container
7947 // runtime. This may be slow for large volumes, but allows mixing privileged
7948 // and unprivileged Pods sharing the same volume on the same node.
7949 //
7950 // "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
7951 // This requires all Pods that share the same volume to use the same SELinux
7952 // label. It is not possible to share the same volume among privileged and
7953 // unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI
7954 // volumes, and all CSI volumes whose CSI driver announces SELinux support by
7955 // setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes
7956 // are always re-labelled recursively. "MountOption" value is allowed only when
7957 // SELinuxMount feature gate is enabled.
7958 //
7959 // If not specified and SELinuxMount feature gate is enabled, "MountOption" is
7960 // used. If not specified and SELinuxMount feature gate is disabled,
7961 // "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all
7962 // other volumes.
7963 //
7964 // This field affects only Pods that have SELinux label set, either in
7965 // PodSecurityContext or in SecurityContext of all containers.
7966 //
7967 // All Pods that use the same volume should use the same seLinuxChangePolicy,
7968 // otherwise some pods can get stuck in ContainerCreating state. Note that this
7969 // field cannot be set when spec.os.name is windows.
7970 "seLinuxChangePolicy"?: string
7971
7972 // The SELinux context to be applied to all containers. If unspecified, the
7973 // container runtime will allocate a random SELinux context for each container.
7974 // May also be set in SecurityContext. If set in both SecurityContext and
7975 // PodSecurityContext, the value specified in SecurityContext takes precedence
7976 // for that container. Note that this field cannot be set when spec.os.name is
7977 // windows.
7978 "seLinuxOptions"?: #."io.k8s.api.core.v1.SELinuxOptions"
7979
7980 // The seccomp options to use by the containers in this pod. Note that this
7981 // field cannot be set when spec.os.name is windows.
7982 "seccompProfile"?: #."io.k8s.api.core.v1.SeccompProfile"
7983
7984 // A list of groups applied to the first process run in each container, in
7985 // addition to the container's primary GID and fsGroup (if specified). If the
7986 // SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy
7987 // field determines whether these are in addition to or instead of any group
7988 // memberships defined in the container image. If unspecified, no additional
7989 // groups are added, though group memberships defined in the container image
7990 // may still be used, depending on the supplementalGroupsPolicy field. Note
7991 // that this field cannot be set when spec.os.name is windows.
7992 "supplementalGroups"?: [...int]
7993
7994 // Defines how supplemental groups of the first container processes are
7995 // calculated. Valid values are "Merge" and "Strict". If not specified, "Merge"
7996 // is used. (Alpha) Using the field requires the SupplementalGroupsPolicy
7997 // feature gate to be enabled and the container runtime must implement support
7998 // for this feature. Note that this field cannot be set when spec.os.name is
7999 // windows.
8000 "supplementalGroupsPolicy"?: string
8001
8002 // Sysctls hold a list of namespaced sysctls used for the pod. Pods with
8003 // unsupported sysctls (by the container runtime) might fail to launch. Note
8004 // that this field cannot be set when spec.os.name is windows.
8005 "sysctls"?: [...#."io.k8s.api.core.v1.Sysctl"]
8006
8007 // The Windows specific settings applied to all containers. If unspecified, the
8008 // options within a container's SecurityContext will be used. If set in both
8009 // SecurityContext and PodSecurityContext, the value specified in
8010 // SecurityContext takes precedence. Note that this field cannot be set when
8011 // spec.os.name is linux.
8012 "windowsOptions"?: #."io.k8s.api.core.v1.WindowsSecurityContextOptions"
8013 }
8014
8015 // PortworxVolumeSource represents a Portworx volume resource.
8016 #: "io.k8s.api.core.v1.PortworxVolumeSource": {
8017 // fSType represents the filesystem type to mount Must be a filesystem type
8018 // supported by the host operating system. Ex. "ext4", "xfs". Implicitly
8019 // inferred to be "ext4" if unspecified.
8020 "fsType"?: string
8021
8022 // readOnly defaults to false (read/write). ReadOnly here will force the
8023 // ReadOnly setting in VolumeMounts.
8024 "readOnly"?: bool
8025
8026 // volumeID uniquely identifies a Portworx volume
8027 "volumeID"!: string
8028 }
8029
8030 // An empty preferred scheduling term matches all objects with implicit weight 0
8031 // (i.e. it's a no-op). A null preferred scheduling term matches no objects
8032 // (i.e. is also a no-op).
8033 #: "io.k8s.api.core.v1.PreferredSchedulingTerm": {
8034 // A node selector term, associated with the corresponding weight.
8035 "preference"!: #."io.k8s.api.core.v1.NodeSelectorTerm"
8036
8037 // Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
8038 "weight"!: int
8039 }
8040
8041 // Probe describes a health check to be performed against a container to
8042 // determine whether it is alive or ready to receive traffic.
8043 #: "io.k8s.api.core.v1.Probe": {
8044 // Exec specifies a command to execute in the container.
8045 "exec"?: #."io.k8s.api.core.v1.ExecAction"
8046
8047 // Minimum consecutive failures for the probe to be considered failed after
8048 // having succeeded. Defaults to 3. Minimum value is 1.
8049 "failureThreshold"?: int
8050
8051 // GRPC specifies a GRPC HealthCheckRequest.
8052 "grpc"?: #."io.k8s.api.core.v1.GRPCAction"
8053
8054 // HTTPGet specifies an HTTP GET request to perform.
8055 "httpGet"?: #."io.k8s.api.core.v1.HTTPGetAction"
8056
8057 // Number of seconds after the container has started before liveness probes are
8058 // initiated. More info:
8059 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
8060 "initialDelaySeconds"?: int
8061
8062 // How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
8063 "periodSeconds"?: int
8064
8065 // Minimum consecutive successes for the probe to be considered successful after
8066 // having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum
8067 // value is 1.
8068 "successThreshold"?: int
8069
8070 // TCPSocket specifies a connection to a TCP port.
8071 "tcpSocket"?: #."io.k8s.api.core.v1.TCPSocketAction"
8072
8073 // Optional duration in seconds the pod needs to terminate gracefully upon probe
8074 // failure. The grace period is the duration in seconds after the processes
8075 // running in the pod are sent a termination signal and the time when the
8076 // processes are forcibly halted with a kill signal. Set this value longer than
8077 // the expected cleanup time for your process. If this value is nil, the pod's
8078 // terminationGracePeriodSeconds will be used. Otherwise, this value overrides
8079 // the value provided by the pod spec. Value must be non-negative integer. The
8080 // value zero indicates stop immediately via the kill signal (no opportunity to
8081 // shut down). This is a beta field and requires enabling
8082 // ProbeTerminationGracePeriod feature gate. Minimum value is 1.
8083 // spec.terminationGracePeriodSeconds is used if unset.
8084 "terminationGracePeriodSeconds"?: int
8085
8086 // Number of seconds after which the probe times out. Defaults to 1 second.
8087 // Minimum value is 1. More info:
8088 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
8089 "timeoutSeconds"?: int
8090 }
8091
8092 // Represents a projected volume source
8093 #: "io.k8s.api.core.v1.ProjectedVolumeSource": {
8094 // defaultMode are the mode bits used to set permissions on created files by
8095 // default. Must be an octal value between 0000 and 0777 or a decimal value
8096 // between 0 and 511. YAML accepts both octal and decimal values, JSON requires
8097 // decimal values for mode bits. Directories within the path are not affected
8098 // by this setting. This might be in conflict with other options that affect
8099 // the file mode, like fsGroup, and the result can be other mode bits set.
8100 "defaultMode"?: int
8101
8102 // sources is the list of volume projections. Each entry in this list handles one source.
8103 "sources"?: [...#."io.k8s.api.core.v1.VolumeProjection"]
8104 }
8105
8106 // Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes
8107 // do not support ownership management or SELinux relabeling.
8108 #: "io.k8s.api.core.v1.QuobyteVolumeSource": {
8109 // group to map volume access to Default is no group
8110 "group"?: string
8111
8112 // readOnly here will force the Quobyte volume to be mounted with read-only
8113 // permissions. Defaults to false.
8114 "readOnly"?: bool
8115
8116 // registry represents a single or multiple Quobyte Registry services specified
8117 // as a string as host:port pair (multiple entries are separated with commas)
8118 // which acts as the central registry for volumes
8119 "registry"!: string
8120
8121 // tenant owning the given Quobyte volume in the Backend Used with dynamically
8122 // provisioned Quobyte volumes, value is set by the plugin
8123 "tenant"?: string
8124
8125 // user to map volume access to Defaults to serivceaccount user
8126 "user"?: string
8127
8128 // volume is a string that references an already created Quobyte volume by name.
8129 "volume"!: string
8130 }
8131
8132 // Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD
8133 // volumes support ownership management and SELinux relabeling.
8134 #: "io.k8s.api.core.v1.RBDVolumeSource": {
8135 // fsType is the filesystem type of the volume that you want to mount. Tip:
8136 // Ensure that the filesystem type is supported by the host operating system.
8137 // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
8138 // unspecified. More info:
8139 // https://kubernetes.io/docs/concepts/storage/volumes#rbd
8140 "fsType"?: string
8141
8142 // image is the rados image name. More info:
8143 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8144 "image"!: string
8145
8146 // keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring.
8147 // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8148 "keyring"?: string
8149
8150 // monitors is a collection of Ceph monitors. More info:
8151 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8152 "monitors"!: [...string]
8153
8154 // pool is the rados pool name. Default is rbd. More info:
8155 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8156 "pool"?: string
8157
8158 // readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to
8159 // false. More info:
8160 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8161 "readOnly"?: bool
8162
8163 // secretRef is name of the authentication secret for RBDUser. If provided
8164 // overrides keyring. Default is nil. More info:
8165 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8166 "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
8167
8168 // user is the rados user name. Default is admin. More info:
8169 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8170 "user"?: string
8171 }
8172
8173 // ResourceClaim references one entry in PodSpec.ResourceClaims.
8174 #: "io.k8s.api.core.v1.ResourceClaim": {
8175 // Name must match the name of one entry in pod.spec.resourceClaims of the Pod
8176 // where this field is used. It makes that resource available inside a
8177 // container.
8178 "name"!: string
8179
8180 // Request is the name chosen for a request in the referenced claim. If empty,
8181 // everything from the claim is made available, otherwise only the result of
8182 // this request.
8183 "request"?: string
8184 }
8185
8186 // ResourceFieldSelector represents container resources (cpu, memory) and their output format
8187 #: "io.k8s.api.core.v1.ResourceFieldSelector": {
8188 // Container name: required for volumes, optional for env vars
8189 "containerName"?: string
8190
8191 // Specifies the output format of the exposed resources, defaults to "1"
8192 "divisor"?: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
8193
8194 // Required: resource to select
8195 "resource"!: string
8196 }
8197
8198 // ResourceRequirements describes the compute resource requirements.
8199 #: "io.k8s.api.core.v1.ResourceRequirements": {
8200 // Claims lists the names of resources, defined in spec.resourceClaims, that are
8201 // used by this container.
8202 //
8203 // This is an alpha field and requires enabling the DynamicResourceAllocation feature gate.
8204 //
8205 // This field is immutable. It can only be set for containers.
8206 "claims"?: [...#."io.k8s.api.core.v1.ResourceClaim"]
8207
8208 // Limits describes the maximum amount of compute resources allowed. More info:
8209 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
8210 "limits"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
8211
8212 // Requests describes the minimum amount of compute resources required. If
8213 // Requests is omitted for a container, it defaults to Limits if that is
8214 // explicitly specified, otherwise to an implementation-defined value. Requests
8215 // cannot exceed Limits. More info:
8216 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
8217 "requests"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
8218 }
8219
8220 // SELinuxOptions are the labels to be applied to the container
8221 #: "io.k8s.api.core.v1.SELinuxOptions": {
8222 // Level is SELinux level label that applies to the container.
8223 "level"?: string
8224
8225 // Role is a SELinux role label that applies to the container.
8226 "role"?: string
8227
8228 // Type is a SELinux type label that applies to the container.
8229 "type"?: string
8230
8231 // User is a SELinux user label that applies to the container.
8232 "user"?: string
8233 }
8234
8235 // ScaleIOVolumeSource represents a persistent ScaleIO volume
8236 #: "io.k8s.api.core.v1.ScaleIOVolumeSource": {
8237 // fsType is the filesystem type to mount. Must be a filesystem type supported
8238 // by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs".
8239 "fsType"?: string
8240
8241 // gateway is the host address of the ScaleIO API Gateway.
8242 "gateway"!: string
8243
8244 // protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.
8245 "protectionDomain"?: string
8246
8247 // readOnly Defaults to false (read/write). ReadOnly here will force the
8248 // ReadOnly setting in VolumeMounts.
8249 "readOnly"?: bool
8250
8251 // secretRef references to the secret for ScaleIO user and other sensitive
8252 // information. If this is not provided, Login operation will fail.
8253 "secretRef"!: #."io.k8s.api.core.v1.LocalObjectReference"
8254
8255 // sslEnabled Flag enable/disable SSL communication with Gateway, default false
8256 "sslEnabled"?: bool
8257
8258 // storageMode indicates whether the storage for a volume should be
8259 // ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.
8260 "storageMode"?: string
8261
8262 // storagePool is the ScaleIO Storage Pool associated with the protection domain.
8263 "storagePool"?: string
8264
8265 // system is the name of the storage system as configured in ScaleIO.
8266 "system"!: string
8267
8268 // volumeName is the name of a volume already created in the ScaleIO system that
8269 // is associated with this volume source.
8270 "volumeName"?: string
8271 }
8272
8273 // SeccompProfile defines a pod/container's seccomp profile settings. Only one
8274 // profile source may be set.
8275 #: "io.k8s.api.core.v1.SeccompProfile": {
8276 // localhostProfile indicates a profile defined in a file on the node should be
8277 // used. The profile must be preconfigured on the node to work. Must be a
8278 // descending path, relative to the kubelet's configured seccomp profile
8279 // location. Must be set if type is "Localhost". Must NOT be set for any other
8280 // type.
8281 "localhostProfile"?: string
8282
8283 // type indicates which kind of seccomp profile will be applied. Valid options are:
8284 //
8285 // Localhost - a profile defined in a file on the node should be used.
8286 // RuntimeDefault - the container runtime default profile should be used.
8287 // Unconfined - no profile should be applied.
8288 "type"!: string
8289 }
8290
8291 // SecretEnvSource selects a Secret to populate the environment variables with.
8292 //
8293 // The contents of the target Secret's Data field will represent the key-value
8294 // pairs as environment variables.
8295 #: "io.k8s.api.core.v1.SecretEnvSource": {
8296 // Name of the referent. This field is effectively required, but due to
8297 // backwards compatibility is allowed to be empty. Instances of this type with
8298 // an empty value here are almost certainly wrong. More info:
8299 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8300 "name"?: string
8301
8302 // Specify whether the Secret must be defined
8303 "optional"?: bool
8304 }
8305
8306 // SecretKeySelector selects a key of a Secret.
8307 #: "io.k8s.api.core.v1.SecretKeySelector": {
8308 // The key of the secret to select from. Must be a valid secret key.
8309 "key"!: string
8310
8311 // Name of the referent. This field is effectively required, but due to
8312 // backwards compatibility is allowed to be empty. Instances of this type with
8313 // an empty value here are almost certainly wrong. More info:
8314 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8315 "name"?: string
8316
8317 // Specify whether the Secret or its key must be defined
8318 "optional"?: bool
8319 }
8320
8321 // Adapts a secret into a projected volume.
8322 //
8323 // The contents of the target Secret's Data field will be presented in a
8324 // projected volume as files using the keys in the Data field as the file
8325 // names. Note that this is identical to a secret volume source without the
8326 // default mode.
8327 #: "io.k8s.api.core.v1.SecretProjection": {
8328 // items if unspecified, each key-value pair in the Data field of the referenced
8329 // Secret will be projected into the volume as a file whose name is the key and
8330 // content is the value. If specified, the listed keys will be projected into
8331 // the specified paths, and unlisted keys will not be present. If a key is
8332 // specified which is not present in the Secret, the volume setup will error
8333 // unless it is marked optional. Paths must be relative and may not contain the
8334 // '..' path or start with '..'.
8335 "items"?: [...#."io.k8s.api.core.v1.KeyToPath"]
8336
8337 // Name of the referent. This field is effectively required, but due to
8338 // backwards compatibility is allowed to be empty. Instances of this type with
8339 // an empty value here are almost certainly wrong. More info:
8340 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8341 "name"?: string
8342
8343 // optional field specify whether the Secret or its key must be defined
8344 "optional"?: bool
8345 }
8346
8347 // Adapts a Secret into a volume.
8348 //
8349 // The contents of the target Secret's Data field will be presented in a volume
8350 // as files using the keys in the Data field as the file names. Secret volumes
8351 // support ownership management and SELinux relabeling.
8352 #: "io.k8s.api.core.v1.SecretVolumeSource": {
8353 // defaultMode is Optional: mode bits used to set permissions on created files
8354 // by default. Must be an octal value between 0000 and 0777 or a decimal value
8355 // between 0 and 511. YAML accepts both octal and decimal values, JSON requires
8356 // decimal values for mode bits. Defaults to 0644. Directories within the path
8357 // are not affected by this setting. This might be in conflict with other
8358 // options that affect the file mode, like fsGroup, and the result can be other
8359 // mode bits set.
8360 "defaultMode"?: int
8361
8362 // items If unspecified, each key-value pair in the Data field of the referenced
8363 // Secret will be projected into the volume as a file whose name is the key and
8364 // content is the value. If specified, the listed keys will be projected into
8365 // the specified paths, and unlisted keys will not be present. If a key is
8366 // specified which is not present in the Secret, the volume setup will error
8367 // unless it is marked optional. Paths must be relative and may not contain the
8368 // '..' path or start with '..'.
8369 "items"?: [...#."io.k8s.api.core.v1.KeyToPath"]
8370
8371 // optional field specify whether the Secret or its keys must be defined
8372 "optional"?: bool
8373
8374 // secretName is the name of the secret in the pod's namespace to use. More
8375 // info: https://kubernetes.io/docs/concepts/storage/volumes#secret
8376 "secretName"?: string
8377 }
8378
8379 // SecurityContext holds security configuration that will be applied to a
8380 // container. Some fields are present in both SecurityContext and
8381 // PodSecurityContext. When both are set, the values in SecurityContext take
8382 // precedence.
8383 #: "io.k8s.api.core.v1.SecurityContext": {
8384 // AllowPrivilegeEscalation controls whether a process can gain more privileges
8385 // than its parent process. This bool directly controls if the no_new_privs
8386 // flag will be set on the container process. AllowPrivilegeEscalation is true
8387 // always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note
8388 // that this field cannot be set when spec.os.name is windows.
8389 "allowPrivilegeEscalation"?: bool
8390
8391 // appArmorProfile is the AppArmor options to use by this container. If set,
8392 // this profile overrides the pod's appArmorProfile. Note that this field
8393 // cannot be set when spec.os.name is windows.
8394 "appArmorProfile"?: #."io.k8s.api.core.v1.AppArmorProfile"
8395
8396 // The capabilities to add/drop when running containers. Defaults to the default
8397 // set of capabilities granted by the container runtime. Note that this field
8398 // cannot be set when spec.os.name is windows.
8399 "capabilities"?: #."io.k8s.api.core.v1.Capabilities"
8400
8401 // Run container in privileged mode. Processes in privileged containers are
8402 // essentially equivalent to root on the host. Defaults to false. Note that
8403 // this field cannot be set when spec.os.name is windows.
8404 "privileged"?: bool
8405
8406 // procMount denotes the type of proc mount to use for the containers. The
8407 // default value is Default which uses the container runtime defaults for
8408 // readonly paths and masked paths. This requires the ProcMountType feature
8409 // flag to be enabled. Note that this field cannot be set when spec.os.name is
8410 // windows.
8411 "procMount"?: string
8412
8413 // Whether this container has a read-only root filesystem. Default is false.
8414 // Note that this field cannot be set when spec.os.name is windows.
8415 "readOnlyRootFilesystem"?: bool
8416
8417 // The GID to run the entrypoint of the container process. Uses runtime default
8418 // if unset. May also be set in PodSecurityContext. If set in both
8419 // SecurityContext and PodSecurityContext, the value specified in
8420 // SecurityContext takes precedence. Note that this field cannot be set when
8421 // spec.os.name is windows.
8422 "runAsGroup"?: int
8423
8424 // Indicates that the container must run as a non-root user. If true, the
8425 // Kubelet will validate the image at runtime to ensure that it does not run as
8426 // UID 0 (root) and fail to start the container if it does. If unset or false,
8427 // no such validation will be performed. May also be set in PodSecurityContext.
8428 // If set in both SecurityContext and PodSecurityContext, the value specified
8429 // in SecurityContext takes precedence.
8430 "runAsNonRoot"?: bool
8431
8432 // The UID to run the entrypoint of the container process. Defaults to user
8433 // specified in image metadata if unspecified. May also be set in
8434 // PodSecurityContext. If set in both SecurityContext and PodSecurityContext,
8435 // the value specified in SecurityContext takes precedence. Note that this
8436 // field cannot be set when spec.os.name is windows.
8437 "runAsUser"?: int
8438
8439 // The SELinux context to be applied to the container. If unspecified, the
8440 // container runtime will allocate a random SELinux context for each container.
8441 // May also be set in PodSecurityContext. If set in both SecurityContext and
8442 // PodSecurityContext, the value specified in SecurityContext takes precedence.
8443 // Note that this field cannot be set when spec.os.name is windows.
8444 "seLinuxOptions"?: #."io.k8s.api.core.v1.SELinuxOptions"
8445
8446 // The seccomp options to use by this container. If seccomp options are provided
8447 // at both the pod & container level, the container options override the pod
8448 // options. Note that this field cannot be set when spec.os.name is windows.
8449 "seccompProfile"?: #."io.k8s.api.core.v1.SeccompProfile"
8450
8451 // The Windows specific settings applied to all containers. If unspecified, the
8452 // options from the PodSecurityContext will be used. If set in both
8453 // SecurityContext and PodSecurityContext, the value specified in
8454 // SecurityContext takes precedence. Note that this field cannot be set when
8455 // spec.os.name is linux.
8456 "windowsOptions"?: #."io.k8s.api.core.v1.WindowsSecurityContextOptions"
8457 }
8458
8459 // ServiceAccountTokenProjection represents a projected service account token
8460 // volume. This projection can be used to insert a service account token into
8461 // the pods runtime filesystem for use against APIs (Kubernetes API Server or
8462 // otherwise).
8463 #: "io.k8s.api.core.v1.ServiceAccountTokenProjection": {
8464 // audience is the intended audience of the token. A recipient of a token must
8465 // identify itself with an identifier specified in the audience of the token,
8466 // and otherwise should reject the token. The audience defaults to the
8467 // identifier of the apiserver.
8468 "audience"?: string
8469
8470 // expirationSeconds is the requested duration of validity of the service
8471 // account token. As the token approaches expiration, the kubelet volume plugin
8472 // will proactively rotate the service account token. The kubelet will start
8473 // trying to rotate the token if the token is older than 80 percent of its time
8474 // to live or if the token is older than 24 hours.Defaults to 1 hour and must
8475 // be at least 10 minutes.
8476 "expirationSeconds"?: int
8477
8478 // path is the path relative to the mount point of the file to project the token into.
8479 "path"!: string
8480 }
8481
8482 // ServicePort contains information on service's port.
8483 #: "io.k8s.api.core.v1.ServicePort": {
8484 // The application protocol for this port. This is used as a hint for
8485 // implementations to offer richer behavior for protocols that they understand.
8486 // This field follows standard Kubernetes label syntax. Valid values are
8487 // either:
8488 //
8489 // * Un-prefixed protocol names - reserved for IANA standard service names (as
8490 // per RFC-6335 and https://www.iana.org/assignments/service-names).
8491 //
8492 // * Kubernetes-defined prefixed names:
8493 // * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in
8494 // https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-
8495 // * 'kubernetes.io/ws' - WebSocket over cleartext as described in
8496 // https://www.rfc-editor.org/rfc/rfc6455
8497 // * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455
8498 //
8499 // * Other protocols should use implementation-defined prefixed names such as
8500 // mycompany.com/my-custom-protocol.
8501 "appProtocol"?: string
8502
8503 // The name of this port within the service. This must be a DNS_LABEL. All ports
8504 // within a ServiceSpec must have unique names. When considering the endpoints
8505 // for a Service, this must match the 'name' field in the EndpointPort.
8506 // Optional if only one ServicePort is defined on this service.
8507 "name"?: string
8508
8509 // The port on each node on which this service is exposed when type is NodePort
8510 // or LoadBalancer. Usually assigned by the system. If a value is specified,
8511 // in-range, and not in use it will be used, otherwise the operation will fail.
8512 // If not specified, a port will be allocated if this Service requires one. If
8513 // this field is specified when creating a Service which does not need it,
8514 // creation will fail. This field will be wiped when updating a Service to no
8515 // longer need it (e.g. changing type from NodePort to ClusterIP). More info:
8516 // https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
8517 "nodePort"?: int
8518
8519 // The port that will be exposed by this service.
8520 "port"!: int
8521
8522 // The IP protocol for this port. Supports "TCP", "UDP", and "SCTP". Default is TCP.
8523 "protocol"?: string
8524
8525 // Number or name of the port to access on the pods targeted by the service.
8526 // Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If
8527 // this is a string, it will be looked up as a named port in the target Pod's
8528 // container ports. If this is not specified, the value of the 'port' field is
8529 // used (an identity map). This field is ignored for services with
8530 // clusterIP=None, and should be omitted or set equal to the 'port' field. More
8531 // info:
8532 // https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
8533 "targetPort"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
8534 }
8535
8536 // SleepAction describes a "sleep" action.
8537 #: {
8538 "io.k8s.api.core.v1.SleepAction": {
8539 // Seconds is the number of seconds to sleep.
8540 "seconds"!: int
8541 }
8542 }
8543
8544 // Represents a StorageOS persistent volume resource.
8545 #: "io.k8s.api.core.v1.StorageOSVolumeSource": {
8546 // fsType is the filesystem type to mount. Must be a filesystem type supported
8547 // by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred
8548 // to be "ext4" if unspecified.
8549 "fsType"?: string
8550
8551 // readOnly defaults to false (read/write). ReadOnly here will force the
8552 // ReadOnly setting in VolumeMounts.
8553 "readOnly"?: bool
8554
8555 // secretRef specifies the secret to use for obtaining the StorageOS API
8556 // credentials. If not specified, default values will be attempted.
8557 "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
8558
8559 // volumeName is the human-readable name of the StorageOS volume. Volume names
8560 // are only unique within a namespace.
8561 "volumeName"?: string
8562
8563 // volumeNamespace specifies the scope of the volume within StorageOS. If no
8564 // namespace is specified then the Pod's namespace will be used. This allows
8565 // the Kubernetes name scoping to be mirrored within StorageOS for tighter
8566 // integration. Set VolumeName to any name to override the default behaviour.
8567 // Set to "default" if you are not using namespaces within StorageOS.
8568 // Namespaces that do not pre-exist within StorageOS will be created.
8569 "volumeNamespace"?: string
8570 }
8571
8572 // Sysctl defines a kernel parameter to be set
8573 #: "io.k8s.api.core.v1.Sysctl": {
8574 // Name of a property to set
8575 "name"!: string
8576
8577 // Value of a property to set
8578 "value"!: string
8579 }
8580
8581 // TCPSocketAction describes an action based on opening a socket
8582 #: "io.k8s.api.core.v1.TCPSocketAction": {
8583 // Optional: Host name to connect to, defaults to the pod IP.
8584 "host"?: string
8585
8586 // Number or name of the port to access on the container. Number must be in the
8587 // range 1 to 65535. Name must be an IANA_SVC_NAME.
8588 "port"!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
8589 }
8590
8591 // The pod this Toleration is attached to tolerates any taint that matches the
8592 // triple <key,value,effect> using the matching operator <operator>.
8593 #: "io.k8s.api.core.v1.Toleration": {
8594 // Effect indicates the taint effect to match. Empty means match all taint
8595 // effects. When specified, allowed values are NoSchedule, PreferNoSchedule and
8596 // NoExecute.
8597 "effect"?: string
8598
8599 // Key is the taint key that the toleration applies to. Empty means match all
8600 // taint keys. If the key is empty, operator must be Exists; this combination
8601 // means to match all values and all keys.
8602 "key"?: string
8603
8604 // Operator represents a key's relationship to the value. Valid operators are
8605 // Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for
8606 // value, so that a pod can tolerate all taints of a particular category.
8607 "operator"?: string
8608
8609 // TolerationSeconds represents the period of time the toleration (which must be
8610 // of effect NoExecute, otherwise this field is ignored) tolerates the taint.
8611 // By default, it is not set, which means tolerate the taint forever (do not
8612 // evict). Zero and negative values will be treated as 0 (evict immediately) by
8613 // the system.
8614 "tolerationSeconds"?: int
8615
8616 // Value is the taint value the toleration matches to. If the operator is
8617 // Exists, the value should be empty, otherwise just a regular string.
8618 "value"?: string
8619 }
8620
8621 // TypedLocalObjectReference contains enough information to let you locate the
8622 // typed referenced object inside the same namespace.
8623 #: "io.k8s.api.core.v1.TypedLocalObjectReference": {
8624 // APIGroup is the group for the resource being referenced. If APIGroup is not
8625 // specified, the specified Kind must be in the core API group. For any other
8626 // third-party types, APIGroup is required.
8627 "apiGroup"?: string
8628
8629 // Kind is the type of resource being referenced
8630 "kind"!: string
8631
8632 // Name is the name of resource being referenced
8633 "name"!: string
8634 }
8635
8636 // TypedObjectReference contains enough information to let you locate the typed referenced object
8637 #: "io.k8s.api.core.v1.TypedObjectReference": {
8638 // APIGroup is the group for the resource being referenced. If APIGroup is not
8639 // specified, the specified Kind must be in the core API group. For any other
8640 // third-party types, APIGroup is required.
8641 "apiGroup"?: string
8642
8643 // Kind is the type of resource being referenced
8644 "kind"!: string
8645
8646 // Name is the name of resource being referenced
8647 "name"!: string
8648
8649 // Namespace is the namespace of resource being referenced Note that when a
8650 // namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is
8651 // required in the referent namespace to allow that namespace's owner to accept
8652 // the reference. See the ReferenceGrant documentation for details. (Alpha)
8653 // This field requires the CrossNamespaceVolumeDataSource feature gate to be
8654 // enabled.
8655 "namespace"?: string
8656 }
8657
8658 // Volume represents a named volume in a pod that may be accessed by any container in the pod.
8659 #: "io.k8s.api.core.v1.Volume": {
8660 // awsElasticBlockStore represents an AWS Disk resource that is attached to a
8661 // kubelet's host machine and then exposed to the pod. Deprecated:
8662 // AWSElasticBlockStore is deprecated. All operations for the in-tree
8663 // awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
8664 // More info:
8665 // https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
8666 "awsElasticBlockStore"?: #."io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource"
8667
8668 // azureDisk represents an Azure Data Disk mount on the host and bind mount to
8669 // the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree
8670 // azureDisk type are redirected to the disk.csi.azure.com CSI driver.
8671 "azureDisk"?: #."io.k8s.api.core.v1.AzureDiskVolumeSource"
8672
8673 // azureFile represents an Azure File Service mount on the host and bind mount
8674 // to the pod. Deprecated: AzureFile is deprecated. All operations for the
8675 // in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.
8676 "azureFile"?: #."io.k8s.api.core.v1.AzureFileVolumeSource"
8677
8678 // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
8679 // Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer
8680 // supported.
8681 "cephfs"?: #."io.k8s.api.core.v1.CephFSVolumeSource"
8682
8683 // cinder represents a cinder volume attached and mounted on kubelets host
8684 // machine. Deprecated: Cinder is deprecated. All operations for the in-tree
8685 // cinder type are redirected to the cinder.csi.openstack.org CSI driver. More
8686 // info: https://examples.k8s.io/mysql-cinder-pd/README.md
8687 "cinder"?: #."io.k8s.api.core.v1.CinderVolumeSource"
8688
8689 // configMap represents a configMap that should populate this volume
8690 "configMap"?: #."io.k8s.api.core.v1.ConfigMapVolumeSource"
8691
8692 // csi (Container Storage Interface) represents ephemeral storage that is
8693 // handled by certain external CSI drivers.
8694 "csi"?: #."io.k8s.api.core.v1.CSIVolumeSource"
8695
8696 // downwardAPI represents downward API about the pod that should populate this volume
8697 "downwardAPI"?: #."io.k8s.api.core.v1.DownwardAPIVolumeSource"
8698
8699 // emptyDir represents a temporary directory that shares a pod's lifetime. More
8700 // info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
8701 "emptyDir"?: #."io.k8s.api.core.v1.EmptyDirVolumeSource"
8702
8703 // ephemeral represents a volume that is handled by a cluster storage driver.
8704 // The volume's lifecycle is tied to the pod that defines it - it will be
8705 // created before the pod starts, and deleted when the pod is removed.
8706 //
8707 // Use this if: a) the volume is only needed while the pod runs, b) features of
8708 // normal volumes like restoring from snapshot or capacity
8709 // tracking are needed,
8710 // c) the storage driver is specified through a storage class, and d) the
8711 // storage driver supports dynamic volume provisioning through
8712 // a PersistentVolumeClaim (see EphemeralVolumeSource for more
8713 // information on the connection between this volume type
8714 // and PersistentVolumeClaim).
8715 //
8716 // Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that
8717 // persist for longer than the lifecycle of an individual pod.
8718 //
8719 // Use CSI for light-weight local ephemeral volumes if the CSI driver is meant
8720 // to be used that way - see the documentation of the driver for more
8721 // information.
8722 //
8723 // A pod can use both types of ephemeral volumes and persistent volumes at the same time.
8724 "ephemeral"?: #."io.k8s.api.core.v1.EphemeralVolumeSource"
8725
8726 // fc represents a Fibre Channel resource that is attached to a kubelet's host
8727 // machine and then exposed to the pod.
8728 "fc"?: #."io.k8s.api.core.v1.FCVolumeSource"
8729
8730 // flexVolume represents a generic volume resource that is provisioned/attached
8731 // using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider
8732 // using a CSIDriver instead.
8733 "flexVolume"?: #."io.k8s.api.core.v1.FlexVolumeSource"
8734
8735 // flocker represents a Flocker volume attached to a kubelet's host machine.
8736 // This depends on the Flocker control service being running. Deprecated:
8737 // Flocker is deprecated and the in-tree flocker type is no longer supported.
8738 "flocker"?: #."io.k8s.api.core.v1.FlockerVolumeSource"
8739
8740 // gcePersistentDisk represents a GCE Disk resource that is attached to a
8741 // kubelet's host machine and then exposed to the pod. Deprecated:
8742 // GCEPersistentDisk is deprecated. All operations for the in-tree
8743 // gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI
8744 // driver. More info:
8745 // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
8746 "gcePersistentDisk"?: #."io.k8s.api.core.v1.GCEPersistentDiskVolumeSource"
8747
8748 // gitRepo represents a git repository at a particular revision. Deprecated:
8749 // GitRepo is deprecated. To provision a container with a git repo, mount an
8750 // EmptyDir into an InitContainer that clones the repo using git, then mount
8751 // the EmptyDir into the Pod's container.
8752 "gitRepo"?: #."io.k8s.api.core.v1.GitRepoVolumeSource"
8753
8754 // glusterfs represents a Glusterfs mount on the host that shares a pod's
8755 // lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type
8756 // is no longer supported. More info:
8757 // https://examples.k8s.io/volumes/glusterfs/README.md
8758 "glusterfs"?: #."io.k8s.api.core.v1.GlusterfsVolumeSource"
8759
8760 // hostPath represents a pre-existing file or directory on the host machine that
8761 // is directly exposed to the container. This is generally used for system
8762 // agents or other privileged things that are allowed to see the host machine.
8763 // Most containers will NOT need this. More info:
8764 // https://kubernetes.io/docs/concepts/storage/volumes#hostpath
8765 "hostPath"?: #."io.k8s.api.core.v1.HostPathVolumeSource"
8766
8767 // image represents an OCI object (a container image or artifact) pulled and
8768 // mounted on the kubelet's host machine. The volume is resolved at pod startup
8769 // depending on which PullPolicy value is provided:
8770 //
8771 // - Always: the kubelet always attempts to pull the reference. Container
8772 // creation will fail If the pull fails. - Never: the kubelet never pulls the
8773 // reference and only uses a local image or artifact. Container creation will
8774 // fail if the reference isn't present. - IfNotPresent: the kubelet pulls if
8775 // the reference isn't already present on disk. Container creation will fail if
8776 // the reference isn't present and the pull fails.
8777 //
8778 // The volume gets re-resolved if the pod gets deleted and recreated, which
8779 // means that new remote content will become available on pod recreation. A
8780 // failure to resolve or pull the image during pod startup will block
8781 // containers from starting and may add significant latency. Failures will be
8782 // retried using normal volume backoff and will be reported on the pod reason
8783 // and message. The types of objects that may be mounted by this volume are
8784 // defined by the container runtime implementation on a host machine and at
8785 // minimum must include all valid types supported by the container image field.
8786 // The OCI object gets mounted in a single directory
8787 // (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers
8788 // in the same way as for container images. The volume will be mounted
8789 // read-only (ro) and non-executable files (noexec). Sub path mounts for
8790 // containers are not supported (spec.containers[*].volumeMounts.subpath)
8791 // before 1.33. The field spec.securityContext.fsGroupChangePolicy has no
8792 // effect on this volume type.
8793 "image"?: #."io.k8s.api.core.v1.ImageVolumeSource"
8794
8795 // iscsi represents an ISCSI Disk resource that is attached to a kubelet's host
8796 // machine and then exposed to the pod. More info:
8797 // https://examples.k8s.io/volumes/iscsi/README.md
8798 "iscsi"?: #."io.k8s.api.core.v1.ISCSIVolumeSource"
8799
8800 // name of the volume. Must be a DNS_LABEL and unique within the pod. More info:
8801 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8802 "name"!: string
8803
8804 // nfs represents an NFS mount on the host that shares a pod's lifetime More
8805 // info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
8806 "nfs"?: #."io.k8s.api.core.v1.NFSVolumeSource"
8807
8808 // persistentVolumeClaimVolumeSource represents a reference to a
8809 // PersistentVolumeClaim in the same namespace. More info:
8810 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
8811 "persistentVolumeClaim"?: #."io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource"
8812
8813 // photonPersistentDisk represents a PhotonController persistent disk attached
8814 // and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is
8815 // deprecated and the in-tree photonPersistentDisk type is no longer supported.
8816 "photonPersistentDisk"?: #."io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource"
8817
8818 // portworxVolume represents a portworx volume attached and mounted on kubelets
8819 // host machine. Deprecated: PortworxVolume is deprecated. All operations for
8820 // the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI
8821 // driver when the CSIMigrationPortworx feature-gate is on.
8822 "portworxVolume"?: #."io.k8s.api.core.v1.PortworxVolumeSource"
8823
8824 // projected items for all in one resources secrets, configmaps, and downward API
8825 "projected"?: #."io.k8s.api.core.v1.ProjectedVolumeSource"
8826
8827 // quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
8828 // Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer
8829 // supported.
8830 "quobyte"?: #."io.k8s.api.core.v1.QuobyteVolumeSource"
8831
8832 // rbd represents a Rados Block Device mount on the host that shares a pod's
8833 // lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no
8834 // longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md
8835 "rbd"?: #."io.k8s.api.core.v1.RBDVolumeSource"
8836
8837 // scaleIO represents a ScaleIO persistent volume attached and mounted on
8838 // Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO
8839 // type is no longer supported.
8840 "scaleIO"?: #."io.k8s.api.core.v1.ScaleIOVolumeSource"
8841
8842 // secret represents a secret that should populate this volume. More info:
8843 // https://kubernetes.io/docs/concepts/storage/volumes#secret
8844 "secret"?: #."io.k8s.api.core.v1.SecretVolumeSource"
8845
8846 // storageOS represents a StorageOS volume attached and mounted on Kubernetes
8847 // nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is
8848 // no longer supported.
8849 "storageos"?: #."io.k8s.api.core.v1.StorageOSVolumeSource"
8850
8851 // vsphereVolume represents a vSphere volume attached and mounted on kubelets
8852 // host machine. Deprecated: VsphereVolume is deprecated. All operations for
8853 // the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com
8854 // CSI driver.
8855 "vsphereVolume"?: #."io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource"
8856 }
8857
8858 // volumeDevice describes a mapping of a raw block device within a container.
8859 #: "io.k8s.api.core.v1.VolumeDevice": {
8860 // devicePath is the path inside of the container that the device will be mapped to.
8861 "devicePath"!: string
8862
8863 // name must match the name of a persistentVolumeClaim in the pod
8864 "name"!: string
8865 }
8866
8867 // VolumeMount describes a mounting of a Volume within a container.
8868 #: "io.k8s.api.core.v1.VolumeMount": {
8869 // Path within the container at which the volume should be mounted. Must not contain ':'.
8870 "mountPath"!: string
8871
8872 // mountPropagation determines how mounts are propagated from the host to
8873 // container and the other way around. When not set, MountPropagationNone is
8874 // used. This field is beta in 1.10. When RecursiveReadOnly is set to
8875 // IfPossible or to Enabled, MountPropagation must be None or unspecified
8876 // (which defaults to None).
8877 "mountPropagation"?: string
8878
8879 // This must match the Name of a Volume.
8880 "name"!: string
8881
8882 // Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.
8883 "readOnly"?: bool
8884
8885 // RecursiveReadOnly specifies whether read-only mounts should be handled recursively.
8886 //
8887 // If ReadOnly is false, this field has no meaning and must be unspecified.
8888 //
8889 // If ReadOnly is true, and this field is set to Disabled, the mount is not made
8890 // recursively read-only. If this field is set to IfPossible, the mount is made
8891 // recursively read-only, if it is supported by the container runtime. If this
8892 // field is set to Enabled, the mount is made recursively read-only if it is
8893 // supported by the container runtime, otherwise the pod will not be started
8894 // and an error will be generated to indicate the reason.
8895 //
8896 // If this field is set to IfPossible or Enabled, MountPropagation must be set
8897 // to None (or be unspecified, which defaults to None).
8898 //
8899 // If this field is not specified, it is treated as an equivalent of Disabled.
8900 "recursiveReadOnly"?: string
8901
8902 // Path within the volume from which the container's volume should be mounted.
8903 // Defaults to "" (volume's root).
8904 "subPath"?: string
8905
8906 // Expanded path within the volume from which the container's volume should be
8907 // mounted. Behaves similarly to SubPath but environment variable references
8908 // $(VAR_NAME) are expanded using the container's environment. Defaults to ""
8909 // (volume's root). SubPathExpr and SubPath are mutually exclusive.
8910 "subPathExpr"?: string
8911 }
8912
8913 // Projection that may be projected along with other supported volume types.
8914 // Exactly one of these fields must be set.
8915 #: "io.k8s.api.core.v1.VolumeProjection": {
8916 // ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of
8917 // ClusterTrustBundle objects in an auto-updating file.
8918 //
8919 // Alpha, gated by the ClusterTrustBundleProjection feature gate.
8920 //
8921 // ClusterTrustBundle objects can either be selected by name, or by the
8922 // combination of signer name and a label selector.
8923 //
8924 // Kubelet performs aggressive normalization of the PEM contents written into
8925 // the pod filesystem. Esoteric PEM features such as inter-block comments and
8926 // block headers are stripped. Certificates are deduplicated. The ordering of
8927 // certificates within the file is arbitrary, and Kubelet may change the order
8928 // over time.
8929 "clusterTrustBundle"?: #."io.k8s.api.core.v1.ClusterTrustBundleProjection"
8930
8931 // configMap information about the configMap data to project
8932 "configMap"?: #."io.k8s.api.core.v1.ConfigMapProjection"
8933
8934 // downwardAPI information about the downwardAPI data to project
8935 "downwardAPI"?: #."io.k8s.api.core.v1.DownwardAPIProjection"
8936
8937 // secret information about the secret data to project
8938 "secret"?: #."io.k8s.api.core.v1.SecretProjection"
8939
8940 // serviceAccountToken is information about the serviceAccountToken data to project
8941 "serviceAccountToken"?: #."io.k8s.api.core.v1.ServiceAccountTokenProjection"
8942 }
8943
8944 // VolumeResourceRequirements describes the storage resource requirements for a volume.
8945 #: "io.k8s.api.core.v1.VolumeResourceRequirements": {
8946 // Limits describes the maximum amount of compute resources allowed. More info:
8947 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
8948 "limits"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
8949
8950 // Requests describes the minimum amount of compute resources required. If
8951 // Requests is omitted for a container, it defaults to Limits if that is
8952 // explicitly specified, otherwise to an implementation-defined value. Requests
8953 // cannot exceed Limits. More info:
8954 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
8955 "requests"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
8956 }
8957
8958 // Represents a vSphere volume resource.
8959 #: "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": {
8960 // fsType is filesystem type to mount. Must be a filesystem type supported by
8961 // the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to
8962 // be "ext4" if unspecified.
8963 "fsType"?: string
8964
8965 // storagePolicyID is the storage Policy Based Management (SPBM) profile ID
8966 // associated with the StoragePolicyName.
8967 "storagePolicyID"?: string
8968
8969 // storagePolicyName is the storage Policy Based Management (SPBM) profile name.
8970 "storagePolicyName"?: string
8971
8972 // volumePath is the path that identifies vSphere volume vmdk
8973 "volumePath"!: string
8974 }
8975
8976 // The weights of all of the matched WeightedPodAffinityTerm fields are added
8977 // per-node to find the most preferred node(s)
8978 #: "io.k8s.api.core.v1.WeightedPodAffinityTerm": {
8979 // Required. A pod affinity term, associated with the corresponding weight.
8980 "podAffinityTerm"!: #."io.k8s.api.core.v1.PodAffinityTerm"
8981
8982 // weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
8983 "weight"!: int
8984 }
8985
8986 // WindowsSecurityContextOptions contain Windows-specific options and credentials.
8987 #: "io.k8s.api.core.v1.WindowsSecurityContextOptions": {
8988 // GMSACredentialSpec is where the GMSA admission webhook
8989 // (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of
8990 // the GMSA credential spec named by the GMSACredentialSpecName field.
8991 "gmsaCredentialSpec"?: string
8992
8993 // GMSACredentialSpecName is the name of the GMSA credential spec to use.
8994 "gmsaCredentialSpecName"?: string
8995
8996 // HostProcess determines if a container should be run as a 'Host Process'
8997 // container. All of a Pod's containers must have the same effective
8998 // HostProcess value (it is not allowed to have a mix of HostProcess containers
8999 // and non-HostProcess containers). In addition, if HostProcess is true then
9000 // HostNetwork must also be set to true.
9001 "hostProcess"?: bool
9002
9003 // The UserName in Windows to run the entrypoint of the container process.
9004 // Defaults to the user specified in image metadata if unspecified. May also be
9005 // set in PodSecurityContext. If set in both SecurityContext and
9006 // PodSecurityContext, the value specified in SecurityContext takes precedence.
9007 "runAsUserName"?: string
9008 }
9009
9010 // PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.
9011 #: "io.k8s.api.policy.v1.PodDisruptionBudgetSpec": {
9012 // An eviction is allowed if at most "maxUnavailable" pods selected by
9013 // "selector" are unavailable after the eviction, i.e. even in absence of the
9014 // evicted pod. For example, one can prevent all voluntary evictions by
9015 // specifying 0. This is a mutually exclusive setting with "minAvailable".
9016 "maxUnavailable"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
9017
9018 // An eviction is allowed if at least "minAvailable" pods selected by "selector"
9019 // will still be available after the eviction, i.e. even in the absence of the
9020 // evicted pod. So for example you can prevent all voluntary evictions by
9021 // specifying "100%".
9022 "minAvailable"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
9023
9024 // Label query over pods whose evictions are managed by the disruption budget. A
9025 // null selector will match no pods, while an empty ({}) selector will select
9026 // all pods within the namespace.
9027 "selector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
9028
9029 // UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods
9030 // should be considered for eviction. Current implementation considers healthy
9031 // pods, as pods that have status.conditions item with
9032 // type="Ready",status="True".
9033 //
9034 // Valid policies are IfHealthyBudget and AlwaysAllow. If no policy is
9035 // specified, the default behavior will be used, which corresponds to the
9036 // IfHealthyBudget policy.
9037 //
9038 // IfHealthyBudget policy means that running pods (status.phase="Running"), but
9039 // not yet healthy can be evicted only if the guarded application is not
9040 // disrupted (status.currentHealthy is at least equal to
9041 // status.desiredHealthy). Healthy pods will be subject to the PDB for
9042 // eviction.
9043 //
9044 // AlwaysAllow policy means that all running pods (status.phase="Running"), but
9045 // not yet healthy are considered disrupted and can be evicted regardless of
9046 // whether the criteria in a PDB is met. This means perspective running pods of
9047 // a disrupted application might not get a chance to become healthy. Healthy
9048 // pods will be subject to the PDB for eviction.
9049 //
9050 // Additional policies may be added in the future. Clients making eviction
9051 // decisions should disallow eviction of unhealthy pods if they encounter an
9052 // unrecognized policy in this field.
9053 "unhealthyPodEvictionPolicy"?: string
9054 }
9055
9056 // Quantity is a fixed-point representation of a number. It provides convenient
9057 // marshaling/unmarshaling in JSON and YAML, in addition to String() and
9058 // AsInt64() accessors.
9059 //
9060 // The serialization format is:
9061 //
9062 // ``` <quantity> ::= <signedNumber><suffix>
9063 //
9064 // (Note that <suffix> may be empty, from the "" case in <decimalSI>.)
9065 //
9066 // <digit> ::= 0 | 1 | ... | 9 <digits> ::= <digit> | <digit><digits> <number>
9067 // ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign> ::= "+" |
9068 // "-" <signedNumber> ::= <number> | <sign><number> <suffix> ::= <binarySI> |
9069 // <decimalExponent> | <decimalSI> <binarySI> ::= Ki | Mi | Gi | Ti | Pi | Ei
9070 //
9071 // (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
9072 //
9073 // <decimalSI> ::= m | "" | k | M | G | T | P | E
9074 //
9075 // (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
9076 //
9077 // <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
9078 //
9079 // No matter which of the three exponent forms is used, no quantity may
9080 // represent a number greater than 2^63-1 in magnitude, nor may it have more
9081 // than 3 decimal places. Numbers larger or more precise will be capped or
9082 // rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the
9083 // future if we require larger or smaller quantities.
9084 //
9085 // When a Quantity is parsed from a string, it will remember the type of suffix
9086 // it had, and will use the same type again when it is serialized.
9087 //
9088 // Before serializing, Quantity will be put in "canonical form". This means that
9089 // Exponent/suffix will be adjusted up or down (with a corresponding increase
9090 // or decrease in Mantissa) such that:
9091 //
9092 // - No precision is lost - No fractional digits will be emitted - The exponent
9093 // (or suffix) is as large as possible.
9094 //
9095 // The sign will be omitted unless the number is negative.
9096 //
9097 // Examples:
9098 //
9099 // - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
9100 //
9101 // Note that the quantity will NEVER be internally represented by a floating
9102 // point number. That is the whole point of this exercise.
9103 //
9104 // Non-canonical values will still parse as long as they are well formed, but
9105 // will be re-emitted in their canonical form. (So always use canonical form,
9106 // or don't diff.)
9107 //
9108 // This format is intended to make it difficult to use these numbers without
9109 // writing some sort of special handling code in the hopes that that will cause
9110 // implementors to also use a fixed point implementation.
9111 #: "io.k8s.apimachinery.pkg.api.resource.Quantity": string
9112
9113 // CreateOptions may be provided when creating an API object.
9114 #: "io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions": {
9115 // When present, indicates that modifications should not be
9116 // persisted. An invalid or unrecognized dryRun directive will
9117 // result in an error response and no further processing of the
9118 // request. Valid values are:
9119 // - All: all dry run stages will be processed
9120 // +optional
9121 // +listType=atomic
9122 "dryRun"?: [...string]
9123
9124 // fieldManager is a name associated with the actor or entity
9125 // that is making these changes. The value must be less than or
9126 // 128 characters long, and only contain printable characters,
9127 // as defined by https://golang.org/pkg/unicode/#IsPrint.
9128 // +optional
9129 "fieldManager"?: string
9130
9131 // fieldValidation instructs the server on how to handle
9132 // objects in the request (POST/PUT/PATCH) containing unknown
9133 // or duplicate fields. Valid values are:
9134 // - Ignore: This will ignore any unknown fields that are silently
9135 // dropped from the object, and will ignore all but the last duplicate
9136 // field that the decoder encounters. This is the default behavior
9137 // prior to v1.23.
9138 // - Warn: This will send a warning via the standard warning response
9139 // header for each unknown field that is dropped from the object, and
9140 // for each duplicate field that is encountered. The request will
9141 // still succeed if there are no other errors, and will only persist
9142 // the last of any duplicate fields. This is the default in v1.23+
9143 // - Strict: This will fail the request with a BadRequest error if
9144 // any unknown fields would be dropped from the object, or if any
9145 // duplicate fields are present. The error returned from the server
9146 // will contain all unknown and duplicate fields encountered.
9147 // +optional
9148 "fieldValidation"?: string
9149 }
9150
9151 // FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.
9152 //
9153 // Each key is either a '.' representing the field itself, and will always map
9154 // to an empty set, or a string representing a sub-field or item. The string
9155 // will follow one of these four formats: 'f:<name>', where <name> is the name
9156 // of a field in a struct, or key in a map 'v:<value>', where <value> is the
9157 // exact json formatted value of a list item 'i:<index>', where <index> is
9158 // position of a item in a list 'k:<keys>', where <keys> is a map of a list
9159 // item's key fields to their unique values If a key maps to an empty Fields
9160 // value, the field that key represents is part of the set.
9161 //
9162 // The exact format is defined in sigs.k8s.io/structured-merge-diff
9163 #: "io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1": {}
9164
9165 // GroupVersionResource unambiguously identifies a resource. It doesn't
9166 // anonymously include GroupVersion
9167 // to avoid automatic coercion. It doesn't use a GroupVersion to avoid custom marshalling
9168 //
9169 // +protobuf.options.(gogoproto.goproto_stringer)=false
9170 #: "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource": {
9171 "group"?: string
9172 "resource"?: string
9173 "version"?: string
9174 }
9175
9176 // A label selector is a label query over a set of resources. The result of
9177 // matchLabels and matchExpressions are ANDed. An empty label selector matches
9178 // all objects. A null label selector matches no objects.
9179 #: "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector": {
9180 // matchExpressions is a list of label selector requirements. The requirements are ANDed.
9181 "matchExpressions"?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement"]
9182
9183 // matchLabels is a map of {key,value} pairs. A single {key,value} in the
9184 // matchLabels map is equivalent to an element of matchExpressions, whose key
9185 // field is "key", the operator is "In", and the values array contains only
9186 // "value". The requirements are ANDed.
9187 "matchLabels"?: [string]: string
9188 }
9189
9190 // A label selector requirement is a selector that contains values, a key, and
9191 // an operator that relates the key and values.
9192 #: "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": {
9193 // key is the label key that the selector applies to.
9194 "key"!: string
9195
9196 // operator represents a key's relationship to a set of values. Valid operators
9197 // are In, NotIn, Exists and DoesNotExist.
9198 "operator"!: string
9199
9200 // values is an array of string values. If the operator is In or NotIn, the
9201 // values array must be non-empty. If the operator is Exists or DoesNotExist,
9202 // the values array must be empty. This array is replaced during a strategic
9203 // merge patch.
9204 "values"?: [...string]
9205 }
9206
9207 // ListMeta describes metadata that synthetic resources must have, including
9208 // lists and various status objects. A resource may have only one of
9209 // {ObjectMeta, ListMeta}.
9210 #: "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta": {
9211 // continue may be set if the user set a limit on the number of items returned,
9212 // and indicates that the server has more data available. The value is opaque
9213 // and may be used to issue another request to the endpoint that served this
9214 // list to retrieve the next set of available objects. Continuing a consistent
9215 // list may not be possible if the server configuration has changed or more
9216 // than a few minutes have passed. The resourceVersion field returned when
9217 // using this continue value will be identical to the value in the first
9218 // response, unless you have received this token from an error message.
9219 "continue"?: string
9220
9221 // remainingItemCount is the number of subsequent items in the list which are
9222 // not included in this list response. If the list request contained label or
9223 // field selectors, then the number of remaining items is unknown and the field
9224 // will be left unset and omitted during serialization. If the list is complete
9225 // (either because it is not chunking or because this is the last chunk), then
9226 // there are no more remaining items and this field will be left unset and
9227 // omitted during serialization. Servers older than v1.15 do not set this
9228 // field. The intended use of the remainingItemCount is *estimating* the size
9229 // of a collection. Clients should not rely on the remainingItemCount to be set
9230 // or to be exact.
9231 "remainingItemCount"?: int
9232
9233 // String that identifies the server's internal version of this object that can
9234 // be used by clients to determine when objects have changed. Value must be
9235 // treated as opaque by clients and passed unmodified back to the server.
9236 // Populated by the system. Read-only. More info:
9237 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
9238 "resourceVersion"?: string
9239
9240 // Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.
9241 "selfLink"?: string
9242 }
9243
9244 // ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the
9245 // resource that the fieldset applies to.
9246 #: "io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry": {
9247 // APIVersion defines the version of this resource that this field set applies
9248 // to. The format is "group/version" just like the top-level APIVersion field.
9249 // It is necessary to track the version of a field set because it cannot be
9250 // automatically converted.
9251 "apiVersion"?: string
9252
9253 // FieldsType is the discriminator for the different fields format and version.
9254 // There is currently only one possible value: "FieldsV1"
9255 "fieldsType"?: string
9256
9257 // FieldsV1 holds the first JSON version format as described in the "FieldsV1" type.
9258 "fieldsV1"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1"
9259
9260 // Manager is an identifier of the workflow managing these fields.
9261 "manager"?: string
9262
9263 // Operation is the type of operation which lead to this ManagedFieldsEntry
9264 // being created. The only valid values for this field are 'Apply' and
9265 // 'Update'.
9266 "operation"?: string
9267
9268 // Subresource is the name of the subresource used to update that object, or
9269 // empty string if the object was updated through the main resource. The value
9270 // of this field is used to distinguish between managers, even if they share
9271 // the same name. For example, a status update will be distinct from a regular
9272 // update using the same manager name. Note that the APIVersion field is not
9273 // related to the Subresource field and it always corresponds to the version of
9274 // the main resource.
9275 "subresource"?: string
9276
9277 // Time is the timestamp of when the ManagedFields entry was added. The
9278 // timestamp will also be updated if a field is added, the manager changes any
9279 // of the owned fields value or removes a field. The timestamp does not update
9280 // when a field is removed from the entry because another manager took it over.
9281 "time"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
9282 }
9283
9284 // MicroTime is version of Time with microsecond level precision.
9285 #: "io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime": time.Time
9286
9287 // ObjectMeta is metadata that all persisted resources must have, which includes
9288 // all objects users must create.
9289 #: "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": {
9290 // Annotations is an unstructured key value map stored with a resource that may
9291 // be set by external tools to store and retrieve arbitrary metadata. They are
9292 // not queryable and should be preserved when modifying objects. More info:
9293 // https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations
9294 "annotations"?: [string]: string
9295
9296 // CreationTimestamp is a timestamp representing the server time when this
9297 // object was created. It is not guaranteed to be set in happens-before order
9298 // across separate operations. Clients may not set this value. It is
9299 // represented in RFC3339 form and is in UTC.
9300 //
9301 // Populated by the system. Read-only. Null for lists. More info:
9302 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
9303 "creationTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
9304
9305 // Number of seconds allowed for this object to gracefully terminate before it
9306 // will be removed from the system. Only set when deletionTimestamp is also
9307 // set. May only be shortened. Read-only.
9308 "deletionGracePeriodSeconds"?: int
9309
9310 // DeletionTimestamp is RFC 3339 date and time at which this resource will be
9311 // deleted. This field is set by the server when a graceful deletion is
9312 // requested by the user, and is not directly settable by a client. The
9313 // resource is expected to be deleted (no longer visible from resource lists,
9314 // and not reachable by name) after the time in this field, once the finalizers
9315 // list is empty. As long as the finalizers list contains items, deletion is
9316 // blocked. Once the deletionTimestamp is set, this value may not be unset or
9317 // be set further into the future, although it may be shortened or the resource
9318 // may be deleted prior to this time. For example, a user may request that a
9319 // pod is deleted in 30 seconds. The Kubelet will react by sending a graceful
9320 // termination signal to the containers in the pod. After that 30 seconds, the
9321 // Kubelet will send a hard termination signal (SIGKILL) to the container and
9322 // after cleanup, remove the pod from the API. In the presence of network
9323 // partitions, this object may still exist after this timestamp, until an
9324 // administrator or automated process can determine the resource is fully
9325 // terminated. If not set, graceful deletion of the object has not been
9326 // requested.
9327 //
9328 // Populated by the system when a graceful deletion is requested. Read-only.
9329 // More info:
9330 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
9331 "deletionTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
9332
9333 // Must be empty before the object is deleted from the registry. Each entry is
9334 // an identifier for the responsible component that will remove the entry from
9335 // the list. If the deletionTimestamp of the object is non-nil, entries in this
9336 // list can only be removed. Finalizers may be processed and removed in any
9337 // order. Order is NOT enforced because it introduces significant risk of stuck
9338 // finalizers. finalizers is a shared field, any actor with permission can
9339 // reorder it. If the finalizer list is processed in order, then this can lead
9340 // to a situation in which the component responsible for the first finalizer in
9341 // the list is waiting for a signal (field value, external system, or other)
9342 // produced by a component responsible for a finalizer later in the list,
9343 // resulting in a deadlock. Without enforced ordering finalizers are free to
9344 // order amongst themselves and are not vulnerable to ordering changes in the
9345 // list.
9346 "finalizers"?: [...string]
9347
9348 // GenerateName is an optional prefix, used by the server, to generate a unique
9349 // name ONLY IF the Name field has not been provided. If this field is used,
9350 // the name returned to the client will be different than the name passed. This
9351 // value will also be combined with a unique suffix. The provided value has the
9352 // same validation rules as the Name field, and may be truncated by the length
9353 // of the suffix required to make the value unique on the server.
9354 //
9355 // If this field is specified and the generated name exists, the server will return a 409.
9356 //
9357 // Applied only if Name is not specified. More info:
9358 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency
9359 "generateName"?: string
9360
9361 // A sequence number representing a specific generation of the desired state.
9362 // Populated by the system. Read-only.
9363 "generation"?: int
9364
9365 // Map of string keys and values that can be used to organize and categorize
9366 // (scope and select) objects. May match selectors of replication controllers
9367 // and services. More info:
9368 // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels
9369 "labels"?: [string]: string
9370
9371 // ManagedFields maps workflow-id and version to the set of fields that are
9372 // managed by that workflow. This is mostly for internal housekeeping, and
9373 // users typically shouldn't need to set or understand this field. A workflow
9374 // can be the user's name, a controller's name, or the name of a specific apply
9375 // path like "ci-cd". The set of fields is always in the version that the
9376 // workflow used when modifying the object.
9377 "managedFields"?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry"]
9378
9379 // Name must be unique within a namespace. Is required when creating resources,
9380 // although some resources may allow a client to request the generation of an
9381 // appropriate name automatically. Name is primarily intended for creation
9382 // idempotence and configuration definition. Cannot be updated. More info:
9383 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names
9384 "name"?: string
9385
9386 // Namespace defines the space within which each name must be unique. An empty
9387 // namespace is equivalent to the "default" namespace, but "default" is the
9388 // canonical representation. Not all objects are required to be scoped to a
9389 // namespace - the value of this field for those objects will be empty.
9390 //
9391 // Must be a DNS_LABEL. Cannot be updated. More info:
9392 // https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces
9393 "namespace"?: string
9394
9395 // List of objects depended by this object. If ALL objects in the list have been
9396 // deleted, this object will be garbage collected. If this object is managed by
9397 // a controller, then an entry in this list will point to this controller, with
9398 // the controller field set to true. There cannot be more than one managing
9399 // controller.
9400 "ownerReferences"?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference"]
9401
9402 // An opaque value that represents the internal version of this object that can
9403 // be used by clients to determine when objects have changed. May be used for
9404 // optimistic concurrency, change detection, and the watch operation on a
9405 // resource or set of resources. Clients must treat these values as opaque and
9406 // passed unmodified back to the server. They may only be valid for a
9407 // particular resource or set of resources.
9408 //
9409 // Populated by the system. Read-only. Value must be treated as opaque by
9410 // clients and . More info:
9411 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
9412 "resourceVersion"?: string
9413
9414 // Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.
9415 "selfLink"?: string
9416
9417 // UID is the unique in time and space value for this object. It is typically
9418 // generated by the server on successful creation of a resource and is not
9419 // allowed to change on PUT operations.
9420 //
9421 // Populated by the system. Read-only. More info:
9422 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids
9423 "uid"?: string
9424 }
9425
9426 // OwnerReference contains enough information to let you identify an owning
9427 // object. An owning object must be in the same namespace as the dependent, or
9428 // be cluster-scoped, so there is no namespace field.
9429 #: "io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference": {
9430 // API version of the referent.
9431 "apiVersion"!: string
9432
9433 // If true, AND if the owner has the "foregroundDeletion" finalizer, then the
9434 // owner cannot be deleted from the key-value store until this reference is
9435 // removed. See
9436 // https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion
9437 // for how the garbage collector interacts with this field and enforces the
9438 // foreground deletion. Defaults to false. To set this field, a user needs
9439 // "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will
9440 // be returned.
9441 "blockOwnerDeletion"?: bool
9442
9443 // If true, this reference points to the managing controller.
9444 "controller"?: bool
9445
9446 // Kind of the referent. More info:
9447 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
9448 "kind"!: string
9449
9450 // Name of the referent. More info:
9451 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names
9452 "name"!: string
9453
9454 // UID of the referent. More info:
9455 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids
9456 "uid"!: string
9457 }
9458
9459 // Time is a wrapper around time.Time which supports correct marshaling to YAML
9460 // and JSON. Wrappers are provided for many of the factory methods that the
9461 // time package offers.
9462 #: "io.k8s.apimachinery.pkg.apis.meta.v1.Time": time.Time
9463
9464 #: "io.k8s.apimachinery.pkg.util.intstr.IntOrString": string
9465
9466 #: "sensor.CreateSensorRequest": {
9467 "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
9468 "namespace"?: string
9469 "sensor"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"
9470 }
9471
9472 #: "sensor.DeleteSensorResponse": {}
9473
9474 // structured log entry
9475 #: "sensor.LogEntry": {
9476 // optional - trigger dependency name
9477 "dependencyName"?: string
9478
9479 // optional - Cloud Event context
9480 "eventContext"?: string
9481 "level"?: string
9482 "msg"?: string
9483 "namespace"?: string
9484 "sensorName"?: string
9485 "time"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
9486
9487 // optional - any trigger name
9488 "triggerName"?: string
9489 }
9490
9491 #: "sensor.SensorWatchEvent": {
9492 "object"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"
9493 "type"?: string
9494 }
9495
9496 #: "sensor.UpdateSensorRequest": {
9497 "name"?: string
9498 "namespace"?: string
9499 "sensor"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"
9500 }
9501
9502 #: "sync.CreateSyncLimitRequest": {
9503 "cmName"?: string
9504 "key"?: string
9505 "limit"?: int
9506 "namespace"?: string
9507 "type"?: #."sync.SyncConfigType"
9508 }
9509
9510 #: "sync.DeleteSyncLimitResponse": {}
9511
9512 #: "sync.SyncConfigType": "CONFIGMAP" | "DATABASE"
9513
9514 #: "sync.SyncLimitResponse": {
9515 "cmName"?: string
9516 "key"?: string
9517 "limit"?: int
9518 "namespace"?: string
9519 "type"?: #."sync.SyncConfigType"
9520 }
9521
9522 #: "sync.UpdateSyncLimitRequest": {
9523 "cmName"?: string
9524 "key"?: string
9525 "limit"?: int
9526 "namespace"?: string
9527 "type"?: #."sync.SyncConfigType"
9528 }
9529}