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, [#."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate" & {}, #."io.argoproj.workflow.v1alpha1.CronWorkflow" & {}, #."io.argoproj.workflow.v1alpha1.Workflow" & {}, #."io.argoproj.workflow.v1alpha1.WorkflowEventBinding" & {}, #."io.argoproj.workflow.v1alpha1.WorkflowTemplate" & {}])
9
10 #: "eventsource.CreateEventSourceRequest": {
11 "eventSource"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"
12 "namespace"?: string
13 }
14
15 #: "eventsource.EventSourceDeletedResponse": {}
16
17 #: "eventsource.EventSourceWatchEvent": {
18 "object"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"
19 "type"?: string
20 }
21
22 // structured log entry
23 #: "eventsource.LogEntry": {
24 // optional - the event name (e.g. `example`)
25 "eventName"?: string
26 "eventSourceName"?: string
27
28 // optional - the event source type (e.g. `webhook`)
29 "eventSourceType"?: string
30 "level"?: string
31 "msg"?: string
32 "namespace"?: string
33 "time"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
34 }
35
36 #: "eventsource.UpdateEventSourceRequest": {
37 "eventSource"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"
38 "name"?: string
39 "namespace"?: string
40 }
41
42 // AMQPConsumeConfig holds the configuration to immediately starts
43 // delivering queued messages
44 // +k8s:openapi-gen=true
45 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPConsumeConfig": {
46 // AutoAck when true, the server will acknowledge deliveries to
47 // this consumer prior to writing
48 // the delivery to the network
49 // +optional
50 "autoAck"?: bool
51
52 // ConsumerTag is the identity of the consumer included in every
53 // delivery
54 // +optional
55 "consumerTag"?: string
56
57 // Exclusive when true, the server will ensure that this is the
58 // sole consumer from this queue
59 // +optional
60 "exclusive"?: bool
61
62 // NoLocal flag is not supported by RabbitMQ
63 // +optional
64 "noLocal"?: bool
65
66 // NowWait when true, do not wait for the server to confirm the
67 // request and immediately begin deliveries
68 // +optional
69 "noWait"?: bool
70 }
71
72 // AMQPEventSource refers to an event-source for AMQP stream
73 // events
74 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPEventSource": {
75 // Auth hosts secret selectors for username and password
76 // +optional
77 "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
78
79 // Backoff holds parameters applied to connection.
80 // +optional
81 "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
82
83 // Consume holds the configuration to immediately starts
84 // delivering queued messages
85 // For more information, visit
86 // https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.Consume
87 // +optional
88 "consume"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPConsumeConfig"
89
90 // ExchangeDeclare holds the configuration for the exchange on the
91 // server
92 // For more information, visit
93 // https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.ExchangeDeclare
94 // +optional
95 "exchangeDeclare"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPExchangeDeclareConfig"
96
97 // ExchangeName is the exchange name
98 // For more information, visit
99 // https://www.rabbitmq.com/tutorials/amqp-concepts.html
100 "exchangeName"?: string
101
102 // ExchangeType is rabbitmq exchange type
103 "exchangeType"?: string
104
105 // Filter
106 // +optional
107 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
108
109 // JSONBody specifies that all event body payload coming from this
110 // source will be JSON
111 // +optional
112 "jsonBody"?: bool
113
114 // Metadata holds the user defined metadata which will passed
115 // along the event payload.
116 // +optional
117 "metadata"?: {
118 [string]: string
119 }
120
121 // QueueBind holds the configuration that binds an exchange to a
122 // queue so that publishings to the
123 // exchange will be routed to the queue when the publishing
124 // routing key matches the binding routing key
125 // For more information, visit
126 // https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.QueueBind
127 // +optional
128 "queueBind"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueBindConfig"
129
130 // QueueDeclare holds the configuration of a queue to hold
131 // messages and deliver to consumers.
132 // Declaring creates a queue if it doesn't already exist, or
133 // ensures that an existing queue matches
134 // the same parameters
135 // For more information, visit
136 // https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.QueueDeclare
137 // +optional
138 "queueDeclare"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueDeclareConfig"
139
140 // Routing key for bindings
141 "routingKey"?: string
142
143 // TLS configuration for the amqp client.
144 // +optional
145 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
146
147 // URL for rabbitmq service
148 "url"?: string
149
150 // URLSecret is secret reference for rabbitmq service URL
151 "urlSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
152 }
153
154 // AMQPExchangeDeclareConfig holds the configuration for the
155 // exchange on the server
156 // +k8s:openapi-gen=true
157 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPExchangeDeclareConfig": {
158 // AutoDelete removes the exchange when no bindings are active
159 // +optional
160 "autoDelete"?: bool
161
162 // Durable keeps the exchange also after the server restarts
163 // +optional
164 "durable"?: bool
165
166 // Internal when true does not accept publishings
167 // +optional
168 "internal"?: bool
169
170 // NowWait when true does not wait for a confirmation from the
171 // server
172 // +optional
173 "noWait"?: bool
174 }
175
176 // AMQPQueueBindConfig holds the configuration that binds an
177 // exchange to a queue so that publishings to the
178 // exchange will be routed to the queue when the publishing
179 // routing key matches the binding routing key
180 // +k8s:openapi-gen=true
181 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueBindConfig": {
182 // NowWait false and the queue could not be bound, the channel
183 // will be closed with an error
184 // +optional
185 "noWait"?: bool
186 }
187
188 // AMQPQueueDeclareConfig holds the configuration of a queue to
189 // hold messages and deliver to consumers.
190 // Declaring creates a queue if it doesn't already exist, or
191 // ensures that an existing queue matches
192 // the same parameters
193 // +k8s:openapi-gen=true
194 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueDeclareConfig": {
195 // Arguments of a queue (also known as "x-arguments") used for
196 // optional features and plugins
197 // +optional
198 "arguments"?: string
199
200 // AutoDelete removes the queue when no consumers are active
201 // +optional
202 "autoDelete"?: bool
203
204 // Durable keeps the queue also after the server restarts
205 // +optional
206 "durable"?: bool
207
208 // Exclusive sets the queues to be accessible only by the
209 // connection that declares them and will be
210 // deleted wgen the connection closes
211 // +optional
212 "exclusive"?: bool
213
214 // Name of the queue. If empty the server auto-generates a unique
215 // name for this queue
216 // +optional
217 "name"?: string
218
219 // NowWait when true, the queue assumes to be declared on the
220 // server
221 // +optional
222 "noWait"?: bool
223 }
224
225 // AWSLambdaTrigger refers to specification of the trigger to
226 // invoke an AWS Lambda function
227 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AWSLambdaTrigger": {
228 // AccessKey refers K8s secret containing aws access key
229 // +optional
230 "accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
231
232 // FunctionName refers to the name of the function to invoke.
233 "functionName"?: string
234
235 // Choose from the following options.
236 //
237 // * RequestResponse (default) - Invoke the function
238 // synchronously. Keep
239 // the connection open until the function returns a response or
240 // times out.
241 // The API response includes the function response and additional
242 // data.
243 //
244 // * Event - Invoke the function asynchronously. Send events that
245 // fail multiple
246 // times to the function's dead-letter queue (if it's configured).
247 // The API
248 // response only includes a status code.
249 //
250 // * DryRun - Validate parameter values and verify that the user
251 // or role
252 // has permission to invoke the function.
253 // +optional
254 "invocationType"?: string
255
256 // Parameters is the list of key-value extracted from event's
257 // payload that are applied to
258 // the trigger resource.
259 // +optional
260 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
261
262 // Payload is the list of key-value extracted from an event
263 // payload to construct the request payload.
264 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
265
266 // Region is AWS region
267 "region"?: string
268
269 // RoleARN is the Amazon Resource Name (ARN) of the role to
270 // assume.
271 // +optional
272 "roleARN"?: string
273
274 // SecretKey refers K8s secret containing aws secret key
275 // +optional
276 "secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
277 }
278
279 // Amount represent a numeric amount.
280 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount": "value"?: string
281
282 // ArgoWorkflowTrigger is the trigger for the Argo Workflow
283 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArgoWorkflowTrigger": {
284 // Args is the list of arguments to pass to the argo CLI
285 "args"?: [...string]
286
287 // Operation refers to the type of operation performed on the argo
288 // workflow resource.
289 // Default value is Submit.
290 // +optional
291 "operation"?: string
292
293 // Parameters is the list of parameters to pass to resolved Argo
294 // Workflow object
295 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
296
297 // Source of the K8s resource file(s)
298 "source"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation"
299 }
300
301 // ArtifactLocation describes the source location for an external
302 // artifact
303 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation": {
304 // Configmap that stores the artifact
305 "configmap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
306
307 // File artifact is artifact stored in a file
308 "file"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileArtifact"
309
310 // Git repository hosting the artifact
311 "git"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitArtifact"
312
313 // Inline artifact is embedded in sensor spec as a string
314 "inline"?: string
315
316 // Resource is generic template for K8s resource
317 "resource"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResource"
318
319 // S3 compliant artifact
320 "s3"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact"
321
322 // URL to fetch the artifact from
323 "url"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.URLArtifact"
324 }
325
326 // AzureEventHubsTrigger refers to specification of the Azure
327 // Event Hubs Trigger
328 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventHubsTrigger": {
329 // FQDN refers to the namespace dns of Azure Event Hubs to be used
330 // i.e. <namespace>.servicebus.windows.net
331 "fqdn"?: string
332
333 // HubName refers to the Azure Event Hub to send events to
334 "hubName"?: string
335
336 // Parameters is the list of key-value extracted from event's
337 // payload that are applied to
338 // the trigger resource.
339 // +optional
340 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
341
342 // Payload is the list of key-value extracted from an event
343 // payload to construct the request payload.
344 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
345
346 // SharedAccessKey refers to a K8s secret containing the primary
347 // key for the
348 "sharedAccessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
349
350 // SharedAccessKeyName refers to the name of the Shared Access Key
351 "sharedAccessKeyName"?: #."io.k8s.api.core.v1.SecretKeySelector"
352 }
353
354 // AzureEventsHubEventSource describes the event source for azure
355 // events hub
356 // More info at https://docs.microsoft.com/en-us/azure/event-hubs/
357 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventsHubEventSource": {
358 // Filter
359 // +optional
360 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
361
362 // FQDN of the EventHubs namespace you created
363 // More info at
364 // https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-get-connection-string
365 "fqdn"?: string
366
367 // Event Hub path/name
368 "hubName"?: string
369
370 // Metadata holds the user defined metadata which will passed
371 // along the event payload.
372 // +optional
373 "metadata"?: {
374 [string]: string
375 }
376
377 // SharedAccessKey is the generated value of the key. If both this
378 // field and SharedAccessKeyName are not provided
379 // it will try to access via Azure AD with DefaultAzureCredential,
380 // FQDN and HubName.
381 // +optional
382 "sharedAccessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
383
384 // SharedAccessKeyName is the name you chose for your
385 // application's SAS keys. If both this field and SharedAccessKey
386 // are not provided
387 // it will try to access via Azure AD with DefaultAzureCredential,
388 // FQDN and HubName.
389 // +optional
390 "sharedAccessKeyName"?: #."io.k8s.api.core.v1.SecretKeySelector"
391 }
392
393 // AzureQueueStorageEventSource describes the event source for
394 // azure queue storage
395 // more info at
396 // https://learn.microsoft.com/en-us/azure/storage/queues/
397 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureQueueStorageEventSource": {
398 // ConnectionString is the connection string to access Azure Queue
399 // Storage. If this fields is not provided
400 // it will try to access via Azure AD with StorageAccountName.
401 // +optional
402 "connectionString"?: #."io.k8s.api.core.v1.SecretKeySelector"
403
404 // DecodeMessage specifies if all the messages should be base64
405 // decoded.
406 // If set to true the decoding is done before the evaluation of
407 // JSONBody
408 // +optional
409 "decodeMessage"?: bool
410
411 // DLQ specifies if a dead-letter queue is configured for messages
412 // that can't be processed successfully.
413 // If set to true, messages with invalid payload won't be
414 // acknowledged to allow to forward them farther to the
415 // dead-letter queue.
416 // The default value is false.
417 // +optional
418 "dlq"?: bool
419
420 // Filter
421 // +optional
422 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
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
430 // along the event payload.
431 // +optional
432 "metadata"?: {
433 [string]: string
434 }
435
436 // QueueName is the name of the queue
437 "queueName"?: string
438
439 // StorageAccountName is the name of the storage account where the
440 // queue is. This field is necessary to
441 // access via Azure AD (managed identity) and it is ignored if
442 // ConnectionString is set.
443 // +optional
444 "storageAccountName"?: string
445
446 // WaitTimeInSeconds is the duration (in seconds) for which the
447 // event source waits between empty results from the queue.
448 // The default value is 3 seconds.
449 // +optional
450 "waitTimeInSeconds"?: int
451 }
452
453 // AzureServiceBusEventSource describes the event source for azure
454 // service bus
455 // More info at
456 // https://docs.microsoft.com/en-us/azure/service-bus-messaging/
457 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusEventSource": {
458 // ConnectionString is the connection string for the Azure Service
459 // Bus. If this fields is not provided
460 // it will try to access via Azure AD with DefaultAzureCredential
461 // and FullyQualifiedNamespace.
462 // +optional
463 "connectionString"?: #."io.k8s.api.core.v1.SecretKeySelector"
464
465 // Filter
466 // +optional
467 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
468
469 // FullyQualifiedNamespace is the Service Bus namespace name (ex:
470 // myservicebus.servicebus.windows.net). This field is necessary
471 // to
472 // access via Azure AD (managed identity) and it is ignored if
473 // ConnectionString is set.
474 // +optional
475 "fullyQualifiedNamespace"?: string
476
477 // JSONBody specifies that all event body payload coming from this
478 // source will be JSON
479 // +optional
480 "jsonBody"?: bool
481
482 // Metadata holds the user defined metadata which will passed
483 // along the event payload.
484 // +optional
485 "metadata"?: {
486 [string]: string
487 }
488
489 // QueueName is the name of the Azure Service Bus Queue
490 "queueName"?: string
491
492 // SubscriptionName is the name of the Azure Service Bus Topic
493 // Subscription
494 "subscriptionName"?: string
495
496 // TLS configuration for the service bus client
497 // +optional
498 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
499
500 // TopicName is the name of the Azure Service Bus Topic
501 "topicName"?: string
502 }
503
504 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusTrigger": {
505 // ConnectionString is the connection string for the Azure Service
506 // Bus
507 "connectionString"?: #."io.k8s.api.core.v1.SecretKeySelector"
508
509 // Parameters is the list of key-value extracted from event's
510 // payload that are applied to
511 // the trigger resource.
512 // +optional
513 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
514
515 // Payload is the list of key-value extracted from an event
516 // payload to construct the request payload.
517 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
518
519 // QueueName is the name of the Azure Service Bus Queue
520 "queueName"?: string
521
522 // SubscriptionName is the name of the Azure Service Bus Topic
523 // Subscription
524 "subscriptionName"?: string
525
526 // TLS configuration for the service bus client
527 // +optional
528 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
529
530 // TopicName is the name of the Azure Service Bus Topic
531 "topicName"?: string
532 }
533
534 // Backoff for an operation
535 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff": {
536 // The initial duration in nanoseconds or strings like "1s", "3m"
537 // +optional
538 "duration"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Int64OrString"
539
540 // Duration is multiplied by factor each iteration
541 // +optional
542 "factor"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount"
543
544 // The amount of jitter applied each iteration
545 // +optional
546 "jitter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount"
547
548 // Exit with error after this many steps
549 // +optional
550 "steps"?: int
551 }
552
553 // BasicAuth contains the reference to K8s secrets that holds the
554 // username and password
555 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth": {
556 // Password refers to the Kubernetes secret that holds the
557 // password required for basic auth.
558 "password"?: #."io.k8s.api.core.v1.SecretKeySelector"
559
560 // Username refers to the Kubernetes secret that holds the
561 // username required for basic auth.
562 "username"?: #."io.k8s.api.core.v1.SecretKeySelector"
563 }
564
565 // BitbucketAuth holds the different auth strategies for
566 // connecting to Bitbucket
567 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketAuth": {
568 // Basic is BasicAuth auth strategy.
569 // +optional
570 "basic"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketBasicAuth"
571
572 // OAuthToken refers to the K8s secret that holds the OAuth Bearer
573 // token.
574 // +optional
575 "oauthToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
576 }
577
578 // BitbucketBasicAuth holds the information required to
579 // authenticate user via basic auth mechanism
580 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketBasicAuth": {
581 // Password refers to the K8s secret that holds the password.
582 "password"?: #."io.k8s.api.core.v1.SecretKeySelector"
583
584 // Username refers to the K8s secret that holds the username.
585 "username"?: #."io.k8s.api.core.v1.SecretKeySelector"
586 }
587
588 // BitbucketEventSource describes the event source for Bitbucket
589 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketEventSource": {
590 // Auth information required to connect to Bitbucket.
591 "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketAuth"
592
593 // DeleteHookOnFinish determines whether to delete the defined
594 // Bitbucket hook once the event source is stopped.
595 // +optional
596 "deleteHookOnFinish"?: bool
597
598 // Events this webhook is subscribed to.
599 "events"?: [...string]
600
601 // Filter
602 // +optional
603 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
604
605 // Metadata holds the user defined metadata which will be passed
606 // along the event payload.
607 // +optional
608 "metadata"?: {
609 [string]: string
610 }
611
612 // DeprecatedOwner is the owner of the repository.
613 // Deprecated: use Repositories instead. Will be unsupported in
614 // v1.9
615 // +optional
616 "owner"?: string
617
618 // DeprecatedProjectKey is the key of the project to which the
619 // repository relates
620 // Deprecated: use Repositories instead. Will be unsupported in
621 // v1.9
622 // +optional
623 "projectKey"?: string
624
625 // Repositories holds a list of repositories for which integration
626 // needs to set up
627 // +optional
628 "repositories"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketRepository"]
629
630 // DeprecatedRepositorySlug is a URL-friendly version of a
631 // repository name, automatically generated by Bitbucket for use
632 // in the URL
633 // Deprecated: use Repositories instead. Will be unsupported in
634 // v1.9
635 // +optional
636 "repositorySlug"?: string
637
638 // Webhook refers to the configuration required to run an http
639 // server
640 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
641 }
642
643 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketRepository": {
644 // Owner is the owner of the repository
645 "owner"?: string
646
647 // RepositorySlug is a URL-friendly version of a repository name,
648 // automatically generated by Bitbucket for use in the URL
649 "repositorySlug"?: string
650 }
651
652 // BitbucketServerEventSource refers to event-source related to
653 // Bitbucket Server events
654 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerEventSource": {
655 // AccessToken is reference to K8s secret which holds the
656 // bitbucket api access information.
657 // +optional
658 "accessToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
659
660 // BitbucketServerBaseURL is the base URL for API requests to a
661 // custom endpoint.
662 "bitbucketserverBaseURL"?: string
663
664 // CheckInterval is a duration in which to wait before checking
665 // that the webhooks exist, e.g. 1s, 30m, 2h... (defaults to 1m)
666 // +optional
667 "checkInterval"?: string
668
669 // DeleteHookOnFinish determines whether to delete the Bitbucket
670 // Server hook for the project once the event source is stopped.
671 // +optional
672 "deleteHookOnFinish"?: bool
673
674 // Events are bitbucket event to listen to.
675 // Refer
676 // https://confluence.atlassian.com/bitbucketserver/event-payload-938025882.html
677 // +optional
678 "events"?: [...string]
679
680 // Filter
681 // +optional
682 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
683
684 // Metadata holds the user defined metadata which will passed
685 // along the event payload.
686 // +optional
687 "metadata"?: {
688 [string]: string
689 }
690
691 // OneEventPerChange controls whether to process each change in a
692 // repo:refs_changed webhook event as a separate
693 // io.argoproj.workflow.v1alpha1. This setting is useful when
694 // multiple tags are
695 // pushed simultaneously for the same commit, and each tag needs
696 // to independently trigger an action, such as a distinct
697 // workflow in Argo Workflows. When enabled, the
698 // BitbucketServerEventSource publishes an individual
699 // BitbucketServerEventData for each change, ensuring independent
700 // processing of each tag or reference update in a
701 // single webhook event.
702 // +optional
703 "oneEventPerChange"?: bool
704
705 // DeprecatedProjectKey is the key of project for which
706 // integration needs to set up.
707 // Deprecated: use Repositories instead. Will be unsupported in
708 // v1.8.
709 // +optional
710 "projectKey"?: string
711
712 // Projects holds a list of projects for which integration needs
713 // to set up, this will add the webhook to all repositories in
714 // the project.
715 // +optional
716 "projects"?: [...string]
717
718 // Repositories holds a list of repositories for which integration
719 // needs to set up.
720 // +optional
721 "repositories"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerRepository"]
722
723 // DeprecatedRepositorySlug is the slug of the repository for
724 // which integration needs to set up.
725 // Deprecated: use Repositories instead. Will be unsupported in
726 // v1.8.
727 // +optional
728 "repositorySlug"?: string
729
730 // SkipBranchRefsChangedOnOpenPR bypasses the event
731 // repo:refs_changed for branches whenever there's an associated
732 // open pull request.
733 // This helps in optimizing the event handling process by avoiding
734 // unnecessary triggers for branch reference changes that are
735 // already part of a pull request under review.
736 // +optional
737 "skipBranchRefsChangedOnOpenPR"?: bool
738
739 // TLS configuration for the bitbucketserver client.
740 // +optional
741 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
742
743 // Webhook holds configuration to run a http server.
744 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
745
746 // WebhookSecret is reference to K8s secret which holds the
747 // bitbucket webhook secret (for HMAC validation).
748 // +optional
749 "webhookSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
750 }
751
752 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerRepository": {
753 // ProjectKey is the key of project for which integration needs to
754 // set up.
755 "projectKey"?: string
756
757 // RepositorySlug is the slug of the repository for which
758 // integration needs to set up.
759 "repositorySlug"?: string
760 }
761
762 // CalendarEventSource describes a time based dependency. One of
763 // the fields (schedule, interval, or recurrence) must be passed.
764 // Schedule takes precedence over interval; interval takes
765 // precedence over recurrence
766 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CalendarEventSource": {
767 // ExclusionDates defines the list of DATE-TIME exceptions for
768 // recurring events.
769 "exclusionDates"?: [...string]
770
771 // Filter
772 // +optional
773 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
774
775 // Interval is a string that describes an interval duration, e.g.
776 // 1s, 30m, 2h...
777 // +optional
778 "interval"?: string
779
780 // Metadata holds the user defined metadata which will passed
781 // along the event payload.
782 // +optional
783 "metadata"?: {
784 [string]: string
785 }
786
787 // Persistence hold the configuration for event persistence
788 "persistence"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventPersistence"
789
790 // Schedule is a cron-like expression. For reference, see:
791 // https://en.wikipedia.org/wiki/Cron
792 // +optional
793 "schedule"?: string
794
795 // Timezone in which to run the schedule
796 // +optional
797 "timezone"?: string
798 }
799
800 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CatchupConfiguration": {
801 // Enabled enables to triggered the missed schedule when
802 // eventsource restarts
803 "enabled"?: bool
804
805 // MaxDuration holds max catchup duration
806 "maxDuration"?: string
807 }
808
809 // Condition contains details about resource state
810 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Condition": {
811 // Last time the condition transitioned from one status to
812 // another.
813 // +optional
814 "lastTransitionTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
815
816 // Human-readable message indicating details about last
817 // transition.
818 // +optional
819 "message"?: string
820
821 // Unique, this should be a short, machine understandable string
822 // that gives the reason
823 // for condition's last transition. For example, "ImageNotFound"
824 // +optional
825 "reason"?: string
826
827 // Condition status, True, False or Unknown.
828 // +required
829 "status"?: string
830
831 // Condition type.
832 // +required
833 "type"?: string
834 }
835
836 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetByTime": {
837 // Cron is a cron-like expression. For reference, see:
838 // https://en.wikipedia.org/wiki/Cron
839 "cron"?: string
840
841 // +optional
842 "timezone"?: string
843 }
844
845 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetCriteria": {
846 // Schedule is a cron-like expression. For reference, see:
847 // https://en.wikipedia.org/wiki/Cron
848 "byTime"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetByTime"
849 }
850
851 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConfigMapPersistence": {
852 // CreateIfNotExist will create configmap if it doesn't exists
853 "createIfNotExist"?: bool
854
855 // Name of the configmap
856 "name"?: string
857 }
858
859 // Container defines customized spec for a container
860 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Container": {
861 // +optional
862 "env"?: [...#."io.k8s.api.core.v1.EnvVar"]
863
864 // +optional
865 "envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
866
867 // +optional
868 "imagePullPolicy"?: string
869
870 // +optional
871 "resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
872
873 // +optional
874 "securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
875
876 // +optional
877 "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
878 }
879
880 // CustomTrigger refers to the specification of the custom
881 // trigger.
882 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CustomTrigger": {
883 // CertSecret refers to the secret that contains cert for secure
884 // connection between sensor and custom trigger gRPC server.
885 "certSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
886
887 // Parameters is the list of parameters that is applied to
888 // resolved custom trigger trigger object.
889 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
890
891 // Payload is the list of key-value extracted from an event
892 // payload to construct the request payload.
893 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
894
895 // Secure refers to type of the connection between sensor to
896 // custom trigger gRPC
897 "secure"?: bool
898
899 // ServerNameOverride for the secure connection between sensor and
900 // custom trigger gRPC server.
901 "serverNameOverride"?: string
902
903 // ServerURL is the url of the gRPC server that executes custom
904 // trigger
905 "serverURL"?: string
906
907 // Spec is the custom trigger resource specification that custom
908 // trigger gRPC server knows how to interpret.
909 "spec"?: {
910 [string]: string
911 }
912 }
913
914 // DataFilter describes constraints and filters for event data
915 // Regular Expressions are purposefully not a feature as they are
916 // overkill for our uses here
917 // See Rob Pike's Post:
918 // https://commandcenter.blogspot.com/2011/08/regular-expressions-in-lexing-and.html
919 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.DataFilter": {
920 // Comparator compares the event data with a user given value.
921 // Can be ">=", ">", "=", "!=", "<", or "<=".
922 // Is optional, and if left blank treated as equality "=".
923 "comparator"?: string
924
925 // Path is the JSONPath of the event's (JSON decoded) data key
926 // Path is a series of keys separated by a dot. A key may contain
927 // wildcard characters '*' and '?'.
928 // To access an array value use the index as the key. The dot and
929 // wildcard characters can be escaped with '\\'.
930 // See https://github.com/tidwall/gjson#path-syntax for more
931 // information on how to use this.
932 "path"?: string
933
934 // Template is a go-template for extracting a string from the
935 // event's data.
936 // A Template is evaluated with provided path, type and value.
937 // The templating follows the standard go-template syntax as well
938 // as sprig's extra functions.
939 // See https://pkg.go.dev/text/template and
940 // https://masterminds.github.io/sprig/
941 "template"?: string
942
943 // Type contains the JSON type of the data
944 "type"?: string
945
946 // Value is the allowed string values for this key
947 // Booleans are passed using strconv.ParseBool()
948 // Numbers are parsed using as float64 using strconv.ParseFloat()
949 // Strings are taken as is
950 // Nils this value is ignored
951 "value"?: [...string]
952 }
953
954 // EmailTrigger refers to the specification of the email
955 // notification trigger.
956 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmailTrigger": {
957 // Body refers to the body/content of the email send.
958 // +optional
959 "body"?: string
960
961 // From refers to the address from which the email is send from.
962 // +optional
963 "from"?: string
964
965 // Host refers to the smtp host url to which email is send.
966 "host"?: string
967
968 // Parameters is the list of key-value extracted from event's
969 // payload that are applied to
970 // the trigger resource.
971 // +optional
972 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
973
974 // Port refers to the smtp server port to which email is send.
975 // Defaults to 0.
976 // +optional
977 "port"?: int
978
979 // SMTPPassword refers to the Kubernetes secret that holds the
980 // smtp password used to connect to smtp server.
981 // +optional
982 "smtpPassword"?: #."io.k8s.api.core.v1.SecretKeySelector"
983
984 // Subject refers to the subject line for the email send.
985 // +optional
986 "subject"?: string
987
988 // To refers to the email addresses to which the emails are send.
989 // +optional
990 "to"?: [...string]
991
992 // Username refers to the username used to connect to the smtp
993 // server.
994 // +optional
995 "username"?: string
996 }
997
998 // EmitterEventSource describes the event source for emitter
999 // More info at https://emitter.io/develop/getting-started/
1000 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmitterEventSource": {
1001 // Broker URI to connect to.
1002 "broker"?: string
1003
1004 // ChannelKey refers to the channel key
1005 "channelKey"?: string
1006
1007 // ChannelName refers to the channel name
1008 "channelName"?: string
1009
1010 // Backoff holds parameters applied to connection.
1011 // +optional
1012 "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1013
1014 // Filter
1015 // +optional
1016 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1017
1018 // JSONBody specifies that all event body payload coming from this
1019 // source will be JSON
1020 // +optional
1021 "jsonBody"?: bool
1022
1023 // Metadata holds the user defined metadata which will passed
1024 // along the event payload.
1025 // +optional
1026 "metadata"?: {
1027 [string]: string
1028 }
1029
1030 // Password to use to connect to broker
1031 // +optional
1032 "password"?: #."io.k8s.api.core.v1.SecretKeySelector"
1033
1034 // TLS configuration for the emitter client.
1035 // +optional
1036 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1037
1038 // Username to use to connect to broker
1039 // +optional
1040 "username"?: #."io.k8s.api.core.v1.SecretKeySelector"
1041 }
1042
1043 // EventContext holds the context of the cloudevent received from
1044 // an event source.
1045 // +protobuf.options.(gogoproto.goproto_stringer)=false
1046 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventContext": {
1047 // DataContentType - A MIME (RFC2046) string describing the media
1048 // type of `data`.
1049 "datacontenttype"?: string
1050
1051 // ID of the event; must be non-empty and unique within the scope
1052 // of the producer.
1053 "id"?: string
1054
1055 // Source - A URI describing the event producer.
1056 "source"?: string
1057
1058 // SpecVersion - The version of the CloudEvents specification used
1059 // by the io.argoproj.workflow.v1alpha1.
1060 "specversion"?: string
1061
1062 // Subject - The subject of the event in the context of the event
1063 // producer
1064 "subject"?: string
1065
1066 // Time - A Timestamp when the event happened.
1067 "time"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
1068
1069 // Type - The type of the occurrence which has happened.
1070 "type"?: string
1071 }
1072
1073 // EventDependency describes a dependency
1074 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependency": {
1075 // EventName is the name of the event
1076 "eventName"?: string
1077
1078 // EventSourceName is the name of EventSource that Sensor depends
1079 // on
1080 "eventSourceName"?: string
1081
1082 // Filters and rules governing toleration of success and
1083 // constraints on the context and data of an event
1084 "filters"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyFilter"
1085
1086 // FiltersLogicalOperator defines how different filters are
1087 // evaluated together.
1088 // Available values: and (&&), or (||)
1089 // Is optional and if left blank treated as and (&&).
1090 "filtersLogicalOperator"?: string
1091
1092 // Name is a unique name of this dependency
1093 "name"?: string
1094
1095 // Transform transforms the event data
1096 "transform"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyTransformer"
1097 }
1098
1099 // EventDependencyFilter defines filters and constraints for a
1100 // io.argoproj.workflow.v1alpha1.
1101 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyFilter": {
1102 // Context filter constraints
1103 "context"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventContext"
1104
1105 // Data filter constraints with escalation
1106 "data"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.DataFilter"]
1107
1108 // DataLogicalOperator defines how multiple Data filters (if
1109 // defined) are evaluated together.
1110 // Available values: and (&&), or (||)
1111 // Is optional and if left blank treated as and (&&).
1112 "dataLogicalOperator"?: string
1113
1114 // ExprLogicalOperator defines how multiple Exprs filters (if
1115 // defined) are evaluated together.
1116 // Available values: and (&&), or (||)
1117 // Is optional and if left blank treated as and (&&).
1118 "exprLogicalOperator"?: string
1119
1120 // Exprs contains the list of expressions evaluated against the
1121 // event payload.
1122 "exprs"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ExprFilter"]
1123
1124 // Script refers to a Lua script evaluated to determine the
1125 // validity of an io.argoproj.workflow.v1alpha1.
1126 "script"?: string
1127
1128 // Time filter on the event with escalation
1129 "time"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TimeFilter"
1130 }
1131
1132 // EventDependencyTransformer transforms the event
1133 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyTransformer": {
1134 // JQ holds the jq command applied for transformation
1135 // +optional
1136 "jq"?: string
1137
1138 // Script refers to a Lua script used to transform the event
1139 // +optional
1140 "script"?: string
1141 }
1142
1143 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventPersistence": {
1144 // Catchup enables to triggered the missed schedule when
1145 // eventsource restarts
1146 "catchup"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CatchupConfiguration"
1147
1148 // ConfigMap holds configmap details for persistence
1149 "configMap"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConfigMapPersistence"
1150 }
1151
1152 // EventSource is the definition of a eventsource resource
1153 // +genclient
1154 // +kubebuilder:resource:shortName=es
1155 // +kubebuilder:subresource:status
1156 // +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
1157 // +k8s:openapi-gen=true
1158 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource": {
1159 "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
1160 "spec"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceSpec"
1161
1162 // +optional
1163 "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceStatus"
1164 }
1165
1166 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter": "expression"?: string
1167
1168 // EventSourceList is the list of eventsource resources
1169 // +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
1170 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceList": {
1171 "items"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"]
1172 "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
1173 }
1174
1175 // EventSourceSpec refers to specification of event-source
1176 // resource
1177 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceSpec": {
1178 // AMQP event sources
1179 "amqp"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPEventSource"
1180
1181 // AzureEventsHub event sources
1182 "azureEventsHub"?: {
1183 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventsHubEventSource"
1184 }
1185
1186 // AzureQueueStorage event source
1187 "azureQueueStorage"?: {
1188 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureQueueStorageEventSource"
1189 }
1190
1191 // Azure Service Bus event source
1192 "azureServiceBus"?: {
1193 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusEventSource"
1194 }
1195
1196 // Bitbucket event sources
1197 "bitbucket"?: {
1198 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketEventSource"
1199 }
1200
1201 // Bitbucket Server event sources
1202 "bitbucketserver"?: {
1203 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerEventSource"
1204 }
1205
1206 // Calendar event sources
1207 "calendar"?: {
1208 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CalendarEventSource"
1209 }
1210
1211 // Emitter event source
1212 "emitter"?: {
1213 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmitterEventSource"
1214 }
1215
1216 // EventBusName references to a EventBus name. By default the
1217 // value is "default"
1218 "eventBusName"?: string
1219
1220 // File event sources
1221 "file"?: {
1222 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileEventSource"
1223 }
1224
1225 // Generic event source
1226 "generic"?: {
1227 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GenericEventSource"
1228 }
1229
1230 // Gerrit event source
1231 "gerrit"?: {
1232 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GerritEventSource"
1233 }
1234
1235 // Github event sources
1236 "github"?: {
1237 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubEventSource"
1238 }
1239
1240 // Gitlab event sources
1241 "gitlab"?: {
1242 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitlabEventSource"
1243 }
1244
1245 // HDFS event sources
1246 "hdfs"?: {
1247 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HDFSEventSource"
1248 }
1249
1250 // Kafka event sources
1251 "kafka"?: {
1252 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaEventSource"
1253 }
1254
1255 // Minio event sources
1256 "minio"?: {
1257 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact"
1258 }
1259
1260 // MQTT event sources
1261 "mqtt"?: {
1262 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.MQTTEventSource"
1263 }
1264
1265 // NATS event sources
1266 "nats"?: {
1267 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSEventsSource"
1268 }
1269
1270 // NSQ event source
1271 "nsq"?: {
1272 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NSQEventSource"
1273 }
1274
1275 // PubSub event sources
1276 "pubSub"?: {
1277 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PubSubEventSource"
1278 }
1279
1280 // Pulsar event source
1281 "pulsar"?: {
1282 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarEventSource"
1283 }
1284
1285 // Redis event source
1286 "redis"?: {
1287 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisEventSource"
1288 }
1289
1290 // Redis stream source
1291 "redisStream"?: {
1292 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisStreamEventSource"
1293 }
1294
1295 // Replicas is the event source deployment replicas
1296 "replicas"?: int
1297
1298 // Resource event sources
1299 "resource"?: {
1300 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceEventSource"
1301 }
1302
1303 // Service is the specifications of the service to expose the
1304 // event source
1305 // +optional
1306 "service"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Service"
1307
1308 // SFTP event sources
1309 "sftp"?: {
1310 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SFTPEventSource"
1311 }
1312
1313 // Slack event sources
1314 "slack"?: {
1315 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackEventSource"
1316 }
1317
1318 // SNS event sources
1319 "sns"?: {
1320 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SNSEventSource"
1321 }
1322
1323 // SQS event sources
1324 "sqs"?: {
1325 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SQSEventSource"
1326 }
1327
1328 // StorageGrid event sources
1329 "storageGrid"?: {
1330 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridEventSource"
1331 }
1332
1333 // Stripe event sources
1334 "stripe"?: {
1335 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StripeEventSource"
1336 }
1337
1338 // Template is the pod specification for the event source
1339 // +optional
1340 "template"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template"
1341
1342 // Webhook event sources
1343 "webhook"?: {
1344 [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookEventSource"
1345 }
1346 }
1347
1348 // EventSourceStatus holds the status of the event-source resource
1349 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceStatus": "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status"
1350
1351 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ExprFilter": {
1352 // Expr refers to the expression that determines the outcome of
1353 // the filter.
1354 "expr"?: string
1355
1356 // Fields refers to set of keys that refer to the paths within
1357 // event payload.
1358 "fields"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PayloadField"]
1359 }
1360
1361 // FileArtifact contains information about an artifact in a
1362 // filesystem
1363 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileArtifact": "path"?: string
1364
1365 // FileEventSource describes an event-source for file related
1366 // events.
1367 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileEventSource": {
1368 // Type of file operations to watch
1369 // Refer
1370 // https://github.com/fsnotify/fsnotify/blob/master/fsnotify.go
1371 // for more information
1372 "eventType"?: string
1373
1374 // Filter
1375 // +optional
1376 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1377
1378 // Metadata holds the user defined metadata which will passed
1379 // along the event payload.
1380 // +optional
1381 "metadata"?: {
1382 [string]: string
1383 }
1384
1385 // Use polling instead of inotify
1386 "polling"?: bool
1387
1388 // WatchPathConfig contains configuration about the file path to
1389 // watch
1390 "watchPathConfig"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig"
1391 }
1392
1393 // GenericEventSource refers to a generic event source. It can be
1394 // used to implement a custom event source.
1395 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GenericEventSource": {
1396 // AuthSecret holds a secret selector that contains a bearer token
1397 // for authentication
1398 // +optional
1399 "authSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1400
1401 // Config is the event source configuration
1402 "config"?: string
1403
1404 // Filter
1405 // +optional
1406 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1407
1408 // Insecure determines the type of connection.
1409 "insecure"?: bool
1410
1411 // JSONBody specifies that all event body payload coming from this
1412 // source will be JSON
1413 // +optional
1414 "jsonBody"?: bool
1415
1416 // Metadata holds the user defined metadata which will passed
1417 // along the event payload.
1418 // +optional
1419 "metadata"?: {
1420 [string]: string
1421 }
1422
1423 // URL of the gRPC server that implements the event source.
1424 "url"?: string
1425 }
1426
1427 // GerritEventSource refers to event-source related to gerrit
1428 // events
1429 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GerritEventSource": {
1430 // Auth hosts secret selectors for username and password
1431 // +optional
1432 "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
1433
1434 // DeleteHookOnFinish determines whether to delete the Gerrit hook
1435 // for the project once the event source is stopped.
1436 // +optional
1437 "deleteHookOnFinish"?: bool
1438
1439 // Events are gerrit event to listen to.
1440 // Refer
1441 // https://gerrit-review.googlesource.com/Documentation/cmd-stream-events.html#events
1442 "events"?: [...string]
1443
1444 // Filter
1445 // +optional
1446 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1447
1448 // GerritBaseURL is the base URL for API requests to a custom
1449 // endpoint
1450 "gerritBaseURL"?: string
1451
1452 // HookName is the name of the webhook
1453 "hookName"?: string
1454
1455 // Metadata holds the user defined metadata which will passed
1456 // along the event payload.
1457 // +optional
1458 "metadata"?: {
1459 [string]: string
1460 }
1461
1462 // List of project namespace paths like "whynowy/test".
1463 "projects"?: [...string]
1464
1465 // SslVerify to enable ssl verification
1466 // +optional
1467 "sslVerify"?: bool
1468
1469 // Webhook holds configuration to run a http server
1470 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
1471 }
1472
1473 // GitArtifact contains information about an artifact stored in
1474 // git
1475 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitArtifact": {
1476 // Branch to use to pull trigger resource
1477 // +optional
1478 "branch"?: string
1479
1480 // Directory to clone the repository. We clone complete directory
1481 // because GitArtifact is not limited to any specific Git service
1482 // providers.
1483 // Hence we don't use any specific git provider client.
1484 "cloneDirectory"?: string
1485
1486 // Creds contain reference to git username and password
1487 // +optional
1488 "creds"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitCreds"
1489
1490 // Path to file that contains trigger resource definition
1491 "filePath"?: string
1492
1493 // Whether to ignore host key
1494 // +optional
1495 "insecureIgnoreHostKey"?: bool
1496
1497 // Ref to use to pull trigger resource. Will result in a shallow
1498 // clone and
1499 // fetch.
1500 // +optional
1501 "ref"?: string
1502
1503 // Remote to manage set of tracked repositories. Defaults to
1504 // "origin".
1505 // Refer https://git-scm.com/docs/git-remote
1506 // +optional
1507 "remote"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitRemoteConfig"
1508
1509 // SSHKeySecret refers to the secret that contains SSH key
1510 "sshKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1511
1512 // Tag to use to pull trigger resource
1513 // +optional
1514 "tag"?: string
1515
1516 // Git URL
1517 "url"?: string
1518 }
1519
1520 // GitCreds contain reference to git username and password
1521 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitCreds": {
1522 "password"?: #."io.k8s.api.core.v1.SecretKeySelector"
1523 "username"?: #."io.k8s.api.core.v1.SecretKeySelector"
1524 }
1525
1526 // GitRemoteConfig contains the configuration of a Git remote
1527 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitRemoteConfig": {
1528 // Name of the remote to fetch from.
1529 "name"?: string
1530
1531 // URLs the URLs of a remote repository. It must be non-empty.
1532 // Fetch will
1533 // always use the first URL, while push will use all of them.
1534 "urls"?: [...string]
1535 }
1536
1537 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubAppCreds": {
1538 // AppID refers to the GitHub App ID for the application you
1539 // created
1540 "appID"?: string
1541
1542 // InstallationID refers to the Installation ID of the GitHub app
1543 // you created and installed
1544 "installationID"?: string
1545
1546 // PrivateKey refers to a K8s secret containing the GitHub app
1547 // private key
1548 "privateKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
1549 }
1550
1551 // GithubEventSource refers to event-source for github related
1552 // events
1553 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubEventSource": {
1554 // Active refers to status of the webhook for event deliveries.
1555 // https://developer.github.com/webhooks/creating/#active
1556 // +optional
1557 "active"?: bool
1558
1559 // APIToken refers to a K8s secret containing github api token
1560 // +optional
1561 "apiToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
1562
1563 // ContentType of the event delivery
1564 "contentType"?: string
1565
1566 // DeleteHookOnFinish determines whether to delete the GitHub hook
1567 // for the repository once the event source is stopped.
1568 // +optional
1569 "deleteHookOnFinish"?: bool
1570
1571 // Events refer to Github events to which the event source will
1572 // subscribe
1573 "events"?: [...string]
1574
1575 // Filter
1576 // +optional
1577 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1578
1579 // GitHubApp holds the GitHub app credentials
1580 // +optional
1581 "githubApp"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubAppCreds"
1582
1583 // GitHub base URL (for GitHub Enterprise)
1584 // +optional
1585 "githubBaseURL"?: string
1586
1587 // GitHub upload URL (for GitHub Enterprise)
1588 // +optional
1589 "githubUploadURL"?: string
1590
1591 // Id is the webhook's id
1592 // Deprecated: This is not used at all, will be removed in v1.6
1593 // +optional
1594 "id"?: string
1595
1596 // Insecure tls verification
1597 "insecure"?: bool
1598
1599 // Metadata holds the user defined metadata which will passed
1600 // along the event payload.
1601 // +optional
1602 "metadata"?: {
1603 [string]: string
1604 }
1605
1606 // Organizations holds the names of organizations (used for
1607 // organization level webhooks). Not required if Repositories is
1608 // set.
1609 "organizations"?: [...string]
1610
1611 // DeprecatedOwner refers to GitHub owner name i.e. argoproj
1612 // Deprecated: use Repositories instead. Will be unsupported in v
1613 // 1.6
1614 // +optional
1615 "owner"?: string
1616
1617 // Repositories holds the information of repositories, which uses
1618 // repo owner as the key,
1619 // and list of repo names as the value. Not required if
1620 // Organizations is set.
1621 "repositories"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OwnedRepositories"]
1622
1623 // DeprecatedRepository refers to GitHub repo name i.e.
1624 // argo-events
1625 // Deprecated: use Repositories instead. Will be unsupported in v
1626 // 1.6
1627 // +optional
1628 "repository"?: string
1629
1630 // Webhook refers to the configuration required to run a http
1631 // server
1632 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
1633
1634 // WebhookSecret refers to K8s secret containing GitHub webhook
1635 // secret
1636 // https://developer.github.com/webhooks/securing/
1637 // +optional
1638 "webhookSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1639 }
1640
1641 // GitlabEventSource refers to event-source related to Gitlab
1642 // events
1643 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitlabEventSource": {
1644 // AccessToken references to k8 secret which holds the gitlab api
1645 // access information
1646 "accessToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
1647
1648 // DeleteHookOnFinish determines whether to delete the GitLab hook
1649 // for the project once the event source is stopped.
1650 // +optional
1651 "deleteHookOnFinish"?: bool
1652
1653 // EnableSSLVerification to enable ssl verification
1654 // +optional
1655 "enableSSLVerification"?: bool
1656
1657 // Events are gitlab event to listen to.
1658 // Refer
1659 // https://github.com/xanzy/go-gitlab/blob/bf34eca5d13a9f4c3f501d8a97b8ac226d55e4d9/projects.go#L794.
1660 "events"?: [...string]
1661
1662 // Filter
1663 // +optional
1664 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1665
1666 // GitlabBaseURL is the base URL for API requests to a custom
1667 // endpoint
1668 "gitlabBaseURL"?: string
1669
1670 // List of group IDs or group name like "test".
1671 // Group level hook available in Premium and Ultimate Gitlab.
1672 // +optional
1673 "groups"?: [...string]
1674
1675 // Metadata holds the user defined metadata which will passed
1676 // along the event payload.
1677 // +optional
1678 "metadata"?: {
1679 [string]: string
1680 }
1681
1682 // DeprecatedProjectID is the id of project for which integration
1683 // needs to setup
1684 // Deprecated: use Projects instead. Will be unsupported in v 1.7
1685 // +optional
1686 "projectID"?: string
1687
1688 // List of project IDs or project namespace paths like
1689 // "whynowy/test".
1690 // If neither a project nor a group is defined, the EventSource
1691 // will not manage webhooks.
1692 // +optional
1693 "projects"?: [...string]
1694
1695 // SecretToken references to k8 secret which holds the Secret
1696 // Token used by webhook config
1697 "secretToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
1698
1699 // Webhook holds configuration to run a http server
1700 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
1701 }
1702
1703 // HDFSEventSource refers to event-source for HDFS related events
1704 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HDFSEventSource": {
1705 "addresses"?: [...string]
1706
1707 // CheckInterval is a string that describes an interval duration
1708 // to check the directory state, e.g. 1s, 30m, 2h... (defaults to
1709 // 1m)
1710 "checkInterval"?: string
1711
1712 // Filter
1713 // +optional
1714 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1715
1716 // HDFSUser is the user to access HDFS file system.
1717 // It is ignored if either ccache or keytab is used.
1718 "hdfsUser"?: string
1719
1720 // KrbCCacheSecret is the secret selector for Kerberos ccache
1721 // Either ccache or keytab can be set to use Kerberos.
1722 "krbCCacheSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1723
1724 // KrbConfig is the configmap selector for Kerberos config as
1725 // string
1726 // It must be set if either ccache or keytab is used.
1727 "krbConfigConfigMap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
1728
1729 // KrbKeytabSecret is the secret selector for Kerberos keytab
1730 // Either ccache or keytab can be set to use Kerberos.
1731 "krbKeytabSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1732
1733 // KrbRealm is the Kerberos realm used with Kerberos keytab
1734 // It must be set if keytab is used.
1735 "krbRealm"?: string
1736
1737 // KrbServicePrincipalName is the principal name of Kerberos
1738 // service
1739 // It must be set if either ccache or keytab is used.
1740 "krbServicePrincipalName"?: string
1741
1742 // KrbUsername is the Kerberos username used with Kerberos keytab
1743 // It must be set if keytab is used.
1744 "krbUsername"?: string
1745
1746 // Metadata holds the user defined metadata which will passed
1747 // along the event payload.
1748 // +optional
1749 "metadata"?: {
1750 [string]: string
1751 }
1752
1753 // Type of file operations to watch
1754 "type"?: string
1755 "watchPathConfig"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig"
1756 }
1757
1758 // HTTPTrigger is the trigger for the HTTP request
1759 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HTTPTrigger": {
1760 // BasicAuth configuration for the http request.
1761 // +optional
1762 "basicAuth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
1763
1764 // Headers for the HTTP request.
1765 // +optional
1766 "headers"?: {
1767 [string]: string
1768 }
1769
1770 // Method refers to the type of the HTTP request.
1771 // Refer https://golang.org/src/net/http/method.go for more
1772 // io.argoproj.workflow.v1alpha1.
1773 // Default value is POST.
1774 // +optional
1775 "method"?: string
1776
1777 // Parameters is the list of key-value extracted from event's
1778 // payload that are applied to
1779 // the HTTP trigger resource.
1780 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1781 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1782
1783 // Secure Headers stored in Kubernetes Secrets for the HTTP
1784 // requests.
1785 // +optional
1786 "secureHeaders"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader"]
1787
1788 // Timeout refers to the HTTP request timeout in seconds.
1789 // Default value is 60 seconds.
1790 // +optional
1791 "timeout"?: string
1792
1793 // TLS configuration for the HTTP client.
1794 // +optional
1795 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1796
1797 // URL refers to the URL to send HTTP request to.
1798 "url"?: string
1799 }
1800
1801 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Int64OrString": {
1802 "int64Val"?: string
1803 "strVal"?: string
1804 "type"?: string
1805 }
1806
1807 // K8SResource represent arbitrary structured data.
1808 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResource": "value"?: string
1809
1810 // K8SResourcePolicy refers to the policy used to check the state
1811 // of K8s based triggers using labels
1812 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResourcePolicy": {
1813 // Backoff before checking resource state
1814 "backoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1815
1816 // ErrorOnBackoffTimeout determines whether sensor should
1817 // transition to error state if the trigger policy is unable to
1818 // determine
1819 // the state of the resource
1820 "errorOnBackoffTimeout"?: bool
1821
1822 // Labels required to identify whether a resource is in success
1823 // state
1824 "labels"?: {
1825 [string]: string
1826 }
1827 }
1828
1829 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaConsumerGroup": {
1830 // The name for the consumer group to use
1831 "groupName"?: string
1832
1833 // When starting up a new group do we want to start from the
1834 // oldest event (true) or the newest event (false), defaults to
1835 // false
1836 // +optional
1837 "oldest"?: bool
1838
1839 // Rebalance strategy can be one of: sticky, roundrobin, range.
1840 // Range is the default.
1841 // +optional
1842 "rebalanceStrategy"?: string
1843 }
1844
1845 // KafkaEventSource refers to event-source for Kafka related
1846 // events
1847 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaEventSource": {
1848 // Yaml format Sarama config for Kafka connection.
1849 // It follows the struct of sarama.Config. See
1850 // https://github.com/IBM/sarama/blob/main/config.go
1851 // e.g.
1852 //
1853 // consumer:
1854 // fetch:
1855 // min: 1
1856 // net:
1857 // MaxOpenRequests: 5
1858 //
1859 // +optional
1860 "config"?: string
1861
1862 // Backoff holds parameters applied to connection.
1863 "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1864
1865 // Consumer group for kafka client
1866 // +optional
1867 "consumerGroup"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaConsumerGroup"
1868
1869 // Filter
1870 // +optional
1871 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1872
1873 // JSONBody specifies that all event body payload coming from this
1874 // source will be JSON
1875 // +optional
1876 "jsonBody"?: bool
1877
1878 // Sets a limit on how many events get read from kafka per second.
1879 // +optional
1880 "limitEventsPerSecond"?: string
1881
1882 // Metadata holds the user defined metadata which will passed
1883 // along the event payload.
1884 // +optional
1885 "metadata"?: {
1886 [string]: string
1887 }
1888
1889 // Partition name
1890 // +optional
1891 "partition"?: string
1892
1893 // SASL configuration for the kafka client
1894 // +optional
1895 "sasl"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig"
1896
1897 // TLS configuration for the kafka client.
1898 // +optional
1899 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1900
1901 // Topic name
1902 "topic"?: string
1903
1904 // URL to kafka cluster, multiple URLs separated by comma
1905 "url"?: string
1906
1907 // Specify what kafka version is being connected to enables
1908 // certain features in sarama, defaults to 1.0.0
1909 // +optional
1910 "version"?: string
1911 }
1912
1913 // KafkaTrigger refers to the specification of the Kafka trigger.
1914 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaTrigger": {
1915 // Compress determines whether to compress message or not.
1916 // Defaults to false.
1917 // If set to true, compresses message using snappy compression.
1918 // +optional
1919 "compress"?: bool
1920
1921 // FlushFrequency refers to the frequency in milliseconds to flush
1922 // batches.
1923 // Defaults to 500 milliseconds.
1924 // +optional
1925 "flushFrequency"?: int
1926
1927 // Headers for the Kafka Messages.
1928 // +optional
1929 "headers"?: {
1930 [string]: string
1931 }
1932
1933 // Parameters is the list of parameters that is applied to
1934 // resolved Kafka trigger object.
1935 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1936
1937 // +optional
1938 // DEPRECATED
1939 "partition"?: int
1940
1941 // The partitioning key for the messages put on the Kafka topic.
1942 // +optional.
1943 "partitioningKey"?: string
1944
1945 // Payload is the list of key-value extracted from an event
1946 // payload to construct the request payload.
1947 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1948
1949 // RequiredAcks used in producer to tell the broker how many
1950 // replica acknowledgements
1951 // Defaults to 1 (Only wait for the leader to ack).
1952 // +optional.
1953 "requiredAcks"?: int
1954
1955 // SASL configuration for the kafka client
1956 // +optional
1957 "sasl"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig"
1958
1959 // Schema Registry configuration to producer message with avro
1960 // format
1961 // +optional
1962 "schemaRegistry"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SchemaRegistryConfig"
1963
1964 // Secure Headers stored in Kubernetes Secrets for the Kafka
1965 // messages.
1966 // +optional
1967 "secureHeaders"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader"]
1968
1969 // TLS configuration for the Kafka producer.
1970 // +optional
1971 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1972
1973 // Name of the topic.
1974 // More info at
1975 // https://kafka.apache.org/documentation/#intro_topics
1976 "topic"?: string
1977
1978 // URL of the Kafka broker, multiple URLs separated by comma.
1979 "url"?: string
1980
1981 // Specify what kafka version is being connected to enables
1982 // certain features in sarama, defaults to 1.0.0
1983 // +optional
1984 "version"?: string
1985 }
1986
1987 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.LogTrigger": {
1988 // Only print messages every interval. Useful to prevent logging
1989 // too much data for busy events.
1990 // +optional
1991 "intervalSeconds"?: string
1992 }
1993
1994 // MQTTEventSource refers to event-source for MQTT related events
1995 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.MQTTEventSource": {
1996 // Auth hosts secret selectors for username and password
1997 // +optional
1998 "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
1999
2000 // ClientID is the id of the client
2001 "clientId"?: string
2002
2003 // ConnectionBackoff holds backoff applied to connection.
2004 "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
2005
2006 // Filter
2007 // +optional
2008 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2009
2010 // JSONBody specifies that all event body payload coming from this
2011 // source will be JSON
2012 // +optional
2013 "jsonBody"?: bool
2014
2015 // Metadata holds the user defined metadata which will passed
2016 // along the event payload.
2017 // +optional
2018 "metadata"?: {
2019 [string]: string
2020 }
2021
2022 // TLS configuration for the mqtt client.
2023 // +optional
2024 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2025
2026 // Topic name
2027 "topic"?: string
2028
2029 // URL to connect to broker
2030 "url"?: string
2031 }
2032
2033 // Metadata holds the annotations and labels of an event source
2034 // pod
2035 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata": {
2036 "annotations"?: [string]: string
2037 "labels"?: {
2038 [string]: string
2039 }
2040 }
2041
2042 // NATSAuth refers to the auth info for NATS EventSource
2043 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth": {
2044 // Baisc auth with username and password
2045 // +optional
2046 "basic"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
2047
2048 // credential used to connect
2049 // +optional
2050 "credential"?: #."io.k8s.api.core.v1.SecretKeySelector"
2051
2052 // NKey used to connect
2053 // +optional
2054 "nkey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2055
2056 // Token used to connect
2057 // +optional
2058 "token"?: #."io.k8s.api.core.v1.SecretKeySelector"
2059 }
2060
2061 // NATSEventsSource refers to event-source for NATS related events
2062 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSEventsSource": {
2063 // Auth information
2064 // +optional
2065 "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth"
2066
2067 // ConnectionBackoff holds backoff applied to connection.
2068 "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
2069
2070 // Filter
2071 // +optional
2072 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2073
2074 // JSONBody specifies that all event body payload coming from this
2075 // source will be JSON
2076 // +optional
2077 "jsonBody"?: bool
2078
2079 // Metadata holds the user defined metadata which will passed
2080 // along the event payload.
2081 // +optional
2082 "metadata"?: {
2083 [string]: string
2084 }
2085
2086 // Queue is the name of the queue group to subscribe as if
2087 // specified. Uses QueueSubscribe
2088 // logic to subscribe as queue group. If the queue is empty, uses
2089 // default Subscribe logic.
2090 // +optional
2091 "queue"?: string
2092
2093 // Subject holds the name of the subject onto which messages are
2094 // published
2095 "subject"?: string
2096
2097 // TLS configuration for the nats client.
2098 // +optional
2099 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2100
2101 // URL to connect to NATS cluster
2102 "url"?: string
2103 }
2104
2105 // NATSTrigger refers to the specification of the NATS trigger.
2106 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSTrigger": {
2107 // AuthInformation
2108 // +optional
2109 "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth"
2110 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2111 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2112
2113 // Name of the subject to put message on.
2114 "subject"?: string
2115
2116 // TLS configuration for the NATS producer.
2117 // +optional
2118 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2119
2120 // URL of the NATS cluster.
2121 "url"?: string
2122 }
2123
2124 // NSQEventSource describes the event source for NSQ PubSub
2125 // More info at https://godoc.org/github.com/nsqio/go-nsq
2126 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NSQEventSource": {
2127 // Channel used for subscription
2128 "channel"?: string
2129
2130 // Backoff holds parameters applied to connection.
2131 // +optional
2132 "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
2133
2134 // Filter
2135 // +optional
2136 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2137
2138 // HostAddress is the address of the host for NSQ lookup
2139 "hostAddress"?: string
2140
2141 // JSONBody specifies that all event body payload coming from this
2142 // source will be JSON
2143 // +optional
2144 "jsonBody"?: bool
2145
2146 // Metadata holds the user defined metadata which will passed
2147 // along the event payload.
2148 // +optional
2149 "metadata"?: {
2150 [string]: string
2151 }
2152
2153 // TLS configuration for the nsq client.
2154 // +optional
2155 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2156
2157 // Topic to subscribe to.
2158 "topic"?: string
2159 }
2160
2161 // OpenWhiskTrigger refers to the specification of the OpenWhisk
2162 // trigger.
2163 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OpenWhiskTrigger": {
2164 // Name of the action/function.
2165 "actionName"?: string
2166
2167 // AuthToken for authentication.
2168 // +optional
2169 "authToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
2170
2171 // Host URL of the OpenWhisk.
2172 "host"?: string
2173
2174 // Namespace for the action.
2175 // Defaults to "_".
2176 // +optional.
2177 "namespace"?: string
2178
2179 // Parameters is the list of key-value extracted from event's
2180 // payload that are applied to
2181 // the trigger resource.
2182 // +optional
2183 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2184
2185 // Payload is the list of key-value extracted from an event
2186 // payload to construct the request payload.
2187 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2188
2189 // Version for the API.
2190 // Defaults to v1.
2191 // +optional
2192 "version"?: string
2193 }
2194
2195 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OwnedRepositories": {
2196 // Repository names
2197 "names"?: [...string]
2198
2199 // Organization or user name
2200 "owner"?: string
2201 }
2202
2203 // PayloadField binds a value at path within the event payload
2204 // against a name.
2205 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PayloadField": {
2206 // Name acts as key that holds the value at the path.
2207 "name"?: string
2208
2209 // Path is the JSONPath of the event's (JSON decoded) data key
2210 // Path is a series of keys separated by a dot. A key may contain
2211 // wildcard characters '*' and '?'.
2212 // To access an array value use the index as the key. The dot and
2213 // wildcard characters can be escaped with '\\'.
2214 // See https://github.com/tidwall/gjson#path-syntax for more
2215 // information on how to use this.
2216 "path"?: string
2217 }
2218
2219 // PubSubEventSource refers to event-source for GCP PubSub related
2220 // events.
2221 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PubSubEventSource": {
2222 // CredentialSecret references to the secret that contains JSON
2223 // credentials to access GCP.
2224 // If it is missing, it implicitly uses Workload Identity to
2225 // access.
2226 // https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
2227 // +optional
2228 "credentialSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2229
2230 // DeleteSubscriptionOnFinish determines whether to delete the GCP
2231 // PubSub subscription once the event source is stopped.
2232 // +optional
2233 "deleteSubscriptionOnFinish"?: bool
2234
2235 // Filter
2236 // +optional
2237 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2238
2239 // JSONBody specifies that all event body payload coming from this
2240 // source will be JSON
2241 // +optional
2242 "jsonBody"?: bool
2243
2244 // Metadata holds the user defined metadata which will passed
2245 // along the event payload.
2246 // +optional
2247 "metadata"?: {
2248 [string]: string
2249 }
2250
2251 // ProjectID is GCP project ID for the subscription.
2252 // Required if you run Argo Events outside of GKE/GCE.
2253 // (otherwise, the default value is its project)
2254 // +optional
2255 "projectID"?: string
2256
2257 // SubscriptionID is ID of subscription.
2258 // Required if you use existing subscription.
2259 // The default value will be auto generated hash based on this
2260 // eventsource setting, so the subscription
2261 // might be recreated every time you update the setting, which has
2262 // a possibility of event loss.
2263 // +optional
2264 "subscriptionID"?: string
2265
2266 // Topic to which the subscription should belongs.
2267 // Required if you want the eventsource to create a new
2268 // subscription.
2269 // If you specify this field along with an existing subscription,
2270 // it will be verified whether it actually belongs to the
2271 // specified topic.
2272 // +optional
2273 "topic"?: string
2274
2275 // TopicProjectID is GCP project ID for the topic.
2276 // By default, it is same as ProjectID.
2277 // +optional
2278 "topicProjectID"?: string
2279 }
2280
2281 // PulsarEventSource describes the event source for Apache Pulsar
2282 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarEventSource": {
2283 // Authentication athenz parameters for the pulsar client.
2284 // Refer
2285 // https://github.com/apache/pulsar-client-go/blob/master/pulsar/auth/athenz.go
2286 // Either token or athenz can be set to use auth.
2287 // +optional
2288 "authAthenzParams"?: [string]: string
2289
2290 // Authentication athenz privateKey secret for the pulsar client.
2291 // AuthAthenzSecret must be set if AuthAthenzParams is used.
2292 // +optional
2293 "authAthenzSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2294
2295 // Authentication token for the pulsar client.
2296 // Either token or athenz can be set to use auth.
2297 // +optional
2298 "authTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2299
2300 // Backoff holds parameters applied to connection.
2301 // +optional
2302 "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
2303
2304 // Filter
2305 // +optional
2306 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2307
2308 // JSONBody specifies that all event body payload coming from this
2309 // source will be JSON
2310 // +optional
2311 "jsonBody"?: bool
2312
2313 // Metadata holds the user defined metadata which will passed
2314 // along the event payload.
2315 // +optional
2316 "metadata"?: {
2317 [string]: string
2318 }
2319
2320 // TLS configuration for the pulsar client.
2321 // +optional
2322 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2323
2324 // Whether the Pulsar client accept untrusted TLS certificate from
2325 // broker.
2326 // +optional
2327 "tlsAllowInsecureConnection"?: bool
2328
2329 // Trusted TLS certificate secret.
2330 // +optional
2331 "tlsTrustCertsSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2332
2333 // Whether the Pulsar client verify the validity of the host name
2334 // from broker.
2335 // +optional
2336 "tlsValidateHostname"?: bool
2337
2338 // Name of the topics to subscribe to.
2339 // +required
2340 "topics"?: [...string]
2341
2342 // Type of the subscription.
2343 // Only "exclusive" and "shared" is supported.
2344 // Defaults to exclusive.
2345 // +optional
2346 "type"?: string
2347
2348 // Configure the service URL for the Pulsar service.
2349 // +required
2350 "url"?: string
2351 }
2352
2353 // PulsarTrigger refers to the specification of the Pulsar
2354 // trigger.
2355 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarTrigger": {
2356 // Authentication athenz parameters for the pulsar client.
2357 // Refer
2358 // https://github.com/apache/pulsar-client-go/blob/master/pulsar/auth/athenz.go
2359 // Either token or athenz can be set to use auth.
2360 // +optional
2361 "authAthenzParams"?: [string]: string
2362
2363 // Authentication athenz privateKey secret for the pulsar client.
2364 // AuthAthenzSecret must be set if AuthAthenzParams is used.
2365 // +optional
2366 "authAthenzSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2367
2368 // Authentication token for the pulsar client.
2369 // Either token or athenz can be set to use auth.
2370 // +optional
2371 "authTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2372
2373 // Backoff holds parameters applied to connection.
2374 // +optional
2375 "connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
2376
2377 // Parameters is the list of parameters that is applied to
2378 // resolved Kafka trigger object.
2379 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2380
2381 // Payload is the list of key-value extracted from an event
2382 // payload to construct the request payload.
2383 "payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2384
2385 // TLS configuration for the pulsar client.
2386 // +optional
2387 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2388
2389 // Whether the Pulsar client accept untrusted TLS certificate from
2390 // broker.
2391 // +optional
2392 "tlsAllowInsecureConnection"?: bool
2393
2394 // Trusted TLS certificate secret.
2395 // +optional
2396 "tlsTrustCertsSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2397
2398 // Whether the Pulsar client verify the validity of the host name
2399 // from broker.
2400 // +optional
2401 "tlsValidateHostname"?: bool
2402
2403 // Name of the topic.
2404 // See https://pulsar.apache.org/docs/en/concepts-messaging/
2405 "topic"?: string
2406
2407 // Configure the service URL for the Pulsar service.
2408 // +required
2409 "url"?: string
2410 }
2411
2412 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RateLimit": {
2413 "requestsPerUnit"?: int
2414
2415 // Defaults to Second
2416 "unit"?: string
2417 }
2418
2419 // RedisEventSource describes an event source for the Redis
2420 // PubSub.
2421 // More info at
2422 // https://godoc.org/github.com/go-redis/redis#example-PubSub
2423 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisEventSource": {
2424 "channels"?: [...string]
2425
2426 // DB to use. If not specified, default DB 0 will be used.
2427 // +optional
2428 "db"?: int
2429
2430 // Filter
2431 // +optional
2432 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2433
2434 // HostAddress refers to the address of the Redis host/server
2435 "hostAddress"?: string
2436
2437 // JSONBody specifies that all event body payload coming from this
2438 // source will be JSON
2439 // +optional
2440 "jsonBody"?: bool
2441
2442 // Metadata holds the user defined metadata which will passed
2443 // along the event payload.
2444 // +optional
2445 "metadata"?: {
2446 [string]: string
2447 }
2448
2449 // Namespace to use to retrieve the password from. It should only
2450 // be specified if password is declared
2451 // +optional
2452 "namespace"?: string
2453
2454 // Password required for authentication if any.
2455 // +optional
2456 "password"?: #."io.k8s.api.core.v1.SecretKeySelector"
2457
2458 // TLS configuration for the redis client.
2459 // +optional
2460 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2461
2462 // Username required for ACL style authentication if any.
2463 // +optional
2464 "username"?: string
2465 }
2466
2467 // RedisStreamEventSource describes an event source for
2468 // Redis streams (https://redis.io/topics/streams-intro)
2469 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisStreamEventSource": {
2470 // ConsumerGroup refers to the Redis stream consumer group that
2471 // will be
2472 // created on all redis streams. Messages are read through this
2473 // group. Defaults to 'argo-events-cg'
2474 // +optional
2475 "consumerGroup"?: string
2476
2477 // DB to use. If not specified, default DB 0 will be used.
2478 // +optional
2479 "db"?: int
2480
2481 // Filter
2482 // +optional
2483 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2484
2485 // HostAddress refers to the address of the Redis host/server
2486 // (master instance)
2487 "hostAddress"?: string
2488
2489 // MaxMsgCountPerRead holds the maximum number of messages per
2490 // stream that will be read in each XREADGROUP of all streams
2491 // Example: if there are 2 streams and MaxMsgCountPerRead=10, then
2492 // each XREADGROUP may read upto a total of 20 messages.
2493 // Same as COUNT option in
2494 // XREADGROUP(https://redis.io/topics/streams-intro). Defaults to
2495 // 10
2496 // +optional
2497 "maxMsgCountPerRead"?: int
2498
2499 // Metadata holds the user defined metadata which will passed
2500 // along the event payload.
2501 // +optional
2502 "metadata"?: {
2503 [string]: string
2504 }
2505
2506 // Password required for authentication if any.
2507 // +optional
2508 "password"?: #."io.k8s.api.core.v1.SecretKeySelector"
2509
2510 // Streams to look for entries. XREADGROUP is used on all streams
2511 // using a single consumer group.
2512 "streams"?: [...string]
2513
2514 // TLS configuration for the redis client.
2515 // +optional
2516 "tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2517
2518 // Username required for ACL style authentication if any.
2519 // +optional
2520 "username"?: string
2521 }
2522
2523 // ResourceEventSource refers to a event-source for K8s resource
2524 // related events.
2525 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceEventSource": {
2526 // EventTypes is the list of event type to watch.
2527 // Possible values are - ADD, UPDATE and DELETE.
2528 "eventTypes"?: [...string]
2529
2530 // Filter is applied on the metadata of the resource
2531 // If you apply filter, then the internal event informer will only
2532 // monitor objects that pass the filter.
2533 // +optional
2534 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceFilter"
2535
2536 // Group of the resource
2537 "groupVersionResource"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource"
2538
2539 // Metadata holds the user defined metadata which will passed
2540 // along the event payload.
2541 // +optional
2542 "metadata"?: {
2543 [string]: string
2544 }
2545
2546 // Namespace where resource is deployed
2547 "namespace"?: string
2548 }
2549
2550 // ResourceFilter contains K8s ObjectMeta information to further
2551 // filter resource event objects
2552 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceFilter": {
2553 // If the resource is created after the start time then the event
2554 // is treated as valid.
2555 // +optional
2556 "afterStart"?: bool
2557
2558 // If resource is created before the specified time then the event
2559 // is treated as valid.
2560 // +optional
2561 "createdBy"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
2562
2563 // Fields provide field filters similar to K8s field selector
2564 // (see
2565 // https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/).
2566 // Unlike K8s field selector, it supports arbitrary fileds like
2567 // "spec.serviceAccountName",
2568 // and the value could be a string or a regex.
2569 // Same as K8s field selector, operator "=", "==" and "!=" are
2570 // supported.
2571 // +optional
2572 "fields"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector"]
2573
2574 // Labels provide listing options to K8s API to watch resource/s.
2575 // Refer
2576 // https://kubernetes.io/docs/concepts/overview/working-with-objects/label-selectors/
2577 // for more io.argoproj.workflow.v1alpha1.
2578 // Unlike K8s field selector, multiple values are passed as comma
2579 // separated values instead of list of values.
2580 // Eg: value: value1,value2.
2581 // Same as K8s label selector, operator "=", "==", "!=", "exists",
2582 // "!", "notin", "in", "gt" and "lt"
2583 // are supported
2584 // +optional
2585 "labels"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector"]
2586
2587 // Prefix filter is applied on the resource name.
2588 // +optional
2589 "prefix"?: string
2590 }
2591
2592 // S3Artifact contains information about an S3 connection and
2593 // bucket
2594 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact": {
2595 "accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2596 "bucket"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Bucket"
2597 "caCertificate"?: #."io.k8s.api.core.v1.SecretKeySelector"
2598 "endpoint"?: string
2599 "events"?: [...string]
2600 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Filter"
2601 "insecure"?: bool
2602 "metadata"?: {
2603 [string]: string
2604 }
2605 "region"?: string
2606 "secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2607 }
2608
2609 // S3Bucket contains information to describe an S3 Bucket
2610 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Bucket": {
2611 "key"?: string
2612 "name"?: string
2613 }
2614
2615 // S3Filter represents filters to apply to bucket notifications
2616 // for specifying constraints on objects
2617 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Filter": {
2618 "prefix"?: string
2619 "suffix"?: string
2620 }
2621
2622 // SASLConfig refers to SASL configuration for a client
2623 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig": {
2624 // SASLMechanism is the name of the enabled SASL mechanism.
2625 // Possible values: OAUTHBEARER, PLAIN (defaults to PLAIN).
2626 // +optional
2627 "mechanism"?: string
2628
2629 // Password for SASL/PLAIN authentication
2630 "passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2631
2632 // User is the authentication identity (authcid) to present for
2633 // SASL/PLAIN or SASL/SCRAM authentication
2634 "userSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2635 }
2636
2637 // SFTPEventSource describes an event-source for sftp related
2638 // events.
2639 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SFTPEventSource": {
2640 // Address sftp address.
2641 "address"?: #."io.k8s.api.core.v1.SecretKeySelector"
2642
2643 // Type of file operations to watch
2644 // Refer
2645 // https://github.com/fsnotify/fsnotify/blob/master/fsnotify.go
2646 // for more information
2647 "eventType"?: string
2648
2649 // Filter
2650 // +optional
2651 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2652
2653 // Metadata holds the user defined metadata which will passed
2654 // along the event payload.
2655 // +optional
2656 "metadata"?: {
2657 [string]: string
2658 }
2659
2660 // Password required for authentication if any.
2661 "password"?: #."io.k8s.api.core.v1.SecretKeySelector"
2662
2663 // PollIntervalDuration the interval at which to poll the SFTP
2664 // server
2665 // defaults to 10 seconds
2666 // +optional
2667 "pollIntervalDuration"?: string
2668
2669 // SSHKeySecret refers to the secret that contains SSH key. Key
2670 // needs to contain private key and public key.
2671 "sshKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2672
2673 // Username required for authentication if any.
2674 "username"?: #."io.k8s.api.core.v1.SecretKeySelector"
2675
2676 // WatchPathConfig contains configuration about the file path to
2677 // watch
2678 "watchPathConfig"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig"
2679 }
2680
2681 // SNSEventSource refers to event-source for AWS SNS related
2682 // events
2683 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SNSEventSource": {
2684 // AccessKey refers K8s secret containing aws access key
2685 "accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2686
2687 // Endpoint configures connection to a specific SNS endpoint
2688 // instead of Amazons servers
2689 // +optional
2690 "endpoint"?: string
2691
2692 // Filter
2693 // +optional
2694 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2695
2696 // Metadata holds the user defined metadata which will passed
2697 // along the event payload.
2698 // +optional
2699 "metadata"?: {
2700 [string]: string
2701 }
2702
2703 // Region is AWS region
2704 "region"?: string
2705
2706 // RoleARN is the Amazon Resource Name (ARN) of the role to
2707 // assume.
2708 // +optional
2709 "roleARN"?: string
2710
2711 // SecretKey refers K8s secret containing aws secret key
2712 "secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2713
2714 // TopicArn
2715 "topicArn"?: string
2716
2717 // ValidateSignature is boolean that can be set to true for SNS
2718 // signature verification
2719 // +optional
2720 "validateSignature"?: bool
2721
2722 // Webhook configuration for http server
2723 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
2724 }
2725
2726 // SQSEventSource refers to event-source for AWS SQS related
2727 // events
2728 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SQSEventSource": {
2729 // AccessKey refers K8s secret containing aws access key
2730 "accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2731
2732 // DLQ specifies if a dead-letter queue is configured for messages
2733 // that can't be processed successfully.
2734 // If set to true, messages with invalid payload won't be
2735 // acknowledged to allow to forward them farther to the
2736 // dead-letter queue.
2737 // The default value is false.
2738 // +optional
2739 "dlq"?: bool
2740
2741 // Endpoint configures connection to a specific SQS endpoint
2742 // instead of Amazons servers
2743 // +optional
2744 "endpoint"?: string
2745
2746 // Filter
2747 // +optional
2748 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2749
2750 // JSONBody specifies that all event body payload coming from this
2751 // source will be JSON
2752 // +optional
2753 "jsonBody"?: bool
2754
2755 // Metadata holds the user defined metadata which will passed
2756 // along the event payload.
2757 // +optional
2758 "metadata"?: {
2759 [string]: string
2760 }
2761
2762 // Queue is AWS SQS queue to listen to for messages
2763 "queue"?: string
2764
2765 // QueueAccountID is the ID of the account that created the queue
2766 // to monitor
2767 // +optional
2768 "queueAccountId"?: string
2769
2770 // Region is AWS region
2771 "region"?: string
2772
2773 // RoleARN is the Amazon Resource Name (ARN) of the role to
2774 // assume.
2775 // +optional
2776 "roleARN"?: string
2777
2778 // SecretKey refers K8s secret containing aws secret key
2779 "secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2780
2781 // SessionToken refers to K8s secret containing AWS temporary
2782 // credentials(STS) session token
2783 // +optional
2784 "sessionToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
2785
2786 // WaitTimeSeconds is The duration (in seconds) for which the call
2787 // waits for a message to arrive
2788 // in the queue before returning.
2789 "waitTimeSeconds"?: string
2790 }
2791
2792 // SchemaRegistryConfig refers to configuration for a client
2793 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SchemaRegistryConfig": {
2794 // +optional
2795 // SchemaRegistry - basic authentication
2796 "auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
2797
2798 // Schema ID
2799 "schemaId"?: int
2800
2801 // Schema Registry URL.
2802 "url"?: string
2803 }
2804
2805 // SecureHeader refers to HTTP Headers with auth tokens as values
2806 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader": {
2807 "name"?: string
2808
2809 // Values can be read from either secrets or configmaps
2810 "valueFrom"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ValueFromSource"
2811 }
2812
2813 // Selector represents conditional operation to select K8s
2814 // objects.
2815 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector": {
2816 // Key name
2817 "key"?: string
2818
2819 // Supported operations like ==, != etc.
2820 // Defaults to ==.
2821 // Refer
2822 // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
2823 // for more io.argoproj.workflow.v1alpha1.
2824 // +optional
2825 "operation"?: string
2826
2827 // Value
2828 "value"?: string
2829 }
2830
2831 // Sensor is the definition of a sensor resource
2832 // +genclient
2833 // +genclient:noStatus
2834 // +kubebuilder:resource:shortName=sn
2835 // +kubebuilder:subresource:status
2836 // +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
2837 // +k8s:openapi-gen=true
2838 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor": {
2839 "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
2840 "spec"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorSpec"
2841
2842 // +optional
2843 "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorStatus"
2844 }
2845
2846 // SensorList is the list of Sensor resources
2847 // +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
2848 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorList": {
2849 "items"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"]
2850 "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
2851 }
2852
2853 // SensorSpec represents desired sensor state
2854 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorSpec": {
2855 // Dependencies is a list of the events that this sensor is
2856 // dependent on.
2857 "dependencies"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependency"]
2858
2859 // ErrorOnFailedRound if set to true, marks sensor state as
2860 // `error` if the previous trigger round fails.
2861 // Once sensor state is set to `error`, no further triggers will
2862 // be processed.
2863 "errorOnFailedRound"?: bool
2864
2865 // EventBusName references to a EventBus name. By default the
2866 // value is "default"
2867 "eventBusName"?: string
2868
2869 // LoggingFields add additional key-value pairs when logging
2870 // happens
2871 // +optional
2872 "loggingFields"?: {
2873 [string]: string
2874 }
2875
2876 // Replicas is the sensor deployment replicas
2877 "replicas"?: int
2878
2879 // RevisionHistoryLimit specifies how many old deployment
2880 // revisions to retain
2881 // +optional
2882 "revisionHistoryLimit"?: int
2883
2884 // Template is the pod specification for the sensor
2885 // +optional
2886 "template"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template"
2887
2888 // Triggers is a list of the things that this sensor evokes. These
2889 // are the outputs from this sensor.
2890 "triggers"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger"]
2891 }
2892
2893 // SensorStatus contains information about the status of a sensor.
2894 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorStatus": "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status"
2895
2896 // Service holds the service information eventsource exposes
2897 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Service": {
2898 // clusterIP is the IP address of the service and is usually
2899 // assigned
2900 // randomly by the master. If an address is specified manually and
2901 // is not in
2902 // use by others, it will be allocated to the service; otherwise,
2903 // creation
2904 // of the service will fail. This field can not be changed through
2905 // updates.
2906 // Valid values are "None", empty string (""), or a valid IP
2907 // address. "None"
2908 // can be specified for headless services when proxying is not
2909 // required.
2910 // More info:
2911 // https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
2912 // +optional
2913 "clusterIP"?: string
2914
2915 // Metadata sets the pods's metadata, i.e. annotations and labels
2916 // default={annotations: {}, labels: {}}
2917 "metadata"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata"
2918
2919 // The list of ports that are exposed by this ClusterIP service.
2920 // +patchMergeKey=port
2921 // +patchStrategy=merge
2922 // +listType=map
2923 // +listMapKey=port
2924 // +listMapKey=protocol
2925 "ports"?: [...#."io.k8s.api.core.v1.ServicePort"]
2926 }
2927
2928 // SlackEventSource refers to event-source for Slack related
2929 // events
2930 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackEventSource": {
2931 // Filter
2932 // +optional
2933 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2934
2935 // Metadata holds the user defined metadata which will passed
2936 // along the event payload.
2937 // +optional
2938 "metadata"?: {
2939 [string]: string
2940 }
2941
2942 // Slack App signing secret
2943 "signingSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2944
2945 // Token for URL verification handshake
2946 "token"?: #."io.k8s.api.core.v1.SecretKeySelector"
2947
2948 // Webhook holds configuration for a REST endpoint
2949 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
2950 }
2951
2952 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackSender": {
2953 // Icon is the Slack application's icon, e.g. :robot_face: or
2954 // https://example.com/image.png
2955 // +optional
2956 "icon"?: string
2957
2958 // Username is the Slack application's username
2959 // +optional
2960 "username"?: string
2961 }
2962
2963 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackThread": {
2964 // BroadcastMessageToChannel allows to also broadcast the message
2965 // from the thread to the channel
2966 // +optional
2967 "broadcastMessageToChannel"?: bool
2968
2969 // MessageAggregationKey allows to aggregate the messages to a
2970 // thread by some key.
2971 // +optional
2972 "messageAggregationKey"?: string
2973 }
2974
2975 // SlackTrigger refers to the specification of the slack
2976 // notification trigger.
2977 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackTrigger": {
2978 // Attachments is a JSON format string that represents an array of
2979 // Slack attachments according to the attachments API:
2980 // https://api.slack.com/reference/messaging/attachments .
2981 // +optional
2982 "attachments"?: string
2983
2984 // Blocks is a JSON format string that represents an array of
2985 // Slack blocks according to the blocks API:
2986 // https://api.slack.com/reference/block-kit/blocks .
2987 // +optional
2988 "blocks"?: string
2989
2990 // Channel refers to which Slack channel to send Slack message.
2991 // +optional
2992 "channel"?: string
2993
2994 // Message refers to the message to send to the Slack channel.
2995 // +optional
2996 "message"?: string
2997
2998 // Parameters is the list of key-value extracted from event's
2999 // payload that are applied to
3000 // the trigger resource.
3001 // +optional
3002 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
3003
3004 // Sender refers to additional configuration of the Slack
3005 // application that sends the message.
3006 // +optional
3007 "sender"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackSender"
3008
3009 // SlackToken refers to the Kubernetes secret that holds the slack
3010 // token required to send messages.
3011 "slackToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
3012
3013 // Thread refers to additional options for sending messages to a
3014 // Slack thread.
3015 // +optional
3016 "thread"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackThread"
3017 }
3018
3019 // StandardK8STrigger is the standard Kubernetes resource trigger
3020 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StandardK8STrigger": {
3021 // LiveObject specifies whether the resource should be directly
3022 // fetched from K8s instead
3023 // of being marshaled from the resource artifact. If set to true,
3024 // the resource artifact
3025 // must contain the information required to uniquely identify the
3026 // resource in the cluster,
3027 // that is, you must specify "apiVersion", "kind" as well as
3028 // "name" and "namespace" meta
3029 // data.
3030 // Only valid for operation type `update`
3031 // +optional
3032 "liveObject"?: bool
3033
3034 // Operation refers to the type of operation performed on the k8s
3035 // resource.
3036 // Default value is Create.
3037 // +optional
3038 "operation"?: string
3039
3040 // Parameters is the list of parameters that is applied to
3041 // resolved K8s trigger object.
3042 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
3043
3044 // PatchStrategy controls the K8s object patching strategy when
3045 // the trigger operation is specified as patch.
3046 // possible values:
3047 // "application/json-patch+json"
3048 // "application/merge-patch+json"
3049 // "application/strategic-merge-patch+json"
3050 // "application/apply-patch+yaml".
3051 // Defaults to "application/merge-patch+json"
3052 // +optional
3053 "patchStrategy"?: string
3054
3055 // Source of the K8s resource file(s)
3056 "source"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation"
3057 }
3058
3059 // Status is a common structure which can be used for Status
3060 // field.
3061 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status": {
3062 // Conditions are the latest available observations of a
3063 // resource's current state.
3064 // +optional
3065 // +patchMergeKey=type
3066 // +patchStrategy=merge
3067 "conditions"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Condition"]
3068 }
3069
3070 // StatusPolicy refers to the policy used to check the state of
3071 // the trigger using response status
3072 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StatusPolicy": "allow"?: [...int]
3073
3074 // StorageGridEventSource refers to event-source for StorageGrid
3075 // related events
3076 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridEventSource": {
3077 // APIURL is the url of the storagegrid api.
3078 "apiURL"?: string
3079
3080 // Auth token for storagegrid api
3081 "authToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
3082
3083 // Name of the bucket to register notifications for.
3084 "bucket"?: string
3085 "events"?: [...string]
3086
3087 // Filter on object key which caused the notification.
3088 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridFilter"
3089
3090 // Metadata holds the user defined metadata which will passed
3091 // along the event payload.
3092 // +optional
3093 "metadata"?: {
3094 [string]: string
3095 }
3096
3097 // S3 region.
3098 // Defaults to us-east-1
3099 // +optional
3100 "region"?: string
3101
3102 // TopicArn
3103 "topicArn"?: string
3104
3105 // Webhook holds configuration for a REST endpoint
3106 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
3107 }
3108
3109 // StorageGridFilter represents filters to apply to bucket
3110 // notifications for specifying constraints on objects
3111 // +k8s:openapi-gen=true
3112 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridFilter": {
3113 "prefix"?: string
3114 "suffix"?: string
3115 }
3116
3117 // StripeEventSource describes the event source for stripe webhook
3118 // notifications
3119 // More info at https://stripe.com/docs/webhooks
3120 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StripeEventSource": {
3121 // APIKey refers to K8s secret that holds Stripe API key. Used
3122 // only if CreateWebhook is enabled.
3123 // +optional
3124 "apiKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
3125
3126 // CreateWebhook if specified creates a new webhook
3127 // programmatically.
3128 // +optional
3129 "createWebhook"?: bool
3130
3131 // EventFilter describes the type of events to listen to. If not
3132 // specified, all types of events will be processed.
3133 // More info at https://stripe.com/docs/api/events/list
3134 // +optional
3135 "eventFilter"?: [...string]
3136
3137 // Metadata holds the user defined metadata which will passed
3138 // along the event payload.
3139 // +optional
3140 "metadata"?: {
3141 [string]: string
3142 }
3143
3144 // Webhook holds configuration for a REST endpoint
3145 "webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
3146 }
3147
3148 // TLSConfig refers to TLS configuration for a client.
3149 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig": {
3150 // CACertSecret refers to the secret that contains the CA cert
3151 "caCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3152
3153 // ClientCertSecret refers to the secret that contains the client
3154 // cert
3155 "clientCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3156
3157 // ClientKeySecret refers to the secret that contains the client
3158 // key
3159 "clientKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3160
3161 // If true, skips creation of TLSConfig with certs and creates an
3162 // empty TLSConfig. (Defaults to false)
3163 // +optional
3164 "insecureSkipVerify"?: bool
3165 }
3166
3167 // Template holds the information of a deployment template
3168 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template": {
3169 // If specified, the pod's scheduling constraints
3170 // +optional
3171 "affinity"?: #."io.k8s.api.core.v1.Affinity"
3172
3173 // Container is the main container image to run in the sensor pod
3174 // +optional
3175 "container"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Container"
3176
3177 // ImagePullSecrets is an optional list of references to secrets
3178 // in the same namespace to use for pulling any of the images
3179 // used by this PodSpec.
3180 // If specified, these secrets will be passed to individual puller
3181 // implementations for them to use. For example,
3182 // in the case of docker, only DockerConfig type secrets are
3183 // honored.
3184 // More info:
3185 // https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
3186 // +optional
3187 // +patchMergeKey=name
3188 // +patchStrategy=merge
3189 "imagePullSecrets"?: [...#."io.k8s.api.core.v1.LocalObjectReference"]
3190
3191 // Metadata sets the pods's metadata, i.e. annotations and labels
3192 "metadata"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata"
3193
3194 // NodeSelector is a selector which must be true for the pod to
3195 // fit on a node.
3196 // Selector which must match a node's labels for the pod to be
3197 // scheduled on that node.
3198 // More info:
3199 // https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
3200 // +optional
3201 "nodeSelector"?: {
3202 [string]: string
3203 }
3204
3205 // The priority value. Various system components use this field to
3206 // find the
3207 // priority of the EventSource pod. When Priority Admission
3208 // Controller is enabled,
3209 // it prevents users from setting this field. The admission
3210 // controller populates
3211 // this field from PriorityClassName.
3212 // The higher the value, the higher the priority.
3213 // More info:
3214 // https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
3215 // +optional
3216 "priority"?: int
3217
3218 // If specified, indicates the EventSource pod's priority.
3219 // "system-node-critical"
3220 // and "system-cluster-critical" are two special keywords which
3221 // indicate the
3222 // highest priorities with the former being the highest priority.
3223 // Any other
3224 // name must be defined by creating a PriorityClass object with
3225 // that name.
3226 // If not specified, the pod priority will be default or zero if
3227 // there is no
3228 // default.
3229 // More info:
3230 // https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
3231 // +optional
3232 "priorityClassName"?: string
3233
3234 // SecurityContext holds pod-level security attributes and common
3235 // container settings.
3236 // Optional: Defaults to empty. See type description for default
3237 // values of each field.
3238 // +optional
3239 "securityContext"?: #."io.k8s.api.core.v1.PodSecurityContext"
3240
3241 // ServiceAccountName is the name of the ServiceAccount to use to
3242 // run sensor pod.
3243 // More info:
3244 // https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
3245 // +optional
3246 "serviceAccountName"?: string
3247
3248 // If specified, the pod's tolerations.
3249 // +optional
3250 "tolerations"?: [...#."io.k8s.api.core.v1.Toleration"]
3251
3252 // Volumes is a list of volumes that can be mounted by containers
3253 // in a io.argoproj.workflow.v1alpha1.
3254 // +patchStrategy=merge
3255 // +patchMergeKey=name
3256 // +optional
3257 "volumes"?: [...#."io.k8s.api.core.v1.Volume"]
3258 }
3259
3260 // TimeFilter describes a window in time.
3261 // It filters out events that occur outside the time limits.
3262 // In other words, only events that occur after Start and before
3263 // Stop
3264 // will pass this filter.
3265 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TimeFilter": {
3266 // Start is the beginning of a time window in UTC.
3267 // Before this time, events for this dependency are ignored.
3268 // Format is hh:mm:ss.
3269 "start"?: string
3270
3271 // Stop is the end of a time window in UTC.
3272 // After or equal to this time, events for this dependency are
3273 // ignored and
3274 // Format is hh:mm:ss.
3275 // If it is smaller than Start, it is treated as next day of Start
3276 // (e.g.: 22:00:00-01:00:00 means 22:00:00-25:00:00).
3277 "stop"?: string
3278 }
3279
3280 // Trigger is an action taken, output produced, an event created,
3281 // a message sent
3282 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger": {
3283 // AtLeastOnce determines the trigger execution semantics.
3284 // Defaults to false. Trigger execution will use at-most-once
3285 // semantics.
3286 // If set to true, Trigger execution will switch to at-least-once
3287 // semantics.
3288 // +kubebuilder:default=false
3289 // +optional
3290 "atLeastOnce"?: bool
3291
3292 // If the trigger fails, it will retry up to the configured number
3293 // of
3294 // retries. If the maximum retries are reached and the trigger is
3295 // set to
3296 // execute atLeastOnce, the dead letter queue (DLQ) trigger will
3297 // be invoked if
3298 // specified. Invoking the dead letter queue trigger helps prevent
3299 // data
3300 // loss.
3301 // +optional
3302 "dlqTrigger"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger"
3303
3304 // Parameters is the list of parameters applied to the trigger
3305 // template definition
3306 "parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
3307
3308 // Policy to configure backoff and execution criteria for the
3309 // trigger
3310 // +optional
3311 "policy"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerPolicy"
3312
3313 // Rate limit, default unit is Second
3314 // +optional
3315 "rateLimit"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RateLimit"
3316
3317 // Retry strategy, defaults to no retry
3318 // +optional
3319 "retryStrategy"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
3320
3321 // Template describes the trigger specification.
3322 "template"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerTemplate"
3323 }
3324
3325 // TriggerParameter indicates a passed parameter to a service
3326 // template
3327 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter": {
3328 // Dest is the JSONPath of a resource key.
3329 // A path is a series of keys separated by a dot. The colon
3330 // character can be escaped with '.'
3331 // The -1 key can be used to append a value to an existing array.
3332 // See https://github.com/tidwall/sjson#path-syntax for more
3333 // information about how this is used.
3334 "dest"?: string
3335
3336 // Operation is what to do with the existing value at Dest,
3337 // whether to
3338 // 'prepend', 'overwrite', or 'append' it.
3339 "operation"?: string
3340
3341 // Src contains a source reference to the value of the parameter
3342 // from a dependency
3343 "src"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameterSource"
3344 }
3345
3346 // TriggerParameterSource defines the source for a parameter from
3347 // a event event
3348 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameterSource": {
3349 // ContextKey is the JSONPath of the event's (JSON decoded)
3350 // context key
3351 // ContextKey is a series of keys separated by a dot. A key may
3352 // contain wildcard characters '*' and '?'.
3353 // To access an array value use the index as the key. The dot and
3354 // wildcard characters can be escaped with '\\'.
3355 // See https://github.com/tidwall/gjson#path-syntax for more
3356 // information on how to use this.
3357 "contextKey"?: string
3358
3359 // ContextTemplate is a go-template for extracting a string from
3360 // the event's context.
3361 // If a ContextTemplate is provided with a ContextKey, the
3362 // template will be evaluated first and fallback to the
3363 // ContextKey.
3364 // The templating follows the standard go-template syntax as well
3365 // as sprig's extra functions.
3366 // See https://pkg.go.dev/text/template and
3367 // https://masterminds.github.io/sprig/
3368 "contextTemplate"?: string
3369
3370 // DataKey is the JSONPath of the event's (JSON decoded) data key
3371 // DataKey is a series of keys separated by a dot. A key may
3372 // contain wildcard characters '*' and '?'.
3373 // To access an array value use the index as the key. The dot and
3374 // wildcard characters can be escaped with '\\'.
3375 // See https://github.com/tidwall/gjson#path-syntax for more
3376 // information on how to use this.
3377 "dataKey"?: string
3378
3379 // DataTemplate is a go-template for extracting a string from the
3380 // event's data.
3381 // If a DataTemplate is provided with a DataKey, the template will
3382 // be evaluated first and fallback to the DataKey.
3383 // The templating follows the standard go-template syntax as well
3384 // as sprig's extra functions.
3385 // See https://pkg.go.dev/text/template and
3386 // https://masterminds.github.io/sprig/
3387 "dataTemplate"?: string
3388
3389 // DependencyName refers to the name of the dependency. The event
3390 // which is stored for this dependency is used as payload
3391 // for the parameterization. Make sure to refer to one of the
3392 // dependencies you have defined under Dependencies list.
3393 "dependencyName"?: string
3394
3395 // UseRawData indicates if the value in an event at data key
3396 // should be used without converting to string.
3397 // When true, a number, boolean, json or string parameter may be
3398 // extracted. When the field is unspecified, or explicitly
3399 // false, the behavior is to turn the extracted field into a
3400 // string. (e.g. when set to true, the parameter
3401 // 123 will resolve to the numerical type, but when false, or not
3402 // provided, the string "123" will be resolved)
3403 // +optional
3404 "useRawData"?: bool
3405
3406 // Value is the default literal value to use for this parameter
3407 // source
3408 // This is only used if the DataKey is invalid.
3409 // If the DataKey is invalid and this is not defined, this param
3410 // source will produce an error.
3411 "value"?: string
3412 }
3413
3414 // TriggerPolicy dictates the policy for the trigger retries
3415 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerPolicy": {
3416 // K8SResourcePolicy refers to the policy used to check the state
3417 // of K8s based triggers using using labels
3418 "k8s"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResourcePolicy"
3419
3420 // Status refers to the policy used to check the state of the
3421 // trigger using response status
3422 "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StatusPolicy"
3423 }
3424
3425 // TriggerTemplate is the template that describes trigger
3426 // specification.
3427 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerTemplate": {
3428 // ArgoWorkflow refers to the trigger that can perform various
3429 // operations on an Argo io.argoproj.workflow.v1alpha1.
3430 // +optional
3431 "argoWorkflow"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArgoWorkflowTrigger"
3432
3433 // AWSLambda refers to the trigger designed to invoke AWS Lambda
3434 // function with with on-the-fly constructable payload.
3435 // +optional
3436 "awsLambda"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AWSLambdaTrigger"
3437
3438 // AzureEventHubs refers to the trigger send an event to an Azure
3439 // Event Hub.
3440 // +optional
3441 "azureEventHubs"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventHubsTrigger"
3442
3443 // AzureServiceBus refers to the trigger designed to place
3444 // messages on Azure Service Bus
3445 // +optional
3446 "azureServiceBus"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusTrigger"
3447
3448 // Conditions is the conditions to execute the trigger.
3449 // For example: "(dep01 || dep02) && dep04"
3450 // +optional
3451 "conditions"?: string
3452
3453 // Criteria to reset the conditons
3454 // +optional
3455 "conditionsReset"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetCriteria"]
3456
3457 // CustomTrigger refers to the trigger designed to connect to a
3458 // gRPC trigger server and execute a custom trigger.
3459 // +optional
3460 "custom"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CustomTrigger"
3461
3462 // Email refers to the trigger designed to send an email
3463 // notification
3464 // +optional
3465 "email"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmailTrigger"
3466
3467 // HTTP refers to the trigger designed to dispatch a HTTP request
3468 // with on-the-fly constructable payload.
3469 // +optional
3470 "http"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HTTPTrigger"
3471
3472 // StandardK8STrigger refers to the trigger designed to create or
3473 // update a generic Kubernetes resource.
3474 // +optional
3475 "k8s"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StandardK8STrigger"
3476
3477 // Kafka refers to the trigger designed to place messages on Kafka
3478 // topic.
3479 // +optional.
3480 "kafka"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaTrigger"
3481
3482 // Log refers to the trigger designed to invoke log the
3483 // io.argoproj.workflow.v1alpha1.
3484 // +optional
3485 "log"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.LogTrigger"
3486
3487 // Name is a unique name of the action to take.
3488 "name"?: string
3489
3490 // NATS refers to the trigger designed to place message on NATS
3491 // subject.
3492 // +optional.
3493 "nats"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSTrigger"
3494
3495 // OpenWhisk refers to the trigger designed to invoke OpenWhisk
3496 // action.
3497 // +optional
3498 "openWhisk"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OpenWhiskTrigger"
3499
3500 // Pulsar refers to the trigger designed to place messages on
3501 // Pulsar topic.
3502 // +optional
3503 "pulsar"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarTrigger"
3504
3505 // Slack refers to the trigger designed to send slack notification
3506 // message.
3507 // +optional
3508 "slack"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackTrigger"
3509 }
3510
3511 // URLArtifact contains information about an artifact at an http
3512 // endpoint.
3513 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.URLArtifact": {
3514 // Path is the complete URL
3515 "path"?: string
3516
3517 // VerifyCert decides whether the connection is secure or not
3518 "verifyCert"?: bool
3519 }
3520
3521 // ValueFromSource allows you to reference keys from either a
3522 // Configmap or Secret
3523 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ValueFromSource": {
3524 "configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
3525 "secretKeyRef"?: #."io.k8s.api.core.v1.SecretKeySelector"
3526 }
3527
3528 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig": {
3529 // Directory to watch for events
3530 "directory"?: string
3531
3532 // Path is relative path of object to watch with respect to the
3533 // directory
3534 "path"?: string
3535
3536 // PathRegexp is regexp of relative path of object to watch with
3537 // respect to the directory
3538 "pathRegexp"?: string
3539 }
3540
3541 // WebhookContext holds a general purpose REST API context
3542 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext": {
3543 // AuthSecret holds a secret selector that contains a bearer token
3544 // for authentication
3545 // +optional
3546 "authSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3547
3548 // REST API endpoint
3549 "endpoint"?: string
3550
3551 // MaxPayloadSize is the maximum webhook payload size that the
3552 // server will accept.
3553 // Requests exceeding that limit will be rejected with "request
3554 // too large" response.
3555 // Default value: 1048576 (1MB).
3556 // +optional
3557 "maxPayloadSize"?: string
3558
3559 // Metadata holds the user defined metadata which will passed
3560 // along the event payload.
3561 // +optional
3562 "metadata"?: {
3563 [string]: string
3564 }
3565
3566 // Method is HTTP request method that indicates the desired action
3567 // to be performed for a given resource.
3568 // See RFC7231 Hypertext Transfer Protocol (HTTP/1.1): Semantics
3569 // and Content
3570 "method"?: string
3571
3572 // Port on which HTTP server is listening for incoming events.
3573 "port"?: string
3574
3575 // ServerCertPath refers the file that contains the cert.
3576 "serverCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3577
3578 // ServerKeyPath refers the file that contains private key
3579 "serverKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3580
3581 // URL is the url of the server.
3582 "url"?: string
3583 }
3584
3585 // CalendarEventSource describes an HTTP based EventSource
3586 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookEventSource": {
3587 // Filter
3588 // +optional
3589 "filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
3590 "webhookContext"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
3591 }
3592
3593 #: "google.protobuf.Any": {
3594 "type_url"?: string
3595 "value"?: string
3596 }
3597
3598 #: "grpc.gateway.runtime.Error": {
3599 "code"?: int
3600 "details"?: [...#."google.protobuf.Any"]
3601 "error"?: string
3602 "message"?: string
3603 }
3604
3605 #: "grpc.gateway.runtime.StreamError": {
3606 "details"?: [...#."google.protobuf.Any"]
3607 "grpc_code"?: int
3608 "http_code"?: int
3609 "http_status"?: string
3610 "message"?: string
3611 }
3612
3613 // Amount represent a numeric amount.
3614 #: "io.argoproj.workflow.v1alpha1.Amount": number
3615
3616 // ArchiveStrategy describes how to archive files/directory when
3617 // saving artifacts
3618 #: "io.argoproj.workflow.v1alpha1.ArchiveStrategy": {
3619 "none"?: #."io.argoproj.workflow.v1alpha1.NoneStrategy"
3620 "tar"?: #."io.argoproj.workflow.v1alpha1.TarStrategy"
3621 "zip"?: #."io.argoproj.workflow.v1alpha1.ZipStrategy"
3622 }
3623
3624 #: "io.argoproj.workflow.v1alpha1.ArchivedWorkflowDeletedResponse": {}
3625
3626 // Arguments to a template
3627 #: "io.argoproj.workflow.v1alpha1.Arguments": {
3628 // Artifacts is the list of artifacts to pass to the template or
3629 // workflow
3630 "artifacts"?: [...#."io.argoproj.workflow.v1alpha1.Artifact"]
3631
3632 // Parameters is the list of parameters to pass to the template or
3633 // workflow
3634 "parameters"?: [...#."io.argoproj.workflow.v1alpha1.Parameter"]
3635 }
3636
3637 // ArtGCStatus maintains state related to ArtifactGC
3638 #: "io.argoproj.workflow.v1alpha1.ArtGCStatus": {
3639 // if this is true, we already checked to see if we need to do it
3640 // and we don't
3641 "notSpecified"?: bool
3642
3643 // have completed Pods been processed? (mapped by Pod name) used
3644 // to prevent re-processing the Status of a Pod more than once
3645 "podsRecouped"?: {
3646 [string]: bool
3647 }
3648
3649 // have Pods been started to perform this strategy? (enables us
3650 // not to re-process what we've already done)
3651 "strategiesProcessed"?: {
3652 [string]: bool
3653 }
3654 }
3655
3656 // Artifact indicates an artifact to place at a specified path
3657 #: "io.argoproj.workflow.v1alpha1.Artifact": {
3658 // Archive controls how the artifact will be saved to the artifact
3659 // repository.
3660 "archive"?: #."io.argoproj.workflow.v1alpha1.ArchiveStrategy"
3661
3662 // ArchiveLogs indicates if the container logs should be archived
3663 "archiveLogs"?: bool
3664
3665 // ArtifactGC describes the strategy to use when to deleting an
3666 // artifact from completed or deleted workflows
3667 "artifactGC"?: #."io.argoproj.workflow.v1alpha1.ArtifactGC"
3668
3669 // Artifactory contains artifactory artifact location details
3670 "artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact"
3671
3672 // Azure contains Azure Storage artifact location details
3673 "azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifact"
3674
3675 // Has this been deleted?
3676 "deleted"?: bool
3677
3678 // From allows an artifact to reference an artifact from a
3679 // previous step
3680 "from"?: string
3681
3682 // FromExpression, if defined, is evaluated to specify the value
3683 // for the artifact
3684 "fromExpression"?: string
3685
3686 // GCS contains GCS artifact location details
3687 "gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifact"
3688
3689 // Git contains git artifact location details
3690 "git"?: #."io.argoproj.workflow.v1alpha1.GitArtifact"
3691
3692 // GlobalName exports an output artifact to the global scope,
3693 // making it available as
3694 // '{{io.argoproj.workflow.v1alpha1.outputs.artifacts.XXXX}} and
3695 // in workflow.status.outputs.artifacts
3696 "globalName"?: string
3697
3698 // HDFS contains HDFS artifact location details
3699 "hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact"
3700
3701 // HTTP contains HTTP artifact location details
3702 "http"?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact"
3703
3704 // mode bits to use on this file, must be a value between 0 and
3705 // 0777. Set when loading input artifacts. It is recommended to
3706 // set the mode value to ensure the artifact has the expected
3707 // permissions in your container.
3708 "mode"?: int
3709
3710 // name of the artifact. must be unique within a template's
3711 // inputs/outputs.
3712 "name"!: string
3713
3714 // Make Artifacts optional, if Artifacts doesn't generate or exist
3715 "optional"?: bool
3716
3717 // OSS contains OSS artifact location details
3718 "oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifact"
3719
3720 // Path is the container path to the artifact
3721 "path"?: string
3722
3723 // Plugin contains plugin artifact location details
3724 "plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifact"
3725
3726 // Raw contains raw artifact location details
3727 "raw"?: #."io.argoproj.workflow.v1alpha1.RawArtifact"
3728
3729 // If mode is set, apply the permission recursively into the
3730 // artifact if it is a folder
3731 "recurseMode"?: bool
3732
3733 // S3 contains S3 artifact location details
3734 "s3"?: #."io.argoproj.workflow.v1alpha1.S3Artifact"
3735
3736 // SubPath allows an artifact to be sourced from a subpath within
3737 // the specified source
3738 "subPath"?: string
3739 }
3740
3741 // ArtifactGC describes how to delete artifacts from completed
3742 // Workflows - this is embedded into the WorkflowLevelArtifactGC,
3743 // and also used for individual Artifacts to override that as
3744 // needed
3745 #: "io.argoproj.workflow.v1alpha1.ArtifactGC": {
3746 // PodMetadata is an optional field for specifying the Labels and
3747 // Annotations that should be assigned to the Pod doing the
3748 // deletion
3749 "podMetadata"?: #."io.argoproj.workflow.v1alpha1.Metadata"
3750
3751 // ServiceAccountName is an optional field for specifying the
3752 // Service Account that should be assigned to the Pod doing the
3753 // deletion
3754 "serviceAccountName"?: string
3755
3756 // Strategy is the strategy to use.
3757 "strategy"?: string
3758 }
3759
3760 // ArtifactLocation describes a location for a single or multiple
3761 // artifacts. It is used as single artifact in the context of
3762 // inputs/outputs (e.g. outputs.artifacts.artname). It is also
3763 // used to describe the location of multiple artifacts such as
3764 // the archive location of a single workflow step, which the
3765 // executor will use as a default location to store its files.
3766 #: "io.argoproj.workflow.v1alpha1.ArtifactLocation": {
3767 // ArchiveLogs indicates if the container logs should be archived
3768 "archiveLogs"?: bool
3769
3770 // Artifactory contains artifactory artifact location details
3771 "artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact"
3772
3773 // Azure contains Azure Storage artifact location details
3774 "azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifact"
3775
3776 // GCS contains GCS artifact location details
3777 "gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifact"
3778
3779 // Git contains git artifact location details
3780 "git"?: #."io.argoproj.workflow.v1alpha1.GitArtifact"
3781
3782 // HDFS contains HDFS artifact location details
3783 "hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact"
3784
3785 // HTTP contains HTTP artifact location details
3786 "http"?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact"
3787
3788 // OSS contains OSS artifact location details
3789 "oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifact"
3790
3791 // Plugin contains plugin artifact location details
3792 "plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifact"
3793
3794 // Raw contains raw artifact location details
3795 "raw"?: #."io.argoproj.workflow.v1alpha1.RawArtifact"
3796
3797 // S3 contains S3 artifact location details
3798 "s3"?: #."io.argoproj.workflow.v1alpha1.S3Artifact"
3799 }
3800
3801 // ArtifactPaths expands a step from a collection of artifacts
3802 #: "io.argoproj.workflow.v1alpha1.ArtifactPaths": {
3803 // Archive controls how the artifact will be saved to the artifact
3804 // repository.
3805 "archive"?: #."io.argoproj.workflow.v1alpha1.ArchiveStrategy"
3806
3807 // ArchiveLogs indicates if the container logs should be archived
3808 "archiveLogs"?: bool
3809
3810 // ArtifactGC describes the strategy to use when to deleting an
3811 // artifact from completed or deleted workflows
3812 "artifactGC"?: #."io.argoproj.workflow.v1alpha1.ArtifactGC"
3813
3814 // Artifactory contains artifactory artifact location details
3815 "artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact"
3816
3817 // Azure contains Azure Storage artifact location details
3818 "azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifact"
3819
3820 // Has this been deleted?
3821 "deleted"?: bool
3822
3823 // From allows an artifact to reference an artifact from a
3824 // previous step
3825 "from"?: string
3826
3827 // FromExpression, if defined, is evaluated to specify the value
3828 // for the artifact
3829 "fromExpression"?: string
3830
3831 // GCS contains GCS artifact location details
3832 "gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifact"
3833
3834 // Git contains git artifact location details
3835 "git"?: #."io.argoproj.workflow.v1alpha1.GitArtifact"
3836
3837 // GlobalName exports an output artifact to the global scope,
3838 // making it available as
3839 // '{{io.argoproj.workflow.v1alpha1.outputs.artifacts.XXXX}} and
3840 // in workflow.status.outputs.artifacts
3841 "globalName"?: string
3842
3843 // HDFS contains HDFS artifact location details
3844 "hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact"
3845
3846 // HTTP contains HTTP artifact location details
3847 "http"?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact"
3848
3849 // mode bits to use on this file, must be a value between 0 and
3850 // 0777. Set when loading input artifacts. It is recommended to
3851 // set the mode value to ensure the artifact has the expected
3852 // permissions in your container.
3853 "mode"?: int
3854
3855 // name of the artifact. must be unique within a template's
3856 // inputs/outputs.
3857 "name"!: string
3858
3859 // Make Artifacts optional, if Artifacts doesn't generate or exist
3860 "optional"?: bool
3861
3862 // OSS contains OSS artifact location details
3863 "oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifact"
3864
3865 // Path is the container path to the artifact
3866 "path"?: string
3867
3868 // Plugin contains plugin artifact location details
3869 "plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifact"
3870
3871 // Raw contains raw artifact location details
3872 "raw"?: #."io.argoproj.workflow.v1alpha1.RawArtifact"
3873
3874 // If mode is set, apply the permission recursively into the
3875 // artifact if it is a folder
3876 "recurseMode"?: bool
3877
3878 // S3 contains S3 artifact location details
3879 "s3"?: #."io.argoproj.workflow.v1alpha1.S3Artifact"
3880
3881 // SubPath allows an artifact to be sourced from a subpath within
3882 // the specified source
3883 "subPath"?: string
3884 }
3885
3886 // ArtifactRepository represents an artifact repository in which a
3887 // controller will store its artifacts
3888 #: "io.argoproj.workflow.v1alpha1.ArtifactRepository": {
3889 // ArchiveLogs enables log archiving
3890 "archiveLogs"?: bool
3891
3892 // Artifactory stores artifacts to JFrog Artifactory
3893 "artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifactRepository"
3894
3895 // Azure stores artifact in an Azure Storage account
3896 "azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifactRepository"
3897
3898 // GCS stores artifact in a GCS object store
3899 "gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifactRepository"
3900
3901 // HDFS stores artifacts in HDFS
3902 "hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifactRepository"
3903
3904 // OSS stores artifact in a OSS-compliant object store
3905 "oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifactRepository"
3906
3907 // Plugin stores artifact in a plugin-specific artifact repository
3908 "plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifactRepository"
3909
3910 // S3 stores artifact in a S3-compliant object store
3911 "s3"?: #."io.argoproj.workflow.v1alpha1.S3ArtifactRepository"
3912 }
3913
3914 #: "io.argoproj.workflow.v1alpha1.ArtifactRepositoryRef": {
3915 // The name of the config map. Defaults to
3916 // "artifact-repositories".
3917 "configMap"?: string
3918
3919 // The config map key. Defaults to the value of the
3920 // "workflows.argoproj.io/default-artifact-repository"
3921 // annotation.
3922 "key"?: string
3923 }
3924
3925 #: "io.argoproj.workflow.v1alpha1.ArtifactRepositoryRefStatus": {
3926 // The repository the workflow will use. This maybe empty before
3927 // v3.1.
3928 "artifactRepository"?: #."io.argoproj.workflow.v1alpha1.ArtifactRepository"
3929
3930 // The name of the config map. Defaults to
3931 // "artifact-repositories".
3932 "configMap"?: string
3933
3934 // If this ref represents the default artifact repository, rather
3935 // than a config map.
3936 "default"?: bool
3937
3938 // The config map key. Defaults to the value of the
3939 // "workflows.argoproj.io/default-artifact-repository"
3940 // annotation.
3941 "key"?: string
3942
3943 // The namespace of the config map. Defaults to the workflow's
3944 // namespace, or the controller's namespace (if found).
3945 "namespace"?: string
3946 }
3947
3948 // ArtifactoryArtifact is the location of an artifactory artifact
3949 #: "io.argoproj.workflow.v1alpha1.ArtifactoryArtifact": {
3950 // PasswordSecret is the secret selector to the repository
3951 // password
3952 "passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3953
3954 // URL of the artifact
3955 "url"!: string
3956
3957 // UsernameSecret is the secret selector to the repository
3958 // username
3959 "usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3960 }
3961
3962 // ArtifactoryArtifactRepository defines the controller
3963 // configuration for an artifactory artifact repository
3964 #: "io.argoproj.workflow.v1alpha1.ArtifactoryArtifactRepository": {
3965 // KeyFormat defines the format of how to store keys and can
3966 // reference workflow variables.
3967 "keyFormat"?: string
3968
3969 // PasswordSecret is the secret selector to the repository
3970 // password
3971 "passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3972
3973 // RepoURL is the url for artifactory repo.
3974 "repoURL"?: string
3975
3976 // UsernameSecret is the secret selector to the repository
3977 // username
3978 "usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3979 }
3980
3981 // AzureArtifact is the location of an Azure Storage artifact
3982 #: "io.argoproj.workflow.v1alpha1.AzureArtifact": {
3983 // AccountKeySecret is the secret selector to the Azure Blob
3984 // Storage account access key
3985 "accountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3986
3987 // Blob is the blob name (i.e., path) in the container where the
3988 // artifact resides
3989 "blob"!: string
3990
3991 // Container is the container where resources will be stored
3992 "container"!: string
3993
3994 // Endpoint is the service url associated with an account. It is
3995 // most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
3996 "endpoint"!: string
3997
3998 // UseSDKCreds tells the driver to figure out credentials based on
3999 // sdk defaults.
4000 "useSDKCreds"?: bool
4001 }
4002
4003 // AzureArtifactRepository defines the controller configuration
4004 // for an Azure Blob Storage artifact repository
4005 #: "io.argoproj.workflow.v1alpha1.AzureArtifactRepository": {
4006 // AccountKeySecret is the secret selector to the Azure Blob
4007 // Storage account access key
4008 "accountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4009
4010 // BlobNameFormat is defines the format of how to store blob
4011 // names. Can reference workflow variables
4012 "blobNameFormat"?: string
4013
4014 // Container is the container where resources will be stored
4015 "container"!: string
4016
4017 // Endpoint is the service url associated with an account. It is
4018 // most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
4019 "endpoint"!: string
4020
4021 // UseSDKCreds tells the driver to figure out credentials based on
4022 // sdk defaults.
4023 "useSDKCreds"?: bool
4024 }
4025
4026 // Backoff is a backoff strategy to use within retryStrategy
4027 #: "io.argoproj.workflow.v1alpha1.Backoff": {
4028 // Cap is a limit on revised values of the duration parameter. If
4029 // a multiplication by the factor parameter would make the
4030 // duration exceed the cap then the duration is set to the cap
4031 "cap"?: string
4032
4033 // Duration is the amount to back off. Default unit is seconds,
4034 // but could also be a duration (e.g. "2m", "1h")
4035 "duration"?: string
4036
4037 // Factor is a factor to multiply the base duration after each
4038 // failed retry
4039 "factor"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
4040
4041 // MaxDuration is the maximum amount of time allowed for a
4042 // workflow in the backoff strategy. It is important to note that
4043 // if the workflow template includes activeDeadlineSeconds, the
4044 // pod's deadline is initially set with activeDeadlineSeconds.
4045 // However, when the workflow fails, the pod's deadline is then
4046 // overridden by maxDuration. This ensures that the workflow does
4047 // not exceed the specified maximum duration when retries are
4048 // involved.
4049 "maxDuration"?: string
4050 }
4051
4052 // BasicAuth describes the secret selectors required for basic
4053 // authentication
4054 #: "io.argoproj.workflow.v1alpha1.BasicAuth": {
4055 // PasswordSecret is the secret selector to the repository
4056 // password
4057 "passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4058
4059 // UsernameSecret is the secret selector to the repository
4060 // username
4061 "usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4062 }
4063
4064 // Cache is the configuration for the type of cache to be used
4065 #: "io.argoproj.workflow.v1alpha1.Cache": {
4066 // ConfigMap sets a ConfigMap-based cache
4067 "configMap"!: #."io.k8s.api.core.v1.LocalObjectReference"
4068 }
4069
4070 // ClientCertAuth holds necessary information for client
4071 // authentication via certificates
4072 #: "io.argoproj.workflow.v1alpha1.ClientCertAuth": {
4073 "clientCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4074 "clientKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4075 }
4076
4077 // ClusterWorkflowTemplate is the definition of a workflow
4078 // template resource in cluster scope
4079 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate": {
4080 // APIVersion defines the versioned schema of this representation
4081 // of an object. Servers should convert recognized schemas to the
4082 // latest internal value, and may reject unrecognized values.
4083 // More info:
4084 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
4085 "apiVersion"?: "argoproj.io/v1alpha1"
4086
4087 // Kind is a string value representing the REST resource this
4088 // object represents. Servers may infer this from the endpoint
4089 // the client submits requests to. Cannot be updated. In
4090 // CamelCase. More info:
4091 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
4092 "kind"?: "ClusterWorkflowTemplate"
4093 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
4094 "spec"!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
4095 }
4096
4097 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateCreateRequest": {
4098 "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
4099 "template"?: #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"
4100 }
4101
4102 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateDeleteResponse": {}
4103
4104 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateLintRequest": {
4105 "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
4106 "template"?: #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"
4107 }
4108
4109 // ClusterWorkflowTemplateList is list of ClusterWorkflowTemplate
4110 // resources
4111 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateList": {
4112 // APIVersion defines the versioned schema of this representation
4113 // of an object. Servers should convert recognized schemas to the
4114 // latest internal value, and may reject unrecognized values.
4115 // More info:
4116 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
4117 "apiVersion"?: string
4118 "items"!: [...#."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"]
4119
4120 // Kind is a string value representing the REST resource this
4121 // object represents. Servers may infer this from the endpoint
4122 // the client submits requests to. Cannot be updated. In
4123 // CamelCase. More info:
4124 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
4125 "kind"?: string
4126 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
4127 }
4128
4129 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateUpdateRequest": {
4130 // DEPRECATED: This field is ignored.
4131 "name"?: string
4132 "template"?: #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"
4133 }
4134
4135 #: "io.argoproj.workflow.v1alpha1.CollectEventRequest": "name"?: string
4136
4137 #: "io.argoproj.workflow.v1alpha1.CollectEventResponse": {}
4138
4139 // Column is a custom column that will be exposed in the Workflow
4140 // List View.
4141 #: "io.argoproj.workflow.v1alpha1.Column": {
4142 // The key of the label or annotation, e.g.,
4143 // "workflows.argoproj.io/completed".
4144 "key"!: string
4145
4146 // The name of this column, e.g., "Workflow Completed".
4147 "name"!: string
4148
4149 // The type of this column, "label" or "annotation".
4150 "type"!: string
4151 }
4152
4153 #: "io.argoproj.workflow.v1alpha1.Condition": {
4154 // Message is the condition message
4155 "message"?: string
4156
4157 // Status is the status of the condition
4158 "status"?: string
4159
4160 // Type is the type of condition
4161 "type"?: string
4162 }
4163
4164 #: "io.argoproj.workflow.v1alpha1.ContainerNode": {
4165 // Arguments to the entrypoint. The container image's CMD is used
4166 // if this is not provided. Variable references $(VAR_NAME) are
4167 // expanded using the container's environment. If a variable
4168 // cannot be resolved, the reference in the input string will be
4169 // unchanged. Double $$ are reduced to a single $, which allows
4170 // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
4171 // produce the string literal "$(VAR_NAME)". Escaped references
4172 // will never be expanded, regardless of whether the variable
4173 // exists or not. Cannot be updated. More info:
4174 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
4175 "args"?: [...string]
4176
4177 // Entrypoint array. Not executed within a shell. The container
4178 // image's ENTRYPOINT is used if this is not provided. Variable
4179 // references $(VAR_NAME) are expanded using the container's
4180 // environment. If a variable cannot be resolved, the reference
4181 // in the input string will be unchanged. Double $$ are reduced
4182 // to a single $, which allows for escaping the $(VAR_NAME)
4183 // syntax: i.e. "$$(VAR_NAME)" will produce the string literal
4184 // "$(VAR_NAME)". Escaped references will never be expanded,
4185 // regardless of whether the variable exists or not. Cannot be
4186 // updated. More info:
4187 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
4188 "command"?: [...string]
4189 "dependencies"?: [...string]
4190
4191 // List of environment variables to set in the container. Cannot
4192 // be updated.
4193 "env"?: [...#."io.k8s.api.core.v1.EnvVar"]
4194
4195 // List of sources to populate environment variables in the
4196 // container. The keys defined within a source must be a
4197 // C_IDENTIFIER. All invalid keys will be reported as an event
4198 // when the container is starting. When a key exists in multiple
4199 // sources, the value associated with the last source will take
4200 // precedence. Values defined by an Env with a duplicate key will
4201 // take precedence. Cannot be updated.
4202 "envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
4203
4204 // Container image name. More info:
4205 // https://kubernetes.io/docs/concepts/containers/images This
4206 // field is optional to allow higher level config management to
4207 // default or override container images in workload controllers
4208 // like Deployments and StatefulSets.
4209 "image"?: string
4210
4211 // Image pull policy. One of Always, Never, IfNotPresent. Defaults
4212 // to Always if :latest tag is specified, or IfNotPresent
4213 // otherwise. Cannot be updated. More info:
4214 // https://kubernetes.io/docs/concepts/containers/images#updating-images
4215 "imagePullPolicy"?: string
4216
4217 // Actions that the management system should take in response to
4218 // container lifecycle events. Cannot be updated.
4219 "lifecycle"?: #."io.k8s.api.core.v1.Lifecycle"
4220
4221 // Periodic probe of container liveness. Container will be
4222 // restarted if the probe fails. Cannot be updated. More info:
4223 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
4224 "livenessProbe"?: #."io.k8s.api.core.v1.Probe"
4225
4226 // Name of the container specified as a DNS_LABEL. Each container
4227 // in a pod must have a unique name (DNS_LABEL). Cannot be
4228 // updated.
4229 "name"!: string
4230
4231 // List of ports to expose from the container. Not specifying a
4232 // port here DOES NOT prevent that port from being exposed. Any
4233 // port which is listening on the default "0.0.0.0" address
4234 // inside a container will be accessible from the network.
4235 // Modifying this array with strategic merge patch may corrupt
4236 // the data. For more information See
4237 // https://github.com/kubernetes/kubernetes/issues/108255. Cannot
4238 // be updated.
4239 "ports"?: [...#."io.k8s.api.core.v1.ContainerPort"]
4240
4241 // Periodic probe of container service readiness. Container will
4242 // be removed from service endpoints if the probe fails. Cannot
4243 // be updated. More info:
4244 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
4245 "readinessProbe"?: #."io.k8s.api.core.v1.Probe"
4246
4247 // Resources resize policy for the container.
4248 "resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
4249
4250 // Compute Resources required by this container. Cannot be
4251 // updated. More info:
4252 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
4253 "resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
4254
4255 // RestartPolicy defines the restart behavior of individual
4256 // containers in a pod. This field may only be set for init
4257 // containers, and the only allowed value is "Always". For
4258 // non-init containers or when this field is not specified, the
4259 // restart behavior is defined by the Pod's restart policy and
4260 // the container type. Setting the RestartPolicy as "Always" for
4261 // the init container will have the following effect: this init
4262 // container will be continually restarted on exit until all
4263 // regular containers have terminated. Once all regular
4264 // containers have completed, all init containers with
4265 // restartPolicy "Always" will be shut down. This lifecycle
4266 // differs from normal init containers and is often referred to
4267 // as a "sidecar" container. Although this init container still
4268 // starts in the init container sequence, it does not wait for
4269 // the container to complete before proceeding to the next init
4270 // container. Instead, the next init container starts immediately
4271 // after this init container is started, or after any
4272 // startupProbe has successfully completed.
4273 "restartPolicy"?: string
4274
4275 // SecurityContext defines the security options the container
4276 // should be run with. If set, the fields of SecurityContext
4277 // override the equivalent fields of PodSecurityContext. More
4278 // info:
4279 // https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
4280 "securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
4281
4282 // StartupProbe indicates that the Pod has successfully
4283 // initialized. If specified, no other probes are executed until
4284 // this completes successfully. If this probe fails, the Pod will
4285 // be restarted, just as if the livenessProbe failed. This can be
4286 // used to provide different probe parameters at the beginning of
4287 // a Pod's lifecycle, when it might take a long time to load data
4288 // or warm a cache, than during steady-state operation. This
4289 // cannot be updated. More info:
4290 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
4291 "startupProbe"?: #."io.k8s.api.core.v1.Probe"
4292
4293 // Whether this container should allocate a buffer for stdin in
4294 // the container runtime. If this is not set, reads from stdin in
4295 // the container will always result in EOF. Default is false.
4296 "stdin"?: bool
4297
4298 // Whether the container runtime should close the stdin channel
4299 // after it has been opened by a single attach. When stdin is
4300 // true the stdin stream will remain open across multiple attach
4301 // sessions. If stdinOnce is set to true, stdin is opened on
4302 // container start, is empty until the first client attaches to
4303 // stdin, and then remains open and accepts data until the client
4304 // disconnects, at which time stdin is closed and remains closed
4305 // until the container is restarted. If this flag is false, a
4306 // container processes that reads from stdin will never receive
4307 // an EOF. Default is false
4308 "stdinOnce"?: bool
4309
4310 // Optional: Path at which the file to which the container's
4311 // termination message will be written is mounted into the
4312 // container's filesystem. Message written is intended to be
4313 // brief final status, such as an assertion failure message. Will
4314 // be truncated by the node if greater than 4096 bytes. The total
4315 // message length across all containers will be limited to 12kb.
4316 // Defaults to /dev/termination-log. Cannot be updated.
4317 "terminationMessagePath"?: string
4318
4319 // Indicate how the termination message should be populated. File
4320 // will use the contents of terminationMessagePath to populate
4321 // the container status message on both success and failure.
4322 // FallbackToLogsOnError will use the last chunk of container log
4323 // output if the termination message file is empty and the
4324 // container exited with an error. The log output is limited to
4325 // 2048 bytes or 80 lines, whichever is smaller. Defaults to
4326 // File. Cannot be updated.
4327 "terminationMessagePolicy"?: string
4328
4329 // Whether this container should allocate a TTY for itself, also
4330 // requires 'stdin' to be true. Default is false.
4331 "tty"?: bool
4332
4333 // volumeDevices is the list of block devices to be used by the
4334 // container.
4335 "volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"]
4336
4337 // Pod volumes to mount into the container's filesystem. Cannot be
4338 // updated.
4339 "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
4340
4341 // Container's working directory. If not specified, the container
4342 // runtime's default will be used, which might be configured in
4343 // the container image. Cannot be updated.
4344 "workingDir"?: string
4345 }
4346
4347 // ContainerSetRetryStrategy provides controls on how to retry a
4348 // container set
4349 #: "io.argoproj.workflow.v1alpha1.ContainerSetRetryStrategy": {
4350 // Duration is the time between each retry, examples values are
4351 // "300ms", "1s" or "5m". Valid time units are "ns", "us" (or
4352 // "µs"), "ms", "s", "m", "h".
4353 "duration"?: string
4354
4355 // Retries is the maximum number of retry attempts for each
4356 // container. It does not include the first, original attempt;
4357 // the maximum number of total attempts will be `retries + 1`.
4358 "retries"!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
4359 }
4360
4361 #: "io.argoproj.workflow.v1alpha1.ContainerSetTemplate": {
4362 "containers"!: [...#."io.argoproj.workflow.v1alpha1.ContainerNode"]
4363
4364 // RetryStrategy describes how to retry container nodes if the
4365 // container set fails. Note that this works differently from the
4366 // template-level `retryStrategy` as it is a process-level retry
4367 // that does not create new Pods or containers.
4368 "retryStrategy"?: #."io.argoproj.workflow.v1alpha1.ContainerSetRetryStrategy"
4369 "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
4370 }
4371
4372 // ContinueOn defines if a workflow should continue even if a task
4373 // or step fails/errors. It can be specified if the workflow
4374 // should continue when the pod errors, fails or both.
4375 #: "io.argoproj.workflow.v1alpha1.ContinueOn": {
4376 "error"?: bool
4377 "failed"?: bool
4378 }
4379
4380 // Counter is a Counter prometheus metric
4381 #: "io.argoproj.workflow.v1alpha1.Counter": {
4382 // Value is the value of the metric
4383 "value"!: string
4384 }
4385
4386 #: "io.argoproj.workflow.v1alpha1.CreateCronWorkflowRequest": {
4387 "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
4388 "cronWorkflow"?: #."io.argoproj.workflow.v1alpha1.CronWorkflow"
4389 "namespace"?: string
4390 }
4391
4392 // CreateS3BucketOptions options used to determine automatic
4393 // automatic bucket-creation process
4394 #: "io.argoproj.workflow.v1alpha1.CreateS3BucketOptions": {
4395 // ObjectLocking Enable object locking
4396 "objectLocking"?: bool
4397 }
4398
4399 // CronWorkflow is the definition of a scheduled workflow resource
4400 #: "io.argoproj.workflow.v1alpha1.CronWorkflow": {
4401 // APIVersion defines the versioned schema of this representation
4402 // of an object. Servers should convert recognized schemas to the
4403 // latest internal value, and may reject unrecognized values.
4404 // More info:
4405 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
4406 "apiVersion"?: "argoproj.io/v1alpha1"
4407
4408 // Kind is a string value representing the REST resource this
4409 // object represents. Servers may infer this from the endpoint
4410 // the client submits requests to. Cannot be updated. In
4411 // CamelCase. More info:
4412 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
4413 "kind"?: "CronWorkflow"
4414 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
4415 "spec"!: #."io.argoproj.workflow.v1alpha1.CronWorkflowSpec"
4416 "status"?: #."io.argoproj.workflow.v1alpha1.CronWorkflowStatus"
4417 }
4418
4419 #: "io.argoproj.workflow.v1alpha1.CronWorkflowDeletedResponse": {}
4420
4421 // CronWorkflowList is list of CronWorkflow resources
4422 #: "io.argoproj.workflow.v1alpha1.CronWorkflowList": {
4423 // APIVersion defines the versioned schema of this representation
4424 // of an object. Servers should convert recognized schemas to the
4425 // latest internal value, and may reject unrecognized values.
4426 // More info:
4427 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
4428 "apiVersion"?: string
4429 "items"!: [...#."io.argoproj.workflow.v1alpha1.CronWorkflow"]
4430
4431 // Kind is a string value representing the REST resource this
4432 // object represents. Servers may infer this from the endpoint
4433 // the client submits requests to. Cannot be updated. In
4434 // CamelCase. More info:
4435 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
4436 "kind"?: string
4437 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
4438 }
4439
4440 #: "io.argoproj.workflow.v1alpha1.CronWorkflowResumeRequest": {
4441 "name"?: string
4442 "namespace"?: string
4443 }
4444
4445 // CronWorkflowSpec is the specification of a CronWorkflow
4446 #: "io.argoproj.workflow.v1alpha1.CronWorkflowSpec": {
4447 // ConcurrencyPolicy is the K8s-style concurrency policy that will
4448 // be used
4449 "concurrencyPolicy"?: string
4450
4451 // FailedJobsHistoryLimit is the number of failed jobs to be kept
4452 // at a time
4453 "failedJobsHistoryLimit"?: int
4454
4455 // v3.6 and after: Schedules is a list of schedules to run the
4456 // Workflow in Cron format
4457 "schedules"!: [...string]
4458
4459 // StartingDeadlineSeconds is the K8s-style deadline that will
4460 // limit the time a CronWorkflow will be run after its original
4461 // scheduled time if it is missed.
4462 "startingDeadlineSeconds"?: int
4463
4464 // v3.6 and after: StopStrategy defines if the CronWorkflow should
4465 // stop scheduling based on a condition
4466 "stopStrategy"?: #."io.argoproj.workflow.v1alpha1.StopStrategy"
4467
4468 // SuccessfulJobsHistoryLimit is the number of successful jobs to
4469 // be kept at a time
4470 "successfulJobsHistoryLimit"?: int
4471
4472 // Suspend is a flag that will stop new CronWorkflows from running
4473 // if set to true
4474 "suspend"?: bool
4475
4476 // Timezone is the timezone against which the cron schedule will
4477 // be calculated, e.g. "Asia/Tokyo". Default is machine's local
4478 // time.
4479 "timezone"?: string
4480
4481 // v3.6 and after: When is an expression that determines if a run
4482 // should be scheduled.
4483 "when"?: string
4484
4485 // WorkflowMetadata contains some metadata of the workflow to be
4486 // run
4487 "workflowMetadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
4488
4489 // WorkflowSpec is the spec of the workflow to be run
4490 "workflowSpec"!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
4491 }
4492
4493 // CronWorkflowStatus is the status of a CronWorkflow
4494 #: "io.argoproj.workflow.v1alpha1.CronWorkflowStatus": {
4495 // Active is a list of active workflows stemming from this
4496 // CronWorkflow
4497 "active"?: [...#."io.k8s.api.core.v1.ObjectReference"]
4498
4499 // Conditions is a list of conditions the CronWorkflow may have
4500 "conditions"?: [...#."io.argoproj.workflow.v1alpha1.Condition"]
4501
4502 // v3.6 and after: Failed counts how many times child workflows
4503 // failed
4504 "failed"?: int
4505
4506 // LastScheduleTime is the last time the CronWorkflow was
4507 // scheduled
4508 "lastScheduledTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
4509
4510 // v3.6 and after: Phase is an enum of Active or Stopped. It
4511 // changes to Stopped when stopStrategy.expression is true
4512 "phase"?: string
4513
4514 // v3.6 and after: Succeeded counts how many times child workflows
4515 // succeeded
4516 "succeeded"?: int
4517 }
4518
4519 #: "io.argoproj.workflow.v1alpha1.CronWorkflowSuspendRequest": {
4520 "name"?: string
4521 "namespace"?: string
4522 }
4523
4524 // DAGTask represents a node in the graph during DAG execution
4525 // Note: CEL validation cannot check withItems (Schemaless) or
4526 // inline (PreserveUnknownFields) fields.
4527 #: "io.argoproj.workflow.v1alpha1.DAGTask": {
4528 // Arguments are the parameter and artifact arguments to the
4529 // template
4530 "arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
4531
4532 // ContinueOn makes argo to proceed with the following step even
4533 // if this step fails. Errors and Failed states can be specified
4534 "continueOn"?: #."io.argoproj.workflow.v1alpha1.ContinueOn"
4535
4536 // Dependencies are name of other targets which this depends on
4537 "dependencies"?: [...string]
4538
4539 // Depends are name of other targets which this depends on
4540 "depends"?: string
4541
4542 // Hooks hold the lifecycle hook which is invoked at lifecycle of
4543 // task, irrespective of the success, failure, or error status of
4544 // the primary task
4545 "hooks"?: {
4546 [string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook"
4547 }
4548
4549 // Inline is the template. Template must be empty if this is
4550 // declared (and vice-versa). Note: As mentioned in the
4551 // corresponding definition in WorkflowStep, this struct is
4552 // defined recursively, so we need
4553 // "x-kubernetes-preserve-unknown-fields: true" in the validation
4554 // schema.
4555 "inline"?: #."io.argoproj.workflow.v1alpha1.Template"
4556
4557 // Name is the name of the target
4558 "name"!: string
4559
4560 // OnExit is a template reference which is invoked at the end of
4561 // the template, irrespective of the success, failure, or error
4562 // of the primary template. DEPRECATED: Use Hooks[exit].Template
4563 // instead.
4564 "onExit"?: string
4565
4566 // Name of template to execute
4567 "template"?: string
4568
4569 // TemplateRef is the reference to the template resource to
4570 // execute.
4571 "templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
4572
4573 // When is an expression in which the task should conditionally
4574 // execute
4575 "when"?: string
4576
4577 // WithItems expands a task into multiple parallel tasks from the
4578 // items in the list Note: The structure of WithItems is
4579 // free-form, so we need "x-kubernetes-preserve-unknown-fields:
4580 // true" in the validation schema.
4581 "withItems"?: [...#."io.argoproj.workflow.v1alpha1.Item"]
4582
4583 // WithParam expands a task into multiple parallel tasks from the
4584 // value in the parameter, which is expected to be a JSON list.
4585 "withParam"?: string
4586
4587 // WithSequence expands a task into a numeric sequence
4588 "withSequence"?: #."io.argoproj.workflow.v1alpha1.Sequence"
4589 }
4590
4591 // DAGTemplate is a template subtype for directed acyclic graph
4592 // templates
4593 #: "io.argoproj.workflow.v1alpha1.DAGTemplate": {
4594 // This flag is for DAG logic. The DAG logic has a built-in "fail
4595 // fast" feature to stop scheduling new steps, as soon as it
4596 // detects that one of the DAG nodes is failed. Then it waits
4597 // until all DAG nodes are completed before failing the DAG
4598 // itself. The FailFast flag default is true, if set to false, it
4599 // will allow a DAG to run all branches of the DAG to completion
4600 // (either success or failure), regardless of the failed outcomes
4601 // of branches in the DAG. More info and example about this
4602 // feature at
4603 // https://github.com/argoproj/argo-workflows/issues/1442
4604 "failFast"?: bool
4605
4606 // Target are one or more names of targets to execute in a DAG
4607 "target"?: string
4608
4609 // Tasks are a list of DAG tasks MaxItems is an artificial limit
4610 // to limit CEL validation costs - see note at top of file
4611 "tasks"!: [...#."io.argoproj.workflow.v1alpha1.DAGTask"]
4612 }
4613
4614 // Data is a data template
4615 #: "io.argoproj.workflow.v1alpha1.Data": {
4616 // Source sources external data into a data template
4617 "source"!: #."io.argoproj.workflow.v1alpha1.DataSource"
4618
4619 // Transformation applies a set of transformations
4620 "transformation"!: [...#."io.argoproj.workflow.v1alpha1.TransformationStep"]
4621 }
4622
4623 // DataSource sources external data into a data template
4624 #: "io.argoproj.workflow.v1alpha1.DataSource": {
4625 // ArtifactPaths is a data transformation that collects a list of
4626 // artifact paths
4627 "artifactPaths"?: #."io.argoproj.workflow.v1alpha1.ArtifactPaths"
4628 }
4629
4630 #: "io.argoproj.workflow.v1alpha1.Event": {
4631 // Selector (https://github.com/expr-lang/expr) that we must must
4632 // match the io.argoproj.workflow.v1alpha1. E.g. `payload.message
4633 // == "test"`
4634 "selector"!: string
4635 }
4636
4637 #: "io.argoproj.workflow.v1alpha1.EventResponse": {}
4638
4639 // ExecutorConfig holds configurations of an executor container.
4640 #: "io.argoproj.workflow.v1alpha1.ExecutorConfig": {
4641 // ServiceAccountName specifies the service account name of the
4642 // executor container.
4643 "serviceAccountName"?: string
4644 }
4645
4646 // GCSArtifact is the location of a GCS artifact
4647 #: "io.argoproj.workflow.v1alpha1.GCSArtifact": {
4648 // Bucket is the name of the bucket
4649 "bucket"?: string
4650
4651 // Key is the path in the bucket where the artifact resides
4652 "key"!: string
4653
4654 // ServiceAccountKeySecret is the secret selector to the bucket's
4655 // service account key
4656 "serviceAccountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4657 }
4658
4659 // GCSArtifactRepository defines the controller configuration for
4660 // a GCS artifact repository
4661 #: "io.argoproj.workflow.v1alpha1.GCSArtifactRepository": {
4662 // Bucket is the name of the bucket
4663 "bucket"?: string
4664
4665 // KeyFormat defines the format of how to store keys and can
4666 // reference workflow variables.
4667 "keyFormat"?: string
4668
4669 // ServiceAccountKeySecret is the secret selector to the bucket's
4670 // service account key
4671 "serviceAccountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4672 }
4673
4674 // Gauge is a Gauge prometheus metric
4675 #: "io.argoproj.workflow.v1alpha1.Gauge": {
4676 // Operation defines the operation to apply with value and the
4677 // metrics' current value
4678 "operation"?: string
4679
4680 // Realtime emits this metric in real time if applicable
4681 "realtime"!: bool
4682
4683 // Value is the value to be used in the operation with the
4684 // metric's current value. If no operation is set, value is the
4685 // value of the metric MaxLength is an artificial limit to limit
4686 // CEL validation costs - see note at top of file
4687 "value"!: string
4688 }
4689
4690 #: "io.argoproj.workflow.v1alpha1.GetUserInfoResponse": {
4691 "email"?: string
4692 "emailVerified"?: bool
4693 "groups"?: [...string]
4694 "issuer"?: string
4695 "name"?: string
4696 "serviceAccountName"?: string
4697 "serviceAccountNamespace"?: string
4698 "subject"?: string
4699 }
4700
4701 // GitArtifact is the location of a git artifact
4702 #: "io.argoproj.workflow.v1alpha1.GitArtifact": {
4703 // Branch is the branch to fetch when `SingleBranch` is enabled
4704 "branch"?: string
4705
4706 // Depth specifies clones/fetches should be shallow and include
4707 // the given number of commits from the branch tip
4708 "depth"?: int
4709
4710 // DisableSubmodules disables submodules during git clone
4711 "disableSubmodules"?: bool
4712
4713 // Fetch specifies a number of refs that should be fetched before
4714 // checkout
4715 "fetch"?: [...string]
4716
4717 // InsecureIgnoreHostKey disables SSH strict host key checking
4718 // during git clone
4719 "insecureIgnoreHostKey"?: bool
4720
4721 // InsecureSkipTLS disables server certificate verification
4722 // resulting in insecure HTTPS connections
4723 "insecureSkipTLS"?: bool
4724
4725 // PasswordSecret is the secret selector to the repository
4726 // password
4727 "passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4728
4729 // Repo is the git repository
4730 "repo"!: string
4731
4732 // Revision is the git commit, tag, branch to checkout
4733 "revision"?: string
4734
4735 // SingleBranch enables single branch clone, using the `branch`
4736 // parameter
4737 "singleBranch"?: bool
4738
4739 // SSHPrivateKeySecret is the secret selector to the repository
4740 // ssh private key
4741 "sshPrivateKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4742
4743 // UsernameSecret is the secret selector to the repository
4744 // username
4745 "usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4746 }
4747
4748 // HDFSArtifact is the location of an HDFS artifact
4749 #: "io.argoproj.workflow.v1alpha1.HDFSArtifact": {
4750 // Addresses is accessible addresses of HDFS name nodes
4751 "addresses"?: [...string]
4752
4753 // DataTransferProtection is the protection level for HDFS data
4754 // transfer. It corresponds to the dfs.data.transfer.protection
4755 // configuration in HDFS.
4756 "dataTransferProtection"?: string
4757
4758 // Force copies a file forcibly even if it exists
4759 "force"?: bool
4760
4761 // HDFSUser is the user to access HDFS file system. It is ignored
4762 // if either ccache or keytab is used.
4763 "hdfsUser"?: string
4764
4765 // KrbCCacheSecret is the secret selector for Kerberos ccache
4766 // Either ccache or keytab can be set to use Kerberos.
4767 "krbCCacheSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4768
4769 // KrbConfig is the configmap selector for Kerberos config as
4770 // string It must be set if either ccache or keytab is used.
4771 "krbConfigConfigMap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
4772
4773 // KrbKeytabSecret is the secret selector for Kerberos keytab
4774 // Either ccache or keytab can be set to use Kerberos.
4775 "krbKeytabSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4776
4777 // KrbRealm is the Kerberos realm used with Kerberos keytab It
4778 // must be set if keytab is used.
4779 "krbRealm"?: string
4780
4781 // KrbServicePrincipalName is the principal name of Kerberos
4782 // service It must be set if either ccache or keytab is used.
4783 "krbServicePrincipalName"?: string
4784
4785 // KrbUsername is the Kerberos username used with Kerberos keytab
4786 // It must be set if keytab is used.
4787 "krbUsername"?: string
4788
4789 // Path is a file path in HDFS
4790 "path"!: string
4791 }
4792
4793 // HDFSArtifactRepository defines the controller configuration for
4794 // an HDFS artifact repository
4795 #: "io.argoproj.workflow.v1alpha1.HDFSArtifactRepository": {
4796 // Addresses is accessible addresses of HDFS name nodes
4797 "addresses"?: [...string]
4798
4799 // DataTransferProtection is the protection level for HDFS data
4800 // transfer. It corresponds to the dfs.data.transfer.protection
4801 // configuration in HDFS.
4802 "dataTransferProtection"?: string
4803
4804 // Force copies a file forcibly even if it exists
4805 "force"?: bool
4806
4807 // HDFSUser is the user to access HDFS file system. It is ignored
4808 // if either ccache or keytab is used.
4809 "hdfsUser"?: string
4810
4811 // KrbCCacheSecret is the secret selector for Kerberos ccache
4812 // Either ccache or keytab can be set to use Kerberos.
4813 "krbCCacheSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4814
4815 // KrbConfig is the configmap selector for Kerberos config as
4816 // string It must be set if either ccache or keytab is used.
4817 "krbConfigConfigMap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
4818
4819 // KrbKeytabSecret is the secret selector for Kerberos keytab
4820 // Either ccache or keytab can be set to use Kerberos.
4821 "krbKeytabSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4822
4823 // KrbRealm is the Kerberos realm used with Kerberos keytab It
4824 // must be set if keytab is used.
4825 "krbRealm"?: string
4826
4827 // KrbServicePrincipalName is the principal name of Kerberos
4828 // service It must be set if either ccache or keytab is used.
4829 "krbServicePrincipalName"?: string
4830
4831 // KrbUsername is the Kerberos username used with Kerberos keytab
4832 // It must be set if keytab is used.
4833 "krbUsername"?: string
4834
4835 // PathFormat is defines the format of path to store a file. Can
4836 // reference workflow variables
4837 "pathFormat"?: string
4838 }
4839
4840 #: "io.argoproj.workflow.v1alpha1.HTTP": {
4841 // Body is content of the HTTP Request
4842 "body"?: string
4843
4844 // BodyFrom is content of the HTTP Request as Bytes
4845 "bodyFrom"?: #."io.argoproj.workflow.v1alpha1.HTTPBodySource"
4846
4847 // Headers are an optional list of headers to send with HTTP
4848 // requests
4849 "headers"?: [...#."io.argoproj.workflow.v1alpha1.HTTPHeader"]
4850
4851 // InsecureSkipVerify is a bool when if set to true will skip TLS
4852 // verification for the HTTP client
4853 "insecureSkipVerify"?: bool
4854
4855 // Method is HTTP methods for HTTP Request
4856 "method"?: string
4857
4858 // SuccessCondition is an expression if evaluated to true is
4859 // considered successful
4860 "successCondition"?: string
4861
4862 // TimeoutSeconds is request timeout for HTTP Request. Default is
4863 // 30 seconds
4864 "timeoutSeconds"?: int
4865
4866 // URL of the HTTP Request
4867 "url"!: string
4868 }
4869
4870 // HTTPArtifact allows a file served on HTTP to be placed as an
4871 // input artifact in a container
4872 #: "io.argoproj.workflow.v1alpha1.HTTPArtifact": {
4873 // Auth contains information for client authentication
4874 "auth"?: #."io.argoproj.workflow.v1alpha1.HTTPAuth"
4875
4876 // Headers are an optional list of headers to send with HTTP
4877 // requests for artifacts
4878 "headers"?: [...#."io.argoproj.workflow.v1alpha1.Header"]
4879
4880 // URL of the artifact
4881 "url"!: string
4882 }
4883
4884 #: "io.argoproj.workflow.v1alpha1.HTTPAuth": {
4885 "basicAuth"?: #."io.argoproj.workflow.v1alpha1.BasicAuth"
4886 "clientCert"?: #."io.argoproj.workflow.v1alpha1.ClientCertAuth"
4887 "oauth2"?: #."io.argoproj.workflow.v1alpha1.OAuth2Auth"
4888 }
4889
4890 // HTTPBodySource contains the source of the HTTP body.
4891 #: "io.argoproj.workflow.v1alpha1.HTTPBodySource": "bytes"?: string
4892
4893 #: "io.argoproj.workflow.v1alpha1.HTTPHeader": {
4894 "name"!: string
4895 "value"?: string
4896 "valueFrom"?: #."io.argoproj.workflow.v1alpha1.HTTPHeaderSource"
4897 }
4898
4899 #: "io.argoproj.workflow.v1alpha1.HTTPHeaderSource": "secretKeyRef"?: #."io.k8s.api.core.v1.SecretKeySelector"
4900
4901 // Header indicate a key-value request header to be used when
4902 // fetching artifacts over HTTP
4903 #: "io.argoproj.workflow.v1alpha1.Header": {
4904 // Name is the header name
4905 "name"!: string
4906
4907 // Value is the literal value to use for the header
4908 "value"!: string
4909 }
4910
4911 // Histogram is a Histogram prometheus metric
4912 #: "io.argoproj.workflow.v1alpha1.Histogram": {
4913 // Buckets is a list of bucket divisors for the histogram
4914 "buckets"!: [...#."io.argoproj.workflow.v1alpha1.Amount"]
4915
4916 // Value is the value of the metric
4917 "value"!: string
4918 }
4919
4920 #: "io.argoproj.workflow.v1alpha1.InfoResponse": {
4921 "columns"?: [...#."io.argoproj.workflow.v1alpha1.Column"]
4922 "links"?: [...#."io.argoproj.workflow.v1alpha1.Link"]
4923 "managedNamespace"?: string
4924
4925 // which modals to show
4926 "modals"?: {
4927 [string]: bool
4928 }
4929 "navColor"?: string
4930 }
4931
4932 // Inputs are the mechanism for passing parameters, artifacts,
4933 // volumes from one template to another
4934 #: "io.argoproj.workflow.v1alpha1.Inputs": {
4935 // Artifact are a list of artifacts passed as inputs
4936 "artifacts"?: [...#."io.argoproj.workflow.v1alpha1.Artifact"]
4937
4938 // Parameters are a list of parameters passed as inputs MaxItems
4939 // is an artificial limit to limit CEL validation costs - see
4940 // note at top of file
4941 "parameters"?: [...#."io.argoproj.workflow.v1alpha1.Parameter"]
4942 }
4943
4944 // Item expands a single workflow step into multiple parallel
4945 // steps The value of Item can be a map, string, bool, or number
4946 #: "io.argoproj.workflow.v1alpha1.Item": _
4947
4948 // LabelKeys is list of keys
4949 #: "io.argoproj.workflow.v1alpha1.LabelKeys": "items"?: [...string]
4950
4951 #: "io.argoproj.workflow.v1alpha1.LabelValueFrom": "expression"!: string
4952
4953 // Labels is list of workflow labels
4954 #: "io.argoproj.workflow.v1alpha1.LabelValues": "items"?: [...string]
4955
4956 #: "io.argoproj.workflow.v1alpha1.LifecycleHook": {
4957 // Arguments hold arguments to the template
4958 "arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
4959
4960 // Expression is a condition expression for when a node will be
4961 // retried. If it evaluates to false, the node will not be
4962 // retried and the retry strategy will be ignored
4963 "expression"?: string
4964
4965 // Template is the name of the template to execute by the hook
4966 "template"?: string
4967
4968 // TemplateRef is the reference to the template resource to
4969 // execute by the hook
4970 "templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
4971 }
4972
4973 // A link to another app.
4974 #: "io.argoproj.workflow.v1alpha1.Link": {
4975 // The name of the link, E.g. "Workflow Logs" or "Pod Logs"
4976 "name"!: string
4977
4978 // "workflow", "pod", "pod-logs", "event-source-logs",
4979 // "sensor-logs", "workflow-list" or "chat"
4980 "scope"!: string
4981
4982 // Target attribute specifies where a linked document will be
4983 // opened when a user clicks on a link. E.g. "_blank", "_self".
4984 // If the target is _blank, it will open in a new tab.
4985 "target"!: string
4986
4987 // The URL. Can contain "${metadata.namespace}",
4988 // "${metadata.name}", "${status.startedAt}",
4989 // "${status.finishedAt}" or any other element in workflow yaml,
4990 // e.g.
4991 // "${io.argoproj.workflow.v1alpha1.metadata.annotations.userDefinedKey}"
4992 "url"!: string
4993 }
4994
4995 #: "io.argoproj.workflow.v1alpha1.LintCronWorkflowRequest": {
4996 "cronWorkflow"?: #."io.argoproj.workflow.v1alpha1.CronWorkflow"
4997 "namespace"?: string
4998 }
4999
5000 #: "io.argoproj.workflow.v1alpha1.LogEntry": {
5001 "content"?: string
5002 "podName"?: string
5003 }
5004
5005 #: "io.argoproj.workflow.v1alpha1.ManifestFrom": {
5006 // Artifact contains the artifact to use
5007 "artifact"!: #."io.argoproj.workflow.v1alpha1.Artifact"
5008 }
5009
5010 // MemoizationStatus is the status of this memoized node
5011 #: "io.argoproj.workflow.v1alpha1.MemoizationStatus": {
5012 // Cache is the name of the cache that was used
5013 "cacheName"!: string
5014
5015 // Hit indicates whether this node was created from a cache entry
5016 "hit"!: bool
5017
5018 // Key is the name of the key used for this node's cache
5019 "key"!: string
5020 }
5021
5022 // Memoization enables caching for the Outputs of the template
5023 #: "io.argoproj.workflow.v1alpha1.Memoize": {
5024 // Cache sets and configures the kind of cache
5025 "cache"!: #."io.argoproj.workflow.v1alpha1.Cache"
5026
5027 // Key is the key to use as the caching key
5028 "key"!: string
5029
5030 // MaxAge is the maximum age (e.g. "180s", "24h") of an entry that
5031 // is still considered valid. If an entry is older than the
5032 // MaxAge, it will be ignored.
5033 "maxAge"!: string
5034 }
5035
5036 // Pod metadata
5037 #: "io.argoproj.workflow.v1alpha1.Metadata": {
5038 "annotations"?: [string]: string
5039 "labels"?: {
5040 [string]: string
5041 }
5042 }
5043
5044 // MetricLabel is a single label for a prometheus metric
5045 #: "io.argoproj.workflow.v1alpha1.MetricLabel": {
5046 "key"!: string
5047 "value"!: string
5048 }
5049
5050 // Metrics are a list of metrics emitted from a Workflow/Template
5051 #: "io.argoproj.workflow.v1alpha1.Metrics": {
5052 // Prometheus is a list of prometheus metrics to be emitted
5053 // MaxItems is an artificial limit to limit CEL validation costs
5054 // - see note at top of file
5055 "prometheus"!: [...#."io.argoproj.workflow.v1alpha1.Prometheus"]
5056 }
5057
5058 // Mutex holds Mutex configuration
5059 #: "io.argoproj.workflow.v1alpha1.Mutex": {
5060 // Database specifies this is database controlled if this is set
5061 // true
5062 "database"?: bool
5063
5064 // name of the mutex
5065 "name"?: string
5066
5067 // Namespace is the namespace of the mutex, default: [namespace of
5068 // workflow]
5069 "namespace"?: string
5070 }
5071
5072 // MutexHolding describes the mutex and the object which is
5073 // holding it.
5074 #: "io.argoproj.workflow.v1alpha1.MutexHolding": {
5075 // Holder is a reference to the object which holds the Mutex.
5076 // Holding Scenario:
5077 // 1. Current workflow's NodeID which is holding the lock.
5078 // e.g: ${NodeID}
5079 // Waiting Scenario:
5080 // 1. Current workflow or other workflow NodeID which is holding
5081 // the lock.
5082 // e.g: ${WorkflowName}/${NodeID}
5083 "holder"?: string
5084
5085 // Reference for the mutex e.g: ${namespace}/mutex/${mutexName}
5086 "mutex"?: string
5087 }
5088
5089 // MutexStatus contains which objects hold mutex locks, and which
5090 // objects this workflow is waiting on to release locks.
5091 #: "io.argoproj.workflow.v1alpha1.MutexStatus": {
5092 // Holding is a list of mutexes and their respective objects that
5093 // are held by mutex lock for this io.argoproj.workflow.v1alpha1.
5094 "holding"?: [...#."io.argoproj.workflow.v1alpha1.MutexHolding"]
5095
5096 // Waiting is a list of mutexes and their respective objects this
5097 // workflow is waiting for.
5098 "waiting"?: [...#."io.argoproj.workflow.v1alpha1.MutexHolding"]
5099 }
5100
5101 #: "io.argoproj.workflow.v1alpha1.NodeFlag": {
5102 // Hooked tracks whether or not this node was triggered by hook or
5103 // onExit
5104 "hooked"?: bool
5105
5106 // Retried tracks whether or not this node was retried by
5107 // retryStrategy
5108 "retried"?: bool
5109 }
5110
5111 // NodeStatus contains status information about an individual node
5112 // in the workflow
5113 #: "io.argoproj.workflow.v1alpha1.NodeStatus": {
5114 // BoundaryID indicates the node ID of the associated template
5115 // root node in which this node belongs to
5116 "boundaryID"?: string
5117
5118 // Children is a list of child node IDs
5119 "children"?: [...string]
5120
5121 // Daemoned tracks whether or not this node was daemoned and need
5122 // to be terminated
5123 "daemoned"?: bool
5124
5125 // DisplayName is a human readable representation of the node.
5126 // Unique within a template boundary
5127 "displayName"?: string
5128
5129 // EstimatedDuration in seconds.
5130 "estimatedDuration"?: int
5131
5132 // FailedPodRestarts tracks the number of times the pod for this
5133 // node was restarted due to infrastructure failures before the
5134 // main container started.
5135 "failedPodRestarts"?: int
5136
5137 // Time at which this node completed
5138 "finishedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
5139
5140 // HostNodeName name of the Kubernetes node on which the Pod is
5141 // running, if applicable
5142 "hostNodeName"?: string
5143
5144 // ID is a unique identifier of a node within the worklow It is
5145 // implemented as a hash of the node name, which makes the ID
5146 // deterministic
5147 "id"!: string
5148
5149 // Inputs captures input parameter values and artifact locations
5150 // supplied to this template invocation
5151 "inputs"?: #."io.argoproj.workflow.v1alpha1.Inputs"
5152
5153 // MemoizationStatus holds information about cached nodes
5154 "memoizationStatus"?: #."io.argoproj.workflow.v1alpha1.MemoizationStatus"
5155
5156 // A human readable message indicating details about why the node
5157 // is in this condition.
5158 "message"?: string
5159
5160 // Name is unique name in the node tree used to generate the node
5161 // ID
5162 "name"!: string
5163
5164 // NodeFlag tracks some history of node. e.g.) hooked, retried,
5165 // etc.
5166 "nodeFlag"?: #."io.argoproj.workflow.v1alpha1.NodeFlag"
5167
5168 // OutboundNodes tracks the node IDs which are considered
5169 // "outbound" nodes to a template invocation. For every
5170 // invocation of a template, there are nodes which we considered
5171 // as "outbound". Essentially, these are last nodes in the
5172 // execution sequence to run, before the template is considered
5173 // completed. These nodes are then connected as parents to a
5174 // following step.
5175 //
5176 // In the case of single pod steps (i.e. container, script,
5177 // resource templates), this list will be nil since the pod
5178 // itself is already considered the "outbound" node. In the case
5179 // of DAGs, outbound nodes are the "target" tasks (tasks with no
5180 // children). In the case of steps, outbound nodes are all the
5181 // containers involved in the last step group. NOTE: since
5182 // templates are composable, the list of outbound nodes are
5183 // carried upwards when a DAG/steps template invokes another
5184 // DAG/steps template. In other words, the outbound nodes of a
5185 // template, will be a superset of the outbound nodes of its last
5186 // children.
5187 "outboundNodes"?: [...string]
5188
5189 // Outputs captures output parameter values and artifact locations
5190 // produced by this template invocation
5191 "outputs"?: #."io.argoproj.workflow.v1alpha1.Outputs"
5192
5193 // Phase a simple, high-level summary of where the node is in its
5194 // lifecycle. Can be used as a state machine. Will be one of
5195 // these values "Pending", "Running" before the node is
5196 // completed, or "Succeeded", "Skipped", "Failed", "Error", or
5197 // "Omitted" as a final state.
5198 "phase"?: string
5199
5200 // PodIP captures the IP of the pod for daemoned steps
5201 "podIP"?: string
5202
5203 // Progress to completion
5204 "progress"?: string
5205
5206 // ResourcesDuration is indicative, but not accurate, resource
5207 // duration. This is populated when the nodes completes.
5208 "resourcesDuration"?: {
5209 [string]: int
5210 }
5211
5212 // RestartingPodUID tracks the UID of the pod that is currently
5213 // being restarted. This prevents duplicate restart attempts when
5214 // the controller processes the same failed pod multiple times.
5215 // Cleared when the replacement pod starts running.
5216 "restartingPodUID"?: string
5217
5218 // Time at which this node started
5219 "startedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
5220
5221 // SynchronizationStatus is the synchronization status of the node
5222 "synchronizationStatus"?: #."io.argoproj.workflow.v1alpha1.NodeSynchronizationStatus"
5223
5224 // TaskResultSynced is used to determine if the node's output has
5225 // been received
5226 "taskResultSynced"?: bool
5227
5228 // TemplateName is the template name which this node corresponds
5229 // to. Not applicable to virtual nodes (e.g. Retry, StepGroup)
5230 "templateName"?: string
5231
5232 // TemplateRef is the reference to the template resource which
5233 // this node corresponds to. Not applicable to virtual nodes
5234 // (e.g. Retry, StepGroup)
5235 "templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
5236
5237 // TemplateScope is the template scope in which the template of
5238 // this node was retrieved.
5239 "templateScope"?: string
5240
5241 // Type indicates type of node
5242 "type"!: string
5243 }
5244
5245 // NodeSynchronizationStatus stores the status of a node
5246 #: "io.argoproj.workflow.v1alpha1.NodeSynchronizationStatus": {
5247 // Waiting is the name of the lock that this node is waiting for
5248 "waiting"?: string
5249 }
5250
5251 // NoneStrategy indicates to skip tar process and upload the files
5252 // or directory tree as independent files. Note that if the
5253 // artifact is a directory, the artifact driver must support the
5254 // ability to save/load the directory appropriately.
5255 #: "io.argoproj.workflow.v1alpha1.NoneStrategy": {}
5256
5257 // OAuth2Auth holds all information for client authentication via
5258 // OAuth2 tokens
5259 #: "io.argoproj.workflow.v1alpha1.OAuth2Auth": {
5260 "clientIDSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
5261 "clientSecretSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
5262 "endpointParams"?: [...#."io.argoproj.workflow.v1alpha1.OAuth2EndpointParam"]
5263 "scopes"?: [...string]
5264 "tokenURLSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
5265 }
5266
5267 // EndpointParam is for requesting optional fields that should be
5268 // sent in the oauth request
5269 #: "io.argoproj.workflow.v1alpha1.OAuth2EndpointParam": {
5270 // Name is the header name
5271 "key"!: string
5272
5273 // Value is the literal value to use for the header
5274 "value"?: string
5275 }
5276
5277 // OSSArtifact is the location of an Alibaba Cloud OSS artifact
5278 #: "io.argoproj.workflow.v1alpha1.OSSArtifact": {
5279 // AccessKeySecret is the secret selector to the bucket's access
5280 // key
5281 "accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
5282
5283 // Bucket is the name of the bucket
5284 "bucket"?: string
5285
5286 // CreateBucketIfNotPresent tells the driver to attempt to create
5287 // the OSS bucket for output artifacts, if it doesn't exist
5288 "createBucketIfNotPresent"?: bool
5289
5290 // Endpoint is the hostname of the bucket endpoint
5291 "endpoint"?: string
5292
5293 // Key is the path in the bucket where the artifact resides
5294 "key"!: string
5295
5296 // LifecycleRule specifies how to manage bucket's lifecycle
5297 "lifecycleRule"?: #."io.argoproj.workflow.v1alpha1.OSSLifecycleRule"
5298
5299 // SecretKeySecret is the secret selector to the bucket's secret
5300 // key
5301 "secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
5302
5303 // SecurityToken is the user's temporary security token. For more
5304 // details, check out:
5305 // https://www.alibabacloud.com/help/doc-detail/100624.htm
5306 "securityToken"?: string
5307
5308 // UseSDKCreds tells the driver to figure out credentials based on
5309 // sdk defaults.
5310 "useSDKCreds"?: bool
5311 }
5312
5313 // OSSArtifactRepository defines the controller configuration for
5314 // an OSS artifact repository
5315 #: "io.argoproj.workflow.v1alpha1.OSSArtifactRepository": {
5316 // AccessKeySecret is the secret selector to the bucket's access
5317 // key
5318 "accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
5319
5320 // Bucket is the name of the bucket
5321 "bucket"?: string
5322
5323 // CreateBucketIfNotPresent tells the driver to attempt to create
5324 // the OSS bucket for output artifacts, if it doesn't exist
5325 "createBucketIfNotPresent"?: bool
5326
5327 // Endpoint is the hostname of the bucket endpoint
5328 "endpoint"?: string
5329
5330 // KeyFormat defines the format of how to store keys and can
5331 // reference workflow variables.
5332 "keyFormat"?: string
5333
5334 // LifecycleRule specifies how to manage bucket's lifecycle
5335 "lifecycleRule"?: #."io.argoproj.workflow.v1alpha1.OSSLifecycleRule"
5336
5337 // SecretKeySecret is the secret selector to the bucket's secret
5338 // key
5339 "secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
5340
5341 // SecurityToken is the user's temporary security token. For more
5342 // details, check out:
5343 // https://www.alibabacloud.com/help/doc-detail/100624.htm
5344 "securityToken"?: string
5345
5346 // UseSDKCreds tells the driver to figure out credentials based on
5347 // sdk defaults.
5348 "useSDKCreds"?: bool
5349 }
5350
5351 // OSSLifecycleRule specifies how to manage bucket's lifecycle
5352 #: "io.argoproj.workflow.v1alpha1.OSSLifecycleRule": {
5353 // MarkDeletionAfterDays is the number of days before we delete
5354 // objects in the bucket
5355 "markDeletionAfterDays"?: int
5356
5357 // MarkInfrequentAccessAfterDays is the number of days before we
5358 // convert the objects in the bucket to Infrequent Access (IA)
5359 // storage type
5360 "markInfrequentAccessAfterDays"?: int
5361 }
5362
5363 // Outputs hold parameters, artifacts, and results from a step
5364 #: "io.argoproj.workflow.v1alpha1.Outputs": {
5365 // Artifacts holds the list of output artifacts produced by a step
5366 "artifacts"?: [...#."io.argoproj.workflow.v1alpha1.Artifact"]
5367
5368 // ExitCode holds the exit code of a script template
5369 "exitCode"?: string
5370
5371 // Parameters holds the list of output parameters produced by a
5372 // step
5373 "parameters"?: [...#."io.argoproj.workflow.v1alpha1.Parameter"]
5374
5375 // Result holds the result (stdout) of a script or container
5376 // template, or the response body of an HTTP template
5377 "result"?: string
5378 }
5379
5380 #: "io.argoproj.workflow.v1alpha1.ParallelSteps": [...#."io.argoproj.workflow.v1alpha1.WorkflowStep"]
5381
5382 // Parameter indicate a passed string parameter to a service
5383 // template with an optional default value
5384 #: "io.argoproj.workflow.v1alpha1.Parameter": {
5385 // Default is the default value to use for an input parameter if a
5386 // value was not supplied
5387 "default"?: string
5388
5389 // Description is the parameter description
5390 "description"?: string
5391
5392 // Enum holds a list of string values to choose from, for the
5393 // actual value of the parameter
5394 "enum"?: [...string]
5395
5396 // GlobalName exports an output parameter to the global scope,
5397 // making it available as
5398 // '{{io.argoproj.workflow.v1alpha1.outputs.parameters.XXXX}} and
5399 // in workflow.status.outputs.parameters
5400 "globalName"?: string
5401
5402 // Name is the parameter name
5403 "name"!: string
5404
5405 // Value is the literal value to use for the parameter. If
5406 // specified in the context of an input parameter, any passed
5407 // values take precedence over the specified value
5408 "value"?: string
5409
5410 // ValueFrom is the source for the output parameter's value
5411 "valueFrom"?: #."io.argoproj.workflow.v1alpha1.ValueFrom"
5412 }
5413
5414 // Plugin is an Object with exactly one key
5415 #: "io.argoproj.workflow.v1alpha1.Plugin": {}
5416
5417 // PluginArtifact is the location of a plugin artifact
5418 #: "io.argoproj.workflow.v1alpha1.PluginArtifact": {
5419 // Configuration is the plugin defined configuration for the
5420 // artifact driver plugin
5421 "configuration"?: string
5422
5423 // ConnectionTimeoutSeconds is the timeout for the artifact driver
5424 // connection, overriding the driver's timeout
5425 "connectionTimeoutSeconds"?: int
5426
5427 // Key is the path in the artifact repository where the artifact
5428 // resides
5429 "key"!: string
5430
5431 // Name is the name of the artifact driver plugin
5432 "name"?: string
5433 }
5434
5435 // PluginArtifactRepository defines the controller configuration
5436 // for a plugin artifact repository
5437 #: "io.argoproj.workflow.v1alpha1.PluginArtifactRepository": {
5438 "configuration"!: string
5439 "keyFormat"?: string
5440 "name"!: string
5441 }
5442
5443 // PodGC describes how to delete completed pods as they complete
5444 #: "io.argoproj.workflow.v1alpha1.PodGC": {
5445 // DeleteDelayDuration specifies the duration before pods in the
5446 // GC queue get deleted.
5447 "deleteDelayDuration"?: string
5448
5449 // LabelSelector is the label selector to check if the pods match
5450 // the labels before being added to the pod GC queue.
5451 "labelSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
5452
5453 // Strategy is the strategy to use. One of "OnPodCompletion",
5454 // "OnPodSuccess", "OnWorkflowCompletion", "OnWorkflowSuccess".
5455 // If unset, does not delete Pods
5456 "strategy"?: string
5457 }
5458
5459 // Prometheus is a prometheus metric to be emitted
5460 #: "io.argoproj.workflow.v1alpha1.Prometheus": {
5461 // Counter is a counter metric
5462 "counter"?: #."io.argoproj.workflow.v1alpha1.Counter"
5463
5464 // Gauge is a gauge metric
5465 "gauge"?: #."io.argoproj.workflow.v1alpha1.Gauge"
5466
5467 // Help is a string that describes the metric
5468 "help"!: string
5469
5470 // Histogram is a histogram metric
5471 "histogram"?: #."io.argoproj.workflow.v1alpha1.Histogram"
5472
5473 // Labels is a list of metric labels
5474 "labels"?: [...#."io.argoproj.workflow.v1alpha1.MetricLabel"]
5475
5476 // Name is the name of the metric
5477 "name"!: string
5478
5479 // When is a conditional statement that decides when to emit the
5480 // metric
5481 "when"?: string
5482 }
5483
5484 // RawArtifact allows raw string content to be placed as an
5485 // artifact in a container
5486 #: "io.argoproj.workflow.v1alpha1.RawArtifact": {
5487 // Data is the string contents of the artifact
5488 "data"!: string
5489 }
5490
5491 // ResourceTemplate is a template subtype to manipulate kubernetes
5492 // resources
5493 #: "io.argoproj.workflow.v1alpha1.ResourceTemplate": {
5494 // Action is the action to perform to the resource. Must be one
5495 // of: get, create, apply, delete, replace, patch
5496 "action"!: string
5497
5498 // FailureCondition is a label selector expression which describes
5499 // the conditions of the k8s resource in which the step was
5500 // considered failed
5501 "failureCondition"?: string
5502
5503 // Flags is a set of additional options passed to kubectl before
5504 // submitting a resource I.e. to disable resource validation:
5505 // flags: [
5506 // "--validate=false" # disable resource validation
5507 // ]
5508 "flags"?: [...string]
5509
5510 // Manifest contains the kubernetes manifest
5511 "manifest"?: string
5512
5513 // ManifestFrom is the source for a single kubernetes manifest
5514 "manifestFrom"?: #."io.argoproj.workflow.v1alpha1.ManifestFrom"
5515
5516 // MergeStrategy is the strategy used to merge a patch. It
5517 // defaults to "strategic" Must be one of: strategic, merge, json
5518 "mergeStrategy"?: string
5519
5520 // SetOwnerReference sets the reference to the workflow on the
5521 // OwnerReference of generated resource.
5522 "setOwnerReference"?: bool
5523
5524 // SuccessCondition is a label selector expression which describes
5525 // the conditions of the k8s resource in which it is acceptable
5526 // to proceed to the following step
5527 "successCondition"?: string
5528 }
5529
5530 #: "io.argoproj.workflow.v1alpha1.ResubmitArchivedWorkflowRequest": {
5531 "memoized"?: bool
5532 "name"?: string
5533 "namespace"?: string
5534 "parameters"?: [...string]
5535 "uid"?: string
5536 }
5537
5538 // RetryAffinity prevents running steps on the same host.
5539 #: "io.argoproj.workflow.v1alpha1.RetryAffinity": "nodeAntiAffinity"?: #."io.argoproj.workflow.v1alpha1.RetryNodeAntiAffinity"
5540
5541 #: "io.argoproj.workflow.v1alpha1.RetryArchivedWorkflowRequest": {
5542 "name"?: string
5543 "namespace"?: string
5544 "nodeFieldSelector"?: string
5545 "parameters"?: [...string]
5546 "restartSuccessful"?: bool
5547 "uid"?: string
5548 }
5549
5550 // RetryNodeAntiAffinity is a placeholder for future expansion,
5551 // only empty nodeAntiAffinity is allowed. In order to prevent
5552 // running steps on the same host, it uses
5553 // "kubernetes.io/hostname".
5554 #: "io.argoproj.workflow.v1alpha1.RetryNodeAntiAffinity": {}
5555
5556 // RetryStrategy provides controls on how to retry a workflow step
5557 #: "io.argoproj.workflow.v1alpha1.RetryStrategy": {
5558 // Affinity prevents running workflow's step on the same host
5559 "affinity"?: #."io.argoproj.workflow.v1alpha1.RetryAffinity"
5560
5561 // Backoff is a backoff strategy
5562 "backoff"?: #."io.argoproj.workflow.v1alpha1.Backoff"
5563
5564 // Expression is a condition expression for when a node will be
5565 // retried. If it evaluates to false, the node will not be
5566 // retried and the retry strategy will be ignored
5567 "expression"?: string
5568
5569 // Limit is the maximum number of retry attempts when retrying a
5570 // container. It does not include the original container; the
5571 // maximum number of total attempts will be `limit + 1`.
5572 "limit"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
5573
5574 // RetryPolicy is a policy of NodePhase statuses that will be
5575 // retried
5576 "retryPolicy"?: string
5577 }
5578
5579 // S3Artifact is the location of an S3 artifact
5580 #: "io.argoproj.workflow.v1alpha1.S3Artifact": {
5581 // AccessKeySecret is the secret selector to the bucket's access
5582 // key
5583 "accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
5584
5585 // Bucket is the name of the bucket
5586 "bucket"?: string
5587
5588 // CASecret specifies the secret that contains the CA, used to
5589 // verify the TLS connection
5590 "caSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
5591
5592 // CreateBucketIfNotPresent tells the driver to attempt to create
5593 // the S3 bucket for output artifacts, if it doesn't exist.
5594 // Setting Enabled Encryption will apply either SSE-S3 to the
5595 // bucket if KmsKeyId is not set or SSE-KMS if it is.
5596 "createBucketIfNotPresent"?: #."io.argoproj.workflow.v1alpha1.CreateS3BucketOptions"
5597 "encryptionOptions"?: #."io.argoproj.workflow.v1alpha1.S3EncryptionOptions"
5598
5599 // Endpoint is the hostname of the bucket endpoint
5600 "endpoint"?: string
5601
5602 // Insecure will connect to the service with TLS
5603 "insecure"?: bool
5604
5605 // Key is the key in the bucket where the artifact resides
5606 "key"?: string
5607
5608 // Region contains the optional bucket region
5609 "region"?: string
5610
5611 // RoleARN is the Amazon Resource Name (ARN) of the role to
5612 // assume.
5613 "roleARN"?: string
5614
5615 // SecretKeySecret is the secret selector to the bucket's secret
5616 // key
5617 "secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
5618
5619 // SessionTokenSecret is used for ephemeral credentials like an
5620 // IAM assume role or S3 access grant
5621 "sessionTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
5622
5623 // UseSDKCreds tells the driver to figure out credentials based on
5624 // sdk defaults.
5625 "useSDKCreds"?: bool
5626 }
5627
5628 // S3ArtifactRepository defines the controller configuration for
5629 // an S3 artifact repository
5630 #: "io.argoproj.workflow.v1alpha1.S3ArtifactRepository": {
5631 // AccessKeySecret is the secret selector to the bucket's access
5632 // key
5633 "accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
5634
5635 // Bucket is the name of the bucket
5636 "bucket"?: string
5637
5638 // CASecret specifies the secret that contains the CA, used to
5639 // verify the TLS connection
5640 "caSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
5641
5642 // CreateBucketIfNotPresent tells the driver to attempt to create
5643 // the S3 bucket for output artifacts, if it doesn't exist.
5644 // Setting Enabled Encryption will apply either SSE-S3 to the
5645 // bucket if KmsKeyId is not set or SSE-KMS if it is.
5646 "createBucketIfNotPresent"?: #."io.argoproj.workflow.v1alpha1.CreateS3BucketOptions"
5647 "encryptionOptions"?: #."io.argoproj.workflow.v1alpha1.S3EncryptionOptions"
5648
5649 // Endpoint is the hostname of the bucket endpoint
5650 "endpoint"?: string
5651
5652 // Insecure will connect to the service with TLS
5653 "insecure"?: bool
5654
5655 // KeyFormat defines the format of how to store keys and can
5656 // reference workflow variables.
5657 "keyFormat"?: string
5658
5659 // KeyPrefix is prefix used as part of the bucket key in which the
5660 // controller will store artifacts. DEPRECATED. Use KeyFormat
5661 // instead
5662 "keyPrefix"?: string
5663
5664 // Region contains the optional bucket region
5665 "region"?: string
5666
5667 // RoleARN is the Amazon Resource Name (ARN) of the role to
5668 // assume.
5669 "roleARN"?: string
5670
5671 // SecretKeySecret is the secret selector to the bucket's secret
5672 // key
5673 "secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
5674
5675 // SessionTokenSecret is used for ephemeral credentials like an
5676 // IAM assume role or S3 access grant
5677 "sessionTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
5678
5679 // UseSDKCreds tells the driver to figure out credentials based on
5680 // sdk defaults.
5681 "useSDKCreds"?: bool
5682 }
5683
5684 // S3EncryptionOptions used to determine encryption options during
5685 // s3 operations
5686 #: "io.argoproj.workflow.v1alpha1.S3EncryptionOptions": {
5687 // EnableEncryption tells the driver to encrypt objects if set to
5688 // true. If kmsKeyId and serverSideCustomerKeySecret are not set,
5689 // SSE-S3 will be used
5690 "enableEncryption"?: bool
5691
5692 // KmsEncryptionContext is a json blob that contains an encryption
5693 // context. See
5694 // https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
5695 // for more information
5696 "kmsEncryptionContext"?: string
5697
5698 // KMSKeyId tells the driver to encrypt the object using the
5699 // specified KMS Key.
5700 "kmsKeyId"?: string
5701
5702 // ServerSideCustomerKeySecret tells the driver to encrypt the
5703 // output artifacts using SSE-C with the specified secret.
5704 "serverSideCustomerKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
5705 }
5706
5707 // ScriptTemplate is a template subtype to enable scripting
5708 // through code steps
5709 #: "io.argoproj.workflow.v1alpha1.ScriptTemplate": {
5710 // Arguments to the entrypoint. The container image's CMD is used
5711 // if this is not provided. Variable references $(VAR_NAME) are
5712 // expanded using the container's environment. If a variable
5713 // cannot be resolved, the reference in the input string will be
5714 // unchanged. Double $$ are reduced to a single $, which allows
5715 // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
5716 // produce the string literal "$(VAR_NAME)". Escaped references
5717 // will never be expanded, regardless of whether the variable
5718 // exists or not. Cannot be updated. More info:
5719 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
5720 "args"?: [...string]
5721
5722 // Entrypoint array. Not executed within a shell. The container
5723 // image's ENTRYPOINT is used if this is not provided. Variable
5724 // references $(VAR_NAME) are expanded using the container's
5725 // environment. If a variable cannot be resolved, the reference
5726 // in the input string will be unchanged. Double $$ are reduced
5727 // to a single $, which allows for escaping the $(VAR_NAME)
5728 // syntax: i.e. "$$(VAR_NAME)" will produce the string literal
5729 // "$(VAR_NAME)". Escaped references will never be expanded,
5730 // regardless of whether the variable exists or not. Cannot be
5731 // updated. More info:
5732 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
5733 "command"?: [...string]
5734
5735 // List of environment variables to set in the container. Cannot
5736 // be updated.
5737 "env"?: [...#."io.k8s.api.core.v1.EnvVar"]
5738
5739 // List of sources to populate environment variables in the
5740 // container. The keys defined within a source must be a
5741 // C_IDENTIFIER. All invalid keys will be reported as an event
5742 // when the container is starting. When a key exists in multiple
5743 // sources, the value associated with the last source will take
5744 // precedence. Values defined by an Env with a duplicate key will
5745 // take precedence. Cannot be updated.
5746 "envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
5747
5748 // Container image name. More info:
5749 // https://kubernetes.io/docs/concepts/containers/images This
5750 // field is optional to allow higher level config management to
5751 // default or override container images in workload controllers
5752 // like Deployments and StatefulSets.
5753 "image"!: string
5754
5755 // Image pull policy. One of Always, Never, IfNotPresent. Defaults
5756 // to Always if :latest tag is specified, or IfNotPresent
5757 // otherwise. Cannot be updated. More info:
5758 // https://kubernetes.io/docs/concepts/containers/images#updating-images
5759 "imagePullPolicy"?: string
5760
5761 // Actions that the management system should take in response to
5762 // container lifecycle events. Cannot be updated.
5763 "lifecycle"?: #."io.k8s.api.core.v1.Lifecycle"
5764
5765 // Periodic probe of container liveness. Container will be
5766 // restarted if the probe fails. Cannot be updated. More info:
5767 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5768 "livenessProbe"?: #."io.k8s.api.core.v1.Probe"
5769
5770 // Name of the container specified as a DNS_LABEL. Each container
5771 // in a pod must have a unique name (DNS_LABEL). Cannot be
5772 // updated.
5773 "name"?: string
5774
5775 // List of ports to expose from the container. Not specifying a
5776 // port here DOES NOT prevent that port from being exposed. Any
5777 // port which is listening on the default "0.0.0.0" address
5778 // inside a container will be accessible from the network.
5779 // Modifying this array with strategic merge patch may corrupt
5780 // the data. For more information See
5781 // https://github.com/kubernetes/kubernetes/issues/108255. Cannot
5782 // be updated.
5783 "ports"?: [...#."io.k8s.api.core.v1.ContainerPort"]
5784
5785 // Periodic probe of container service readiness. Container will
5786 // be removed from service endpoints if the probe fails. Cannot
5787 // be updated. More info:
5788 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5789 "readinessProbe"?: #."io.k8s.api.core.v1.Probe"
5790
5791 // Resources resize policy for the container.
5792 "resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
5793
5794 // Compute Resources required by this container. Cannot be
5795 // updated. More info:
5796 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
5797 "resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
5798
5799 // RestartPolicy defines the restart behavior of individual
5800 // containers in a pod. This field may only be set for init
5801 // containers, and the only allowed value is "Always". For
5802 // non-init containers or when this field is not specified, the
5803 // restart behavior is defined by the Pod's restart policy and
5804 // the container type. Setting the RestartPolicy as "Always" for
5805 // the init container will have the following effect: this init
5806 // container will be continually restarted on exit until all
5807 // regular containers have terminated. Once all regular
5808 // containers have completed, all init containers with
5809 // restartPolicy "Always" will be shut down. This lifecycle
5810 // differs from normal init containers and is often referred to
5811 // as a "sidecar" container. Although this init container still
5812 // starts in the init container sequence, it does not wait for
5813 // the container to complete before proceeding to the next init
5814 // container. Instead, the next init container starts immediately
5815 // after this init container is started, or after any
5816 // startupProbe has successfully completed.
5817 "restartPolicy"?: string
5818
5819 // SecurityContext defines the security options the container
5820 // should be run with. If set, the fields of SecurityContext
5821 // override the equivalent fields of PodSecurityContext. More
5822 // info:
5823 // https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
5824 "securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
5825
5826 // Source contains the source code of the script to execute
5827 "source"!: string
5828
5829 // StartupProbe indicates that the Pod has successfully
5830 // initialized. If specified, no other probes are executed until
5831 // this completes successfully. If this probe fails, the Pod will
5832 // be restarted, just as if the livenessProbe failed. This can be
5833 // used to provide different probe parameters at the beginning of
5834 // a Pod's lifecycle, when it might take a long time to load data
5835 // or warm a cache, than during steady-state operation. This
5836 // cannot be updated. More info:
5837 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5838 "startupProbe"?: #."io.k8s.api.core.v1.Probe"
5839
5840 // Whether this container should allocate a buffer for stdin in
5841 // the container runtime. If this is not set, reads from stdin in
5842 // the container will always result in EOF. Default is false.
5843 "stdin"?: bool
5844
5845 // Whether the container runtime should close the stdin channel
5846 // after it has been opened by a single attach. When stdin is
5847 // true the stdin stream will remain open across multiple attach
5848 // sessions. If stdinOnce is set to true, stdin is opened on
5849 // container start, is empty until the first client attaches to
5850 // stdin, and then remains open and accepts data until the client
5851 // disconnects, at which time stdin is closed and remains closed
5852 // until the container is restarted. If this flag is false, a
5853 // container processes that reads from stdin will never receive
5854 // an EOF. Default is false
5855 "stdinOnce"?: bool
5856
5857 // Optional: Path at which the file to which the container's
5858 // termination message will be written is mounted into the
5859 // container's filesystem. Message written is intended to be
5860 // brief final status, such as an assertion failure message. Will
5861 // be truncated by the node if greater than 4096 bytes. The total
5862 // message length across all containers will be limited to 12kb.
5863 // Defaults to /dev/termination-log. Cannot be updated.
5864 "terminationMessagePath"?: string
5865
5866 // Indicate how the termination message should be populated. File
5867 // will use the contents of terminationMessagePath to populate
5868 // the container status message on both success and failure.
5869 // FallbackToLogsOnError will use the last chunk of container log
5870 // output if the termination message file is empty and the
5871 // container exited with an error. The log output is limited to
5872 // 2048 bytes or 80 lines, whichever is smaller. Defaults to
5873 // File. Cannot be updated.
5874 "terminationMessagePolicy"?: string
5875
5876 // Whether this container should allocate a TTY for itself, also
5877 // requires 'stdin' to be true. Default is false.
5878 "tty"?: bool
5879
5880 // volumeDevices is the list of block devices to be used by the
5881 // container.
5882 "volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"]
5883
5884 // Pod volumes to mount into the container's filesystem. Cannot be
5885 // updated.
5886 "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
5887
5888 // Container's working directory. If not specified, the container
5889 // runtime's default will be used, which might be configured in
5890 // the container image. Cannot be updated.
5891 "workingDir"?: string
5892 }
5893
5894 #: "io.argoproj.workflow.v1alpha1.SemaphoreHolding": {
5895 // Holders stores the list of current holder names in the
5896 // io.argoproj.workflow.v1alpha1.
5897 "holders"?: [...string]
5898
5899 // Semaphore stores the semaphore name.
5900 "semaphore"?: string
5901 }
5902
5903 // SemaphoreRef is a reference of Semaphore
5904 #: "io.argoproj.workflow.v1alpha1.SemaphoreRef": {
5905 // ConfigMapKeyRef is a configmap selector for Semaphore
5906 // configuration
5907 "configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
5908
5909 // SyncDatabaseRef is a database reference for Semaphore
5910 // configuration
5911 "database"?: #."io.argoproj.workflow.v1alpha1.SyncDatabaseRef"
5912
5913 // Namespace is the namespace of the configmap, default:
5914 // [namespace of workflow]
5915 "namespace"?: string
5916 }
5917
5918 #: "io.argoproj.workflow.v1alpha1.SemaphoreStatus": {
5919 // Holding stores the list of resource acquired synchronization
5920 // lock for workflows.
5921 "holding"?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreHolding"]
5922
5923 // Waiting indicates the list of current synchronization lock
5924 // holders.
5925 "waiting"?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreHolding"]
5926 }
5927
5928 // Sequence expands a workflow step into numeric range
5929 #: "io.argoproj.workflow.v1alpha1.Sequence": {
5930 // Count is number of elements in the sequence (default: 0). Not
5931 // to be used with end
5932 "count"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
5933
5934 // Number at which to end the sequence (default: 0). Not to be
5935 // used with Count
5936 "end"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
5937
5938 // Format is a printf format string to format the value in the
5939 // sequence
5940 "format"?: string
5941
5942 // Number at which to start the sequence (default: 0)
5943 "start"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
5944 }
5945
5946 // StopStrategy defines if the CronWorkflow should stop scheduling
5947 // based on an expression. v3.6 and after
5948 #: "io.argoproj.workflow.v1alpha1.StopStrategy": {
5949 // v3.6 and after: Expression is an expression that stops
5950 // scheduling workflows when true. Use the variables
5951 // `cronworkflow`.`failed` or `cronworkflow`.`succeeded` to
5952 // access the number of failed or successful child workflows.
5953 "expression"!: string
5954 }
5955
5956 #: "io.argoproj.workflow.v1alpha1.Submit": {
5957 // Arguments extracted from the event and then set as arguments to
5958 // the workflow created.
5959 "arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
5960
5961 // Metadata optional means to customize select fields of the
5962 // workflow metadata
5963 "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
5964
5965 // WorkflowTemplateRef the workflow template to submit
5966 "workflowTemplateRef"!: #."io.argoproj.workflow.v1alpha1.WorkflowTemplateRef"
5967 }
5968
5969 // SubmitOpts are workflow submission options
5970 #: "io.argoproj.workflow.v1alpha1.SubmitOpts": {
5971 // Annotations adds to metadata.labels
5972 "annotations"?: string
5973
5974 // DryRun validates the workflow on the client-side without
5975 // creating it. This option is not supported in API
5976 "dryRun"?: bool
5977
5978 // Entrypoint overrides spec.entrypoint
5979 "entryPoint"?: string
5980
5981 // GenerateName overrides metadata.generateName
5982 "generateName"?: string
5983
5984 // Labels adds to metadata.labels
5985 "labels"?: string
5986
5987 // Name overrides metadata.name
5988 "name"?: string
5989
5990 // OwnerReference creates a metadata.ownerReference
5991 "ownerReference"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference"
5992
5993 // Parameters passes input parameters to workflow
5994 "parameters"?: [...string]
5995
5996 // Set the podPriorityClassName of the workflow
5997 "podPriorityClassName"?: string
5998
5999 // Priority is used if controller is configured to process limited
6000 // number of workflows in parallel, higher priority workflows are
6001 // processed first.
6002 "priority"?: int
6003
6004 // ServerDryRun validates the workflow on the server-side without
6005 // creating it
6006 "serverDryRun"?: bool
6007
6008 // ServiceAccount runs all pods in the workflow using specified
6009 // ServiceAccount.
6010 "serviceAccount"?: string
6011 }
6012
6013 // SuppliedValueFrom is a placeholder for a value to be filled in
6014 // directly, either through the CLI, API, etc.
6015 #: "io.argoproj.workflow.v1alpha1.SuppliedValueFrom": {}
6016
6017 // SuspendTemplate is a template subtype to suspend a workflow at
6018 // a predetermined point in time
6019 #: "io.argoproj.workflow.v1alpha1.SuspendTemplate": {
6020 // Duration is the seconds to wait before automatically resuming a
6021 // template. Must be a string. Default unit is seconds. Could
6022 // also be a Duration, e.g.: "2m", "6h"
6023 "duration"?: string
6024 }
6025
6026 #: "io.argoproj.workflow.v1alpha1.SyncDatabaseRef": "key"!: string
6027
6028 // Synchronization holds synchronization lock configuration
6029 #: "io.argoproj.workflow.v1alpha1.Synchronization": {
6030 // v3.6 and after: Mutexes holds the list of Mutex lock details
6031 "mutexes"?: [...#."io.argoproj.workflow.v1alpha1.Mutex"]
6032
6033 // v3.6 and after: Semaphores holds the list of Semaphores
6034 // configuration
6035 "semaphores"?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreRef"]
6036 }
6037
6038 // SynchronizationStatus stores the status of semaphore and mutex.
6039 #: "io.argoproj.workflow.v1alpha1.SynchronizationStatus": {
6040 // Mutex stores this workflow's mutex holder details
6041 "mutex"?: #."io.argoproj.workflow.v1alpha1.MutexStatus"
6042
6043 // Semaphore stores this workflow's Semaphore holder details
6044 "semaphore"?: #."io.argoproj.workflow.v1alpha1.SemaphoreStatus"
6045 }
6046
6047 // TTLStrategy is the strategy for the time to live depending on
6048 // if the workflow succeeded or failed
6049 #: "io.argoproj.workflow.v1alpha1.TTLStrategy": {
6050 // SecondsAfterCompletion is the number of seconds to live after
6051 // completion
6052 "secondsAfterCompletion"?: int
6053
6054 // SecondsAfterFailure is the number of seconds to live after
6055 // failure
6056 "secondsAfterFailure"?: int
6057
6058 // SecondsAfterSuccess is the number of seconds to live after
6059 // success
6060 "secondsAfterSuccess"?: int
6061 }
6062
6063 // TarStrategy will tar and gzip the file or directory when saving
6064 #: "io.argoproj.workflow.v1alpha1.TarStrategy": {
6065 // CompressionLevel specifies the gzip compression level to use
6066 // for the artifact. Defaults to gzip.DefaultCompression.
6067 "compressionLevel"?: int
6068 }
6069
6070 // Template is a reusable and composable unit of execution in a
6071 // workflow
6072 #: "io.argoproj.workflow.v1alpha1.Template": {
6073 // Optional duration in seconds relative to the StartTime that the
6074 // pod may be active on a node before the system actively tries
6075 // to terminate the pod; value must be positive integer This
6076 // field is only applicable to container and script templates.
6077 "activeDeadlineSeconds"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
6078
6079 // Affinity sets the pod's scheduling constraints Overrides the
6080 // affinity set at the workflow level (if any)
6081 "affinity"?: #."io.k8s.api.core.v1.Affinity"
6082
6083 // Annotations is a list of annotations to add to the template at
6084 // runtime
6085 "annotations"?: {
6086 [string]: string
6087 }
6088
6089 // Location in which all files related to the step will be stored
6090 // (logs, artifacts, etc...). Can be overridden by individual
6091 // items in Outputs. If omitted, will use the default artifact
6092 // repository location configured in the controller, appended
6093 // with the <workflowname>/<nodename> in the key.
6094 "archiveLocation"?: #."io.argoproj.workflow.v1alpha1.ArtifactLocation"
6095
6096 // AutomountServiceAccountToken indicates whether a service
6097 // account token should be automatically mounted in pods.
6098 // ServiceAccountName of ExecutorConfig must be specified if this
6099 // value is false.
6100 "automountServiceAccountToken"?: bool
6101
6102 // Container is the main container image to run in the pod
6103 "container"?: #."io.k8s.api.core.v1.Container"
6104
6105 // ContainerSet groups multiple containers within a single pod.
6106 "containerSet"?: #."io.argoproj.workflow.v1alpha1.ContainerSetTemplate"
6107
6108 // Daemon will allow a workflow to proceed to the next step so
6109 // long as the container reaches readiness
6110 "daemon"?: bool
6111
6112 // DAG template subtype which runs a DAG
6113 "dag"?: #."io.argoproj.workflow.v1alpha1.DAGTemplate"
6114
6115 // Data is a data template
6116 "data"?: #."io.argoproj.workflow.v1alpha1.Data"
6117
6118 // Executor holds configurations of the executor container.
6119 "executor"?: #."io.argoproj.workflow.v1alpha1.ExecutorConfig"
6120
6121 // FailFast, if specified, will fail this template if any of its
6122 // child pods has failed. This is useful for when this template
6123 // is expanded with `withItems`, etc.
6124 "failFast"?: bool
6125
6126 // HostAliases is an optional list of hosts and IPs that will be
6127 // injected into the pod spec
6128 "hostAliases"?: [...#."io.k8s.api.core.v1.HostAlias"]
6129
6130 // HTTP makes a HTTP request
6131 "http"?: #."io.argoproj.workflow.v1alpha1.HTTP"
6132
6133 // InitContainers is a list of containers which run before the
6134 // main container.
6135 "initContainers"?: [...#."io.argoproj.workflow.v1alpha1.UserContainer"]
6136
6137 // Inputs describe what inputs parameters and artifacts are
6138 // supplied to this template
6139 "inputs"?: #."io.argoproj.workflow.v1alpha1.Inputs"
6140
6141 // Memoize allows templates to use outputs generated from already
6142 // executed templates
6143 "memoize"?: #."io.argoproj.workflow.v1alpha1.Memoize"
6144
6145 // Metadata sets the pods's metadata, i.e. annotations and labels
6146 "metadata"?: #."io.argoproj.workflow.v1alpha1.Metadata"
6147
6148 // Metrics are a list of metrics emitted from this template
6149 "metrics"?: #."io.argoproj.workflow.v1alpha1.Metrics"
6150
6151 // Name is the name of the template
6152 "name"?: string
6153
6154 // NodeSelector is a selector to schedule this step of the
6155 // workflow to be run on the selected node(s). Overrides the
6156 // selector set at the workflow level.
6157 "nodeSelector"?: {
6158 [string]: string
6159 }
6160
6161 // Outputs describe the parameters and artifacts that this
6162 // template produces
6163 "outputs"?: #."io.argoproj.workflow.v1alpha1.Outputs"
6164
6165 // Parallelism limits the max total parallel pods that can execute
6166 // at the same time within the boundaries of this template
6167 // invocation. If additional steps/dag templates are invoked, the
6168 // pods created by those templates will not be counted towards
6169 // this total.
6170 "parallelism"?: int
6171
6172 // Plugin is a plugin template Note: the structure of a plugin
6173 // template is free-form, so we need to have
6174 // "x-kubernetes-preserve-unknown-fields: true" in the validation
6175 // schema.
6176 "plugin"?: #."io.argoproj.workflow.v1alpha1.Plugin"
6177
6178 // PodSpecPatch holds strategic merge patch to apply against the
6179 // pod spec. Allows parameterization of container fields which
6180 // are not strings (e.g. resource limits).
6181 "podSpecPatch"?: string
6182
6183 // PriorityClassName to apply to workflow pods.
6184 "priorityClassName"?: string
6185
6186 // Resource template subtype which can run k8s resources
6187 "resource"?: #."io.argoproj.workflow.v1alpha1.ResourceTemplate"
6188
6189 // RetryStrategy describes how to retry a template when it fails
6190 "retryStrategy"?: #."io.argoproj.workflow.v1alpha1.RetryStrategy"
6191
6192 // If specified, the pod will be dispatched by specified
6193 // scheduler. Or it will be dispatched by workflow scope
6194 // scheduler if specified. If neither specified, the pod will be
6195 // dispatched by default scheduler.
6196 "schedulerName"?: string
6197
6198 // Script runs a portion of code against an interpreter
6199 "script"?: #."io.argoproj.workflow.v1alpha1.ScriptTemplate"
6200
6201 // SecurityContext holds pod-level security attributes and common
6202 // container settings. Optional: Defaults to empty. See type
6203 // description for default values of each field.
6204 "securityContext"?: #."io.k8s.api.core.v1.PodSecurityContext"
6205
6206 // ServiceAccountName to apply to workflow pods
6207 "serviceAccountName"?: string
6208
6209 // Sidecars is a list of containers which run alongside the main
6210 // container Sidecars are automatically killed when the main
6211 // container completes
6212 "sidecars"?: [...#."io.argoproj.workflow.v1alpha1.UserContainer"]
6213
6214 // Steps define a series of sequential/parallel workflow steps
6215 "steps"?: [...#."io.argoproj.workflow.v1alpha1.ParallelSteps"]
6216
6217 // Suspend template subtype which can suspend a workflow when
6218 // reaching the step
6219 "suspend"?: #."io.argoproj.workflow.v1alpha1.SuspendTemplate"
6220
6221 // Synchronization holds synchronization lock configuration for
6222 // this template
6223 "synchronization"?: #."io.argoproj.workflow.v1alpha1.Synchronization"
6224
6225 // Timeout allows to set the total node execution timeout duration
6226 // counting from the node's start time. This duration also
6227 // includes time in which the node spends in Pending state. This
6228 // duration may not be applied to Step or DAG templates.
6229 "timeout"?: string
6230
6231 // Tolerations to apply to workflow pods.
6232 "tolerations"?: [...#."io.k8s.api.core.v1.Toleration"]
6233
6234 // Volumes is a list of volumes that can be mounted by containers
6235 // in a template.
6236 "volumes"?: [...#."io.k8s.api.core.v1.Volume"]
6237 }
6238
6239 // TemplateRef is a reference of template resource.
6240 #: "io.argoproj.workflow.v1alpha1.TemplateRef": {
6241 // ClusterScope indicates the referred template is cluster scoped
6242 // (i.e. a ClusterWorkflowTemplate).
6243 "clusterScope"?: bool
6244
6245 // Name is the resource name of the template.
6246 "name"?: string
6247
6248 // Template is the name of referred template in the resource.
6249 "template"?: string
6250 }
6251
6252 #: "io.argoproj.workflow.v1alpha1.TransformationStep": {
6253 // Expression defines an expr expression to apply
6254 "expression"!: string
6255 }
6256
6257 #: "io.argoproj.workflow.v1alpha1.UpdateCronWorkflowRequest": {
6258 "cronWorkflow"?: #."io.argoproj.workflow.v1alpha1.CronWorkflow"
6259
6260 // DEPRECATED: This field is ignored.
6261 "name"?: string
6262 "namespace"?: string
6263 }
6264
6265 // UserContainer is a container specified by a user.
6266 #: "io.argoproj.workflow.v1alpha1.UserContainer": {
6267 // Arguments to the entrypoint. The container image's CMD is used
6268 // if this is not provided. Variable references $(VAR_NAME) are
6269 // expanded using the container's environment. If a variable
6270 // cannot be resolved, the reference in the input string will be
6271 // unchanged. Double $$ are reduced to a single $, which allows
6272 // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
6273 // produce the string literal "$(VAR_NAME)". Escaped references
6274 // will never be expanded, regardless of whether the variable
6275 // exists or not. Cannot be updated. More info:
6276 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
6277 "args"?: [...string]
6278
6279 // Entrypoint array. Not executed within a shell. The container
6280 // image's ENTRYPOINT is used if this is not provided. Variable
6281 // references $(VAR_NAME) are expanded using the container's
6282 // environment. If a variable cannot be resolved, the reference
6283 // in the input string will be unchanged. Double $$ are reduced
6284 // to a single $, which allows for escaping the $(VAR_NAME)
6285 // syntax: i.e. "$$(VAR_NAME)" will produce the string literal
6286 // "$(VAR_NAME)". Escaped references will never be expanded,
6287 // regardless of whether the variable exists or not. Cannot be
6288 // updated. More info:
6289 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
6290 "command"?: [...string]
6291
6292 // List of environment variables to set in the container. Cannot
6293 // be updated.
6294 "env"?: [...#."io.k8s.api.core.v1.EnvVar"]
6295
6296 // List of sources to populate environment variables in the
6297 // container. The keys defined within a source must be a
6298 // C_IDENTIFIER. All invalid keys will be reported as an event
6299 // when the container is starting. When a key exists in multiple
6300 // sources, the value associated with the last source will take
6301 // precedence. Values defined by an Env with a duplicate key will
6302 // take precedence. Cannot be updated.
6303 "envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
6304
6305 // Container image name. More info:
6306 // https://kubernetes.io/docs/concepts/containers/images This
6307 // field is optional to allow higher level config management to
6308 // default or override container images in workload controllers
6309 // like Deployments and StatefulSets.
6310 "image"?: string
6311
6312 // Image pull policy. One of Always, Never, IfNotPresent. Defaults
6313 // to Always if :latest tag is specified, or IfNotPresent
6314 // otherwise. Cannot be updated. More info:
6315 // https://kubernetes.io/docs/concepts/containers/images#updating-images
6316 "imagePullPolicy"?: string
6317
6318 // Actions that the management system should take in response to
6319 // container lifecycle events. Cannot be updated.
6320 "lifecycle"?: #."io.k8s.api.core.v1.Lifecycle"
6321
6322 // Periodic probe of container liveness. Container will be
6323 // restarted if the probe fails. Cannot be updated. More info:
6324 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
6325 "livenessProbe"?: #."io.k8s.api.core.v1.Probe"
6326
6327 // MirrorVolumeMounts will mount the same volumes specified in the
6328 // main container to the container (including artifacts), at the
6329 // same mountPaths. This enables dind daemon to partially see the
6330 // same filesystem as the main container in order to use features
6331 // such as docker volume binding
6332 "mirrorVolumeMounts"?: bool
6333
6334 // Name of the container specified as a DNS_LABEL. Each container
6335 // in a pod must have a unique name (DNS_LABEL). Cannot be
6336 // updated.
6337 "name"!: string
6338
6339 // List of ports to expose from the container. Not specifying a
6340 // port here DOES NOT prevent that port from being exposed. Any
6341 // port which is listening on the default "0.0.0.0" address
6342 // inside a container will be accessible from the network.
6343 // Modifying this array with strategic merge patch may corrupt
6344 // the data. For more information See
6345 // https://github.com/kubernetes/kubernetes/issues/108255. Cannot
6346 // be updated.
6347 "ports"?: [...#."io.k8s.api.core.v1.ContainerPort"]
6348
6349 // Periodic probe of container service readiness. Container will
6350 // be removed from service endpoints if the probe fails. Cannot
6351 // be updated. More info:
6352 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
6353 "readinessProbe"?: #."io.k8s.api.core.v1.Probe"
6354
6355 // Resources resize policy for the container.
6356 "resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
6357
6358 // Compute Resources required by this container. Cannot be
6359 // updated. More info:
6360 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
6361 "resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
6362
6363 // RestartPolicy defines the restart behavior of individual
6364 // containers in a pod. This field may only be set for init
6365 // containers, and the only allowed value is "Always". For
6366 // non-init containers or when this field is not specified, the
6367 // restart behavior is defined by the Pod's restart policy and
6368 // the container type. Setting the RestartPolicy as "Always" for
6369 // the init container will have the following effect: this init
6370 // container will be continually restarted on exit until all
6371 // regular containers have terminated. Once all regular
6372 // containers have completed, all init containers with
6373 // restartPolicy "Always" will be shut down. This lifecycle
6374 // differs from normal init containers and is often referred to
6375 // as a "sidecar" container. Although this init container still
6376 // starts in the init container sequence, it does not wait for
6377 // the container to complete before proceeding to the next init
6378 // container. Instead, the next init container starts immediately
6379 // after this init container is started, or after any
6380 // startupProbe has successfully completed.
6381 "restartPolicy"?: string
6382
6383 // SecurityContext defines the security options the container
6384 // should be run with. If set, the fields of SecurityContext
6385 // override the equivalent fields of PodSecurityContext. More
6386 // info:
6387 // https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
6388 "securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
6389
6390 // StartupProbe indicates that the Pod has successfully
6391 // initialized. If specified, no other probes are executed until
6392 // this completes successfully. If this probe fails, the Pod will
6393 // be restarted, just as if the livenessProbe failed. This can be
6394 // used to provide different probe parameters at the beginning of
6395 // a Pod's lifecycle, when it might take a long time to load data
6396 // or warm a cache, than during steady-state operation. This
6397 // cannot be updated. More info:
6398 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
6399 "startupProbe"?: #."io.k8s.api.core.v1.Probe"
6400
6401 // Whether this container should allocate a buffer for stdin in
6402 // the container runtime. If this is not set, reads from stdin in
6403 // the container will always result in EOF. Default is false.
6404 "stdin"?: bool
6405
6406 // Whether the container runtime should close the stdin channel
6407 // after it has been opened by a single attach. When stdin is
6408 // true the stdin stream will remain open across multiple attach
6409 // sessions. If stdinOnce is set to true, stdin is opened on
6410 // container start, is empty until the first client attaches to
6411 // stdin, and then remains open and accepts data until the client
6412 // disconnects, at which time stdin is closed and remains closed
6413 // until the container is restarted. If this flag is false, a
6414 // container processes that reads from stdin will never receive
6415 // an EOF. Default is false
6416 "stdinOnce"?: bool
6417
6418 // Optional: Path at which the file to which the container's
6419 // termination message will be written is mounted into the
6420 // container's filesystem. Message written is intended to be
6421 // brief final status, such as an assertion failure message. Will
6422 // be truncated by the node if greater than 4096 bytes. The total
6423 // message length across all containers will be limited to 12kb.
6424 // Defaults to /dev/termination-log. Cannot be updated.
6425 "terminationMessagePath"?: string
6426
6427 // Indicate how the termination message should be populated. File
6428 // will use the contents of terminationMessagePath to populate
6429 // the container status message on both success and failure.
6430 // FallbackToLogsOnError will use the last chunk of container log
6431 // output if the termination message file is empty and the
6432 // container exited with an error. The log output is limited to
6433 // 2048 bytes or 80 lines, whichever is smaller. Defaults to
6434 // File. Cannot be updated.
6435 "terminationMessagePolicy"?: string
6436
6437 // Whether this container should allocate a TTY for itself, also
6438 // requires 'stdin' to be true. Default is false.
6439 "tty"?: bool
6440
6441 // volumeDevices is the list of block devices to be used by the
6442 // container.
6443 "volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"]
6444
6445 // Pod volumes to mount into the container's filesystem. Cannot be
6446 // updated.
6447 "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
6448
6449 // Container's working directory. If not specified, the container
6450 // runtime's default will be used, which might be configured in
6451 // the container image. Cannot be updated.
6452 "workingDir"?: string
6453 }
6454
6455 // ValueFrom describes a location in which to obtain the value to
6456 // a parameter
6457 #: "io.argoproj.workflow.v1alpha1.ValueFrom": {
6458 // ConfigMapKeyRef is configmap selector for input parameter
6459 // configuration
6460 "configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
6461
6462 // Default specifies a value to be used if retrieving the value
6463 // from the specified source fails
6464 "default"?: string
6465
6466 // Selector (https://github.com/expr-lang/expr) that is evaluated
6467 // against the event to get the value of the parameter. E.g.
6468 // `payload.message`
6469 "event"?: string
6470
6471 // Expression, if defined, is evaluated to specify the value for
6472 // the parameter
6473 "expression"?: string
6474
6475 // JQFilter expression against the resource object in resource
6476 // templates
6477 "jqFilter"?: string
6478
6479 // JSONPath of a resource to retrieve an output parameter value
6480 // from in resource templates
6481 "jsonPath"?: string
6482
6483 // Parameter reference to a step or dag task in which to retrieve
6484 // an output parameter value from (e.g.
6485 // '{{steps.mystep.outputs.myparam}}')
6486 "parameter"?: string
6487
6488 // Path in the container to retrieve an output parameter value
6489 // from in container templates
6490 "path"?: string
6491
6492 // Supplied value to be filled in directly, either through the
6493 // CLI, API, etc.
6494 "supplied"?: #."io.argoproj.workflow.v1alpha1.SuppliedValueFrom"
6495 }
6496
6497 #: "io.argoproj.workflow.v1alpha1.Version": {
6498 "buildDate"!: string
6499 "compiler"!: string
6500 "gitCommit"!: string
6501 "gitTag"!: string
6502 "gitTreeState"!: string
6503 "goVersion"!: string
6504 "platform"!: string
6505 "version"!: string
6506 }
6507
6508 // VolumeClaimGC describes how to delete volumes from completed
6509 // Workflows
6510 #: "io.argoproj.workflow.v1alpha1.VolumeClaimGC": {
6511 // Strategy is the strategy to use. One of "OnWorkflowCompletion",
6512 // "OnWorkflowSuccess". Defaults to "OnWorkflowSuccess"
6513 "strategy"?: string
6514 }
6515
6516 // Workflow is the definition of a workflow resource
6517 #: "io.argoproj.workflow.v1alpha1.Workflow": {
6518 // APIVersion defines the versioned schema of this representation
6519 // of an object. Servers should convert recognized schemas to the
6520 // latest internal value, and may reject unrecognized values.
6521 // More info:
6522 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
6523 "apiVersion"?: "argoproj.io/v1alpha1"
6524
6525 // Kind is a string value representing the REST resource this
6526 // object represents. Servers may infer this from the endpoint
6527 // the client submits requests to. Cannot be updated. In
6528 // CamelCase. More info:
6529 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
6530 "kind"?: "Workflow"
6531 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
6532 "spec"!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
6533 "status"?: #."io.argoproj.workflow.v1alpha1.WorkflowStatus"
6534 }
6535
6536 #: "io.argoproj.workflow.v1alpha1.WorkflowCreateRequest": {
6537 "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
6538
6539 // This field is no longer used.
6540 "instanceID"?: string
6541 "namespace"?: string
6542 "serverDryRun"?: bool
6543 "workflow"?: #."io.argoproj.workflow.v1alpha1.Workflow"
6544 }
6545
6546 #: "io.argoproj.workflow.v1alpha1.WorkflowDeleteResponse": {}
6547
6548 // WorkflowEventBinding is the definition of an event resource
6549 #: "io.argoproj.workflow.v1alpha1.WorkflowEventBinding": {
6550 // APIVersion defines the versioned schema of this representation
6551 // of an object. Servers should convert recognized schemas to the
6552 // latest internal value, and may reject unrecognized values.
6553 // More info:
6554 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
6555 "apiVersion"?: "argoproj.io/v1alpha1"
6556
6557 // Kind is a string value representing the REST resource this
6558 // object represents. Servers may infer this from the endpoint
6559 // the client submits requests to. Cannot be updated. In
6560 // CamelCase. More info:
6561 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
6562 "kind"?: "WorkflowEventBinding"
6563 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
6564 "spec"!: #."io.argoproj.workflow.v1alpha1.WorkflowEventBindingSpec"
6565 }
6566
6567 // WorkflowEventBindingList is list of event resources
6568 #: "io.argoproj.workflow.v1alpha1.WorkflowEventBindingList": {
6569 // APIVersion defines the versioned schema of this representation
6570 // of an object. Servers should convert recognized schemas to the
6571 // latest internal value, and may reject unrecognized values.
6572 // More info:
6573 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
6574 "apiVersion"?: string
6575 "items"!: [...#."io.argoproj.workflow.v1alpha1.WorkflowEventBinding"]
6576
6577 // Kind is a string value representing the REST resource this
6578 // object represents. Servers may infer this from the endpoint
6579 // the client submits requests to. Cannot be updated. In
6580 // CamelCase. More info:
6581 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
6582 "kind"?: string
6583 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
6584 }
6585
6586 #: "io.argoproj.workflow.v1alpha1.WorkflowEventBindingSpec": {
6587 // Event is the event to bind to
6588 "event"!: #."io.argoproj.workflow.v1alpha1.Event"
6589
6590 // Submit is the workflow template to submit
6591 "submit"?: #."io.argoproj.workflow.v1alpha1.Submit"
6592 }
6593
6594 // WorkflowLevelArtifactGC describes how to delete artifacts from
6595 // completed Workflows - this spec is used on the Workflow level
6596 #: "io.argoproj.workflow.v1alpha1.WorkflowLevelArtifactGC": {
6597 // ForceFinalizerRemoval: if set to true, the finalizer will be
6598 // removed in the case that Artifact GC fails
6599 "forceFinalizerRemoval"?: bool
6600
6601 // PodMetadata is an optional field for specifying the Labels and
6602 // Annotations that should be assigned to the Pod doing the
6603 // deletion
6604 "podMetadata"?: #."io.argoproj.workflow.v1alpha1.Metadata"
6605
6606 // PodSpecPatch holds strategic merge patch to apply against the
6607 // artgc pod spec.
6608 "podSpecPatch"?: string
6609
6610 // ServiceAccountName is an optional field for specifying the
6611 // Service Account that should be assigned to the Pod doing the
6612 // deletion
6613 "serviceAccountName"?: string
6614
6615 // Strategy is the strategy to use.
6616 "strategy"?: string
6617 }
6618
6619 #: "io.argoproj.workflow.v1alpha1.WorkflowLintRequest": {
6620 "namespace"?: string
6621 "workflow"?: #."io.argoproj.workflow.v1alpha1.Workflow"
6622 }
6623
6624 // WorkflowList is list of Workflow resources
6625 #: "io.argoproj.workflow.v1alpha1.WorkflowList": {
6626 // APIVersion defines the versioned schema of this representation
6627 // of an object. Servers should convert recognized schemas to the
6628 // latest internal value, and may reject unrecognized values.
6629 // More info:
6630 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
6631 "apiVersion"?: string
6632 "items"!: [...#."io.argoproj.workflow.v1alpha1.Workflow"]
6633
6634 // Kind is a string value representing the REST resource this
6635 // object represents. Servers may infer this from the endpoint
6636 // the client submits requests to. Cannot be updated. In
6637 // CamelCase. More info:
6638 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
6639 "kind"?: string
6640 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
6641 }
6642
6643 #: "io.argoproj.workflow.v1alpha1.WorkflowMetadata": {
6644 "annotations"?: [string]: string
6645 "labels"?: {
6646 [string]: string
6647 }
6648 "labelsFrom"?: {
6649 [string]: #."io.argoproj.workflow.v1alpha1.LabelValueFrom"
6650 }
6651 }
6652
6653 #: "io.argoproj.workflow.v1alpha1.WorkflowResubmitRequest": {
6654 "memoized"?: bool
6655 "name"?: string
6656 "namespace"?: string
6657 "parameters"?: [...string]
6658 }
6659
6660 #: "io.argoproj.workflow.v1alpha1.WorkflowResumeRequest": {
6661 "name"?: string
6662 "namespace"?: string
6663 "nodeFieldSelector"?: string
6664 }
6665
6666 #: "io.argoproj.workflow.v1alpha1.WorkflowRetryRequest": {
6667 "name"?: string
6668 "namespace"?: string
6669 "nodeFieldSelector"?: string
6670 "parameters"?: [...string]
6671 "restartSuccessful"?: bool
6672 }
6673
6674 #: "io.argoproj.workflow.v1alpha1.WorkflowSetRequest": {
6675 "message"?: string
6676 "name"?: string
6677 "namespace"?: string
6678 "nodeFieldSelector"?: string
6679 "outputParameters"?: string
6680 "phase"?: string
6681 }
6682
6683 // WorkflowSpec is the specification of a Workflow.
6684 #: "io.argoproj.workflow.v1alpha1.WorkflowSpec": {
6685 // Optional duration in seconds relative to the workflow start
6686 // time which the workflow is allowed to run before the
6687 // controller terminates the io.argoproj.workflow.v1alpha1. A
6688 // value of zero is used to terminate a Running workflow
6689 "activeDeadlineSeconds"?: int
6690
6691 // Affinity sets the scheduling constraints for all pods in the
6692 // io.argoproj.workflow.v1alpha1. Can be overridden by an
6693 // affinity specified in the template
6694 "affinity"?: #."io.k8s.api.core.v1.Affinity"
6695
6696 // ArchiveLogs indicates if the container logs should be archived
6697 "archiveLogs"?: bool
6698
6699 // Arguments contain the parameters and artifacts sent to the
6700 // workflow entrypoint Parameters are referencable globally using
6701 // the 'workflow' variable prefix. e.g.
6702 // {{io.argoproj.workflow.v1alpha1.parameters.myparam}}
6703 "arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
6704
6705 // ArtifactGC describes the strategy to use when deleting
6706 // artifacts from completed or deleted workflows (applies to all
6707 // output Artifacts unless Artifact.ArtifactGC is specified,
6708 // which overrides this)
6709 "artifactGC"?: #."io.argoproj.workflow.v1alpha1.WorkflowLevelArtifactGC"
6710
6711 // ArtifactRepositoryRef specifies the configMap name and key
6712 // containing the artifact repository config.
6713 "artifactRepositoryRef"?: #."io.argoproj.workflow.v1alpha1.ArtifactRepositoryRef"
6714
6715 // AutomountServiceAccountToken indicates whether a service
6716 // account token should be automatically mounted in pods.
6717 // ServiceAccountName of ExecutorConfig must be specified if this
6718 // value is false.
6719 "automountServiceAccountToken"?: bool
6720
6721 // PodDNSConfig defines the DNS parameters of a pod in addition to
6722 // those generated from DNSPolicy.
6723 "dnsConfig"?: #."io.k8s.api.core.v1.PodDNSConfig"
6724
6725 // Set DNS policy for workflow pods. Defaults to "ClusterFirst".
6726 // Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst',
6727 // 'Default' or 'None'. DNS parameters given in DNSConfig will be
6728 // merged with the policy selected with DNSPolicy. To have DNS
6729 // options set along with hostNetwork, you have to specify DNS
6730 // policy explicitly to 'ClusterFirstWithHostNet'.
6731 "dnsPolicy"?: string
6732
6733 // Entrypoint is a template reference to the starting point of the
6734 // io.argoproj.workflow.v1alpha1.
6735 "entrypoint"?: string
6736
6737 // Executor holds configurations of executor containers of the
6738 // io.argoproj.workflow.v1alpha1.
6739 "executor"?: #."io.argoproj.workflow.v1alpha1.ExecutorConfig"
6740
6741 // Hooks holds the lifecycle hook which is invoked at lifecycle of
6742 // step, irrespective of the success, failure, or error status of
6743 // the primary step
6744 "hooks"?: {
6745 [string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook"
6746 }
6747 "hostAliases"?: [...#."io.k8s.api.core.v1.HostAlias"]
6748
6749 // Host networking requested for this workflow pod. Default to
6750 // false.
6751 "hostNetwork"?: bool
6752
6753 // ImagePullSecrets is a list of references to secrets in the same
6754 // namespace to use for pulling any images in pods that reference
6755 // this ServiceAccount. ImagePullSecrets are distinct from
6756 // Secrets because Secrets can be mounted in the pod, but
6757 // ImagePullSecrets are only accessed by the kubelet. More info:
6758 // https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
6759 "imagePullSecrets"?: [...#."io.k8s.api.core.v1.LocalObjectReference"]
6760
6761 // Metrics are a list of metrics emitted from this Workflow
6762 "metrics"?: #."io.argoproj.workflow.v1alpha1.Metrics"
6763
6764 // NodeSelector is a selector which will result in all pods of the
6765 // workflow to be scheduled on the selected node(s). This is able
6766 // to be overridden by a nodeSelector specified in the template.
6767 "nodeSelector"?: {
6768 [string]: string
6769 }
6770
6771 // OnExit is a template reference which is invoked at the end of
6772 // the workflow, irrespective of the success, failure, or error
6773 // of the primary io.argoproj.workflow.v1alpha1.
6774 "onExit"?: string
6775
6776 // Parallelism limits the max total parallel pods that can execute
6777 // at the same time in a workflow
6778 "parallelism"?: int
6779
6780 // PodDisruptionBudget holds the number of concurrent disruptions
6781 // that you allow for Workflow's Pods. Controller will
6782 // automatically add the selector with workflow name, if selector
6783 // is empty. Optional: Defaults to empty.
6784 "podDisruptionBudget"?: #."io.k8s.api.policy.v1.PodDisruptionBudgetSpec"
6785
6786 // PodGC describes the strategy to use when deleting completed
6787 // pods
6788 "podGC"?: #."io.argoproj.workflow.v1alpha1.PodGC"
6789
6790 // PodMetadata defines additional metadata that should be applied
6791 // to workflow pods
6792 "podMetadata"?: #."io.argoproj.workflow.v1alpha1.Metadata"
6793
6794 // PriorityClassName to apply to workflow pods.
6795 "podPriorityClassName"?: string
6796
6797 // PodSpecPatch holds strategic merge patch to apply against the
6798 // pod spec. Allows parameterization of container fields which
6799 // are not strings (e.g. resource limits).
6800 "podSpecPatch"?: string
6801
6802 // Priority is used if controller is configured to process limited
6803 // number of workflows in parallel. Workflows with higher
6804 // priority are processed first.
6805 "priority"?: int
6806
6807 // RetryStrategy for all templates in the
6808 // io.argoproj.workflow.v1alpha1.
6809 "retryStrategy"?: #."io.argoproj.workflow.v1alpha1.RetryStrategy"
6810
6811 // Set scheduler name for all pods. Will be overridden if
6812 // container/script template's scheduler name is set. Default
6813 // scheduler will be used if neither specified.
6814 "schedulerName"?: string
6815
6816 // SecurityContext holds pod-level security attributes and common
6817 // container settings. Optional: Defaults to empty. See type
6818 // description for default values of each field.
6819 "securityContext"?: #."io.k8s.api.core.v1.PodSecurityContext"
6820
6821 // ServiceAccountName is the name of the ServiceAccount to run all
6822 // pods of the workflow as.
6823 "serviceAccountName"?: string
6824
6825 // Shutdown will shutdown the workflow according to its
6826 // ShutdownStrategy
6827 "shutdown"?: string
6828
6829 // Suspend will suspend the workflow and prevent execution of any
6830 // future steps in the workflow
6831 "suspend"?: bool
6832
6833 // Synchronization holds synchronization lock configuration for
6834 // this Workflow
6835 "synchronization"?: #."io.argoproj.workflow.v1alpha1.Synchronization"
6836
6837 // TemplateDefaults holds default template values that will apply
6838 // to all templates in the Workflow, unless overridden on the
6839 // template-level
6840 "templateDefaults"?: #."io.argoproj.workflow.v1alpha1.Template"
6841
6842 // Templates is a list of workflow templates used in a workflow
6843 // MaxItems is an artificial limit to limit CEL validation costs
6844 // - see note at top of file
6845 "templates"?: [...#."io.argoproj.workflow.v1alpha1.Template"]
6846
6847 // Tolerations to apply to workflow pods.
6848 "tolerations"?: [...#."io.k8s.api.core.v1.Toleration"]
6849
6850 // TTLStrategy limits the lifetime of a Workflow that has finished
6851 // execution depending on if it Succeeded or Failed. If this
6852 // struct is set, once the Workflow finishes, it will be deleted
6853 // after the time to live expires. If this field is unset, the
6854 // controller config map will hold the default values.
6855 "ttlStrategy"?: #."io.argoproj.workflow.v1alpha1.TTLStrategy"
6856
6857 // VolumeClaimGC describes the strategy to use when deleting
6858 // volumes from completed workflows
6859 "volumeClaimGC"?: #."io.argoproj.workflow.v1alpha1.VolumeClaimGC"
6860
6861 // VolumeClaimTemplates is a list of claims that containers are
6862 // allowed to reference. The Workflow controller will create the
6863 // claims at the beginning of the workflow and delete the claims
6864 // upon completion of the workflow
6865 "volumeClaimTemplates"?: [...#."io.k8s.api.core.v1.PersistentVolumeClaim"]
6866
6867 // Volumes is a list of volumes that can be mounted by containers
6868 // in a io.argoproj.workflow.v1alpha1.
6869 "volumes"?: [...#."io.k8s.api.core.v1.Volume"]
6870
6871 // WorkflowMetadata contains some metadata of the workflow to
6872 // refer to
6873 "workflowMetadata"?: #."io.argoproj.workflow.v1alpha1.WorkflowMetadata"
6874
6875 // WorkflowTemplateRef holds a reference to a WorkflowTemplate for
6876 // execution
6877 "workflowTemplateRef"?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplateRef"
6878 }
6879
6880 // WorkflowStatus contains overall status information about a
6881 // workflow
6882 #: "io.argoproj.workflow.v1alpha1.WorkflowStatus": {
6883 // ArtifactGCStatus maintains the status of Artifact Garbage
6884 // Collection
6885 "artifactGCStatus"?: #."io.argoproj.workflow.v1alpha1.ArtGCStatus"
6886
6887 // ArtifactRepositoryRef is used to cache the repository to use so
6888 // we do not need to determine it everytime we reconcile.
6889 "artifactRepositoryRef"?: #."io.argoproj.workflow.v1alpha1.ArtifactRepositoryRefStatus"
6890
6891 // Compressed and base64 decoded Nodes map
6892 "compressedNodes"?: string
6893
6894 // Conditions is a list of conditions the Workflow may have
6895 "conditions"?: [...#."io.argoproj.workflow.v1alpha1.Condition"]
6896
6897 // EstimatedDuration in seconds.
6898 "estimatedDuration"?: int
6899
6900 // Time at which this workflow completed
6901 "finishedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
6902
6903 // A human readable message indicating details about why the
6904 // workflow is in this condition.
6905 "message"?: string
6906
6907 // Nodes is a mapping between a node ID and the node's status.
6908 "nodes"?: {
6909 [string]: #."io.argoproj.workflow.v1alpha1.NodeStatus"
6910 }
6911
6912 // Whether on not node status has been offloaded to a database. If
6913 // exists, then Nodes and CompressedNodes will be empty. This
6914 // will actually be populated with a hash of the offloaded data.
6915 "offloadNodeStatusVersion"?: string
6916
6917 // Outputs captures output values and artifact locations produced
6918 // by the workflow via global outputs
6919 "outputs"?: #."io.argoproj.workflow.v1alpha1.Outputs"
6920
6921 // PersistentVolumeClaims tracks all PVCs that were created as
6922 // part of the io.argoproj.workflow.v1alpha1. The contents of
6923 // this list are drained at the end of the workflow.
6924 "persistentVolumeClaims"?: [...#."io.k8s.api.core.v1.Volume"]
6925
6926 // Phase a simple, high-level summary of where the workflow is in
6927 // its lifecycle. Will be "" (Unknown), "Pending", or "Running"
6928 // before the workflow is completed, and "Succeeded", "Failed" or
6929 // "Error" once the workflow has completed.
6930 "phase"?: string
6931
6932 // Progress to completion
6933 "progress"?: string
6934
6935 // ResourcesDuration is the total for the workflow
6936 "resourcesDuration"?: {
6937 [string]: int
6938 }
6939
6940 // Time at which this workflow started
6941 "startedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
6942
6943 // StoredTemplates is a mapping between a template ref and the
6944 // node's status.
6945 "storedTemplates"?: {
6946 [string]: #."io.argoproj.workflow.v1alpha1.Template"
6947 }
6948
6949 // StoredWorkflowSpec stores the WorkflowTemplate spec for future
6950 // execution.
6951 "storedWorkflowTemplateSpec"?: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
6952
6953 // Synchronization stores the status of synchronization locks
6954 "synchronization"?: #."io.argoproj.workflow.v1alpha1.SynchronizationStatus"
6955
6956 // TaskResultsCompletionStatus tracks task result completion
6957 // status (mapped by node ID). Used to prevent premature
6958 // archiving and garbage collection.
6959 "taskResultsCompletionStatus"?: {
6960 [string]: bool
6961 }
6962 }
6963
6964 // WorkflowStep is a reference to a template to execute in a
6965 // series of step Note: CEL validation cannot check withItems
6966 // (Schemaless) or inline (PreserveUnknownFields) fields.
6967 #: "io.argoproj.workflow.v1alpha1.WorkflowStep": {
6968 // Arguments hold arguments to the template
6969 "arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
6970
6971 // ContinueOn makes argo to proceed with the following step even
6972 // if this step fails. Errors and Failed states can be specified
6973 "continueOn"?: #."io.argoproj.workflow.v1alpha1.ContinueOn"
6974
6975 // Hooks holds the lifecycle hook which is invoked at lifecycle of
6976 // step, irrespective of the success, failure, or error status of
6977 // the primary step
6978 "hooks"?: {
6979 [string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook"
6980 }
6981
6982 // Inline is the template. Template must be empty if this is
6983 // declared (and vice-versa). Note: This struct is defined
6984 // recursively, since the inline template can potentially contain
6985 // steps/DAGs that also has an "inline" field. Kubernetes doesn't
6986 // allow recursive types, so we need
6987 // "x-kubernetes-preserve-unknown-fields: true" in the validation
6988 // schema.
6989 "inline"?: #."io.argoproj.workflow.v1alpha1.Template"
6990
6991 // Name of the step
6992 "name"?: string
6993
6994 // OnExit is a template reference which is invoked at the end of
6995 // the template, irrespective of the success, failure, or error
6996 // of the primary template. DEPRECATED: Use Hooks[exit].Template
6997 // instead.
6998 "onExit"?: string
6999
7000 // Template is the name of the template to execute as the step
7001 "template"?: string
7002
7003 // TemplateRef is the reference to the template resource to
7004 // execute as the step.
7005 "templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
7006
7007 // When is an expression in which the step should conditionally
7008 // execute
7009 "when"?: string
7010
7011 // WithItems expands a step into multiple parallel steps from the
7012 // items in the list Note: The structure of WithItems is
7013 // free-form, so we need "x-kubernetes-preserve-unknown-fields:
7014 // true" in the validation schema.
7015 "withItems"?: [...#."io.argoproj.workflow.v1alpha1.Item"]
7016
7017 // WithParam expands a step into multiple parallel steps from the
7018 // value in the parameter, which is expected to be a JSON list.
7019 "withParam"?: string
7020
7021 // WithSequence expands a step into a numeric sequence
7022 "withSequence"?: #."io.argoproj.workflow.v1alpha1.Sequence"
7023 }
7024
7025 #: "io.argoproj.workflow.v1alpha1.WorkflowStopRequest": {
7026 "message"?: string
7027 "name"?: string
7028 "namespace"?: string
7029 "nodeFieldSelector"?: string
7030 }
7031
7032 #: "io.argoproj.workflow.v1alpha1.WorkflowSubmitRequest": {
7033 "namespace"?: string
7034 "resourceKind"?: string
7035 "resourceName"?: string
7036 "submitOptions"?: #."io.argoproj.workflow.v1alpha1.SubmitOpts"
7037 }
7038
7039 #: "io.argoproj.workflow.v1alpha1.WorkflowSuspendRequest": {
7040 "name"?: string
7041 "namespace"?: string
7042 }
7043
7044 // WorkflowTemplate is the definition of a workflow template
7045 // resource
7046 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplate": {
7047 // APIVersion defines the versioned schema of this representation
7048 // of an object. Servers should convert recognized schemas to the
7049 // latest internal value, and may reject unrecognized values.
7050 // More info:
7051 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
7052 "apiVersion"?: "argoproj.io/v1alpha1"
7053
7054 // Kind is a string value representing the REST resource this
7055 // object represents. Servers may infer this from the endpoint
7056 // the client submits requests to. Cannot be updated. In
7057 // CamelCase. More info:
7058 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
7059 "kind"?: "WorkflowTemplate"
7060 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
7061 "spec"!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
7062 }
7063
7064 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateCreateRequest": {
7065 "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
7066 "namespace"?: string
7067 "template"?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplate"
7068 }
7069
7070 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateDeleteResponse": {}
7071
7072 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateLintRequest": {
7073 "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
7074 "namespace"?: string
7075 "template"?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplate"
7076 }
7077
7078 // WorkflowTemplateList is list of WorkflowTemplate resources
7079 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateList": {
7080 // APIVersion defines the versioned schema of this representation
7081 // of an object. Servers should convert recognized schemas to the
7082 // latest internal value, and may reject unrecognized values.
7083 // More info:
7084 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
7085 "apiVersion"?: string
7086 "items"!: [...#."io.argoproj.workflow.v1alpha1.WorkflowTemplate"]
7087
7088 // Kind is a string value representing the REST resource this
7089 // object represents. Servers may infer this from the endpoint
7090 // the client submits requests to. Cannot be updated. In
7091 // CamelCase. More info:
7092 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
7093 "kind"?: string
7094 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
7095 }
7096
7097 // WorkflowTemplateRef is a reference to a WorkflowTemplate
7098 // resource.
7099 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateRef": {
7100 // ClusterScope indicates the referred template is cluster scoped
7101 // (i.e. a ClusterWorkflowTemplate).
7102 "clusterScope"?: bool
7103
7104 // Name is the resource name of the workflow template.
7105 "name"?: string
7106 }
7107
7108 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateUpdateRequest": {
7109 // DEPRECATED: This field is ignored.
7110 "name"?: string
7111 "namespace"?: string
7112 "template"?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplate"
7113 }
7114
7115 #: "io.argoproj.workflow.v1alpha1.WorkflowTerminateRequest": {
7116 "name"?: string
7117 "namespace"?: string
7118 }
7119
7120 #: "io.argoproj.workflow.v1alpha1.WorkflowWatchEvent": {
7121 // the workflow
7122 "object"?: #."io.argoproj.workflow.v1alpha1.Workflow"
7123
7124 // the type of change
7125 "type"?: string
7126 }
7127
7128 // ZipStrategy will unzip zipped input artifacts
7129 #: "io.argoproj.workflow.v1alpha1.ZipStrategy": {}
7130
7131 // Represents a Persistent Disk resource in AWS.
7132 //
7133 // An AWS EBS disk must exist before mounting to a container. The
7134 // disk must also be in the same AWS zone as the kubelet. An AWS
7135 // EBS disk can only be mounted as read/write once. AWS EBS
7136 // volumes support ownership management and SELinux relabeling.
7137 #: "io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource": {
7138 // fsType is the filesystem type of the volume that you want to
7139 // mount. Tip: Ensure that the filesystem type is supported by
7140 // the host operating system. Examples: "ext4", "xfs", "ntfs".
7141 // Implicitly inferred to be "ext4" if unspecified. More info:
7142 // https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
7143 "fsType"?: string
7144
7145 // partition is the partition in the volume that you want to
7146 // mount. If omitted, the default is to mount by volume name.
7147 // Examples: For volume /dev/sda1, you specify the partition as
7148 // "1". Similarly, the volume partition for /dev/sda is "0" (or
7149 // you can leave the property empty).
7150 "partition"?: int
7151
7152 // readOnly value true will force the readOnly setting in
7153 // VolumeMounts. More info:
7154 // https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
7155 "readOnly"?: bool
7156
7157 // volumeID is unique ID of the persistent disk resource in AWS
7158 // (Amazon EBS volume). More info:
7159 // https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
7160 "volumeID"!: string
7161 }
7162
7163 // Affinity is a group of affinity scheduling rules.
7164 #: "io.k8s.api.core.v1.Affinity": {
7165 // Describes node affinity scheduling rules for the pod.
7166 "nodeAffinity"?: #."io.k8s.api.core.v1.NodeAffinity"
7167
7168 // Describes pod affinity scheduling rules (e.g. co-locate this
7169 // pod in the same node, zone, etc. as some other pod(s)).
7170 "podAffinity"?: #."io.k8s.api.core.v1.PodAffinity"
7171
7172 // Describes pod anti-affinity scheduling rules (e.g. avoid
7173 // putting this pod in the same node, zone, etc. as some other
7174 // pod(s)).
7175 "podAntiAffinity"?: #."io.k8s.api.core.v1.PodAntiAffinity"
7176 }
7177
7178 // AppArmorProfile defines a pod or container's AppArmor settings.
7179 #: "io.k8s.api.core.v1.AppArmorProfile": {
7180 // localhostProfile indicates a profile loaded on the node that
7181 // should be used. The profile must be preconfigured on the node
7182 // to work. Must match the loaded name of the profile. Must be
7183 // set if and only if type is "Localhost".
7184 "localhostProfile"?: string
7185
7186 // type indicates which kind of AppArmor profile will be applied.
7187 // Valid options are:
7188 // Localhost - a profile pre-loaded on the node.
7189 // RuntimeDefault - the container runtime's default profile.
7190 // Unconfined - no AppArmor enforcement.
7191 "type"!: string
7192 }
7193
7194 // AzureDisk represents an Azure Data Disk mount on the host and
7195 // bind mount to the pod.
7196 #: "io.k8s.api.core.v1.AzureDiskVolumeSource": {
7197 // cachingMode is the Host Caching mode: None, Read Only, Read
7198 // Write.
7199 "cachingMode"?: string
7200
7201 // diskName is the Name of the data disk in the blob storage
7202 "diskName"!: string
7203
7204 // diskURI is the URI of data disk in the blob storage
7205 "diskURI"!: string
7206
7207 // fsType is Filesystem type to mount. Must be a filesystem type
7208 // supported by the host operating system. Ex. "ext4", "xfs",
7209 // "ntfs". Implicitly inferred to be "ext4" if unspecified.
7210 "fsType"?: string
7211
7212 // kind expected values are Shared: multiple blob disks per
7213 // storage account Dedicated: single blob disk per storage
7214 // account Managed: azure managed data disk (only in managed
7215 // availability set). defaults to shared
7216 "kind"?: string
7217
7218 // readOnly Defaults to false (read/write). ReadOnly here will
7219 // force the ReadOnly setting in VolumeMounts.
7220 "readOnly"?: bool
7221 }
7222
7223 // AzureFile represents an Azure File Service mount on the host
7224 // and bind mount to the pod.
7225 #: "io.k8s.api.core.v1.AzureFileVolumeSource": {
7226 // readOnly defaults to false (read/write). ReadOnly here will
7227 // force the ReadOnly setting in VolumeMounts.
7228 "readOnly"?: bool
7229
7230 // secretName is the name of secret that contains Azure Storage
7231 // Account Name and Key
7232 "secretName"!: string
7233
7234 // shareName is the azure share Name
7235 "shareName"!: string
7236 }
7237
7238 // Represents a source location of a volume to mount, managed by
7239 // an external CSI driver
7240 #: "io.k8s.api.core.v1.CSIVolumeSource": {
7241 // driver is the name of the CSI driver that handles this volume.
7242 // Consult with your admin for the correct name as registered in
7243 // the cluster.
7244 "driver"!: string
7245
7246 // fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided,
7247 // the empty value is passed to the associated CSI driver which
7248 // will determine the default filesystem to apply.
7249 "fsType"?: string
7250
7251 // nodePublishSecretRef is a reference to the secret object
7252 // containing sensitive information to pass to the CSI driver to
7253 // complete the CSI NodePublishVolume and NodeUnpublishVolume
7254 // calls. This field is optional, and may be empty if no secret
7255 // is required. If the secret object contains more than one
7256 // secret, all secret references are passed.
7257 "nodePublishSecretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
7258
7259 // readOnly specifies a read-only configuration for the volume.
7260 // Defaults to false (read/write).
7261 "readOnly"?: bool
7262
7263 // volumeAttributes stores driver-specific properties that are
7264 // passed to the CSI driver. Consult your driver's documentation
7265 // for supported values.
7266 "volumeAttributes"?: {
7267 [string]: string
7268 }
7269 }
7270
7271 // Adds and removes POSIX capabilities from running containers.
7272 #: "io.k8s.api.core.v1.Capabilities": {
7273 // Added capabilities
7274 "add"?: [...string]
7275
7276 // Removed capabilities
7277 "drop"?: [...string]
7278 }
7279
7280 // Represents a Ceph Filesystem mount that lasts the lifetime of a
7281 // pod Cephfs volumes do not support ownership management or
7282 // SELinux relabeling.
7283 #: "io.k8s.api.core.v1.CephFSVolumeSource": {
7284 // monitors is Required: Monitors is a collection of Ceph monitors
7285 // More info:
7286 // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
7287 "monitors"!: [...string]
7288
7289 // path is Optional: Used as the mounted root, rather than the
7290 // full Ceph tree, default is /
7291 "path"?: string
7292
7293 // readOnly is Optional: Defaults to false (read/write). ReadOnly
7294 // here will force the ReadOnly setting in VolumeMounts. More
7295 // info:
7296 // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
7297 "readOnly"?: bool
7298
7299 // secretFile is Optional: SecretFile is the path to key ring for
7300 // User, default is /etc/ceph/user.secret More info:
7301 // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
7302 "secretFile"?: string
7303
7304 // secretRef is Optional: SecretRef is reference to the
7305 // authentication secret for User, default is empty. More info:
7306 // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
7307 "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
7308
7309 // user is optional: User is the rados user name, default is admin
7310 // More info:
7311 // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
7312 "user"?: string
7313 }
7314
7315 // Represents a cinder volume resource in Openstack. A Cinder
7316 // volume must exist before mounting to a container. The volume
7317 // must also be in the same region as the kubelet. Cinder volumes
7318 // support ownership management and SELinux relabeling.
7319 #: "io.k8s.api.core.v1.CinderVolumeSource": {
7320 // fsType is the filesystem type to mount. Must be a filesystem
7321 // type supported by the host operating system. Examples: "ext4",
7322 // "xfs", "ntfs". Implicitly inferred to be "ext4" if
7323 // unspecified. More info:
7324 // https://examples.k8s.io/mysql-cinder-pd/README.md
7325 "fsType"?: string
7326
7327 // readOnly defaults to false (read/write). ReadOnly here will
7328 // force the ReadOnly setting in VolumeMounts. More info:
7329 // https://examples.k8s.io/mysql-cinder-pd/README.md
7330 "readOnly"?: bool
7331
7332 // secretRef is optional: points to a secret object containing
7333 // parameters used to connect to OpenStack.
7334 "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
7335
7336 // volumeID used to identify the volume in cinder. More info:
7337 // https://examples.k8s.io/mysql-cinder-pd/README.md
7338 "volumeID"!: string
7339 }
7340
7341 // ClusterTrustBundleProjection describes how to select a set of
7342 // ClusterTrustBundle objects and project their contents into the
7343 // pod filesystem.
7344 #: "io.k8s.api.core.v1.ClusterTrustBundleProjection": {
7345 // Select all ClusterTrustBundles that match this label selector.
7346 // Only has effect if signerName is set. Mutually-exclusive with
7347 // name. If unset, interpreted as "match nothing". If set but
7348 // empty, interpreted as "match everything".
7349 "labelSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
7350
7351 // Select a single ClusterTrustBundle by object name.
7352 // Mutually-exclusive with signerName and labelSelector.
7353 "name"?: string
7354
7355 // If true, don't block pod startup if the referenced
7356 // ClusterTrustBundle(s) aren't available. If using name, then
7357 // the named ClusterTrustBundle is allowed not to exist. If using
7358 // signerName, then the combination of signerName and
7359 // labelSelector is allowed to match zero ClusterTrustBundles.
7360 "optional"?: bool
7361
7362 // Relative path from the volume root to write the bundle.
7363 "path"!: string
7364
7365 // Select all ClusterTrustBundles that match this signer name.
7366 // Mutually-exclusive with name. The contents of all selected
7367 // ClusterTrustBundles will be unified and deduplicated.
7368 "signerName"?: string
7369 }
7370
7371 // ConfigMapEnvSource selects a ConfigMap to populate the
7372 // environment variables with.
7373 //
7374 // The contents of the target ConfigMap's Data field will
7375 // represent the key-value pairs as environment variables.
7376 #: "io.k8s.api.core.v1.ConfigMapEnvSource": {
7377 // Name of the referent. This field is effectively required, but
7378 // due to backwards compatibility is allowed to be empty.
7379 // Instances of this type with an empty value here are almost
7380 // certainly wrong. More info:
7381 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7382 "name"?: string
7383
7384 // Specify whether the ConfigMap must be defined
7385 "optional"?: bool
7386 }
7387
7388 // Selects a key from a ConfigMap.
7389 #: "io.k8s.api.core.v1.ConfigMapKeySelector": {
7390 // The key to select.
7391 "key"!: string
7392
7393 // Name of the referent. This field is effectively required, but
7394 // due to backwards compatibility is allowed to be empty.
7395 // Instances of this type with an empty value here are almost
7396 // certainly wrong. More info:
7397 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7398 "name"?: string
7399
7400 // Specify whether the ConfigMap or its key must be defined
7401 "optional"?: bool
7402 }
7403
7404 // Adapts a ConfigMap into a projected volume.
7405 //
7406 // The contents of the target ConfigMap's Data field will be
7407 // presented in a projected volume as files using the keys in the
7408 // Data field as the file names, unless the items element is
7409 // populated with specific mappings of keys to paths. Note that
7410 // this is identical to a configmap volume source without the
7411 // default mode.
7412 #: "io.k8s.api.core.v1.ConfigMapProjection": {
7413 // items if unspecified, each key-value pair in the Data field of
7414 // the referenced ConfigMap will be projected into the volume as
7415 // a file whose name is the key and content is the value. If
7416 // specified, the listed keys will be projected into the
7417 // specified paths, and unlisted keys will not be present. If a
7418 // key is specified which is not present in the ConfigMap, the
7419 // volume setup will error unless it is marked optional. Paths
7420 // must be relative and may not contain the '..' path or start
7421 // with '..'.
7422 "items"?: [...#."io.k8s.api.core.v1.KeyToPath"]
7423
7424 // Name of the referent. This field is effectively required, but
7425 // due to backwards compatibility is allowed to be empty.
7426 // Instances of this type with an empty value here are almost
7427 // certainly wrong. More info:
7428 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7429 "name"?: string
7430
7431 // optional specify whether the ConfigMap or its keys must be
7432 // defined
7433 "optional"?: bool
7434 }
7435
7436 // Adapts a ConfigMap into a volume.
7437 //
7438 // The contents of the target ConfigMap's Data field will be
7439 // presented in a volume as files using the keys in the Data
7440 // field as the file names, unless the items element is populated
7441 // with specific mappings of keys to paths. ConfigMap volumes
7442 // support ownership management and SELinux relabeling.
7443 #: "io.k8s.api.core.v1.ConfigMapVolumeSource": {
7444 // defaultMode is optional: mode bits used to set permissions on
7445 // created files by default. Must be an octal value between 0000
7446 // and 0777 or a decimal value between 0 and 511. YAML accepts
7447 // both octal and decimal values, JSON requires decimal values
7448 // for mode bits. Defaults to 0644. Directories within the path
7449 // are not affected by this setting. This might be in conflict
7450 // with other options that affect the file mode, like fsGroup,
7451 // and the result can be other mode bits set.
7452 "defaultMode"?: int
7453
7454 // items if unspecified, each key-value pair in the Data field of
7455 // the referenced ConfigMap will be projected into the volume as
7456 // a file whose name is the key and content is the value. If
7457 // specified, the listed keys will be projected into the
7458 // specified paths, and unlisted keys will not be present. If a
7459 // key is specified which is not present in the ConfigMap, the
7460 // volume setup will error unless it is marked optional. Paths
7461 // must be relative and may not contain the '..' path or start
7462 // with '..'.
7463 "items"?: [...#."io.k8s.api.core.v1.KeyToPath"]
7464
7465 // Name of the referent. This field is effectively required, but
7466 // due to backwards compatibility is allowed to be empty.
7467 // Instances of this type with an empty value here are almost
7468 // certainly wrong. More info:
7469 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7470 "name"?: string
7471
7472 // optional specify whether the ConfigMap or its keys must be
7473 // defined
7474 "optional"?: bool
7475 }
7476
7477 // A single application container that you want to run within a
7478 // pod.
7479 #: "io.k8s.api.core.v1.Container": {
7480 // Arguments to the entrypoint. The container image's CMD is used
7481 // if this is not provided. Variable references $(VAR_NAME) are
7482 // expanded using the container's environment. If a variable
7483 // cannot be resolved, the reference in the input string will be
7484 // unchanged. Double $$ are reduced to a single $, which allows
7485 // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
7486 // produce the string literal "$(VAR_NAME)". Escaped references
7487 // will never be expanded, regardless of whether the variable
7488 // exists or not. Cannot be updated. More info:
7489 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
7490 "args"?: [...string]
7491
7492 // Entrypoint array. Not executed within a shell. The container
7493 // image's ENTRYPOINT is used if this is not provided. Variable
7494 // references $(VAR_NAME) are expanded using the container's
7495 // environment. If a variable cannot be resolved, the reference
7496 // in the input string will be unchanged. Double $$ are reduced
7497 // to a single $, which allows for escaping the $(VAR_NAME)
7498 // syntax: i.e. "$$(VAR_NAME)" will produce the string literal
7499 // "$(VAR_NAME)". Escaped references will never be expanded,
7500 // regardless of whether the variable exists or not. Cannot be
7501 // updated. More info:
7502 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
7503 "command"?: [...string]
7504
7505 // List of environment variables to set in the container. Cannot
7506 // be updated.
7507 "env"?: [...#."io.k8s.api.core.v1.EnvVar"]
7508
7509 // List of sources to populate environment variables in the
7510 // container. The keys defined within a source must be a
7511 // C_IDENTIFIER. All invalid keys will be reported as an event
7512 // when the container is starting. When a key exists in multiple
7513 // sources, the value associated with the last source will take
7514 // precedence. Values defined by an Env with a duplicate key will
7515 // take precedence. Cannot be updated.
7516 "envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
7517
7518 // Container image name. More info:
7519 // https://kubernetes.io/docs/concepts/containers/images This
7520 // field is optional to allow higher level config management to
7521 // default or override container images in workload controllers
7522 // like Deployments and StatefulSets.
7523 "image"!: string
7524
7525 // Image pull policy. One of Always, Never, IfNotPresent. Defaults
7526 // to Always if :latest tag is specified, or IfNotPresent
7527 // otherwise. Cannot be updated. More info:
7528 // https://kubernetes.io/docs/concepts/containers/images#updating-images
7529 "imagePullPolicy"?: string
7530
7531 // Actions that the management system should take in response to
7532 // container lifecycle events. Cannot be updated.
7533 "lifecycle"?: #."io.k8s.api.core.v1.Lifecycle"
7534
7535 // Periodic probe of container liveness. Container will be
7536 // restarted if the probe fails. Cannot be updated. More info:
7537 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
7538 "livenessProbe"?: #."io.k8s.api.core.v1.Probe"
7539
7540 // Name of the container specified as a DNS_LABEL. Each container
7541 // in a pod must have a unique name (DNS_LABEL). Cannot be
7542 // updated.
7543 "name"?: string
7544
7545 // List of ports to expose from the container. Not specifying a
7546 // port here DOES NOT prevent that port from being exposed. Any
7547 // port which is listening on the default "0.0.0.0" address
7548 // inside a container will be accessible from the network.
7549 // Modifying this array with strategic merge patch may corrupt
7550 // the data. For more information See
7551 // https://github.com/kubernetes/kubernetes/issues/108255. Cannot
7552 // be updated.
7553 "ports"?: [...#."io.k8s.api.core.v1.ContainerPort"]
7554
7555 // Periodic probe of container service readiness. Container will
7556 // be removed from service endpoints if the probe fails. Cannot
7557 // be updated. More info:
7558 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
7559 "readinessProbe"?: #."io.k8s.api.core.v1.Probe"
7560
7561 // Resources resize policy for the container.
7562 "resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
7563
7564 // Compute Resources required by this container. Cannot be
7565 // updated. More info:
7566 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
7567 "resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
7568
7569 // RestartPolicy defines the restart behavior of individual
7570 // containers in a pod. This field may only be set for init
7571 // containers, and the only allowed value is "Always". For
7572 // non-init containers or when this field is not specified, the
7573 // restart behavior is defined by the Pod's restart policy and
7574 // the container type. Setting the RestartPolicy as "Always" for
7575 // the init container will have the following effect: this init
7576 // container will be continually restarted on exit until all
7577 // regular containers have terminated. Once all regular
7578 // containers have completed, all init containers with
7579 // restartPolicy "Always" will be shut down. This lifecycle
7580 // differs from normal init containers and is often referred to
7581 // as a "sidecar" container. Although this init container still
7582 // starts in the init container sequence, it does not wait for
7583 // the container to complete before proceeding to the next init
7584 // container. Instead, the next init container starts immediately
7585 // after this init container is started, or after any
7586 // startupProbe has successfully completed.
7587 "restartPolicy"?: string
7588
7589 // SecurityContext defines the security options the container
7590 // should be run with. If set, the fields of SecurityContext
7591 // override the equivalent fields of PodSecurityContext. More
7592 // info:
7593 // https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
7594 "securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
7595
7596 // StartupProbe indicates that the Pod has successfully
7597 // initialized. If specified, no other probes are executed until
7598 // this completes successfully. If this probe fails, the Pod will
7599 // be restarted, just as if the livenessProbe failed. This can be
7600 // used to provide different probe parameters at the beginning of
7601 // a Pod's lifecycle, when it might take a long time to load data
7602 // or warm a cache, than during steady-state operation. This
7603 // cannot be updated. More info:
7604 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
7605 "startupProbe"?: #."io.k8s.api.core.v1.Probe"
7606
7607 // Whether this container should allocate a buffer for stdin in
7608 // the container runtime. If this is not set, reads from stdin in
7609 // the container will always result in EOF. Default is false.
7610 "stdin"?: bool
7611
7612 // Whether the container runtime should close the stdin channel
7613 // after it has been opened by a single attach. When stdin is
7614 // true the stdin stream will remain open across multiple attach
7615 // sessions. If stdinOnce is set to true, stdin is opened on
7616 // container start, is empty until the first client attaches to
7617 // stdin, and then remains open and accepts data until the client
7618 // disconnects, at which time stdin is closed and remains closed
7619 // until the container is restarted. If this flag is false, a
7620 // container processes that reads from stdin will never receive
7621 // an EOF. Default is false
7622 "stdinOnce"?: bool
7623
7624 // Optional: Path at which the file to which the container's
7625 // termination message will be written is mounted into the
7626 // container's filesystem. Message written is intended to be
7627 // brief final status, such as an assertion failure message. Will
7628 // be truncated by the node if greater than 4096 bytes. The total
7629 // message length across all containers will be limited to 12kb.
7630 // Defaults to /dev/termination-log. Cannot be updated.
7631 "terminationMessagePath"?: string
7632
7633 // Indicate how the termination message should be populated. File
7634 // will use the contents of terminationMessagePath to populate
7635 // the container status message on both success and failure.
7636 // FallbackToLogsOnError will use the last chunk of container log
7637 // output if the termination message file is empty and the
7638 // container exited with an error. The log output is limited to
7639 // 2048 bytes or 80 lines, whichever is smaller. Defaults to
7640 // File. Cannot be updated.
7641 "terminationMessagePolicy"?: string
7642
7643 // Whether this container should allocate a TTY for itself, also
7644 // requires 'stdin' to be true. Default is false.
7645 "tty"?: bool
7646
7647 // volumeDevices is the list of block devices to be used by the
7648 // container.
7649 "volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"]
7650
7651 // Pod volumes to mount into the container's filesystem. Cannot be
7652 // updated.
7653 "volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
7654
7655 // Container's working directory. If not specified, the container
7656 // runtime's default will be used, which might be configured in
7657 // the container image. Cannot be updated.
7658 "workingDir"?: string
7659 }
7660
7661 // ContainerPort represents a network port in a single container.
7662 #: "io.k8s.api.core.v1.ContainerPort": {
7663 // Number of port to expose on the pod's IP address. This must be
7664 // a valid port number, 0 < x < 65536.
7665 "containerPort"!: int
7666
7667 // What host IP to bind the external port to.
7668 "hostIP"?: string
7669
7670 // Number of port to expose on the host. If specified, this must
7671 // be a valid port number, 0 < x < 65536. If HostNetwork is
7672 // specified, this must match ContainerPort. Most containers do
7673 // not need this.
7674 "hostPort"?: int
7675
7676 // If specified, this must be an IANA_SVC_NAME and unique within
7677 // the pod. Each named port in a pod must have a unique name.
7678 // Name for the port that can be referred to by services.
7679 "name"?: string
7680
7681 // Protocol for port. Must be UDP, TCP, or SCTP. Defaults to
7682 // "TCP".
7683 "protocol"?: string
7684 }
7685
7686 // ContainerResizePolicy represents resource resize policy for the
7687 // container.
7688 #: "io.k8s.api.core.v1.ContainerResizePolicy": {
7689 // Name of the resource to which this resource resize policy
7690 // applies. Supported values: cpu, memory.
7691 "resourceName"!: string
7692
7693 // Restart policy to apply when specified resource is resized. If
7694 // not specified, it defaults to NotRequired.
7695 "restartPolicy"!: string
7696 }
7697
7698 // Represents downward API info for projecting into a projected
7699 // volume. Note that this is identical to a downwardAPI volume
7700 // source without the default mode.
7701 #: "io.k8s.api.core.v1.DownwardAPIProjection": {
7702 // Items is a list of DownwardAPIVolume file
7703 "items"?: [...#."io.k8s.api.core.v1.DownwardAPIVolumeFile"]
7704 }
7705
7706 // DownwardAPIVolumeFile represents information to create the file
7707 // containing the pod field
7708 #: "io.k8s.api.core.v1.DownwardAPIVolumeFile": {
7709 // Required: Selects a field of the pod: only annotations, labels,
7710 // name, namespace and uid are supported.
7711 "fieldRef"?: #."io.k8s.api.core.v1.ObjectFieldSelector"
7712
7713 // Optional: mode bits used to set permissions on this file, must
7714 // be an octal value between 0000 and 0777 or a decimal value
7715 // between 0 and 511. YAML accepts both octal and decimal values,
7716 // JSON requires decimal values for mode bits. If not specified,
7717 // the volume defaultMode will be used. This might be in conflict
7718 // with other options that affect the file mode, like fsGroup,
7719 // and the result can be other mode bits set.
7720 "mode"?: int
7721
7722 // Required: Path is the relative path name of the file to be
7723 // created. Must not be absolute or contain the '..' path. Must
7724 // be utf-8 encoded. The first item of the relative path must not
7725 // start with '..'
7726 "path"!: string
7727
7728 // Selects a resource of the container: only resources limits and
7729 // requests (limits.cpu, limits.memory, requests.cpu and
7730 // requests.memory) are currently supported.
7731 "resourceFieldRef"?: #."io.k8s.api.core.v1.ResourceFieldSelector"
7732 }
7733
7734 // DownwardAPIVolumeSource represents a volume containing downward
7735 // API info. Downward API volumes support ownership management
7736 // and SELinux relabeling.
7737 #: "io.k8s.api.core.v1.DownwardAPIVolumeSource": {
7738 // Optional: mode bits to use on created files by default. Must be
7739 // a Optional: mode bits used to set permissions on created files
7740 // by default. Must be an octal value between 0000 and 0777 or a
7741 // decimal value between 0 and 511. YAML accepts both octal and
7742 // decimal values, JSON requires decimal values for mode bits.
7743 // Defaults to 0644. Directories within the path are not affected
7744 // by this setting. This might be in conflict with other options
7745 // that affect the file mode, like fsGroup, and the result can be
7746 // other mode bits set.
7747 "defaultMode"?: int
7748
7749 // Items is a list of downward API volume file
7750 "items"?: [...#."io.k8s.api.core.v1.DownwardAPIVolumeFile"]
7751 }
7752
7753 // Represents an empty directory for a pod. Empty directory
7754 // volumes support ownership management and SELinux relabeling.
7755 #: "io.k8s.api.core.v1.EmptyDirVolumeSource": {
7756 // medium represents what type of storage medium should back this
7757 // directory. The default is "" which means to use the node's
7758 // default medium. Must be an empty string (default) or Memory.
7759 // More info:
7760 // https://kubernetes.io/docs/concepts/storage/volumes#emptydir
7761 "medium"?: string
7762
7763 // sizeLimit is the total amount of local storage required for
7764 // this EmptyDir volume. The size limit is also applicable for
7765 // memory medium. The maximum usage on memory medium EmptyDir
7766 // would be the minimum value between the SizeLimit specified
7767 // here and the sum of memory limits of all containers in a pod.
7768 // The default is nil which means that the limit is undefined.
7769 // More info:
7770 // https://kubernetes.io/docs/concepts/storage/volumes#emptydir
7771 "sizeLimit"?: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
7772 }
7773
7774 // EnvFromSource represents the source of a set of ConfigMaps or
7775 // Secrets
7776 #: "io.k8s.api.core.v1.EnvFromSource": {
7777 // The ConfigMap to select from
7778 "configMapRef"?: #."io.k8s.api.core.v1.ConfigMapEnvSource"
7779
7780 // Optional text to prepend to the name of each environment
7781 // variable. Must be a C_IDENTIFIER.
7782 "prefix"?: string
7783
7784 // The Secret to select from
7785 "secretRef"?: #."io.k8s.api.core.v1.SecretEnvSource"
7786 }
7787
7788 // EnvVar represents an environment variable present in a
7789 // Container.
7790 #: "io.k8s.api.core.v1.EnvVar": {
7791 // Name of the environment variable. Must be a C_IDENTIFIER.
7792 "name"!: string
7793
7794 // Variable references $(VAR_NAME) are expanded using the
7795 // previously defined environment variables in the container and
7796 // any service environment variables. If a variable cannot be
7797 // resolved, the reference in the input string will be unchanged.
7798 // Double $$ are reduced to a single $, which allows for escaping
7799 // the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
7800 // string literal "$(VAR_NAME)". Escaped references will never be
7801 // expanded, regardless of whether the variable exists or not.
7802 // Defaults to "".
7803 "value"?: string
7804
7805 // Source for the environment variable's value. Cannot be used if
7806 // value is not empty.
7807 "valueFrom"?: #."io.k8s.api.core.v1.EnvVarSource"
7808 }
7809
7810 // EnvVarSource represents a source for the value of an EnvVar.
7811 #: "io.k8s.api.core.v1.EnvVarSource": {
7812 // Selects a key of a ConfigMap.
7813 "configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
7814
7815 // Selects a field of the pod: supports metadata.name,
7816 // metadata.namespace, `metadata.labels['<KEY>']`,
7817 // `metadata.annotations['<KEY>']`, spec.nodeName,
7818 // spec.serviceAccountName, status.hostIP, status.podIP,
7819 // status.podIPs.
7820 "fieldRef"?: #."io.k8s.api.core.v1.ObjectFieldSelector"
7821
7822 // Selects a resource of the container: only resources limits and
7823 // requests (limits.cpu, limits.memory, limits.ephemeral-storage,
7824 // requests.cpu, requests.memory and requests.ephemeral-storage)
7825 // are currently supported.
7826 "resourceFieldRef"?: #."io.k8s.api.core.v1.ResourceFieldSelector"
7827
7828 // Selects a key of a secret in the pod's namespace
7829 "secretKeyRef"?: #."io.k8s.api.core.v1.SecretKeySelector"
7830 }
7831
7832 // Represents an ephemeral volume that is handled by a normal
7833 // storage driver.
7834 #: "io.k8s.api.core.v1.EphemeralVolumeSource": {
7835 // Will be used to create a stand-alone PVC to provision the
7836 // volume. The pod in which this EphemeralVolumeSource is
7837 // embedded will be the owner of the PVC, i.e. the PVC will be
7838 // deleted together with the pod. The name of the PVC will be
7839 // `<pod name>-<volume name>` where `<volume name>` is the name
7840 // from the `PodSpec.Volumes` array entry. Pod validation will
7841 // reject the pod if the concatenated name is not valid for a PVC
7842 // (for example, too long).
7843 //
7844 // An existing PVC with that name that is not owned by the pod
7845 // will *not* be used for the pod to avoid using an unrelated
7846 // volume by mistake. Starting the pod is then blocked until the
7847 // unrelated PVC is removed. If such a pre-created PVC is meant
7848 // to be used by the pod, the PVC has to updated with an owner
7849 // reference to the pod once the pod exists. Normally this should
7850 // not be necessary, but it may be useful when manually
7851 // reconstructing a broken cluster.
7852 //
7853 // This field is read-only and no changes will be made by
7854 // Kubernetes to the PVC after it has been created.
7855 //
7856 // Required, must not be nil.
7857 "volumeClaimTemplate"?: #."io.k8s.api.core.v1.PersistentVolumeClaimTemplate"
7858 }
7859
7860 // Event is a report of an event somewhere in the cluster. Events
7861 // have a limited retention time and triggers and messages may
7862 // evolve with time. Event consumers should not rely on the
7863 // timing of an event with a given Reason reflecting a consistent
7864 // underlying trigger, or the continued existence of events with
7865 // that Reason. Events should be treated as informative,
7866 // best-effort, supplemental data.
7867 #: "io.k8s.api.core.v1.Event": {
7868 // What action was taken/failed regarding to the Regarding object.
7869 "action"?: string
7870
7871 // APIVersion defines the versioned schema of this representation
7872 // of an object. Servers should convert recognized schemas to the
7873 // latest internal value, and may reject unrecognized values.
7874 // More info:
7875 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
7876 "apiVersion"?: string
7877
7878 // The number of times this event has occurred.
7879 "count"?: int
7880
7881 // Time when this Event was first observed.
7882 "eventTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime"
7883
7884 // The time at which the event was first recorded. (Time of server
7885 // receipt is in TypeMeta.)
7886 "firstTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
7887
7888 // The object that this event is about.
7889 "involvedObject"!: #."io.k8s.api.core.v1.ObjectReference"
7890
7891 // Kind is a string value representing the REST resource this
7892 // object represents. Servers may infer this from the endpoint
7893 // the client submits requests to. Cannot be updated. In
7894 // CamelCase. More info:
7895 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
7896 "kind"?: string
7897
7898 // The time at which the most recent occurrence of this event was
7899 // recorded.
7900 "lastTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
7901
7902 // A human-readable description of the status of this operation.
7903 "message"?: string
7904
7905 // Standard object's metadata. More info:
7906 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
7907 "metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
7908
7909 // This should be a short, machine understandable string that
7910 // gives the reason for the transition into the object's current
7911 // status.
7912 "reason"?: string
7913
7914 // Optional secondary object for more complex actions.
7915 "related"?: #."io.k8s.api.core.v1.ObjectReference"
7916
7917 // Name of the controller that emitted this Event, e.g.
7918 // `kubernetes.io/kubelet`.
7919 "reportingComponent"?: string
7920
7921 // ID of the controller instance, e.g. `kubelet-xyzf`.
7922 "reportingInstance"?: string
7923
7924 // Data about the Event series this event represents or nil if
7925 // it's a singleton Event.
7926 "series"?: #."io.k8s.api.core.v1.EventSeries"
7927
7928 // The component reporting this event. Should be a short machine
7929 // understandable string.
7930 "source"?: #."io.k8s.api.core.v1.EventSource"
7931
7932 // Type of this event (Normal, Warning), new types could be added
7933 // in the future
7934 "type"?: string
7935 }
7936
7937 // EventSeries contain information on series of events, i.e. thing
7938 // that was/is happening continuously for some time.
7939 #: "io.k8s.api.core.v1.EventSeries": {
7940 // Number of occurrences in this series up to the last heartbeat
7941 // time
7942 "count"?: int
7943
7944 // Time of the last occurrence observed
7945 "lastObservedTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime"
7946 }
7947
7948 // EventSource contains information for an event.
7949 #: "io.k8s.api.core.v1.EventSource": {
7950 // Component from which the event is generated.
7951 "component"?: string
7952
7953 // Node name on which the event is generated.
7954 "host"?: string
7955 }
7956
7957 // ExecAction describes a "run in container" action.
7958 #: "io.k8s.api.core.v1.ExecAction": {
7959 // Command is the command line to execute inside the container,
7960 // the working directory for the command is root ('/') in the
7961 // container's filesystem. The command is simply exec'd, it is
7962 // not run inside a shell, so traditional shell instructions
7963 // ('|', etc) won't work. To use a shell, you need to explicitly
7964 // call out to that shell. Exit status of 0 is treated as
7965 // live/healthy and non-zero is unhealthy.
7966 "command"?: [...string]
7967 }
7968
7969 // Represents a Fibre Channel volume. Fibre Channel volumes can
7970 // only be mounted as read/write once. Fibre Channel volumes
7971 // support ownership management and SELinux relabeling.
7972 #: "io.k8s.api.core.v1.FCVolumeSource": {
7973 // fsType is the filesystem type to mount. Must be a filesystem
7974 // type supported by the host operating system. Ex. "ext4",
7975 // "xfs", "ntfs". Implicitly inferred to be "ext4" if
7976 // unspecified.
7977 "fsType"?: string
7978
7979 // lun is Optional: FC target lun number
7980 "lun"?: int
7981
7982 // readOnly is Optional: Defaults to false (read/write). ReadOnly
7983 // here will force the ReadOnly setting in VolumeMounts.
7984 "readOnly"?: bool
7985
7986 // targetWWNs is Optional: FC target worldwide names (WWNs)
7987 "targetWWNs"?: [...string]
7988
7989 // wwids Optional: FC volume world wide identifiers (wwids) Either
7990 // wwids or combination of targetWWNs and lun must be set, but
7991 // not both simultaneously.
7992 "wwids"?: [...string]
7993 }
7994
7995 // FlexVolume represents a generic volume resource that is
7996 // provisioned/attached using an exec based plugin.
7997 #: "io.k8s.api.core.v1.FlexVolumeSource": {
7998 // driver is the name of the driver to use for this volume.
7999 "driver"!: string
8000
8001 // fsType is the filesystem type to mount. Must be a filesystem
8002 // type supported by the host operating system. Ex. "ext4",
8003 // "xfs", "ntfs". The default filesystem depends on FlexVolume
8004 // script.
8005 "fsType"?: string
8006
8007 // options is Optional: this field holds extra command options if
8008 // any.
8009 "options"?: {
8010 [string]: string
8011 }
8012
8013 // readOnly is Optional: defaults to false (read/write). ReadOnly
8014 // here will force the ReadOnly setting in VolumeMounts.
8015 "readOnly"?: bool
8016
8017 // secretRef is Optional: secretRef is reference to the secret
8018 // object containing sensitive information to pass to the plugin
8019 // scripts. This may be empty if no secret object is specified.
8020 // If the secret object contains more than one secret, all
8021 // secrets are passed to the plugin scripts.
8022 "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
8023 }
8024
8025 // Represents a Flocker volume mounted by the Flocker agent. One
8026 // and only one of datasetName and datasetUUID should be set.
8027 // Flocker volumes do not support ownership management or SELinux
8028 // relabeling.
8029 #: "io.k8s.api.core.v1.FlockerVolumeSource": {
8030 // datasetName is Name of the dataset stored as metadata -> name
8031 // on the dataset for Flocker should be considered as deprecated
8032 "datasetName"?: string
8033
8034 // datasetUUID is the UUID of the dataset. This is unique
8035 // identifier of a Flocker dataset
8036 "datasetUUID"?: string
8037 }
8038
8039 // Represents a Persistent Disk resource in Google Compute Engine.
8040 //
8041 // A GCE PD must exist before mounting to a container. The disk
8042 // must also be in the same GCE project and zone as the kubelet.
8043 // A GCE PD can only be mounted as read/write once or read-only
8044 // many times. GCE PDs support ownership management and SELinux
8045 // relabeling.
8046 #: "io.k8s.api.core.v1.GCEPersistentDiskVolumeSource": {
8047 // fsType is filesystem type of the volume that you want to mount.
8048 // Tip: Ensure that the filesystem type is supported by the host
8049 // operating system. Examples: "ext4", "xfs", "ntfs". Implicitly
8050 // inferred to be "ext4" if unspecified. More info:
8051 // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
8052 "fsType"?: string
8053
8054 // partition is the partition in the volume that you want to
8055 // mount. If omitted, the default is to mount by volume name.
8056 // Examples: For volume /dev/sda1, you specify the partition as
8057 // "1". Similarly, the volume partition for /dev/sda is "0" (or
8058 // you can leave the property empty). More info:
8059 // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
8060 "partition"?: int
8061
8062 // pdName is unique name of the PD resource in GCE. Used to
8063 // identify the disk in GCE. More info:
8064 // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
8065 "pdName"!: string
8066
8067 // readOnly here will force the ReadOnly setting in VolumeMounts.
8068 // Defaults to false. More info:
8069 // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
8070 "readOnly"?: bool
8071 }
8072
8073 // GRPCAction specifies an action involving a GRPC service.
8074 #: "io.k8s.api.core.v1.GRPCAction": {
8075 // Port number of the gRPC service. Number must be in the range 1
8076 // to 65535.
8077 "port"!: int
8078
8079 // Service is the name of the service to place in the gRPC
8080 // HealthCheckRequest (see
8081 // https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
8082 //
8083 // If this is not specified, the default behavior is defined by
8084 // gRPC.
8085 "service"?: string
8086 }
8087
8088 // Represents a volume that is populated with the contents of a
8089 // git repository. Git repo volumes do not support ownership
8090 // management. Git repo volumes support SELinux relabeling.
8091 //
8092 // DEPRECATED: GitRepo is deprecated. To provision a container
8093 // with a git repo, mount an EmptyDir into an InitContainer that
8094 // clones the repo using git, then mount the EmptyDir into the
8095 // Pod's container.
8096 #: "io.k8s.api.core.v1.GitRepoVolumeSource": {
8097 // directory is the target directory name. Must not contain or
8098 // start with '..'. If '.' is supplied, the volume directory will
8099 // be the git repository. Otherwise, if specified, the volume
8100 // will contain the git repository in the subdirectory with the
8101 // given name.
8102 "directory"?: string
8103
8104 // repository is the URL
8105 "repository"!: string
8106
8107 // revision is the commit hash for the specified revision.
8108 "revision"?: string
8109 }
8110
8111 // Represents a Glusterfs mount that lasts the lifetime of a pod.
8112 // Glusterfs volumes do not support ownership management or
8113 // SELinux relabeling.
8114 #: "io.k8s.api.core.v1.GlusterfsVolumeSource": {
8115 // endpoints is the endpoint name that details Glusterfs topology.
8116 // More info:
8117 // https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
8118 "endpoints"!: string
8119
8120 // path is the Glusterfs volume path. More info:
8121 // https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
8122 "path"!: string
8123
8124 // readOnly here will force the Glusterfs volume to be mounted
8125 // with read-only permissions. Defaults to false. More info:
8126 // https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
8127 "readOnly"?: bool
8128 }
8129
8130 // HTTPGetAction describes an action based on HTTP Get requests.
8131 #: "io.k8s.api.core.v1.HTTPGetAction": {
8132 // Host name to connect to, defaults to the pod IP. You probably
8133 // want to set "Host" in httpHeaders instead.
8134 "host"?: string
8135
8136 // Custom headers to set in the request. HTTP allows repeated
8137 // headers.
8138 "httpHeaders"?: [...#."io.k8s.api.core.v1.HTTPHeader"]
8139
8140 // Path to access on the HTTP server.
8141 "path"?: string
8142
8143 // Name or number of the port to access on the container. Number
8144 // must be in the range 1 to 65535. Name must be an
8145 // IANA_SVC_NAME.
8146 "port"!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
8147
8148 // Scheme to use for connecting to the host. Defaults to HTTP.
8149 "scheme"?: string
8150 }
8151
8152 // HTTPHeader describes a custom header to be used in HTTP probes
8153 #: "io.k8s.api.core.v1.HTTPHeader": {
8154 // The header field name. This will be canonicalized upon output,
8155 // so case-variant names will be understood as the same header.
8156 "name"!: string
8157
8158 // The header field value
8159 "value"!: string
8160 }
8161
8162 // HostAlias holds the mapping between IP and hostnames that will
8163 // be injected as an entry in the pod's hosts file.
8164 #: "io.k8s.api.core.v1.HostAlias": {
8165 // Hostnames for the above IP address.
8166 "hostnames"?: [...string]
8167
8168 // IP address of the host file entry.
8169 "ip"!: string
8170 }
8171
8172 // Represents a host path mapped into a pod. Host path volumes do
8173 // not support ownership management or SELinux relabeling.
8174 #: "io.k8s.api.core.v1.HostPathVolumeSource": {
8175 // path of the directory on the host. If the path is a symlink, it
8176 // will follow the link to the real path. More info:
8177 // https://kubernetes.io/docs/concepts/storage/volumes#hostpath
8178 "path"!: string
8179
8180 // type for HostPath Volume Defaults to "" More info:
8181 // https://kubernetes.io/docs/concepts/storage/volumes#hostpath
8182 "type"?: string
8183 }
8184
8185 // Represents an ISCSI disk. ISCSI volumes can only be mounted as
8186 // read/write once. ISCSI volumes support ownership management
8187 // and SELinux relabeling.
8188 #: "io.k8s.api.core.v1.ISCSIVolumeSource": {
8189 // chapAuthDiscovery defines whether support iSCSI Discovery CHAP
8190 // authentication
8191 "chapAuthDiscovery"?: bool
8192
8193 // chapAuthSession defines whether support iSCSI Session CHAP
8194 // authentication
8195 "chapAuthSession"?: bool
8196
8197 // fsType is the filesystem type of the volume that you want to
8198 // mount. Tip: Ensure that the filesystem type is supported by
8199 // the host operating system. Examples: "ext4", "xfs", "ntfs".
8200 // Implicitly inferred to be "ext4" if unspecified. More info:
8201 // https://kubernetes.io/docs/concepts/storage/volumes#iscsi
8202 "fsType"?: string
8203
8204 // initiatorName is the custom iSCSI Initiator Name. If
8205 // initiatorName is specified with iscsiInterface simultaneously,
8206 // new iSCSI interface <target portal>:<volume name> will be
8207 // created for the connection.
8208 "initiatorName"?: string
8209
8210 // iqn is the target iSCSI Qualified Name.
8211 "iqn"!: string
8212
8213 // iscsiInterface is the interface Name that uses an iSCSI
8214 // transport. Defaults to 'default' (tcp).
8215 "iscsiInterface"?: string
8216
8217 // lun represents iSCSI Target Lun number.
8218 "lun"!: int
8219
8220 // portals is the iSCSI Target Portal List. The portal is either
8221 // an IP or ip_addr:port if the port is other than default
8222 // (typically TCP ports 860 and 3260).
8223 "portals"?: [...string]
8224
8225 // readOnly here will force the ReadOnly setting in VolumeMounts.
8226 // Defaults to false.
8227 "readOnly"?: bool
8228
8229 // secretRef is the CHAP Secret for iSCSI target and initiator
8230 // authentication
8231 "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
8232
8233 // targetPortal is iSCSI Target Portal. The Portal is either an IP
8234 // or ip_addr:port if the port is other than default (typically
8235 // TCP ports 860 and 3260).
8236 "targetPortal"!: string
8237 }
8238
8239 // ImageVolumeSource represents a image volume resource.
8240 #: "io.k8s.api.core.v1.ImageVolumeSource": {
8241 // Policy for pulling OCI objects. Possible values are: Always:
8242 // the kubelet always attempts to pull the reference. Container
8243 // creation will fail If the pull fails. Never: the kubelet never
8244 // pulls the reference and only uses a local image or artifact.
8245 // Container creation will fail if the reference isn't present.
8246 // IfNotPresent: the kubelet pulls if the reference isn't already
8247 // present on disk. Container creation will fail if the reference
8248 // isn't present and the pull fails. Defaults to Always if
8249 // :latest tag is specified, or IfNotPresent otherwise.
8250 "pullPolicy"?: string
8251
8252 // Required: Image or artifact reference to be used. Behaves in
8253 // the same way as pod.spec.containers[*].image. Pull secrets
8254 // will be assembled in the same way as for the container image
8255 // by looking up node credentials, SA image pull secrets, and pod
8256 // spec image pull secrets. More info:
8257 // https://kubernetes.io/docs/concepts/containers/images This
8258 // field is optional to allow higher level config management to
8259 // default or override container images in workload controllers
8260 // like Deployments and StatefulSets.
8261 "reference"?: string
8262 }
8263
8264 // Maps a string key to a path within a volume.
8265 #: "io.k8s.api.core.v1.KeyToPath": {
8266 // key is the key to project.
8267 "key"!: string
8268
8269 // mode is Optional: mode bits used to set permissions on this
8270 // file. Must be an octal value between 0000 and 0777 or a
8271 // decimal value between 0 and 511. YAML accepts both octal and
8272 // decimal values, JSON requires decimal values for mode bits. If
8273 // not specified, the volume defaultMode will be used. This might
8274 // be in conflict with other options that affect the file mode,
8275 // like fsGroup, and the result can be other mode bits set.
8276 "mode"?: int
8277
8278 // path is the relative path of the file to map the key to. May
8279 // not be an absolute path. May not contain the path element
8280 // '..'. May not start with the string '..'.
8281 "path"!: string
8282 }
8283
8284 // Lifecycle describes actions that the management system should
8285 // take in response to container lifecycle events. For the
8286 // PostStart and PreStop lifecycle handlers, management of the
8287 // container blocks until the action is complete, unless the
8288 // container process fails, in which case the handler is aborted.
8289 #: "io.k8s.api.core.v1.Lifecycle": {
8290 // PostStart is called immediately after a container is created.
8291 // If the handler fails, the container is terminated and
8292 // restarted according to its restart policy. Other management of
8293 // the container blocks until the hook completes. More info:
8294 // https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
8295 "postStart"?: #."io.k8s.api.core.v1.LifecycleHandler"
8296
8297 // PreStop is called immediately before a container is terminated
8298 // due to an API request or management event such as
8299 // liveness/startup probe failure, preemption, resource
8300 // contention, etc. The handler is not called if the container
8301 // crashes or exits. The Pod's termination grace period countdown
8302 // begins before the PreStop hook is executed. Regardless of the
8303 // outcome of the handler, the container will eventually
8304 // terminate within the Pod's termination grace period (unless
8305 // delayed by finalizers). Other management of the container
8306 // blocks until the hook completes or until the termination grace
8307 // period is reached. More info:
8308 // https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
8309 "preStop"?: #."io.k8s.api.core.v1.LifecycleHandler"
8310
8311 // StopSignal defines which signal will be sent to a container
8312 // when it is being stopped. If not specified, the default is
8313 // defined by the container runtime in use. StopSignal can only
8314 // be set for Pods with a non-empty .spec.os.name
8315 "stopSignal"?: string
8316 }
8317
8318 // LifecycleHandler defines a specific action that should be taken
8319 // in a lifecycle hook. One and only one of the fields, except
8320 // TCPSocket must be specified.
8321 #: "io.k8s.api.core.v1.LifecycleHandler": {
8322 // Exec specifies a command to execute in the container.
8323 "exec"?: #."io.k8s.api.core.v1.ExecAction"
8324
8325 // HTTPGet specifies an HTTP GET request to perform.
8326 "httpGet"?: #."io.k8s.api.core.v1.HTTPGetAction"
8327
8328 // Sleep represents a duration that the container should sleep.
8329 "sleep"?: #."io.k8s.api.core.v1.SleepAction"
8330
8331 // Deprecated. TCPSocket is NOT supported as a LifecycleHandler
8332 // and kept for backward compatibility. There is no validation of
8333 // this field and lifecycle hooks will fail at runtime when it is
8334 // specified.
8335 "tcpSocket"?: #."io.k8s.api.core.v1.TCPSocketAction"
8336 }
8337
8338 // LocalObjectReference contains enough information to let you
8339 // locate the referenced object inside the same namespace.
8340 #: "io.k8s.api.core.v1.LocalObjectReference": {
8341 // Name of the referent. This field is effectively required, but
8342 // due to backwards compatibility is allowed to be empty.
8343 // Instances of this type with an empty value here are almost
8344 // certainly wrong. More info:
8345 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8346 "name"?: string
8347 }
8348
8349 // ModifyVolumeStatus represents the status object of
8350 // ControllerModifyVolume operation
8351 #: "io.k8s.api.core.v1.ModifyVolumeStatus": {
8352 // status is the status of the ControllerModifyVolume operation.
8353 // It can be in any of following states:
8354 // - Pending
8355 // Pending indicates that the PersistentVolumeClaim cannot be
8356 // modified due to unmet requirements, such as
8357 // the specified VolumeAttributesClass not existing.
8358 // - InProgress
8359 // InProgress indicates that the volume is being modified.
8360 // - Infeasible
8361 // Infeasible indicates that the request has been rejected as
8362 // invalid by the CSI driver. To
8363 // resolve the error, a valid VolumeAttributesClass needs to be
8364 // specified.
8365 // Note: New statuses can be added in the future. Consumers should
8366 // check for unknown statuses and fail appropriately.
8367 "status"!: string
8368
8369 // targetVolumeAttributesClassName is the name of the
8370 // VolumeAttributesClass the PVC currently being reconciled
8371 "targetVolumeAttributesClassName"?: string
8372 }
8373
8374 // Represents an NFS mount that lasts the lifetime of a pod. NFS
8375 // volumes do not support ownership management or SELinux
8376 // relabeling.
8377 #: "io.k8s.api.core.v1.NFSVolumeSource": {
8378 // path that is exported by the NFS server. More info:
8379 // https://kubernetes.io/docs/concepts/storage/volumes#nfs
8380 "path"!: string
8381
8382 // readOnly here will force the NFS export to be mounted with
8383 // read-only permissions. Defaults to false. More info:
8384 // https://kubernetes.io/docs/concepts/storage/volumes#nfs
8385 "readOnly"?: bool
8386
8387 // server is the hostname or IP address of the NFS server. More
8388 // info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
8389 "server"!: string
8390 }
8391
8392 // Node affinity is a group of node affinity scheduling rules.
8393 #: "io.k8s.api.core.v1.NodeAffinity": {
8394 // The scheduler will prefer to schedule pods to nodes that
8395 // satisfy the affinity expressions specified by this field, but
8396 // it may choose a node that violates one or more of the
8397 // expressions. The node that is most preferred is the one with
8398 // the greatest sum of weights, i.e. for each node that meets all
8399 // of the scheduling requirements (resource request,
8400 // requiredDuringScheduling affinity expressions, etc.), compute
8401 // a sum by iterating through the elements of this field and
8402 // adding "weight" to the sum if the node matches the
8403 // corresponding matchExpressions; the node(s) with the highest
8404 // sum are the most preferred.
8405 "preferredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.PreferredSchedulingTerm"]
8406
8407 // If the affinity requirements specified by this field are not
8408 // met at scheduling time, the pod will not be scheduled onto the
8409 // node. If the affinity requirements specified by this field
8410 // cease to be met at some point during pod execution (e.g. due
8411 // to an update), the system may or may not try to eventually
8412 // evict the pod from its node.
8413 "requiredDuringSchedulingIgnoredDuringExecution"?: #."io.k8s.api.core.v1.NodeSelector"
8414 }
8415
8416 // A node selector represents the union of the results of one or
8417 // more label queries over a set of nodes; that is, it represents
8418 // the OR of the selectors represented by the node selector
8419 // terms.
8420 #: "io.k8s.api.core.v1.NodeSelector": {
8421 // Required. A list of node selector terms. The terms are ORed.
8422 "nodeSelectorTerms"!: [...#."io.k8s.api.core.v1.NodeSelectorTerm"]
8423 }
8424
8425 // A node selector requirement is a selector that contains values,
8426 // a key, and an operator that relates the key and values.
8427 #: "io.k8s.api.core.v1.NodeSelectorRequirement": {
8428 // The label key that the selector applies to.
8429 "key"!: string
8430
8431 // Represents a key's relationship to a set of values. Valid
8432 // operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
8433 "operator"!: string
8434
8435 // An array of string values. If the operator is In or NotIn, the
8436 // values array must be non-empty. If the operator is Exists or
8437 // DoesNotExist, the values array must be empty. If the operator
8438 // is Gt or Lt, the values array must have a single element,
8439 // which will be interpreted as an integer. This array is
8440 // replaced during a strategic merge patch.
8441 "values"?: [...string]
8442 }
8443
8444 // A null or empty node selector term matches no objects. The
8445 // requirements of them are ANDed. The TopologySelectorTerm type
8446 // implements a subset of the NodeSelectorTerm.
8447 #: "io.k8s.api.core.v1.NodeSelectorTerm": {
8448 // A list of node selector requirements by node's labels.
8449 "matchExpressions"?: [...#."io.k8s.api.core.v1.NodeSelectorRequirement"]
8450
8451 // A list of node selector requirements by node's fields.
8452 "matchFields"?: [...#."io.k8s.api.core.v1.NodeSelectorRequirement"]
8453 }
8454
8455 // ObjectFieldSelector selects an APIVersioned field of an object.
8456 #: "io.k8s.api.core.v1.ObjectFieldSelector": {
8457 // Version of the schema the FieldPath is written in terms of,
8458 // defaults to "v1".
8459 "apiVersion"?: string
8460
8461 // Path of the field to select in the specified API version.
8462 "fieldPath"!: string
8463 }
8464
8465 // ObjectReference contains enough information to let you inspect
8466 // or modify the referred object.
8467 #: "io.k8s.api.core.v1.ObjectReference": {
8468 // API version of the referent.
8469 "apiVersion"?: string
8470
8471 // If referring to a piece of an object instead of an entire
8472 // object, this string should contain a valid JSON/Go field
8473 // access statement, such as desiredState.manifest.containers[2].
8474 // For example, if the object reference is to a container within
8475 // a pod, this would take on a value like:
8476 // "spec.containers{name}" (where "name" refers to the name of
8477 // the container that triggered the event) or if no container
8478 // name is specified "spec.containers[2]" (container with index 2
8479 // in this pod). This syntax is chosen only to have some
8480 // well-defined way of referencing a part of an object.
8481 "fieldPath"?: string
8482
8483 // Kind of the referent. More info:
8484 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
8485 "kind"?: string
8486
8487 // Name of the referent. More info:
8488 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8489 "name"?: string
8490
8491 // Namespace of the referent. More info:
8492 // https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
8493 "namespace"?: string
8494
8495 // Specific resourceVersion to which this reference is made, if
8496 // any. More info:
8497 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
8498 "resourceVersion"?: string
8499
8500 // UID of the referent. More info:
8501 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
8502 "uid"?: string
8503 }
8504
8505 // PersistentVolumeClaim is a user's request for and claim to a
8506 // persistent volume
8507 #: "io.k8s.api.core.v1.PersistentVolumeClaim": {
8508 // APIVersion defines the versioned schema of this representation
8509 // of an object. Servers should convert recognized schemas to the
8510 // latest internal value, and may reject unrecognized values.
8511 // More info:
8512 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
8513 "apiVersion"?: string
8514
8515 // Kind is a string value representing the REST resource this
8516 // object represents. Servers may infer this from the endpoint
8517 // the client submits requests to. Cannot be updated. In
8518 // CamelCase. More info:
8519 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
8520 "kind"?: string
8521
8522 // Standard object's metadata. More info:
8523 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
8524 "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
8525
8526 // spec defines the desired characteristics of a volume requested
8527 // by a pod author. More info:
8528 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
8529 "spec"?: #."io.k8s.api.core.v1.PersistentVolumeClaimSpec"
8530
8531 // status represents the current information/status of a
8532 // persistent volume claim. Read-only. More info:
8533 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
8534 "status"?: #."io.k8s.api.core.v1.PersistentVolumeClaimStatus"
8535 }
8536
8537 // PersistentVolumeClaimCondition contains details about state of
8538 // pvc
8539 #: "io.k8s.api.core.v1.PersistentVolumeClaimCondition": {
8540 // lastProbeTime is the time we probed the condition.
8541 "lastProbeTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
8542
8543 // lastTransitionTime is the time the condition transitioned from
8544 // one status to another.
8545 "lastTransitionTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
8546
8547 // message is the human-readable message indicating details about
8548 // last transition.
8549 "message"?: string
8550
8551 // reason is a unique, this should be a short, machine
8552 // understandable string that gives the reason for condition's
8553 // last transition. If it reports "Resizing" that means the
8554 // underlying persistent volume is being resized.
8555 "reason"?: string
8556
8557 // Status is the status of the condition. Can be True, False,
8558 // Unknown. More info:
8559 // https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required
8560 "status"!: string
8561
8562 // Type is the type of the condition. More info:
8563 // 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
8564 "type"!: string
8565 }
8566
8567 // PersistentVolumeClaimSpec describes the common attributes of
8568 // storage devices and allows a Source for provider-specific
8569 // attributes
8570 #: "io.k8s.api.core.v1.PersistentVolumeClaimSpec": {
8571 // accessModes contains the desired access modes the volume should
8572 // have. More info:
8573 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
8574 "accessModes"?: [...string]
8575
8576 // dataSource field can be used to specify either: * An existing
8577 // VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
8578 // * An existing PVC (PersistentVolumeClaim) If the provisioner
8579 // or an external controller can support the specified data
8580 // source, it will create a new volume based on the contents of
8581 // the specified data source. When the AnyVolumeDataSource
8582 // feature gate is enabled, dataSource contents will be copied to
8583 // dataSourceRef, and dataSourceRef contents will be copied to
8584 // dataSource when dataSourceRef.namespace is not specified. If
8585 // the namespace is specified, then dataSourceRef will not be
8586 // copied to dataSource.
8587 "dataSource"?: #."io.k8s.api.core.v1.TypedLocalObjectReference"
8588
8589 // dataSourceRef specifies the object from which to populate the
8590 // volume with data, if a non-empty volume is desired. This may
8591 // be any object from a non-empty API group (non core object) or
8592 // a PersistentVolumeClaim object. When this field is specified,
8593 // volume binding will only succeed if the type of the specified
8594 // object matches some installed volume populator or dynamic
8595 // provisioner. This field will replace the functionality of the
8596 // dataSource field and as such if both fields are non-empty,
8597 // they must have the same value. For backwards compatibility,
8598 // when namespace isn't specified in dataSourceRef, both fields
8599 // (dataSource and dataSourceRef) will be set to the same value
8600 // automatically if one of them is empty and the other is
8601 // non-empty. When namespace is specified in dataSourceRef,
8602 // dataSource isn't set to the same value and must be empty.
8603 // There are three important differences between dataSource and
8604 // dataSourceRef: * While dataSource only allows two specific
8605 // types of objects, dataSourceRef
8606 // allows any non-core object, as well as PersistentVolumeClaim
8607 // objects.
8608 // * While dataSource ignores disallowed values (dropping them),
8609 // dataSourceRef
8610 // preserves all values, and generates an error if a disallowed
8611 // value is
8612 // specified.
8613 // * While dataSource only allows local objects, dataSourceRef
8614 // allows objects
8615 // in any namespaces.
8616 // (Beta) Using this field requires the AnyVolumeDataSource
8617 // feature gate to be enabled. (Alpha) Using the namespace field
8618 // of dataSourceRef requires the CrossNamespaceVolumeDataSource
8619 // feature gate to be enabled.
8620 "dataSourceRef"?: #."io.k8s.api.core.v1.TypedObjectReference"
8621
8622 // resources represents the minimum resources the volume should
8623 // have. If RecoverVolumeExpansionFailure feature is enabled
8624 // users are allowed to specify resource requirements that are
8625 // lower than previous value but must still be higher than
8626 // capacity recorded in the status field of the claim. More info:
8627 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
8628 "resources"?: #."io.k8s.api.core.v1.VolumeResourceRequirements"
8629
8630 // selector is a label query over volumes to consider for binding.
8631 "selector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
8632
8633 // storageClassName is the name of the StorageClass required by
8634 // the claim. More info:
8635 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
8636 "storageClassName"?: string
8637
8638 // volumeAttributesClassName may be used to set the
8639 // VolumeAttributesClass used by this claim. If specified, the
8640 // CSI driver will create or update the volume with the
8641 // attributes defined in the corresponding VolumeAttributesClass.
8642 // This has a different purpose than storageClassName, it can be
8643 // changed after the claim is created. An empty string value
8644 // means that no VolumeAttributesClass will be applied to the
8645 // claim but it's not allowed to reset this field to empty string
8646 // once it is set. If unspecified and the PersistentVolumeClaim
8647 // is unbound, the default VolumeAttributesClass will be set by
8648 // the persistentvolume controller if it exists. If the resource
8649 // referred to by volumeAttributesClass does not exist, this
8650 // PersistentVolumeClaim will be set to a Pending state, as
8651 // reflected by the modifyVolumeStatus field, until such as a
8652 // resource exists. More info:
8653 // https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
8654 // (Beta) Using this field requires the VolumeAttributesClass
8655 // feature gate to be enabled (off by default).
8656 "volumeAttributesClassName"?: string
8657
8658 // volumeMode defines what type of volume is required by the
8659 // claim. Value of Filesystem is implied when not included in
8660 // claim spec.
8661 "volumeMode"?: string
8662
8663 // volumeName is the binding reference to the PersistentVolume
8664 // backing this claim.
8665 "volumeName"?: string
8666 }
8667
8668 // PersistentVolumeClaimStatus is the current status of a
8669 // persistent volume claim.
8670 #: "io.k8s.api.core.v1.PersistentVolumeClaimStatus": {
8671 // accessModes contains the actual access modes the volume backing
8672 // the PVC has. More info:
8673 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
8674 "accessModes"?: [...string]
8675
8676 // allocatedResourceStatuses stores status of resource being
8677 // resized for the given PVC. Key names follow standard
8678 // Kubernetes label syntax. Valid values are either:
8679 // * Un-prefixed keys:
8680 // - storage - the capacity of the volume.
8681 // * Custom resources must use implementation-defined prefixed
8682 // names such as "example.com/my-custom-resource"
8683 // Apart from above values - keys that are unprefixed or have
8684 // kubernetes.io prefix are considered reserved and hence may not
8685 // be used.
8686 //
8687 // ClaimResourceStatus can be in any of following states:
8688 // - ControllerResizeInProgress:
8689 // State set when resize controller starts resizing the volume in
8690 // control-plane.
8691 // - ControllerResizeFailed:
8692 // State set when resize has failed in resize controller with a
8693 // terminal error.
8694 // - NodeResizePending:
8695 // State set when resize controller has finished resizing the
8696 // volume but further resizing of
8697 // volume is needed on the node.
8698 // - NodeResizeInProgress:
8699 // State set when kubelet starts resizing the volume.
8700 // - NodeResizeFailed:
8701 // State set when resizing has failed in kubelet with a terminal
8702 // error. Transient errors don't set
8703 // NodeResizeFailed.
8704 // For example: if expanding a PVC for more capacity - this field
8705 // can be one of the following states:
8706 // - pvc.status.allocatedResourceStatus['storage'] =
8707 // "ControllerResizeInProgress"
8708 // - pvc.status.allocatedResourceStatus['storage'] =
8709 // "ControllerResizeFailed"
8710 // - pvc.status.allocatedResourceStatus['storage'] =
8711 // "NodeResizePending"
8712 // - pvc.status.allocatedResourceStatus['storage'] =
8713 // "NodeResizeInProgress"
8714 // - pvc.status.allocatedResourceStatus['storage'] =
8715 // "NodeResizeFailed"
8716 // When this field is not set, it means that no resize operation
8717 // is in progress for the given PVC.
8718 //
8719 // A controller that receives PVC update with previously unknown
8720 // resourceName or ClaimResourceStatus should ignore the update
8721 // for the purpose it was designed. For example - a controller
8722 // that only is responsible for resizing capacity of the volume,
8723 // should ignore PVC updates that change other valid resources
8724 // associated with PVC.
8725 //
8726 // This is an alpha field and requires enabling
8727 // RecoverVolumeExpansionFailure feature.
8728 "allocatedResourceStatuses"?: {
8729 [string]: string
8730 }
8731
8732 // allocatedResources tracks the resources allocated to a PVC
8733 // including its capacity. Key names follow standard Kubernetes
8734 // label syntax. Valid values are either:
8735 // * Un-prefixed keys:
8736 // - storage - the capacity of the volume.
8737 // * Custom resources must use implementation-defined prefixed
8738 // names such as "example.com/my-custom-resource"
8739 // Apart from above values - keys that are unprefixed or have
8740 // kubernetes.io prefix are considered reserved and hence may not
8741 // be used.
8742 //
8743 // Capacity reported here may be larger than the actual capacity
8744 // when a volume expansion operation is requested. For storage
8745 // quota, the larger value from allocatedResources and
8746 // PVC.spec.resources is used. If allocatedResources is not set,
8747 // PVC.spec.resources alone is used for quota calculation. If a
8748 // volume expansion capacity request is lowered,
8749 // allocatedResources is only lowered if there are no expansion
8750 // operations in progress and if the actual volume capacity is
8751 // equal or lower than the requested capacity.
8752 //
8753 // A controller that receives PVC update with previously unknown
8754 // resourceName should ignore the update for the purpose it was
8755 // designed. For example - a controller that only is responsible
8756 // for resizing capacity of the volume, should ignore PVC updates
8757 // that change other valid resources associated with PVC.
8758 //
8759 // This is an alpha field and requires enabling
8760 // RecoverVolumeExpansionFailure feature.
8761 "allocatedResources"?: {
8762 [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
8763 }
8764
8765 // capacity represents the actual resources of the underlying
8766 // volume.
8767 "capacity"?: {
8768 [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
8769 }
8770
8771 // conditions is the current Condition of persistent volume claim.
8772 // If underlying persistent volume is being resized then the
8773 // Condition will be set to 'Resizing'.
8774 "conditions"?: [...#."io.k8s.api.core.v1.PersistentVolumeClaimCondition"]
8775
8776 // currentVolumeAttributesClassName is the current name of the
8777 // VolumeAttributesClass the PVC is using. When unset, there is
8778 // no VolumeAttributeClass applied to this PersistentVolumeClaim
8779 // This is a beta field and requires enabling
8780 // VolumeAttributesClass feature (off by default).
8781 "currentVolumeAttributesClassName"?: string
8782
8783 // ModifyVolumeStatus represents the status object of
8784 // ControllerModifyVolume operation. When this is unset, there is
8785 // no ModifyVolume operation being attempted. This is a beta
8786 // field and requires enabling VolumeAttributesClass feature (off
8787 // by default).
8788 "modifyVolumeStatus"?: #."io.k8s.api.core.v1.ModifyVolumeStatus"
8789
8790 // phase represents the current phase of PersistentVolumeClaim.
8791 "phase"?: string
8792 }
8793
8794 // PersistentVolumeClaimTemplate is used to produce
8795 // PersistentVolumeClaim objects as part of an
8796 // EphemeralVolumeSource.
8797 #: "io.k8s.api.core.v1.PersistentVolumeClaimTemplate": {
8798 // May contain labels and annotations that will be copied into the
8799 // PVC when creating it. No other fields are allowed and will be
8800 // rejected during validation.
8801 "metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
8802
8803 // The specification for the PersistentVolumeClaim. The entire
8804 // content is copied unchanged into the PVC that gets created
8805 // from this template. The same fields as in a
8806 // PersistentVolumeClaim are also valid here.
8807 "spec"!: #."io.k8s.api.core.v1.PersistentVolumeClaimSpec"
8808 }
8809
8810 // PersistentVolumeClaimVolumeSource references the user's PVC in
8811 // the same namespace. This volume finds the bound PV and mounts
8812 // that volume for the pod. A PersistentVolumeClaimVolumeSource
8813 // is, essentially, a wrapper around another type of volume that
8814 // is owned by someone else (the system).
8815 #: "io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource": {
8816 // claimName is the name of a PersistentVolumeClaim in the same
8817 // namespace as the pod using this volume. More info:
8818 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
8819 "claimName"!: string
8820
8821 // readOnly Will force the ReadOnly setting in VolumeMounts.
8822 // Default false.
8823 "readOnly"?: bool
8824 }
8825
8826 // Represents a Photon Controller persistent disk resource.
8827 #: "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": {
8828 // fsType is the filesystem type to mount. Must be a filesystem
8829 // type supported by the host operating system. Ex. "ext4",
8830 // "xfs", "ntfs". Implicitly inferred to be "ext4" if
8831 // unspecified.
8832 "fsType"?: string
8833
8834 // pdID is the ID that identifies Photon Controller persistent
8835 // disk
8836 "pdID"!: string
8837 }
8838
8839 // Pod affinity is a group of inter pod affinity scheduling rules.
8840 #: "io.k8s.api.core.v1.PodAffinity": {
8841 // The scheduler will prefer to schedule pods to nodes that
8842 // satisfy the affinity expressions specified by this field, but
8843 // it may choose a node that violates one or more of the
8844 // expressions. The node that is most preferred is the one with
8845 // the greatest sum of weights, i.e. for each node that meets all
8846 // of the scheduling requirements (resource request,
8847 // requiredDuringScheduling affinity expressions, etc.), compute
8848 // a sum by iterating through the elements of this field and
8849 // adding "weight" to the sum if the node has pods which matches
8850 // the corresponding podAffinityTerm; the node(s) with the
8851 // highest sum are the most preferred.
8852 "preferredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.WeightedPodAffinityTerm"]
8853
8854 // If the affinity requirements specified by this field are not
8855 // met at scheduling time, the pod will not be scheduled onto the
8856 // node. If the affinity requirements specified by this field
8857 // cease to be met at some point during pod execution (e.g. due
8858 // to a pod label update), the system may or may not try to
8859 // eventually evict the pod from its node. When there are
8860 // multiple elements, the lists of nodes corresponding to each
8861 // podAffinityTerm are intersected, i.e. all terms must be
8862 // satisfied.
8863 "requiredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.PodAffinityTerm"]
8864 }
8865
8866 // Defines a set of pods (namely those matching the labelSelector
8867 // relative to the given namespace(s)) that this pod should be
8868 // co-located (affinity) or not co-located (anti-affinity) with,
8869 // where co-located is defined as running on a node whose value
8870 // of the label with key <topologyKey> matches that of any node
8871 // on which a pod of the set of pods is running
8872 #: "io.k8s.api.core.v1.PodAffinityTerm": {
8873 // A label query over a set of resources, in this case pods. If
8874 // it's null, this PodAffinityTerm matches with no Pods.
8875 "labelSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
8876
8877 // MatchLabelKeys is a set of pod label keys to select which pods
8878 // will be taken into consideration. The keys are used to lookup
8879 // values from the incoming pod labels, those key-value labels
8880 // are merged with `labelSelector` as `key in (value)` to select
8881 // the group of existing pods which pods will be taken into
8882 // consideration for the incoming pod's pod (anti) affinity. Keys
8883 // that don't exist in the incoming pod labels will be ignored.
8884 // The default value is empty. The same key is forbidden to exist
8885 // in both matchLabelKeys and labelSelector. Also, matchLabelKeys
8886 // cannot be set when labelSelector isn't set.
8887 "matchLabelKeys"?: [...string]
8888
8889 // MismatchLabelKeys is a set of pod label keys to select which
8890 // pods will be taken into consideration. The keys are used to
8891 // lookup values from the incoming pod labels, those key-value
8892 // labels are merged with `labelSelector` as `key notin (value)`
8893 // to select the group of existing pods which pods will be taken
8894 // into consideration for the incoming pod's pod (anti) affinity.
8895 // Keys that don't exist in the incoming pod labels will be
8896 // ignored. The default value is empty. The same key is forbidden
8897 // to exist in both mismatchLabelKeys and labelSelector. Also,
8898 // mismatchLabelKeys cannot be set when labelSelector isn't set.
8899 "mismatchLabelKeys"?: [...string]
8900
8901 // A label query over the set of namespaces that the term applies
8902 // to. The term is applied to the union of the namespaces
8903 // selected by this field and the ones listed in the namespaces
8904 // field. null selector and null or empty namespaces list means
8905 // "this pod's namespace". An empty selector ({}) matches all
8906 // namespaces.
8907 "namespaceSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
8908
8909 // namespaces specifies a static list of namespace names that the
8910 // term applies to. The term is applied to the union of the
8911 // namespaces listed in this field and the ones selected by
8912 // namespaceSelector. null or empty namespaces list and null
8913 // namespaceSelector means "this pod's namespace".
8914 "namespaces"?: [...string]
8915
8916 // This pod should be co-located (affinity) or not co-located
8917 // (anti-affinity) with the pods matching the labelSelector in
8918 // the specified namespaces, where co-located is defined as
8919 // running on a node whose value of the label with key
8920 // topologyKey matches that of any node on which any of the
8921 // selected pods is running. Empty topologyKey is not allowed.
8922 "topologyKey"!: string
8923 }
8924
8925 // Pod anti affinity is a group of inter pod anti affinity
8926 // scheduling rules.
8927 #: "io.k8s.api.core.v1.PodAntiAffinity": {
8928 // The scheduler will prefer to schedule pods to nodes that
8929 // satisfy the anti-affinity expressions specified by this field,
8930 // but it may choose a node that violates one or more of the
8931 // expressions. The node that is most preferred is the one with
8932 // the greatest sum of weights, i.e. for each node that meets all
8933 // of the scheduling requirements (resource request,
8934 // requiredDuringScheduling anti-affinity expressions, etc.),
8935 // compute a sum by iterating through the elements of this field
8936 // and adding "weight" to the sum if the node has pods which
8937 // matches the corresponding podAffinityTerm; the node(s) with
8938 // the highest sum are the most preferred.
8939 "preferredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.WeightedPodAffinityTerm"]
8940
8941 // If the anti-affinity requirements specified by this field are
8942 // not met at scheduling time, the pod will not be scheduled onto
8943 // the node. If the anti-affinity requirements specified by this
8944 // field cease to be met at some point during pod execution (e.g.
8945 // due to a pod label update), the system may or may not try to
8946 // eventually evict the pod from its node. When there are
8947 // multiple elements, the lists of nodes corresponding to each
8948 // podAffinityTerm are intersected, i.e. all terms must be
8949 // satisfied.
8950 "requiredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.PodAffinityTerm"]
8951 }
8952
8953 // PodDNSConfig defines the DNS parameters of a pod in addition to
8954 // those generated from DNSPolicy.
8955 #: "io.k8s.api.core.v1.PodDNSConfig": {
8956 // A list of DNS name server IP addresses. This will be appended
8957 // to the base nameservers generated from DNSPolicy. Duplicated
8958 // nameservers will be removed.
8959 "nameservers"?: [...string]
8960
8961 // A list of DNS resolver options. This will be merged with the
8962 // base options generated from DNSPolicy. Duplicated entries will
8963 // be removed. Resolution options given in Options will override
8964 // those that appear in the base DNSPolicy.
8965 "options"?: [...#."io.k8s.api.core.v1.PodDNSConfigOption"]
8966
8967 // A list of DNS search domains for host-name lookup. This will be
8968 // appended to the base search paths generated from DNSPolicy.
8969 // Duplicated search paths will be removed.
8970 "searches"?: [...string]
8971 }
8972
8973 // PodDNSConfigOption defines DNS resolver options of a pod.
8974 #: "io.k8s.api.core.v1.PodDNSConfigOption": {
8975 // Name is this DNS resolver option's name. Required.
8976 "name"?: string
8977
8978 // Value is this DNS resolver option's value.
8979 "value"?: string
8980 }
8981
8982 // PodSecurityContext holds pod-level security attributes and
8983 // common container settings. Some fields are also present in
8984 // container.securityContext. Field values of
8985 // container.securityContext take precedence over field values of
8986 // PodSecurityContext.
8987 #: "io.k8s.api.core.v1.PodSecurityContext": {
8988 // appArmorProfile is the AppArmor options to use by the
8989 // containers in this pod. Note that this field cannot be set
8990 // when spec.os.name is windows.
8991 "appArmorProfile"?: #."io.k8s.api.core.v1.AppArmorProfile"
8992
8993 // A special supplemental group that applies to all containers in
8994 // a pod. Some volume types allow the Kubelet to change the
8995 // ownership of that volume to be owned by the pod:
8996 //
8997 // 1. The owning GID will be the FSGroup 2. The setgid bit is set
8998 // (new files created in the volume will be owned by FSGroup) 3.
8999 // The permission bits are OR'd with rw-rw----
9000 //
9001 // If unset, the Kubelet will not modify the ownership and
9002 // permissions of any volume. Note that this field cannot be set
9003 // when spec.os.name is windows.
9004 "fsGroup"?: int
9005
9006 // fsGroupChangePolicy defines behavior of changing ownership and
9007 // permission of the volume before being exposed inside Pod. This
9008 // field will only apply to volume types which support fsGroup
9009 // based ownership(and permissions). It will have no effect on
9010 // ephemeral volume types such as: secret, configmaps and
9011 // emptydir. Valid values are "OnRootMismatch" and "Always". If
9012 // not specified, "Always" is used. Note that this field cannot
9013 // be set when spec.os.name is windows.
9014 "fsGroupChangePolicy"?: string
9015
9016 // The GID to run the entrypoint of the container process. Uses
9017 // runtime default if unset. May also be set in SecurityContext.
9018 // If set in both SecurityContext and PodSecurityContext, the
9019 // value specified in SecurityContext takes precedence for that
9020 // container. Note that this field cannot be set when
9021 // spec.os.name is windows.
9022 "runAsGroup"?: int
9023
9024 // Indicates that the container must run as a non-root user. If
9025 // true, the Kubelet will validate the image at runtime to ensure
9026 // that it does not run as UID 0 (root) and fail to start the
9027 // container if it does. If unset or false, no such validation
9028 // will be performed. May also be set in SecurityContext. If set
9029 // in both SecurityContext and PodSecurityContext, the value
9030 // specified in SecurityContext takes precedence.
9031 "runAsNonRoot"?: bool
9032
9033 // The UID to run the entrypoint of the container process.
9034 // Defaults to user specified in image metadata if unspecified.
9035 // May also be set in SecurityContext. If set in both
9036 // SecurityContext and PodSecurityContext, the value specified in
9037 // SecurityContext takes precedence for that container. Note that
9038 // this field cannot be set when spec.os.name is windows.
9039 "runAsUser"?: int
9040
9041 // seLinuxChangePolicy defines how the container's SELinux label
9042 // is applied to all volumes used by the Pod. It has no effect on
9043 // nodes that do not support SELinux or to volumes does not
9044 // support SELinux. Valid values are "MountOption" and
9045 // "Recursive".
9046 //
9047 // "Recursive" means relabeling of all files on all Pod volumes by
9048 // the container runtime. This may be slow for large volumes, but
9049 // allows mixing privileged and unprivileged Pods sharing the
9050 // same volume on the same node.
9051 //
9052 // "MountOption" mounts all eligible Pod volumes with `-o context`
9053 // mount option. This requires all Pods that share the same
9054 // volume to use the same SELinux label. It is not possible to
9055 // share the same volume among privileged and unprivileged Pods.
9056 // Eligible volumes are in-tree FibreChannel and iSCSI volumes,
9057 // and all CSI volumes whose CSI driver announces SELinux support
9058 // by setting spec.seLinuxMount: true in their CSIDriver
9059 // instance. Other volumes are always re-labelled recursively.
9060 // "MountOption" value is allowed only when SELinuxMount feature
9061 // gate is enabled.
9062 //
9063 // If not specified and SELinuxMount feature gate is enabled,
9064 // "MountOption" is used. If not specified and SELinuxMount
9065 // feature gate is disabled, "MountOption" is used for
9066 // ReadWriteOncePod volumes and "Recursive" for all other
9067 // volumes.
9068 //
9069 // This field affects only Pods that have SELinux label set,
9070 // either in PodSecurityContext or in SecurityContext of all
9071 // containers.
9072 //
9073 // All Pods that use the same volume should use the same
9074 // seLinuxChangePolicy, otherwise some pods can get stuck in
9075 // ContainerCreating state. Note that this field cannot be set
9076 // when spec.os.name is windows.
9077 "seLinuxChangePolicy"?: string
9078
9079 // The SELinux context to be applied to all containers. If
9080 // unspecified, the container runtime will allocate a random
9081 // SELinux context for each container. May also be set in
9082 // SecurityContext. If set in both SecurityContext and
9083 // PodSecurityContext, the value specified in SecurityContext
9084 // takes precedence for that container. Note that this field
9085 // cannot be set when spec.os.name is windows.
9086 "seLinuxOptions"?: #."io.k8s.api.core.v1.SELinuxOptions"
9087
9088 // The seccomp options to use by the containers in this pod. Note
9089 // that this field cannot be set when spec.os.name is windows.
9090 "seccompProfile"?: #."io.k8s.api.core.v1.SeccompProfile"
9091
9092 // A list of groups applied to the first process run in each
9093 // container, in addition to the container's primary GID and
9094 // fsGroup (if specified). If the SupplementalGroupsPolicy
9095 // feature is enabled, the supplementalGroupsPolicy field
9096 // determines whether these are in addition to or instead of any
9097 // group memberships defined in the container image. If
9098 // unspecified, no additional groups are added, though group
9099 // memberships defined in the container image may still be used,
9100 // depending on the supplementalGroupsPolicy field. Note that
9101 // this field cannot be set when spec.os.name is windows.
9102 "supplementalGroups"?: [...int]
9103
9104 // Defines how supplemental groups of the first container
9105 // processes are calculated. Valid values are "Merge" and
9106 // "Strict". If not specified, "Merge" is used. (Alpha) Using the
9107 // field requires the SupplementalGroupsPolicy feature gate to be
9108 // enabled and the container runtime must implement support for
9109 // this feature. Note that this field cannot be set when
9110 // spec.os.name is windows.
9111 "supplementalGroupsPolicy"?: string
9112
9113 // Sysctls hold a list of namespaced sysctls used for the pod.
9114 // Pods with unsupported sysctls (by the container runtime) might
9115 // fail to launch. Note that this field cannot be set when
9116 // spec.os.name is windows.
9117 "sysctls"?: [...#."io.k8s.api.core.v1.Sysctl"]
9118
9119 // The Windows specific settings applied to all containers. If
9120 // unspecified, the options within a container's SecurityContext
9121 // will be used. If set in both SecurityContext and
9122 // PodSecurityContext, the value specified in SecurityContext
9123 // takes precedence. Note that this field cannot be set when
9124 // spec.os.name is linux.
9125 "windowsOptions"?: #."io.k8s.api.core.v1.WindowsSecurityContextOptions"
9126 }
9127
9128 // PortworxVolumeSource represents a Portworx volume resource.
9129 #: "io.k8s.api.core.v1.PortworxVolumeSource": {
9130 // fSType represents the filesystem type to mount Must be a
9131 // filesystem type supported by the host operating system. Ex.
9132 // "ext4", "xfs". Implicitly inferred to be "ext4" if
9133 // unspecified.
9134 "fsType"?: string
9135
9136 // readOnly defaults to false (read/write). ReadOnly here will
9137 // force the ReadOnly setting in VolumeMounts.
9138 "readOnly"?: bool
9139
9140 // volumeID uniquely identifies a Portworx volume
9141 "volumeID"!: string
9142 }
9143
9144 // An empty preferred scheduling term matches all objects with
9145 // implicit weight 0 (i.e. it's a no-op). A null preferred
9146 // scheduling term matches no objects (i.e. is also a no-op).
9147 #: "io.k8s.api.core.v1.PreferredSchedulingTerm": {
9148 // A node selector term, associated with the corresponding weight.
9149 "preference"!: #."io.k8s.api.core.v1.NodeSelectorTerm"
9150
9151 // Weight associated with matching the corresponding
9152 // nodeSelectorTerm, in the range 1-100.
9153 "weight"!: int
9154 }
9155
9156 // Probe describes a health check to be performed against a
9157 // container to determine whether it is alive or ready to receive
9158 // traffic.
9159 #: "io.k8s.api.core.v1.Probe": {
9160 // Exec specifies a command to execute in the container.
9161 "exec"?: #."io.k8s.api.core.v1.ExecAction"
9162
9163 // Minimum consecutive failures for the probe to be considered
9164 // failed after having succeeded. Defaults to 3. Minimum value is
9165 // 1.
9166 "failureThreshold"?: int
9167
9168 // GRPC specifies a GRPC HealthCheckRequest.
9169 "grpc"?: #."io.k8s.api.core.v1.GRPCAction"
9170
9171 // HTTPGet specifies an HTTP GET request to perform.
9172 "httpGet"?: #."io.k8s.api.core.v1.HTTPGetAction"
9173
9174 // Number of seconds after the container has started before
9175 // liveness probes are initiated. More info:
9176 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
9177 "initialDelaySeconds"?: int
9178
9179 // How often (in seconds) to perform the probe. Default to 10
9180 // seconds. Minimum value is 1.
9181 "periodSeconds"?: int
9182
9183 // Minimum consecutive successes for the probe to be considered
9184 // successful after having failed. Defaults to 1. Must be 1 for
9185 // liveness and startup. Minimum value is 1.
9186 "successThreshold"?: int
9187
9188 // TCPSocket specifies a connection to a TCP port.
9189 "tcpSocket"?: #."io.k8s.api.core.v1.TCPSocketAction"
9190
9191 // Optional duration in seconds the pod needs to terminate
9192 // gracefully upon probe failure. The grace period is the
9193 // duration in seconds after the processes running in the pod are
9194 // sent a termination signal and the time when the processes are
9195 // forcibly halted with a kill signal. Set this value longer than
9196 // the expected cleanup time for your process. If this value is
9197 // nil, the pod's terminationGracePeriodSeconds will be used.
9198 // Otherwise, this value overrides the value provided by the pod
9199 // spec. Value must be non-negative integer. The value zero
9200 // indicates stop immediately via the kill signal (no opportunity
9201 // to shut down). This is a beta field and requires enabling
9202 // ProbeTerminationGracePeriod feature gate. Minimum value is 1.
9203 // spec.terminationGracePeriodSeconds is used if unset.
9204 "terminationGracePeriodSeconds"?: int
9205
9206 // Number of seconds after which the probe times out. Defaults to
9207 // 1 second. Minimum value is 1. More info:
9208 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
9209 "timeoutSeconds"?: int
9210 }
9211
9212 // Represents a projected volume source
9213 #: "io.k8s.api.core.v1.ProjectedVolumeSource": {
9214 // defaultMode are the mode bits used to set permissions on
9215 // created files by default. Must be an octal value between 0000
9216 // and 0777 or a decimal value between 0 and 511. YAML accepts
9217 // both octal and decimal values, JSON requires decimal values
9218 // for mode bits. Directories within the path are not affected by
9219 // this setting. This might be in conflict with other options
9220 // that affect the file mode, like fsGroup, and the result can be
9221 // other mode bits set.
9222 "defaultMode"?: int
9223
9224 // sources is the list of volume projections. Each entry in this
9225 // list handles one source.
9226 "sources"?: [...#."io.k8s.api.core.v1.VolumeProjection"]
9227 }
9228
9229 // Represents a Quobyte mount that lasts the lifetime of a pod.
9230 // Quobyte volumes do not support ownership management or SELinux
9231 // relabeling.
9232 #: "io.k8s.api.core.v1.QuobyteVolumeSource": {
9233 // group to map volume access to Default is no group
9234 "group"?: string
9235
9236 // readOnly here will force the Quobyte volume to be mounted with
9237 // read-only permissions. Defaults to false.
9238 "readOnly"?: bool
9239
9240 // registry represents a single or multiple Quobyte Registry
9241 // services specified as a string as host:port pair (multiple
9242 // entries are separated with commas) which acts as the central
9243 // registry for volumes
9244 "registry"!: string
9245
9246 // tenant owning the given Quobyte volume in the Backend Used with
9247 // dynamically provisioned Quobyte volumes, value is set by the
9248 // plugin
9249 "tenant"?: string
9250
9251 // user to map volume access to Defaults to serivceaccount user
9252 "user"?: string
9253
9254 // volume is a string that references an already created Quobyte
9255 // volume by name.
9256 "volume"!: string
9257 }
9258
9259 // Represents a Rados Block Device mount that lasts the lifetime
9260 // of a pod. RBD volumes support ownership management and SELinux
9261 // relabeling.
9262 #: "io.k8s.api.core.v1.RBDVolumeSource": {
9263 // fsType is the filesystem type of the volume that you want to
9264 // mount. Tip: Ensure that the filesystem type is supported by
9265 // the host operating system. Examples: "ext4", "xfs", "ntfs".
9266 // Implicitly inferred to be "ext4" if unspecified. More info:
9267 // https://kubernetes.io/docs/concepts/storage/volumes#rbd
9268 "fsType"?: string
9269
9270 // image is the rados image name. More info:
9271 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
9272 "image"!: string
9273
9274 // keyring is the path to key ring for RBDUser. Default is
9275 // /etc/ceph/keyring. More info:
9276 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
9277 "keyring"?: string
9278
9279 // monitors is a collection of Ceph monitors. More info:
9280 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
9281 "monitors"!: [...string]
9282
9283 // pool is the rados pool name. Default is rbd. More info:
9284 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
9285 "pool"?: string
9286
9287 // readOnly here will force the ReadOnly setting in VolumeMounts.
9288 // Defaults to false. More info:
9289 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
9290 "readOnly"?: bool
9291
9292 // secretRef is name of the authentication secret for RBDUser. If
9293 // provided overrides keyring. Default is nil. More info:
9294 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
9295 "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
9296
9297 // user is the rados user name. Default is admin. More info:
9298 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
9299 "user"?: string
9300 }
9301
9302 // ResourceClaim references one entry in PodSpec.ResourceClaims.
9303 #: "io.k8s.api.core.v1.ResourceClaim": {
9304 // Name must match the name of one entry in
9305 // pod.spec.resourceClaims of the Pod where this field is used.
9306 // It makes that resource available inside a container.
9307 "name"!: string
9308
9309 // Request is the name chosen for a request in the referenced
9310 // claim. If empty, everything from the claim is made available,
9311 // otherwise only the result of this request.
9312 "request"?: string
9313 }
9314
9315 // ResourceFieldSelector represents container resources (cpu,
9316 // memory) and their output format
9317 #: "io.k8s.api.core.v1.ResourceFieldSelector": {
9318 // Container name: required for volumes, optional for env vars
9319 "containerName"?: string
9320
9321 // Specifies the output format of the exposed resources, defaults
9322 // to "1"
9323 "divisor"?: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
9324
9325 // Required: resource to select
9326 "resource"!: string
9327 }
9328
9329 // ResourceRequirements describes the compute resource
9330 // requirements.
9331 #: "io.k8s.api.core.v1.ResourceRequirements": {
9332 // Claims lists the names of resources, defined in
9333 // spec.resourceClaims, that are used by this container.
9334 //
9335 // This is an alpha field and requires enabling the
9336 // DynamicResourceAllocation feature gate.
9337 //
9338 // This field is immutable. It can only be set for containers.
9339 "claims"?: [...#."io.k8s.api.core.v1.ResourceClaim"]
9340
9341 // Limits describes the maximum amount of compute resources
9342 // allowed. More info:
9343 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
9344 "limits"?: {
9345 [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
9346 }
9347
9348 // Requests describes the minimum amount of compute resources
9349 // required. If Requests is omitted for a container, it defaults
9350 // to Limits if that is explicitly specified, otherwise to an
9351 // implementation-defined value. Requests cannot exceed Limits.
9352 // More info:
9353 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
9354 "requests"?: {
9355 [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
9356 }
9357 }
9358
9359 // SELinuxOptions are the labels to be applied to the container
9360 #: "io.k8s.api.core.v1.SELinuxOptions": {
9361 // Level is SELinux level label that applies to the container.
9362 "level"?: string
9363
9364 // Role is a SELinux role label that applies to the container.
9365 "role"?: string
9366
9367 // Type is a SELinux type label that applies to the container.
9368 "type"?: string
9369
9370 // User is a SELinux user label that applies to the container.
9371 "user"?: string
9372 }
9373
9374 // ScaleIOVolumeSource represents a persistent ScaleIO volume
9375 #: "io.k8s.api.core.v1.ScaleIOVolumeSource": {
9376 // fsType is the filesystem type to mount. Must be a filesystem
9377 // type supported by the host operating system. Ex. "ext4",
9378 // "xfs", "ntfs". Default is "xfs".
9379 "fsType"?: string
9380
9381 // gateway is the host address of the ScaleIO API Gateway.
9382 "gateway"!: string
9383
9384 // protectionDomain is the name of the ScaleIO Protection Domain
9385 // for the configured storage.
9386 "protectionDomain"?: string
9387
9388 // readOnly Defaults to false (read/write). ReadOnly here will
9389 // force the ReadOnly setting in VolumeMounts.
9390 "readOnly"?: bool
9391
9392 // secretRef references to the secret for ScaleIO user and other
9393 // sensitive information. If this is not provided, Login
9394 // operation will fail.
9395 "secretRef"!: #."io.k8s.api.core.v1.LocalObjectReference"
9396
9397 // sslEnabled Flag enable/disable SSL communication with Gateway,
9398 // default false
9399 "sslEnabled"?: bool
9400
9401 // storageMode indicates whether the storage for a volume should
9402 // be ThickProvisioned or ThinProvisioned. Default is
9403 // ThinProvisioned.
9404 "storageMode"?: string
9405
9406 // storagePool is the ScaleIO Storage Pool associated with the
9407 // protection domain.
9408 "storagePool"?: string
9409
9410 // system is the name of the storage system as configured in
9411 // ScaleIO.
9412 "system"!: string
9413
9414 // volumeName is the name of a volume already created in the
9415 // ScaleIO system that is associated with this volume source.
9416 "volumeName"?: string
9417 }
9418
9419 // SeccompProfile defines a pod/container's seccomp profile
9420 // settings. Only one profile source may be set.
9421 #: "io.k8s.api.core.v1.SeccompProfile": {
9422 // localhostProfile indicates a profile defined in a file on the
9423 // node should be used. The profile must be preconfigured on the
9424 // node to work. Must be a descending path, relative to the
9425 // kubelet's configured seccomp profile location. Must be set if
9426 // type is "Localhost". Must NOT be set for any other type.
9427 "localhostProfile"?: string
9428
9429 // type indicates which kind of seccomp profile will be applied.
9430 // Valid options are:
9431 //
9432 // Localhost - a profile defined in a file on the node should be
9433 // used. RuntimeDefault - the container runtime default profile
9434 // should be used. Unconfined - no profile should be applied.
9435 "type"!: string
9436 }
9437
9438 // SecretEnvSource selects a Secret to populate the environment
9439 // variables with.
9440 //
9441 // The contents of the target Secret's Data field will represent
9442 // the key-value pairs as environment variables.
9443 #: "io.k8s.api.core.v1.SecretEnvSource": {
9444 // Name of the referent. This field is effectively required, but
9445 // due to backwards compatibility is allowed to be empty.
9446 // Instances of this type with an empty value here are almost
9447 // certainly wrong. More info:
9448 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
9449 "name"?: string
9450
9451 // Specify whether the Secret must be defined
9452 "optional"?: bool
9453 }
9454
9455 // SecretKeySelector selects a key of a Secret.
9456 #: "io.k8s.api.core.v1.SecretKeySelector": {
9457 // The key of the secret to select from. Must be a valid secret
9458 // key.
9459 "key"!: string
9460
9461 // Name of the referent. This field is effectively required, but
9462 // due to backwards compatibility is allowed to be empty.
9463 // Instances of this type with an empty value here are almost
9464 // certainly wrong. More info:
9465 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
9466 "name"?: string
9467
9468 // Specify whether the Secret or its key must be defined
9469 "optional"?: bool
9470 }
9471
9472 // Adapts a secret into a projected volume.
9473 //
9474 // The contents of the target Secret's Data field will be
9475 // presented in a projected volume as files using the keys in the
9476 // Data field as the file names. Note that this is identical to a
9477 // secret volume source without the default mode.
9478 #: "io.k8s.api.core.v1.SecretProjection": {
9479 // items if unspecified, each key-value pair in the Data field of
9480 // the referenced Secret will be projected into the volume as a
9481 // file whose name is the key and content is the value. If
9482 // specified, the listed keys will be projected into the
9483 // specified paths, and unlisted keys will not be present. If a
9484 // key is specified which is not present in the Secret, the
9485 // volume setup will error unless it is marked optional. Paths
9486 // must be relative and may not contain the '..' path or start
9487 // with '..'.
9488 "items"?: [...#."io.k8s.api.core.v1.KeyToPath"]
9489
9490 // Name of the referent. This field is effectively required, but
9491 // due to backwards compatibility is allowed to be empty.
9492 // Instances of this type with an empty value here are almost
9493 // certainly wrong. More info:
9494 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
9495 "name"?: string
9496
9497 // optional field specify whether the Secret or its key must be
9498 // defined
9499 "optional"?: bool
9500 }
9501
9502 // Adapts a Secret into a volume.
9503 //
9504 // The contents of the target Secret's Data field will be
9505 // presented in a volume as files using the keys in the Data
9506 // field as the file names. Secret volumes support ownership
9507 // management and SELinux relabeling.
9508 #: "io.k8s.api.core.v1.SecretVolumeSource": {
9509 // defaultMode is Optional: mode bits used to set permissions on
9510 // created files by default. Must be an octal value between 0000
9511 // and 0777 or a decimal value between 0 and 511. YAML accepts
9512 // both octal and decimal values, JSON requires decimal values
9513 // for mode bits. Defaults to 0644. Directories within the path
9514 // are not affected by this setting. This might be in conflict
9515 // with other options that affect the file mode, like fsGroup,
9516 // and the result can be other mode bits set.
9517 "defaultMode"?: int
9518
9519 // items If unspecified, each key-value pair in the Data field of
9520 // the referenced Secret will be projected into the volume as a
9521 // file whose name is the key and content is the value. If
9522 // specified, the listed keys will be projected into the
9523 // specified paths, and unlisted keys will not be present. If a
9524 // key is specified which is not present in the Secret, the
9525 // volume setup will error unless it is marked optional. Paths
9526 // must be relative and may not contain the '..' path or start
9527 // with '..'.
9528 "items"?: [...#."io.k8s.api.core.v1.KeyToPath"]
9529
9530 // optional field specify whether the Secret or its keys must be
9531 // defined
9532 "optional"?: bool
9533
9534 // secretName is the name of the secret in the pod's namespace to
9535 // use. More info:
9536 // https://kubernetes.io/docs/concepts/storage/volumes#secret
9537 "secretName"?: string
9538 }
9539
9540 // SecurityContext holds security configuration that will be
9541 // applied to a container. Some fields are present in both
9542 // SecurityContext and PodSecurityContext. When both are set, the
9543 // values in SecurityContext take precedence.
9544 #: "io.k8s.api.core.v1.SecurityContext": {
9545 // AllowPrivilegeEscalation controls whether a process can gain
9546 // more privileges than its parent process. This bool directly
9547 // controls if the no_new_privs flag will be set on the container
9548 // process. AllowPrivilegeEscalation is true always when the
9549 // container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note
9550 // that this field cannot be set when spec.os.name is windows.
9551 "allowPrivilegeEscalation"?: bool
9552
9553 // appArmorProfile is the AppArmor options to use by this
9554 // container. If set, this profile overrides the pod's
9555 // appArmorProfile. Note that this field cannot be set when
9556 // spec.os.name is windows.
9557 "appArmorProfile"?: #."io.k8s.api.core.v1.AppArmorProfile"
9558
9559 // The capabilities to add/drop when running containers. Defaults
9560 // to the default set of capabilities granted by the container
9561 // runtime. Note that this field cannot be set when spec.os.name
9562 // is windows.
9563 "capabilities"?: #."io.k8s.api.core.v1.Capabilities"
9564
9565 // Run container in privileged mode. Processes in privileged
9566 // containers are essentially equivalent to root on the host.
9567 // Defaults to false. Note that this field cannot be set when
9568 // spec.os.name is windows.
9569 "privileged"?: bool
9570
9571 // procMount denotes the type of proc mount to use for the
9572 // containers. The default value is Default which uses the
9573 // container runtime defaults for readonly paths and masked
9574 // paths. This requires the ProcMountType feature flag to be
9575 // enabled. Note that this field cannot be set when spec.os.name
9576 // is windows.
9577 "procMount"?: string
9578
9579 // Whether this container has a read-only root filesystem. Default
9580 // is false. Note that this field cannot be set when spec.os.name
9581 // is windows.
9582 "readOnlyRootFilesystem"?: bool
9583
9584 // The GID to run the entrypoint of the container process. Uses
9585 // runtime default if unset. May also be set in
9586 // PodSecurityContext. If set in both SecurityContext and
9587 // PodSecurityContext, the value specified in SecurityContext
9588 // takes precedence. Note that this field cannot be set when
9589 // spec.os.name is windows.
9590 "runAsGroup"?: int
9591
9592 // Indicates that the container must run as a non-root user. If
9593 // true, the Kubelet will validate the image at runtime to ensure
9594 // that it does not run as UID 0 (root) and fail to start the
9595 // container if it does. If unset or false, no such validation
9596 // will be performed. May also be set in PodSecurityContext. If
9597 // set in both SecurityContext and PodSecurityContext, the value
9598 // specified in SecurityContext takes precedence.
9599 "runAsNonRoot"?: bool
9600
9601 // The UID to run the entrypoint of the container process.
9602 // Defaults to user specified in image metadata if unspecified.
9603 // May also be set in PodSecurityContext. If set in both
9604 // SecurityContext and PodSecurityContext, the value specified in
9605 // SecurityContext takes precedence. Note that this field cannot
9606 // be set when spec.os.name is windows.
9607 "runAsUser"?: int
9608
9609 // The SELinux context to be applied to the container. If
9610 // unspecified, the container runtime will allocate a random
9611 // SELinux context for each container. May also be set in
9612 // PodSecurityContext. If set in both SecurityContext and
9613 // PodSecurityContext, the value specified in SecurityContext
9614 // takes precedence. Note that this field cannot be set when
9615 // spec.os.name is windows.
9616 "seLinuxOptions"?: #."io.k8s.api.core.v1.SELinuxOptions"
9617
9618 // The seccomp options to use by this container. If seccomp
9619 // options are provided at both the pod & container level, the
9620 // container options override the pod options. Note that this
9621 // field cannot be set when spec.os.name is windows.
9622 "seccompProfile"?: #."io.k8s.api.core.v1.SeccompProfile"
9623
9624 // The Windows specific settings applied to all containers. If
9625 // unspecified, the options from the PodSecurityContext will be
9626 // used. If set in both SecurityContext and PodSecurityContext,
9627 // the value specified in SecurityContext takes precedence. Note
9628 // that this field cannot be set when spec.os.name is linux.
9629 "windowsOptions"?: #."io.k8s.api.core.v1.WindowsSecurityContextOptions"
9630 }
9631
9632 // ServiceAccountTokenProjection represents a projected service
9633 // account token volume. This projection can be used to insert a
9634 // service account token into the pods runtime filesystem for use
9635 // against APIs (Kubernetes API Server or otherwise).
9636 #: "io.k8s.api.core.v1.ServiceAccountTokenProjection": {
9637 // audience is the intended audience of the token. A recipient of
9638 // a token must identify itself with an identifier specified in
9639 // the audience of the token, and otherwise should reject the
9640 // token. The audience defaults to the identifier of the
9641 // apiserver.
9642 "audience"?: string
9643
9644 // expirationSeconds is the requested duration of validity of the
9645 // service account token. As the token approaches expiration, the
9646 // kubelet volume plugin will proactively rotate the service
9647 // account token. The kubelet will start trying to rotate the
9648 // token if the token is older than 80 percent of its time to
9649 // live or if the token is older than 24 hours.Defaults to 1 hour
9650 // and must be at least 10 minutes.
9651 "expirationSeconds"?: int
9652
9653 // path is the path relative to the mount point of the file to
9654 // project the token into.
9655 "path"!: string
9656 }
9657
9658 // ServicePort contains information on service's port.
9659 #: "io.k8s.api.core.v1.ServicePort": {
9660 // The application protocol for this port. This is used as a hint
9661 // for implementations to offer richer behavior for protocols
9662 // that they understand. This field follows standard Kubernetes
9663 // label syntax. Valid values are either:
9664 //
9665 // * Un-prefixed protocol names - reserved for IANA standard
9666 // service names (as per RFC-6335 and
9667 // https://www.iana.org/assignments/service-names).
9668 //
9669 // * Kubernetes-defined prefixed names:
9670 // * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext
9671 // as described in
9672 // https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-
9673 // * 'kubernetes.io/ws' - WebSocket over cleartext as described in
9674 // https://www.rfc-editor.org/rfc/rfc6455
9675 // * 'kubernetes.io/wss' - WebSocket over TLS as described in
9676 // https://www.rfc-editor.org/rfc/rfc6455
9677 //
9678 // * Other protocols should use implementation-defined prefixed
9679 // names such as mycompany.com/my-custom-protocol.
9680 "appProtocol"?: string
9681
9682 // The name of this port within the service. This must be a
9683 // DNS_LABEL. All ports within a ServiceSpec must have unique
9684 // names. When considering the endpoints for a Service, this must
9685 // match the 'name' field in the EndpointPort. Optional if only
9686 // one ServicePort is defined on this service.
9687 "name"?: string
9688
9689 // The port on each node on which this service is exposed when
9690 // type is NodePort or LoadBalancer. Usually assigned by the
9691 // system. If a value is specified, in-range, and not in use it
9692 // will be used, otherwise the operation will fail. If not
9693 // specified, a port will be allocated if this Service requires
9694 // one. If this field is specified when creating a Service which
9695 // does not need it, creation will fail. This field will be wiped
9696 // when updating a Service to no longer need it (e.g. changing
9697 // type from NodePort to ClusterIP). More info:
9698 // https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
9699 "nodePort"?: int
9700
9701 // The port that will be exposed by this service.
9702 "port"!: int
9703
9704 // The IP protocol for this port. Supports "TCP", "UDP", and
9705 // "SCTP". Default is TCP.
9706 "protocol"?: string
9707
9708 // Number or name of the port to access on the pods targeted by
9709 // the service. Number must be in the range 1 to 65535. Name must
9710 // be an IANA_SVC_NAME. If this is a string, it will be looked up
9711 // as a named port in the target Pod's container ports. If this
9712 // is not specified, the value of the 'port' field is used (an
9713 // identity map). This field is ignored for services with
9714 // clusterIP=None, and should be omitted or set equal to the
9715 // 'port' field. More info:
9716 // https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
9717 "targetPort"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
9718 }
9719
9720 // SleepAction describes a "sleep" action.
9721 #: "io.k8s.api.core.v1.SleepAction": {
9722 // Seconds is the number of seconds to sleep.
9723 "seconds"!: int
9724 }
9725
9726 // Represents a StorageOS persistent volume resource.
9727 #: "io.k8s.api.core.v1.StorageOSVolumeSource": {
9728 // fsType is the filesystem type to mount. Must be a filesystem
9729 // type supported by the host operating system. Ex. "ext4",
9730 // "xfs", "ntfs". Implicitly inferred to be "ext4" if
9731 // unspecified.
9732 "fsType"?: string
9733
9734 // readOnly defaults to false (read/write). ReadOnly here will
9735 // force the ReadOnly setting in VolumeMounts.
9736 "readOnly"?: bool
9737
9738 // secretRef specifies the secret to use for obtaining the
9739 // StorageOS API credentials. If not specified, default values
9740 // will be attempted.
9741 "secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
9742
9743 // volumeName is the human-readable name of the StorageOS volume.
9744 // Volume names are only unique within a namespace.
9745 "volumeName"?: string
9746
9747 // volumeNamespace specifies the scope of the volume within
9748 // StorageOS. If no namespace is specified then the Pod's
9749 // namespace will be used. This allows the Kubernetes name
9750 // scoping to be mirrored within StorageOS for tighter
9751 // integration. Set VolumeName to any name to override the
9752 // default behaviour. Set to "default" if you are not using
9753 // namespaces within StorageOS. Namespaces that do not pre-exist
9754 // within StorageOS will be created.
9755 "volumeNamespace"?: string
9756 }
9757
9758 // Sysctl defines a kernel parameter to be set
9759 #: "io.k8s.api.core.v1.Sysctl": {
9760 // Name of a property to set
9761 "name"!: string
9762
9763 // Value of a property to set
9764 "value"!: string
9765 }
9766
9767 // TCPSocketAction describes an action based on opening a socket
9768 #: "io.k8s.api.core.v1.TCPSocketAction": {
9769 // Optional: Host name to connect to, defaults to the pod IP.
9770 "host"?: string
9771
9772 // Number or name of the port to access on the container. Number
9773 // must be in the range 1 to 65535. Name must be an
9774 // IANA_SVC_NAME.
9775 "port"!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
9776 }
9777
9778 // The pod this Toleration is attached to tolerates any taint that
9779 // matches the triple <key,value,effect> using the matching
9780 // operator <operator>.
9781 #: "io.k8s.api.core.v1.Toleration": {
9782 // Effect indicates the taint effect to match. Empty means match
9783 // all taint effects. When specified, allowed values are
9784 // NoSchedule, PreferNoSchedule and NoExecute.
9785 "effect"?: string
9786
9787 // Key is the taint key that the toleration applies to. Empty
9788 // means match all taint keys. If the key is empty, operator must
9789 // be Exists; this combination means to match all values and all
9790 // keys.
9791 "key"?: string
9792
9793 // Operator represents a key's relationship to the value. Valid
9794 // operators are Exists and Equal. Defaults to Equal. Exists is
9795 // equivalent to wildcard for value, so that a pod can tolerate
9796 // all taints of a particular category.
9797 "operator"?: string
9798
9799 // TolerationSeconds represents the period of time the toleration
9800 // (which must be of effect NoExecute, otherwise this field is
9801 // ignored) tolerates the taint. By default, it is not set, which
9802 // means tolerate the taint forever (do not evict). Zero and
9803 // negative values will be treated as 0 (evict immediately) by
9804 // the system.
9805 "tolerationSeconds"?: int
9806
9807 // Value is the taint value the toleration matches to. If the
9808 // operator is Exists, the value should be empty, otherwise just
9809 // a regular string.
9810 "value"?: string
9811 }
9812
9813 // TypedLocalObjectReference contains enough information to let
9814 // you locate the typed referenced object inside the same
9815 // namespace.
9816 #: "io.k8s.api.core.v1.TypedLocalObjectReference": {
9817 // APIGroup is the group for the resource being referenced. If
9818 // APIGroup is not specified, the specified Kind must be in the
9819 // core API group. For any other third-party types, APIGroup is
9820 // required.
9821 "apiGroup"?: string
9822
9823 // Kind is the type of resource being referenced
9824 "kind"!: string
9825
9826 // Name is the name of resource being referenced
9827 "name"!: string
9828 }
9829
9830 // TypedObjectReference contains enough information to let you
9831 // locate the typed referenced object
9832 #: "io.k8s.api.core.v1.TypedObjectReference": {
9833 // APIGroup is the group for the resource being referenced. If
9834 // APIGroup is not specified, the specified Kind must be in the
9835 // core API group. For any other third-party types, APIGroup is
9836 // required.
9837 "apiGroup"?: string
9838
9839 // Kind is the type of resource being referenced
9840 "kind"!: string
9841
9842 // Name is the name of resource being referenced
9843 "name"!: string
9844
9845 // Namespace is the namespace of resource being referenced Note
9846 // that when a namespace is specified, a
9847 // gateway.networking.k8s.io/ReferenceGrant object is required in
9848 // the referent namespace to allow that namespace's owner to
9849 // accept the reference. See the ReferenceGrant documentation for
9850 // details. (Alpha) This field requires the
9851 // CrossNamespaceVolumeDataSource feature gate to be enabled.
9852 "namespace"?: string
9853 }
9854
9855 // Volume represents a named volume in a pod that may be accessed
9856 // by any container in the pod.
9857 #: "io.k8s.api.core.v1.Volume": {
9858 // awsElasticBlockStore represents an AWS Disk resource that is
9859 // attached to a kubelet's host machine and then exposed to the
9860 // pod. Deprecated: AWSElasticBlockStore is deprecated. All
9861 // operations for the in-tree awsElasticBlockStore type are
9862 // redirected to the ebs.csi.aws.com CSI driver. More info:
9863 // https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
9864 "awsElasticBlockStore"?: #."io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource"
9865
9866 // azureDisk represents an Azure Data Disk mount on the host and
9867 // bind mount to the pod. Deprecated: AzureDisk is deprecated.
9868 // All operations for the in-tree azureDisk type are redirected
9869 // to the disk.csi.azure.com CSI driver.
9870 "azureDisk"?: #."io.k8s.api.core.v1.AzureDiskVolumeSource"
9871
9872 // azureFile represents an Azure File Service mount on the host
9873 // and bind mount to the pod. Deprecated: AzureFile is
9874 // deprecated. All operations for the in-tree azureFile type are
9875 // redirected to the file.csi.azure.com CSI driver.
9876 "azureFile"?: #."io.k8s.api.core.v1.AzureFileVolumeSource"
9877
9878 // cephFS represents a Ceph FS mount on the host that shares a
9879 // pod's lifetime. Deprecated: CephFS is deprecated and the
9880 // in-tree cephfs type is no longer supported.
9881 "cephfs"?: #."io.k8s.api.core.v1.CephFSVolumeSource"
9882
9883 // cinder represents a cinder volume attached and mounted on
9884 // kubelets host machine. Deprecated: Cinder is deprecated. All
9885 // operations for the in-tree cinder type are redirected to the
9886 // cinder.csi.openstack.org CSI driver. More info:
9887 // https://examples.k8s.io/mysql-cinder-pd/README.md
9888 "cinder"?: #."io.k8s.api.core.v1.CinderVolumeSource"
9889
9890 // configMap represents a configMap that should populate this
9891 // volume
9892 "configMap"?: #."io.k8s.api.core.v1.ConfigMapVolumeSource"
9893
9894 // csi (Container Storage Interface) represents ephemeral storage
9895 // that is handled by certain external CSI drivers.
9896 "csi"?: #."io.k8s.api.core.v1.CSIVolumeSource"
9897
9898 // downwardAPI represents downward API about the pod that should
9899 // populate this volume
9900 "downwardAPI"?: #."io.k8s.api.core.v1.DownwardAPIVolumeSource"
9901
9902 // emptyDir represents a temporary directory that shares a pod's
9903 // lifetime. More info:
9904 // https://kubernetes.io/docs/concepts/storage/volumes#emptydir
9905 "emptyDir"?: #."io.k8s.api.core.v1.EmptyDirVolumeSource"
9906
9907 // ephemeral represents a volume that is handled by a cluster
9908 // storage driver. The volume's lifecycle is tied to the pod that
9909 // defines it - it will be created before the pod starts, and
9910 // deleted when the pod is removed.
9911 //
9912 // Use this if: a) the volume is only needed while the pod runs,
9913 // b) features of normal volumes like restoring from snapshot or
9914 // capacity
9915 // tracking are needed,
9916 // c) the storage driver is specified through a storage class, and
9917 // d) the storage driver supports dynamic volume provisioning
9918 // through
9919 // a PersistentVolumeClaim (see EphemeralVolumeSource for more
9920 // information on the connection between this volume type
9921 // and PersistentVolumeClaim).
9922 //
9923 // Use PersistentVolumeClaim or one of the vendor-specific APIs
9924 // for volumes that persist for longer than the lifecycle of an
9925 // individual pod.
9926 //
9927 // Use CSI for light-weight local ephemeral volumes if the CSI
9928 // driver is meant to be used that way - see the documentation of
9929 // the driver for more information.
9930 //
9931 // A pod can use both types of ephemeral volumes and persistent
9932 // volumes at the same time.
9933 "ephemeral"?: #."io.k8s.api.core.v1.EphemeralVolumeSource"
9934
9935 // fc represents a Fibre Channel resource that is attached to a
9936 // kubelet's host machine and then exposed to the pod.
9937 "fc"?: #."io.k8s.api.core.v1.FCVolumeSource"
9938
9939 // flexVolume represents a generic volume resource that is
9940 // provisioned/attached using an exec based plugin. Deprecated:
9941 // FlexVolume is deprecated. Consider using a CSIDriver instead.
9942 "flexVolume"?: #."io.k8s.api.core.v1.FlexVolumeSource"
9943
9944 // flocker represents a Flocker volume attached to a kubelet's
9945 // host machine. This depends on the Flocker control service
9946 // being running. Deprecated: Flocker is deprecated and the
9947 // in-tree flocker type is no longer supported.
9948 "flocker"?: #."io.k8s.api.core.v1.FlockerVolumeSource"
9949
9950 // gcePersistentDisk represents a GCE Disk resource that is
9951 // attached to a kubelet's host machine and then exposed to the
9952 // pod. Deprecated: GCEPersistentDisk is deprecated. All
9953 // operations for the in-tree gcePersistentDisk type are
9954 // redirected to the pd.csi.storage.gke.io CSI driver. More info:
9955 // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
9956 "gcePersistentDisk"?: #."io.k8s.api.core.v1.GCEPersistentDiskVolumeSource"
9957
9958 // gitRepo represents a git repository at a particular revision.
9959 // Deprecated: GitRepo is deprecated. To provision a container
9960 // with a git repo, mount an EmptyDir into an InitContainer that
9961 // clones the repo using git, then mount the EmptyDir into the
9962 // Pod's container.
9963 "gitRepo"?: #."io.k8s.api.core.v1.GitRepoVolumeSource"
9964
9965 // glusterfs represents a Glusterfs mount on the host that shares
9966 // a pod's lifetime. Deprecated: Glusterfs is deprecated and the
9967 // in-tree glusterfs type is no longer supported. More info:
9968 // https://examples.k8s.io/volumes/glusterfs/README.md
9969 "glusterfs"?: #."io.k8s.api.core.v1.GlusterfsVolumeSource"
9970
9971 // hostPath represents a pre-existing file or directory on the
9972 // host machine that is directly exposed to the container. This
9973 // is generally used for system agents or other privileged things
9974 // that are allowed to see the host machine. Most containers will
9975 // NOT need this. More info:
9976 // https://kubernetes.io/docs/concepts/storage/volumes#hostpath
9977 "hostPath"?: #."io.k8s.api.core.v1.HostPathVolumeSource"
9978
9979 // image represents an OCI object (a container image or artifact)
9980 // pulled and mounted on the kubelet's host machine. The volume
9981 // is resolved at pod startup depending on which PullPolicy value
9982 // is provided:
9983 //
9984 // - Always: the kubelet always attempts to pull the reference.
9985 // Container creation will fail If the pull fails. - Never: the
9986 // kubelet never pulls the reference and only uses a local image
9987 // or artifact. Container creation will fail if the reference
9988 // isn't present. - IfNotPresent: the kubelet pulls if the
9989 // reference isn't already present on disk. Container creation
9990 // will fail if the reference isn't present and the pull fails.
9991 //
9992 // The volume gets re-resolved if the pod gets deleted and
9993 // recreated, which means that new remote content will become
9994 // available on pod recreation. A failure to resolve or pull the
9995 // image during pod startup will block containers from starting
9996 // and may add significant latency. Failures will be retried
9997 // using normal volume backoff and will be reported on the pod
9998 // reason and message. The types of objects that may be mounted
9999 // by this volume are defined by the container runtime
10000 // implementation on a host machine and at minimum must include
10001 // all valid types supported by the container image field. The
10002 // OCI object gets mounted in a single directory
10003 // (spec.containers[*].volumeMounts.mountPath) by merging the
10004 // manifest layers in the same way as for container images. The
10005 // volume will be mounted read-only (ro) and non-executable files
10006 // (noexec). Sub path mounts for containers are not supported
10007 // (spec.containers[*].volumeMounts.subpath) before 1.33. The
10008 // field spec.securityContext.fsGroupChangePolicy has no effect
10009 // on this volume type.
10010 "image"?: #."io.k8s.api.core.v1.ImageVolumeSource"
10011
10012 // iscsi represents an ISCSI Disk resource that is attached to a
10013 // kubelet's host machine and then exposed to the pod. More info:
10014 // https://examples.k8s.io/volumes/iscsi/README.md
10015 "iscsi"?: #."io.k8s.api.core.v1.ISCSIVolumeSource"
10016
10017 // name of the volume. Must be a DNS_LABEL and unique within the
10018 // pod. More info:
10019 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
10020 "name"!: string
10021
10022 // nfs represents an NFS mount on the host that shares a pod's
10023 // lifetime More info:
10024 // https://kubernetes.io/docs/concepts/storage/volumes#nfs
10025 "nfs"?: #."io.k8s.api.core.v1.NFSVolumeSource"
10026
10027 // persistentVolumeClaimVolumeSource represents a reference to a
10028 // PersistentVolumeClaim in the same namespace. More info:
10029 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
10030 "persistentVolumeClaim"?: #."io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource"
10031
10032 // photonPersistentDisk represents a PhotonController persistent
10033 // disk attached and mounted on kubelets host machine.
10034 // Deprecated: PhotonPersistentDisk is deprecated and the in-tree
10035 // photonPersistentDisk type is no longer supported.
10036 "photonPersistentDisk"?: #."io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource"
10037
10038 // portworxVolume represents a portworx volume attached and
10039 // mounted on kubelets host machine. Deprecated: PortworxVolume
10040 // is deprecated. All operations for the in-tree portworxVolume
10041 // type are redirected to the pxd.portworx.com CSI driver when
10042 // the CSIMigrationPortworx feature-gate is on.
10043 "portworxVolume"?: #."io.k8s.api.core.v1.PortworxVolumeSource"
10044
10045 // projected items for all in one resources secrets, configmaps,
10046 // and downward API
10047 "projected"?: #."io.k8s.api.core.v1.ProjectedVolumeSource"
10048
10049 // quobyte represents a Quobyte mount on the host that shares a
10050 // pod's lifetime. Deprecated: Quobyte is deprecated and the
10051 // in-tree quobyte type is no longer supported.
10052 "quobyte"?: #."io.k8s.api.core.v1.QuobyteVolumeSource"
10053
10054 // rbd represents a Rados Block Device mount on the host that
10055 // shares a pod's lifetime. Deprecated: RBD is deprecated and the
10056 // in-tree rbd type is no longer supported. More info:
10057 // https://examples.k8s.io/volumes/rbd/README.md
10058 "rbd"?: #."io.k8s.api.core.v1.RBDVolumeSource"
10059
10060 // scaleIO represents a ScaleIO persistent volume attached and
10061 // mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated
10062 // and the in-tree scaleIO type is no longer supported.
10063 "scaleIO"?: #."io.k8s.api.core.v1.ScaleIOVolumeSource"
10064
10065 // secret represents a secret that should populate this volume.
10066 // More info:
10067 // https://kubernetes.io/docs/concepts/storage/volumes#secret
10068 "secret"?: #."io.k8s.api.core.v1.SecretVolumeSource"
10069
10070 // storageOS represents a StorageOS volume attached and mounted on
10071 // Kubernetes nodes. Deprecated: StorageOS is deprecated and the
10072 // in-tree storageos type is no longer supported.
10073 "storageos"?: #."io.k8s.api.core.v1.StorageOSVolumeSource"
10074
10075 // vsphereVolume represents a vSphere volume attached and mounted
10076 // on kubelets host machine. Deprecated: VsphereVolume is
10077 // deprecated. All operations for the in-tree vsphereVolume type
10078 // are redirected to the csi.vsphere.vmware.com CSI driver.
10079 "vsphereVolume"?: #."io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource"
10080 }
10081
10082 // volumeDevice describes a mapping of a raw block device within a
10083 // container.
10084 #: "io.k8s.api.core.v1.VolumeDevice": {
10085 // devicePath is the path inside of the container that the device
10086 // will be mapped to.
10087 "devicePath"!: string
10088
10089 // name must match the name of a persistentVolumeClaim in the pod
10090 "name"!: string
10091 }
10092
10093 // VolumeMount describes a mounting of a Volume within a
10094 // container.
10095 #: "io.k8s.api.core.v1.VolumeMount": {
10096 // Path within the container at which the volume should be
10097 // mounted. Must not contain ':'.
10098 "mountPath"!: string
10099
10100 // mountPropagation determines how mounts are propagated from the
10101 // host to container and the other way around. When not set,
10102 // MountPropagationNone is used. This field is beta in 1.10. When
10103 // RecursiveReadOnly is set to IfPossible or to Enabled,
10104 // MountPropagation must be None or unspecified (which defaults
10105 // to None).
10106 "mountPropagation"?: string
10107
10108 // This must match the Name of a Volume.
10109 "name"!: string
10110
10111 // Mounted read-only if true, read-write otherwise (false or
10112 // unspecified). Defaults to false.
10113 "readOnly"?: bool
10114
10115 // RecursiveReadOnly specifies whether read-only mounts should be
10116 // handled recursively.
10117 //
10118 // If ReadOnly is false, this field has no meaning and must be
10119 // unspecified.
10120 //
10121 // If ReadOnly is true, and this field is set to Disabled, the
10122 // mount is not made recursively read-only. If this field is set
10123 // to IfPossible, the mount is made recursively read-only, if it
10124 // is supported by the container runtime. If this field is set to
10125 // Enabled, the mount is made recursively read-only if it is
10126 // supported by the container runtime, otherwise the pod will not
10127 // be started and an error will be generated to indicate the
10128 // reason.
10129 //
10130 // If this field is set to IfPossible or Enabled, MountPropagation
10131 // must be set to None (or be unspecified, which defaults to
10132 // None).
10133 //
10134 // If this field is not specified, it is treated as an equivalent
10135 // of Disabled.
10136 "recursiveReadOnly"?: string
10137
10138 // Path within the volume from which the container's volume should
10139 // be mounted. Defaults to "" (volume's root).
10140 "subPath"?: string
10141
10142 // Expanded path within the volume from which the container's
10143 // volume should be mounted. Behaves similarly to SubPath but
10144 // environment variable references $(VAR_NAME) are expanded using
10145 // the container's environment. Defaults to "" (volume's root).
10146 // SubPathExpr and SubPath are mutually exclusive.
10147 "subPathExpr"?: string
10148 }
10149
10150 // Projection that may be projected along with other supported
10151 // volume types. Exactly one of these fields must be set.
10152 #: "io.k8s.api.core.v1.VolumeProjection": {
10153 // ClusterTrustBundle allows a pod to access the
10154 // `.spec.trustBundle` field of ClusterTrustBundle objects in an
10155 // auto-updating file.
10156 //
10157 // Alpha, gated by the ClusterTrustBundleProjection feature gate.
10158 //
10159 // ClusterTrustBundle objects can either be selected by name, or
10160 // by the combination of signer name and a label selector.
10161 //
10162 // Kubelet performs aggressive normalization of the PEM contents
10163 // written into the pod filesystem. Esoteric PEM features such as
10164 // inter-block comments and block headers are stripped.
10165 // Certificates are deduplicated. The ordering of certificates
10166 // within the file is arbitrary, and Kubelet may change the order
10167 // over time.
10168 "clusterTrustBundle"?: #."io.k8s.api.core.v1.ClusterTrustBundleProjection"
10169
10170 // configMap information about the configMap data to project
10171 "configMap"?: #."io.k8s.api.core.v1.ConfigMapProjection"
10172
10173 // downwardAPI information about the downwardAPI data to project
10174 "downwardAPI"?: #."io.k8s.api.core.v1.DownwardAPIProjection"
10175
10176 // secret information about the secret data to project
10177 "secret"?: #."io.k8s.api.core.v1.SecretProjection"
10178
10179 // serviceAccountToken is information about the
10180 // serviceAccountToken data to project
10181 "serviceAccountToken"?: #."io.k8s.api.core.v1.ServiceAccountTokenProjection"
10182 }
10183
10184 // VolumeResourceRequirements describes the storage resource
10185 // requirements for a volume.
10186 #: "io.k8s.api.core.v1.VolumeResourceRequirements": {
10187 // Limits describes the maximum amount of compute resources
10188 // allowed. More info:
10189 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
10190 "limits"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
10191
10192 // Requests describes the minimum amount of compute resources
10193 // required. If Requests is omitted for a container, it defaults
10194 // to Limits if that is explicitly specified, otherwise to an
10195 // implementation-defined value. Requests cannot exceed Limits.
10196 // More info:
10197 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
10198 "requests"?: {
10199 [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
10200 }
10201 }
10202
10203 // Represents a vSphere volume resource.
10204 #: "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": {
10205 // fsType is filesystem type to mount. Must be a filesystem type
10206 // supported by the host operating system. Ex. "ext4", "xfs",
10207 // "ntfs". Implicitly inferred to be "ext4" if unspecified.
10208 "fsType"?: string
10209
10210 // storagePolicyID is the storage Policy Based Management (SPBM)
10211 // profile ID associated with the StoragePolicyName.
10212 "storagePolicyID"?: string
10213
10214 // storagePolicyName is the storage Policy Based Management (SPBM)
10215 // profile name.
10216 "storagePolicyName"?: string
10217
10218 // volumePath is the path that identifies vSphere volume vmdk
10219 "volumePath"!: string
10220 }
10221
10222 // The weights of all of the matched WeightedPodAffinityTerm
10223 // fields are added per-node to find the most preferred node(s)
10224 #: "io.k8s.api.core.v1.WeightedPodAffinityTerm": {
10225 // Required. A pod affinity term, associated with the
10226 // corresponding weight.
10227 "podAffinityTerm"!: #."io.k8s.api.core.v1.PodAffinityTerm"
10228
10229 // weight associated with matching the corresponding
10230 // podAffinityTerm, in the range 1-100.
10231 "weight"!: int
10232 }
10233
10234 // WindowsSecurityContextOptions contain Windows-specific options
10235 // and credentials.
10236 #: "io.k8s.api.core.v1.WindowsSecurityContextOptions": {
10237 // GMSACredentialSpec is where the GMSA admission webhook
10238 // (https://github.com/kubernetes-sigs/windows-gmsa) inlines the
10239 // contents of the GMSA credential spec named by the
10240 // GMSACredentialSpecName field.
10241 "gmsaCredentialSpec"?: string
10242
10243 // GMSACredentialSpecName is the name of the GMSA credential spec
10244 // to use.
10245 "gmsaCredentialSpecName"?: string
10246
10247 // HostProcess determines if a container should be run as a 'Host
10248 // Process' container. All of a Pod's containers must have the
10249 // same effective HostProcess value (it is not allowed to have a
10250 // mix of HostProcess containers and non-HostProcess containers).
10251 // In addition, if HostProcess is true then HostNetwork must also
10252 // be set to true.
10253 "hostProcess"?: bool
10254
10255 // The UserName in Windows to run the entrypoint of the container
10256 // process. Defaults to the user specified in image metadata if
10257 // unspecified. May also be set in PodSecurityContext. If set in
10258 // both SecurityContext and PodSecurityContext, the value
10259 // specified in SecurityContext takes precedence.
10260 "runAsUserName"?: string
10261 }
10262
10263 // PodDisruptionBudgetSpec is a description of a
10264 // PodDisruptionBudget.
10265 #: "io.k8s.api.policy.v1.PodDisruptionBudgetSpec": {
10266 // An eviction is allowed if at most "maxUnavailable" pods
10267 // selected by "selector" are unavailable after the eviction,
10268 // i.e. even in absence of the evicted pod. For example, one can
10269 // prevent all voluntary evictions by specifying 0. This is a
10270 // mutually exclusive setting with "minAvailable".
10271 "maxUnavailable"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
10272
10273 // An eviction is allowed if at least "minAvailable" pods selected
10274 // by "selector" will still be available after the eviction, i.e.
10275 // even in the absence of the evicted pod. So for example you can
10276 // prevent all voluntary evictions by specifying "100%".
10277 "minAvailable"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
10278
10279 // Label query over pods whose evictions are managed by the
10280 // disruption budget. A null selector will match no pods, while
10281 // an empty ({}) selector will select all pods within the
10282 // namespace.
10283 "selector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
10284
10285 // UnhealthyPodEvictionPolicy defines the criteria for when
10286 // unhealthy pods should be considered for eviction. Current
10287 // implementation considers healthy pods, as pods that have
10288 // status.conditions item with type="Ready",status="True".
10289 //
10290 // Valid policies are IfHealthyBudget and AlwaysAllow. If no
10291 // policy is specified, the default behavior will be used, which
10292 // corresponds to the IfHealthyBudget policy.
10293 //
10294 // IfHealthyBudget policy means that running pods
10295 // (status.phase="Running"), but not yet healthy can be evicted
10296 // only if the guarded application is not disrupted
10297 // (status.currentHealthy is at least equal to
10298 // status.desiredHealthy). Healthy pods will be subject to the
10299 // PDB for eviction.
10300 //
10301 // AlwaysAllow policy means that all running pods
10302 // (status.phase="Running"), but not yet healthy are considered
10303 // disrupted and can be evicted regardless of whether the
10304 // criteria in a PDB is met. This means perspective running pods
10305 // of a disrupted application might not get a chance to become
10306 // healthy. Healthy pods will be subject to the PDB for eviction.
10307 //
10308 // Additional policies may be added in the future. Clients making
10309 // eviction decisions should disallow eviction of unhealthy pods
10310 // if they encounter an unrecognized policy in this field.
10311 "unhealthyPodEvictionPolicy"?: string
10312 }
10313
10314 // Quantity is a fixed-point representation of a number. It
10315 // provides convenient marshaling/unmarshaling in JSON and YAML,
10316 // in addition to String() and AsInt64() accessors.
10317 //
10318 // The serialization format is:
10319 //
10320 // ``` <quantity> ::= <signedNumber><suffix>
10321 //
10322 // (Note that <suffix> may be empty, from the "" case in
10323 // <decimalSI>.)
10324 //
10325 // <digit> ::= 0 | 1 | ... | 9 <digits> ::= <digit> |
10326 // <digit><digits> <number> ::= <digits> | <digits>.<digits> |
10327 // <digits>. | .<digits> <sign> ::= "+" | "-" <signedNumber> ::=
10328 // <number> | <sign><number> <suffix> ::= <binarySI> |
10329 // <decimalExponent> | <decimalSI> <binarySI> ::= Ki | Mi | Gi |
10330 // Ti | Pi | Ei
10331 //
10332 // (International System of units; See:
10333 // http://physics.nist.gov/cuu/Units/binary.html)
10334 //
10335 // <decimalSI> ::= m | "" | k | M | G | T | P | E
10336 //
10337 // (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the
10338 // capitalization.)
10339 //
10340 // <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber>
10341 // ```
10342 //
10343 // No matter which of the three exponent forms is used, no
10344 // quantity may represent a number greater than 2^63-1 in
10345 // magnitude, nor may it have more than 3 decimal places. Numbers
10346 // larger or more precise will be capped or rounded up. (E.g.:
10347 // 0.1m will rounded up to 1m.) This may be extended in the
10348 // future if we require larger or smaller quantities.
10349 //
10350 // When a Quantity is parsed from a string, it will remember the
10351 // type of suffix it had, and will use the same type again when
10352 // it is serialized.
10353 //
10354 // Before serializing, Quantity will be put in "canonical form".
10355 // This means that Exponent/suffix will be adjusted up or down
10356 // (with a corresponding increase or decrease in Mantissa) such
10357 // that:
10358 //
10359 // - No precision is lost - No fractional digits will be emitted -
10360 // The exponent (or suffix) is as large as possible.
10361 //
10362 // The sign will be omitted unless the number is negative.
10363 //
10364 // Examples:
10365 //
10366 // - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized
10367 // as "1536Mi"
10368 //
10369 // Note that the quantity will NEVER be internally represented by
10370 // a floating point number. That is the whole point of this
10371 // exercise.
10372 //
10373 // Non-canonical values will still parse as long as they are well
10374 // formed, but will be re-emitted in their canonical form. (So
10375 // always use canonical form, or don't diff.)
10376 //
10377 // This format is intended to make it difficult to use these
10378 // numbers without writing some sort of special handling code in
10379 // the hopes that that will cause implementors to also use a
10380 // fixed point implementation.
10381 #: "io.k8s.apimachinery.pkg.api.resource.Quantity": string
10382
10383 // CreateOptions may be provided when creating an API object.
10384 #: "io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions": {
10385 // When present, indicates that modifications should not be
10386 // persisted. An invalid or unrecognized dryRun directive will
10387 // result in an error response and no further processing of the
10388 // request. Valid values are:
10389 // - All: all dry run stages will be processed
10390 // +optional
10391 // +listType=atomic
10392 "dryRun"?: [...string]
10393
10394 // fieldManager is a name associated with the actor or entity
10395 // that is making these changes. The value must be less than or
10396 // 128 characters long, and only contain printable characters,
10397 // as defined by https://golang.org/pkg/unicode/#IsPrint.
10398 // +optional
10399 "fieldManager"?: string
10400
10401 // fieldValidation instructs the server on how to handle
10402 // objects in the request (POST/PUT/PATCH) containing unknown
10403 // or duplicate fields. Valid values are:
10404 // - Ignore: This will ignore any unknown fields that are silently
10405 // dropped from the object, and will ignore all but the last
10406 // duplicate
10407 // field that the decoder encounters. This is the default behavior
10408 // prior to v1.23.
10409 // - Warn: This will send a warning via the standard warning
10410 // response
10411 // header for each unknown field that is dropped from the object,
10412 // and
10413 // for each duplicate field that is encountered. The request will
10414 // still succeed if there are no other errors, and will only
10415 // persist
10416 // the last of any duplicate fields. This is the default in v1.23+
10417 // - Strict: This will fail the request with a BadRequest error if
10418 // any unknown fields would be dropped from the object, or if any
10419 // duplicate fields are present. The error returned from the
10420 // server
10421 // will contain all unknown and duplicate fields encountered.
10422 // +optional
10423 "fieldValidation"?: string
10424 }
10425
10426 // FieldsV1 stores a set of fields in a data structure like a
10427 // Trie, in JSON format.
10428 //
10429 // Each key is either a '.' representing the field itself, and
10430 // will always map to an empty set, or a string representing a
10431 // sub-field or item. The string will follow one of these four
10432 // formats: 'f:<name>', where <name> is the name of a field in a
10433 // struct, or key in a map 'v:<value>', where <value> is the
10434 // exact json formatted value of a list item 'i:<index>', where
10435 // <index> is position of a item in a list 'k:<keys>', where
10436 // <keys> is a map of a list item's key fields to their unique
10437 // values If a key maps to an empty Fields value, the field that
10438 // key represents is part of the set.
10439 //
10440 // The exact format is defined in
10441 // sigs.k8s.io/structured-merge-diff
10442 #: "io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1": {}
10443
10444 // GroupVersionResource unambiguously identifies a resource. It
10445 // doesn't anonymously include GroupVersion
10446 // to avoid automatic coercion. It doesn't use a GroupVersion to
10447 // avoid custom marshalling
10448 //
10449 // +protobuf.options.(gogoproto.goproto_stringer)=false
10450 #: "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource": {
10451 "group"?: string
10452 "resource"?: string
10453 "version"?: string
10454 }
10455
10456 // A label selector is a label query over a set of resources. The
10457 // result of matchLabels and matchExpressions are ANDed. An empty
10458 // label selector matches all objects. A null label selector
10459 // matches no objects.
10460 #: "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector": {
10461 // matchExpressions is a list of label selector requirements. The
10462 // requirements are ANDed.
10463 "matchExpressions"?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement"]
10464
10465 // matchLabels is a map of {key,value} pairs. A single {key,value}
10466 // in the matchLabels map is equivalent to an element of
10467 // matchExpressions, whose key field is "key", the operator is
10468 // "In", and the values array contains only "value". The
10469 // requirements are ANDed.
10470 "matchLabels"?: {
10471 [string]: string
10472 }
10473 }
10474
10475 // A label selector requirement is a selector that contains
10476 // values, a key, and an operator that relates the key and
10477 // values.
10478 #: "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": {
10479 // key is the label key that the selector applies to.
10480 "key"!: string
10481
10482 // operator represents a key's relationship to a set of values.
10483 // Valid operators are In, NotIn, Exists and DoesNotExist.
10484 "operator"!: string
10485
10486 // values is an array of string values. If the operator is In or
10487 // NotIn, the values array must be non-empty. If the operator is
10488 // Exists or DoesNotExist, the values array must be empty. This
10489 // array is replaced during a strategic merge patch.
10490 "values"?: [...string]
10491 }
10492
10493 // ListMeta describes metadata that synthetic resources must have,
10494 // including lists and various status objects. A resource may
10495 // have only one of {ObjectMeta, ListMeta}.
10496 #: "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta": {
10497 // continue may be set if the user set a limit on the number of
10498 // items returned, and indicates that the server has more data
10499 // available. The value is opaque and may be used to issue
10500 // another request to the endpoint that served this list to
10501 // retrieve the next set of available objects. Continuing a
10502 // consistent list may not be possible if the server
10503 // configuration has changed or more than a few minutes have
10504 // passed. The resourceVersion field returned when using this
10505 // continue value will be identical to the value in the first
10506 // response, unless you have received this token from an error
10507 // message.
10508 "continue"?: string
10509
10510 // remainingItemCount is the number of subsequent items in the
10511 // list which are not included in this list response. If the list
10512 // request contained label or field selectors, then the number of
10513 // remaining items is unknown and the field will be left unset
10514 // and omitted during serialization. If the list is complete
10515 // (either because it is not chunking or because this is the last
10516 // chunk), then there are no more remaining items and this field
10517 // will be left unset and omitted during serialization. Servers
10518 // older than v1.15 do not set this field. The intended use of
10519 // the remainingItemCount is *estimating* the size of a
10520 // collection. Clients should not rely on the remainingItemCount
10521 // to be set or to be exact.
10522 "remainingItemCount"?: int
10523
10524 // String that identifies the server's internal version of this
10525 // object that can be used by clients to determine when objects
10526 // have changed. Value must be treated as opaque by clients and
10527 // passed unmodified back to the server. Populated by the system.
10528 // Read-only. More info:
10529 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
10530 "resourceVersion"?: string
10531
10532 // Deprecated: selfLink is a legacy read-only field that is no
10533 // longer populated by the system.
10534 "selfLink"?: string
10535 }
10536
10537 // ManagedFieldsEntry is a workflow-id, a FieldSet and the group
10538 // version of the resource that the fieldset applies to.
10539 #: "io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry": {
10540 // APIVersion defines the version of this resource that this field
10541 // set applies to. The format is "group/version" just like the
10542 // top-level APIVersion field. It is necessary to track the
10543 // version of a field set because it cannot be automatically
10544 // converted.
10545 "apiVersion"?: string
10546
10547 // FieldsType is the discriminator for the different fields format
10548 // and version. There is currently only one possible value:
10549 // "FieldsV1"
10550 "fieldsType"?: string
10551
10552 // FieldsV1 holds the first JSON version format as described in
10553 // the "FieldsV1" type.
10554 "fieldsV1"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1"
10555
10556 // Manager is an identifier of the workflow managing these fields.
10557 "manager"?: string
10558
10559 // Operation is the type of operation which lead to this
10560 // ManagedFieldsEntry being created. The only valid values for
10561 // this field are 'Apply' and 'Update'.
10562 "operation"?: string
10563
10564 // Subresource is the name of the subresource used to update that
10565 // object, or empty string if the object was updated through the
10566 // main resource. The value of this field is used to distinguish
10567 // between managers, even if they share the same name. For
10568 // example, a status update will be distinct from a regular
10569 // update using the same manager name. Note that the APIVersion
10570 // field is not related to the Subresource field and it always
10571 // corresponds to the version of the main resource.
10572 "subresource"?: string
10573
10574 // Time is the timestamp of when the ManagedFields entry was
10575 // added. The timestamp will also be updated if a field is added,
10576 // the manager changes any of the owned fields value or removes a
10577 // field. The timestamp does not update when a field is removed
10578 // from the entry because another manager took it over.
10579 "time"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
10580 }
10581
10582 // MicroTime is version of Time with microsecond level precision.
10583 #: "io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime": time.Time
10584
10585 // ObjectMeta is metadata that all persisted resources must have,
10586 // which includes all objects users must create.
10587 #: "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": {
10588 // Annotations is an unstructured key value map stored with a
10589 // resource that may be set by external tools to store and
10590 // retrieve arbitrary metadata. They are not queryable and should
10591 // be preserved when modifying objects. More info:
10592 // https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations
10593 "annotations"?: [string]: string
10594
10595 // CreationTimestamp is a timestamp representing the server time
10596 // when this object was created. It is not guaranteed to be set
10597 // in happens-before order across separate operations. Clients
10598 // may not set this value. It is represented in RFC3339 form and
10599 // is in UTC.
10600 //
10601 // Populated by the system. Read-only. Null for lists. More info:
10602 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
10603 "creationTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
10604
10605 // Number of seconds allowed for this object to gracefully
10606 // terminate before it will be removed from the system. Only set
10607 // when deletionTimestamp is also set. May only be shortened.
10608 // Read-only.
10609 "deletionGracePeriodSeconds"?: int
10610
10611 // DeletionTimestamp is RFC 3339 date and time at which this
10612 // resource will be deleted. This field is set by the server when
10613 // a graceful deletion is requested by the user, and is not
10614 // directly settable by a client. The resource is expected to be
10615 // deleted (no longer visible from resource lists, and not
10616 // reachable by name) after the time in this field, once the
10617 // finalizers list is empty. As long as the finalizers list
10618 // contains items, deletion is blocked. Once the
10619 // deletionTimestamp is set, this value may not be unset or be
10620 // set further into the future, although it may be shortened or
10621 // the resource may be deleted prior to this time. For example, a
10622 // user may request that a pod is deleted in 30 seconds. The
10623 // Kubelet will react by sending a graceful termination signal to
10624 // the containers in the pod. After that 30 seconds, the Kubelet
10625 // will send a hard termination signal (SIGKILL) to the container
10626 // and after cleanup, remove the pod from the API. In the
10627 // presence of network partitions, this object may still exist
10628 // after this timestamp, until an administrator or automated
10629 // process can determine the resource is fully terminated. If not
10630 // set, graceful deletion of the object has not been requested.
10631 //
10632 // Populated by the system when a graceful deletion is requested.
10633 // Read-only. More info:
10634 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
10635 "deletionTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
10636
10637 // Must be empty before the object is deleted from the registry.
10638 // Each entry is an identifier for the responsible component that
10639 // will remove the entry from the list. If the deletionTimestamp
10640 // of the object is non-nil, entries in this list can only be
10641 // removed. Finalizers may be processed and removed in any order.
10642 // Order is NOT enforced because it introduces significant risk
10643 // of stuck finalizers. finalizers is a shared field, any actor
10644 // with permission can reorder it. If the finalizer list is
10645 // processed in order, then this can lead to a situation in which
10646 // the component responsible for the first finalizer in the list
10647 // is waiting for a signal (field value, external system, or
10648 // other) produced by a component responsible for a finalizer
10649 // later in the list, resulting in a deadlock. Without enforced
10650 // ordering finalizers are free to order amongst themselves and
10651 // are not vulnerable to ordering changes in the list.
10652 "finalizers"?: [...string]
10653
10654 // GenerateName is an optional prefix, used by the server, to
10655 // generate a unique name ONLY IF the Name field has not been
10656 // provided. If this field is used, the name returned to the
10657 // client will be different than the name passed. This value will
10658 // also be combined with a unique suffix. The provided value has
10659 // the same validation rules as the Name field, and may be
10660 // truncated by the length of the suffix required to make the
10661 // value unique on the server.
10662 //
10663 // If this field is specified and the generated name exists, the
10664 // server will return a 409.
10665 //
10666 // Applied only if Name is not specified. More info:
10667 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency
10668 "generateName"?: string
10669
10670 // A sequence number representing a specific generation of the
10671 // desired state. Populated by the system. Read-only.
10672 "generation"?: int
10673
10674 // Map of string keys and values that can be used to organize and
10675 // categorize (scope and select) objects. May match selectors of
10676 // replication controllers and services. More info:
10677 // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels
10678 "labels"?: {
10679 [string]: string
10680 }
10681
10682 // ManagedFields maps workflow-id and version to the set of fields
10683 // that are managed by that workflow. This is mostly for internal
10684 // housekeeping, and users typically shouldn't need to set or
10685 // understand this field. A workflow can be the user's name, a
10686 // controller's name, or the name of a specific apply path like
10687 // "ci-cd". The set of fields is always in the version that the
10688 // workflow used when modifying the object.
10689 "managedFields"?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry"]
10690
10691 // Name must be unique within a namespace. Is required when
10692 // creating resources, although some resources may allow a client
10693 // to request the generation of an appropriate name
10694 // automatically. Name is primarily intended for creation
10695 // idempotence and configuration definition. Cannot be updated.
10696 // More info:
10697 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names
10698 "name"?: string
10699
10700 // Namespace defines the space within which each name must be
10701 // unique. An empty namespace is equivalent to the "default"
10702 // namespace, but "default" is the canonical representation. Not
10703 // all objects are required to be scoped to a namespace - the
10704 // value of this field for those objects will be empty.
10705 //
10706 // Must be a DNS_LABEL. Cannot be updated. More info:
10707 // https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces
10708 "namespace"?: string
10709
10710 // List of objects depended by this object. If ALL objects in the
10711 // list have been deleted, this object will be garbage collected.
10712 // If this object is managed by a controller, then an entry in
10713 // this list will point to this controller, with the controller
10714 // field set to true. There cannot be more than one managing
10715 // controller.
10716 "ownerReferences"?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference"]
10717
10718 // An opaque value that represents the internal version of this
10719 // object that can be used by clients to determine when objects
10720 // have changed. May be used for optimistic concurrency, change
10721 // detection, and the watch operation on a resource or set of
10722 // resources. Clients must treat these values as opaque and
10723 // passed unmodified back to the server. They may only be valid
10724 // for a particular resource or set of resources.
10725 //
10726 // Populated by the system. Read-only. Value must be treated as
10727 // opaque by clients and . More info:
10728 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
10729 "resourceVersion"?: string
10730
10731 // Deprecated: selfLink is a legacy read-only field that is no
10732 // longer populated by the system.
10733 "selfLink"?: string
10734
10735 // UID is the unique in time and space value for this object. It
10736 // is typically generated by the server on successful creation of
10737 // a resource and is not allowed to change on PUT operations.
10738 //
10739 // Populated by the system. Read-only. More info:
10740 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids
10741 "uid"?: string
10742 }
10743
10744 // OwnerReference contains enough information to let you identify
10745 // an owning object. An owning object must be in the same
10746 // namespace as the dependent, or be cluster-scoped, so there is
10747 // no namespace field.
10748 #: "io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference": {
10749 // API version of the referent.
10750 "apiVersion"!: string
10751
10752 // If true, AND if the owner has the "foregroundDeletion"
10753 // finalizer, then the owner cannot be deleted from the key-value
10754 // store until this reference is removed. See
10755 // https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion
10756 // for how the garbage collector interacts with this field and
10757 // enforces the foreground deletion. Defaults to false. To set
10758 // this field, a user needs "delete" permission of the owner,
10759 // otherwise 422 (Unprocessable Entity) will be returned.
10760 "blockOwnerDeletion"?: bool
10761
10762 // If true, this reference points to the managing controller.
10763 "controller"?: bool
10764
10765 // Kind of the referent. More info:
10766 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
10767 "kind"!: string
10768
10769 // Name of the referent. More info:
10770 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names
10771 "name"!: string
10772
10773 // UID of the referent. More info:
10774 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids
10775 "uid"!: string
10776 }
10777
10778 // Time is a wrapper around time.Time which supports correct
10779 // marshaling to YAML and JSON. Wrappers are provided for many of
10780 // the factory methods that the time package offers.
10781 #: "io.k8s.apimachinery.pkg.apis.meta.v1.Time": time.Time
10782
10783 #: "io.k8s.apimachinery.pkg.util.intstr.IntOrString": string
10784
10785 #: "sensor.CreateSensorRequest": {
10786 "createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
10787 "namespace"?: string
10788 "sensor"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"
10789 }
10790
10791 #: "sensor.DeleteSensorResponse": {}
10792
10793 // structured log entry
10794 #: "sensor.LogEntry": {
10795 // optional - trigger dependency name
10796 "dependencyName"?: string
10797
10798 // optional - Cloud Event context
10799 "eventContext"?: string
10800 "level"?: string
10801 "msg"?: string
10802 "namespace"?: string
10803 "sensorName"?: string
10804 "time"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
10805
10806 // optional - any trigger name
10807 "triggerName"?: string
10808 }
10809
10810 #: "sensor.SensorWatchEvent": {
10811 "object"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"
10812 "type"?: string
10813 }
10814
10815 #: "sensor.UpdateSensorRequest": {
10816 "name"?: string
10817 "namespace"?: string
10818 "sensor"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"
10819 }
10820
10821 #: "sync.CreateSyncLimitRequest": {
10822 "cmName"?: string
10823 "key"?: string
10824 "limit"?: int
10825 "namespace"?: string
10826 "type"?: #."sync.SyncConfigType"
10827 }
10828
10829 #: "sync.DeleteSyncLimitResponse": {}
10830
10831 #: "sync.SyncConfigType": "CONFIGMAP" | "DATABASE"
10832
10833 #: "sync.SyncLimitResponse": {
10834 "cmName"?: string
10835 "key"?: string
10836 "limit"?: int
10837 "namespace"?: string
10838 "type"?: #."sync.SyncConfigType"
10839 }
10840
10841 #: "sync.UpdateSyncLimitRequest": {
10842 "cmName"?: string
10843 "key"?: string
10844 "limit"?: int
10845 "namespace"?: string
10846 "type"?: #."sync.SyncConfigType"
10847 }
10848}