1package workflows
2
3import "time"
4
5#Workflow: {
6 @jsonschema(schema="https://json-schema.org/draft/2020-12/schema")
7 @jsonschema(id="https://raw.githubusercontent.com/argoproj/argo-workflows/HEAD/api/jsonschema/schema.json")
8 matchN(1, [
9 #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate",
10 #."io.argoproj.workflow.v1alpha1.CronWorkflow",
11 #."io.argoproj.workflow.v1alpha1.Workflow",
12 #."io.argoproj.workflow.v1alpha1.WorkflowEventBinding",
13 #."io.argoproj.workflow.v1alpha1.WorkflowTemplate",
14 ])
15
16 #: "eventsource.CreateEventSourceRequest": {
17 eventSource?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"
18 namespace?: string
19 }
20
21 #: "eventsource.EventSourceDeletedResponse": {}
22
23 #: "eventsource.EventSourceWatchEvent": {
24 object?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"
25 type?: string
26 }
27
28 // structured log entry
29 #: "eventsource.LogEntry": {
30 // optional - the event name (e.g. `example`)
31 eventName?: string
32 eventSourceName?: string
33
34 // optional - the event source type (e.g. `webhook`)
35 eventSourceType?: string
36 level?: string
37 msg?: string
38 namespace?: string
39 time?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
40 }
41
42 #: "eventsource.UpdateEventSourceRequest": {
43 eventSource?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"
44 name?: string
45 namespace?: string
46 }
47
48 // AMQPConsumeConfig holds the configuration to immediately starts delivering queued messages
49 // +k8s:openapi-gen=true
50 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPConsumeConfig": {
51 // AutoAck when true, the server will acknowledge deliveries to this consumer prior to writing
52 // the delivery to the network
53 // +optional
54 autoAck?: bool
55
56 // ConsumerTag is the identity of the consumer included in every delivery
57 // +optional
58 consumerTag?: string
59
60 // Exclusive when true, the server will ensure that this is the sole consumer from this queue
61 // +optional
62 exclusive?: bool
63
64 // NoLocal flag is not supported by RabbitMQ
65 // +optional
66 noLocal?: bool
67
68 // NowWait when true, do not wait for the server to confirm the request and
69 // immediately begin deliveries
70 // +optional
71 noWait?: bool
72 }
73
74 // AMQPEventSource refers to an event-source for AMQP stream events
75 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPEventSource": {
76 // Auth hosts secret selectors for username and password
77 // +optional
78 auth?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
79
80 // Backoff holds parameters applied to connection.
81 // +optional
82 connectionBackoff?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
83
84 // Consume holds the configuration to immediately starts delivering queued messages
85 // For more information, visit https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.Consume
86 // +optional
87 consume?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPConsumeConfig"
88
89 // ExchangeDeclare holds the configuration for the exchange on the server
90 // For more information, visit
91 // https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.ExchangeDeclare
92 // +optional
93 exchangeDeclare?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPExchangeDeclareConfig"
94
95 // ExchangeName is the exchange name
96 // For more information, visit https://www.rabbitmq.com/tutorials/amqp-concepts.html
97 exchangeName?: string
98
99 // ExchangeType is rabbitmq exchange type
100 exchangeType?: string
101
102 // Filter
103 // +optional
104 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
105
106 // JSONBody specifies that all event body payload coming from this
107 // source will be JSON
108 // +optional
109 jsonBody?: bool
110
111 // Metadata holds the user defined metadata which will passed along the event payload.
112 // +optional
113 metadata?: [string]: string
114
115 // QueueBind holds the configuration that binds an exchange to a queue so that publishings to the
116 // exchange will be routed to the queue when the publishing routing key matches
117 // the binding routing key
118 // For more information, visit https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.QueueBind
119 // +optional
120 queueBind?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueBindConfig"
121
122 // QueueDeclare holds the configuration of a queue to hold messages and deliver to consumers.
123 // Declaring creates a queue if it doesn't already exist, or ensures that an existing queue matches
124 // the same parameters
125 // For more information, visit
126 // https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.QueueDeclare
127 // +optional
128 queueDeclare?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueDeclareConfig"
129
130 // Routing key for bindings
131 routingKey?: string
132
133 // TLS configuration for the amqp client.
134 // +optional
135 tls?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
136
137 // URL for rabbitmq service
138 url?: string
139
140 // URLSecret is secret reference for rabbitmq service URL
141 urlSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
142 }
143
144 // AMQPExchangeDeclareConfig holds the configuration for the exchange on the server
145 // +k8s:openapi-gen=true
146 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPExchangeDeclareConfig": {
147 // AutoDelete removes the exchange when no bindings are active
148 // +optional
149 autoDelete?: bool
150
151 // Durable keeps the exchange also after the server restarts
152 // +optional
153 durable?: bool
154
155 // Internal when true does not accept publishings
156 // +optional
157 internal?: bool
158
159 // NowWait when true does not wait for a confirmation from the server
160 // +optional
161 noWait?: bool
162 }
163
164 // AMQPQueueBindConfig holds the configuration that binds an exchange to a queue
165 // so that publishings to the
166 // exchange will be routed to the queue when the publishing routing key matches
167 // the binding routing key
168 // +k8s:openapi-gen=true
169 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueBindConfig": {
170 // NowWait false and the queue could not be bound, the channel will be closed with an error
171 // +optional
172 noWait?: bool
173 }
174
175 // AMQPQueueDeclareConfig holds the configuration of a queue to hold messages
176 // and deliver to consumers.
177 // Declaring creates a queue if it doesn't already exist, or ensures that an existing queue matches
178 // the same parameters
179 // +k8s:openapi-gen=true
180 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueDeclareConfig": {
181 // Arguments of a queue (also known as "x-arguments") used for optional features and plugins
182 // +optional
183 arguments?: string
184
185 // AutoDelete removes the queue when no consumers are active
186 // +optional
187 autoDelete?: bool
188
189 // Durable keeps the queue also after the server restarts
190 // +optional
191 durable?: bool
192
193 // Exclusive sets the queues to be accessible only by the connection that declares them and will be
194 // deleted wgen the connection closes
195 // +optional
196 exclusive?: bool
197
198 // Name of the queue. If empty the server auto-generates a unique name for this queue
199 // +optional
200 name?: string
201
202 // NowWait when true, the queue assumes to be declared on the server
203 // +optional
204 noWait?: bool
205 }
206
207 // AWSLambdaTrigger refers to specification of the trigger to invoke an AWS Lambda function
208 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AWSLambdaTrigger": {
209 // AccessKey refers K8s secret containing aws access key
210 // +optional
211 accessKey?: #."io.k8s.api.core.v1.SecretKeySelector"
212
213 // FunctionName refers to the name of the function to invoke.
214 functionName?: string
215
216 // Choose from the following options.
217 //
218 // * RequestResponse (default) - Invoke the function synchronously. Keep
219 // the connection open until the function returns a response or times out.
220 // The API response includes the function response and additional data.
221 //
222 // * Event - Invoke the function asynchronously. Send events that fail multiple
223 // times to the function's dead-letter queue (if it's configured). The API
224 // response only includes a status code.
225 //
226 // * DryRun - Validate parameter values and verify that the user or role
227 // has permission to invoke the function.
228 // +optional
229 invocationType?: string
230
231 // Parameters is the list of key-value extracted from event's payload that are applied to
232 // the trigger resource.
233 // +optional
234 parameters?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
235
236 // Payload is the list of key-value extracted from an event payload to construct
237 // the request payload.
238 payload?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
239
240 // Region is AWS region
241 region?: string
242
243 // RoleARN is the Amazon Resource Name (ARN) of the role to assume.
244 // +optional
245 roleARN?: string
246
247 // SecretKey refers K8s secret containing aws secret key
248 // +optional
249 secretKey?: #."io.k8s.api.core.v1.SecretKeySelector"
250 }
251
252 // Amount represent a numeric amount.
253 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount": value?: string
254
255 // ArgoWorkflowTrigger is the trigger for the Argo Workflow
256 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArgoWorkflowTrigger": {
257 // Args is the list of arguments to pass to the argo CLI
258 args?: [...string]
259
260 // Operation refers to the type of operation performed on the argo workflow resource.
261 // Default value is Submit.
262 // +optional
263 operation?: string
264
265 // Parameters is the list of parameters to pass to resolved Argo Workflow object
266 parameters?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
267
268 // Source of the K8s resource file(s)
269 source?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation"
270 }
271
272 // ArtifactLocation describes the source location for an external artifact
273 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation": {
274 // Configmap that stores the artifact
275 configmap?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
276
277 // File artifact is artifact stored in a file
278 file?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileArtifact"
279
280 // Git repository hosting the artifact
281 git?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitArtifact"
282
283 // Inline artifact is embedded in sensor spec as a string
284 inline?: string
285
286 // Resource is generic template for K8s resource
287 resource?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResource"
288
289 // S3 compliant artifact
290 s3?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact"
291
292 // URL to fetch the artifact from
293 url?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.URLArtifact"
294 }
295
296 // AzureEventHubsTrigger refers to specification of the Azure Event Hubs Trigger
297 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventHubsTrigger": {
298 // FQDN refers to the namespace dns of Azure Event Hubs to be used i.e.
299 // <namespace>.servicebus.windows.net
300 fqdn?: string
301
302 // HubName refers to the Azure Event Hub to send events to
303 hubName?: string
304
305 // Parameters is the list of key-value extracted from event's payload that are applied to
306 // the trigger resource.
307 // +optional
308 parameters?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
309
310 // Payload is the list of key-value extracted from an event payload to construct
311 // the request payload.
312 payload?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
313
314 // SharedAccessKey refers to a K8s secret containing the primary key for the
315 sharedAccessKey?: #."io.k8s.api.core.v1.SecretKeySelector"
316
317 // SharedAccessKeyName refers to the name of the Shared Access Key
318 sharedAccessKeyName?: #."io.k8s.api.core.v1.SecretKeySelector"
319 }
320
321 // AzureEventsHubEventSource describes the event source for azure events hub
322 // More info at https://docs.microsoft.com/en-us/azure/event-hubs/
323 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventsHubEventSource": {
324 // Filter
325 // +optional
326 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
327
328 // FQDN of the EventHubs namespace you created
329 // More info at https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-get-connection-string
330 fqdn?: string
331
332 // Event Hub path/name
333 hubName?: string
334
335 // Metadata holds the user defined metadata which will passed along the event payload.
336 // +optional
337 metadata?: [string]: string
338
339 // SharedAccessKey is the generated value of the key. If both this field and
340 // SharedAccessKeyName are not provided
341 // it will try to access via Azure AD with DefaultAzureCredential, FQDN and HubName.
342 // +optional
343 sharedAccessKey?: #."io.k8s.api.core.v1.SecretKeySelector"
344
345 // SharedAccessKeyName is the name you chose for your application's SAS keys. If
346 // both this field and SharedAccessKey are not provided
347 // it will try to access via Azure AD with DefaultAzureCredential, FQDN and HubName.
348 // +optional
349 sharedAccessKeyName?: #."io.k8s.api.core.v1.SecretKeySelector"
350 }
351
352 // AzureQueueStorageEventSource describes the event source for azure queue storage
353 // more info at https://learn.microsoft.com/en-us/azure/storage/queues/
354 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureQueueStorageEventSource": {
355 // ConnectionString is the connection string to access Azure Queue Storage. If
356 // this fields is not provided
357 // it will try to access via Azure AD with StorageAccountName.
358 // +optional
359 connectionString?: #."io.k8s.api.core.v1.SecretKeySelector"
360
361 // DecodeMessage specifies if all the messages should be base64 decoded.
362 // If set to true the decoding is done before the evaluation of JSONBody
363 // +optional
364 decodeMessage?: bool
365
366 // DLQ specifies if a dead-letter queue is configured for messages that can't be
367 // processed successfully.
368 // If set to true, messages with invalid payload won't be acknowledged to allow
369 // to forward them farther to the dead-letter queue.
370 // The default value is false.
371 // +optional
372 dlq?: bool
373
374 // Filter
375 // +optional
376 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
377
378 // JSONBody specifies that all event body payload coming from this
379 // source will be JSON
380 // +optional
381 jsonBody?: bool
382
383 // Metadata holds the user defined metadata which will passed along the event payload.
384 // +optional
385 metadata?: [string]: string
386
387 // QueueName is the name of the queue
388 queueName?: string
389
390 // StorageAccountName is the name of the storage account where the queue is.
391 // This field is necessary to
392 // access via Azure AD (managed identity) and it is ignored if ConnectionString is set.
393 // +optional
394 storageAccountName?: string
395
396 // WaitTimeInSeconds is the duration (in seconds) for which the event source
397 // waits between empty results from the queue.
398 // The default value is 3 seconds.
399 // +optional
400 waitTimeInSeconds?: int
401 }
402
403 // AzureServiceBusEventSource describes the event source for azure service bus
404 // More info at https://docs.microsoft.com/en-us/azure/service-bus-messaging/
405 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusEventSource": {
406 // ConnectionString is the connection string for the Azure Service Bus. If this
407 // fields is not provided
408 // it will try to access via Azure AD with DefaultAzureCredential and FullyQualifiedNamespace.
409 // +optional
410 connectionString?: #."io.k8s.api.core.v1.SecretKeySelector"
411
412 // Filter
413 // +optional
414 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
415
416 // FullyQualifiedNamespace is the Service Bus namespace name (ex:
417 // myservicebus.servicebus.windows.net). This field is necessary to
418 // access via Azure AD (managed identity) and it is ignored if ConnectionString is set.
419 // +optional
420 fullyQualifiedNamespace?: string
421
422 // JSONBody specifies that all event body payload coming from this
423 // source will be JSON
424 // +optional
425 jsonBody?: bool
426
427 // Metadata holds the user defined metadata which will passed along the event payload.
428 // +optional
429 metadata?: [string]: string
430
431 // QueueName is the name of the Azure Service Bus Queue
432 queueName?: string
433
434 // SubscriptionName is the name of the Azure Service Bus Topic Subscription
435 subscriptionName?: string
436
437 // TLS configuration for the service bus client
438 // +optional
439 tls?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
440
441 // TopicName is the name of the Azure Service Bus Topic
442 topicName?: string
443 }
444
445 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusTrigger": {
446 // ConnectionString is the connection string for the Azure Service Bus
447 connectionString?: #."io.k8s.api.core.v1.SecretKeySelector"
448
449 // Parameters is the list of key-value extracted from event's payload that are applied to
450 // the trigger resource.
451 // +optional
452 parameters?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
453
454 // Payload is the list of key-value extracted from an event payload to construct
455 // the request payload.
456 payload?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
457
458 // QueueName is the name of the Azure Service Bus Queue
459 queueName?: string
460
461 // SubscriptionName is the name of the Azure Service Bus Topic Subscription
462 subscriptionName?: string
463
464 // TLS configuration for the service bus client
465 // +optional
466 tls?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
467
468 // TopicName is the name of the Azure Service Bus Topic
469 topicName?: string
470 }
471
472 // Backoff for an operation
473 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff": {
474 // The initial duration in nanoseconds or strings like "1s", "3m"
475 // +optional
476 duration?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Int64OrString"
477
478 // Duration is multiplied by factor each iteration
479 // +optional
480 factor?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount"
481
482 // The amount of jitter applied each iteration
483 // +optional
484 jitter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount"
485
486 // Exit with error after this many steps
487 // +optional
488 steps?: int
489 }
490
491 // BasicAuth contains the reference to K8s secrets that holds the username and password
492 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth": {
493 // Password refers to the Kubernetes secret that holds the password required for basic auth.
494 password?: #."io.k8s.api.core.v1.SecretKeySelector"
495
496 // Username refers to the Kubernetes secret that holds the username required for basic auth.
497 username?: #."io.k8s.api.core.v1.SecretKeySelector"
498 }
499
500 // BitbucketAuth holds the different auth strategies for connecting to Bitbucket
501 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketAuth": {
502 // Basic is BasicAuth auth strategy.
503 // +optional
504 basic?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketBasicAuth"
505
506 // OAuthToken refers to the K8s secret that holds the OAuth Bearer token.
507 // +optional
508 oauthToken?: #."io.k8s.api.core.v1.SecretKeySelector"
509 }
510
511 // BitbucketBasicAuth holds the information required to authenticate user via basic auth mechanism
512 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketBasicAuth": {
513 // Password refers to the K8s secret that holds the password.
514 password?: #."io.k8s.api.core.v1.SecretKeySelector"
515
516 // Username refers to the K8s secret that holds the username.
517 username?: #."io.k8s.api.core.v1.SecretKeySelector"
518 }
519
520 // BitbucketEventSource describes the event source for Bitbucket
521 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketEventSource": {
522 // Auth information required to connect to Bitbucket.
523 auth?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketAuth"
524
525 // DeleteHookOnFinish determines whether to delete the defined Bitbucket hook
526 // once the event source is stopped.
527 // +optional
528 deleteHookOnFinish?: bool
529
530 // Events this webhook is subscribed to.
531 events?: [...string]
532
533 // Filter
534 // +optional
535 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
536
537 // Metadata holds the user defined metadata which will be passed along the event payload.
538 // +optional
539 metadata?: [string]: string
540
541 // DeprecatedOwner is the owner of the repository.
542 // Deprecated: use Repositories instead. Will be unsupported in v1.9
543 // +optional
544 owner?: string
545
546 // DeprecatedProjectKey is the key of the project to which the repository relates
547 // Deprecated: use Repositories instead. Will be unsupported in v1.9
548 // +optional
549 projectKey?: string
550
551 // Repositories holds a list of repositories for which integration needs to set up
552 // +optional
553 repositories?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketRepository"]
554
555 // DeprecatedRepositorySlug is a URL-friendly version of a repository name,
556 // automatically generated by Bitbucket for use in the URL
557 // Deprecated: use Repositories instead. Will be unsupported in v1.9
558 // +optional
559 repositorySlug?: string
560
561 // Webhook refers to the configuration required to run an http server
562 webhook?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
563 }
564
565 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketRepository": {
566 // Owner is the owner of the repository
567 owner?: string
568
569 // RepositorySlug is a URL-friendly version of a repository name, automatically
570 // generated by Bitbucket for use in the URL
571 repositorySlug?: string
572 }
573
574 // BitbucketServerEventSource refers to event-source related to Bitbucket Server events
575 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerEventSource": {
576 // AccessToken is reference to K8s secret which holds the bitbucket api access information.
577 // +optional
578 accessToken?: #."io.k8s.api.core.v1.SecretKeySelector"
579
580 // BitbucketServerBaseURL is the base URL for API requests to a custom endpoint.
581 bitbucketserverBaseURL?: string
582
583 // CheckInterval is a duration in which to wait before checking that the
584 // webhooks exist, e.g. 1s, 30m, 2h... (defaults to 1m)
585 // +optional
586 checkInterval?: string
587
588 // DeleteHookOnFinish determines whether to delete the Bitbucket Server hook for
589 // the project once the event source is stopped.
590 // +optional
591 deleteHookOnFinish?: bool
592
593 // Events are bitbucket event to listen to.
594 // Refer https://confluence.atlassian.com/bitbucketserver/event-payload-938025882.html
595 // +optional
596 events?: [...string]
597
598 // Filter
599 // +optional
600 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
601
602 // Metadata holds the user defined metadata which will passed along the event payload.
603 // +optional
604 metadata?: [string]: string
605
606 // OneEventPerChange controls whether to process each change in a
607 // repo:refs_changed webhook event as a separate io.argoproj.workflow.v1alpha1.
608 // This setting is useful when multiple tags are
609 // pushed simultaneously for the same commit, and each tag needs to
610 // independently trigger an action, such as a distinct workflow in Argo
611 // Workflows. When enabled, the
612 // BitbucketServerEventSource publishes an individual BitbucketServerEventData
613 // for each change, ensuring independent processing of each tag or reference
614 // update in a
615 // single webhook event.
616 // +optional
617 oneEventPerChange?: bool
618
619 // DeprecatedProjectKey is the key of project for which integration needs to set up.
620 // Deprecated: use Repositories instead. Will be unsupported in v1.8.
621 // +optional
622 projectKey?: string
623
624 // Projects holds a list of projects for which integration needs to set up, this
625 // will add the webhook to all repositories in the project.
626 // +optional
627 projects?: [...string]
628
629 // Repositories holds a list of repositories for which integration needs to set up.
630 // +optional
631 repositories?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerRepository"]
632
633 // DeprecatedRepositorySlug is the slug of the repository for which integration needs to set up.
634 // Deprecated: use Repositories instead. Will be unsupported in v1.8.
635 // +optional
636 repositorySlug?: string
637
638 // SkipBranchRefsChangedOnOpenPR bypasses the event repo:refs_changed for
639 // branches whenever there's an associated open pull request.
640 // This helps in optimizing the event handling process by avoiding unnecessary
641 // triggers for branch reference changes that are already part of a pull
642 // request under review.
643 // +optional
644 skipBranchRefsChangedOnOpenPR?: bool
645
646 // TLS configuration for the bitbucketserver client.
647 // +optional
648 tls?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
649
650 // Webhook holds configuration to run a http server.
651 webhook?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
652
653 // WebhookSecret is reference to K8s secret which holds the bitbucket webhook
654 // secret (for HMAC validation).
655 // +optional
656 webhookSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
657 }
658
659 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerRepository": {
660 // ProjectKey is the key of project for which integration needs to set up.
661 projectKey?: string
662
663 // RepositorySlug is the slug of the repository for which integration needs to set up.
664 repositorySlug?: string
665 }
666
667 // CalendarEventSource describes a time based dependency. One of the fields
668 // (schedule, interval, or recurrence) must be passed.
669 // Schedule takes precedence over interval; interval takes precedence over recurrence
670 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CalendarEventSource": {
671 // ExclusionDates defines the list of DATE-TIME exceptions for recurring events.
672 exclusionDates?: [...string]
673
674 // Filter
675 // +optional
676 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
677
678 // Interval is a string that describes an interval duration, e.g. 1s, 30m, 2h...
679 // +optional
680 interval?: string
681
682 // Metadata holds the user defined metadata which will passed along the event payload.
683 // +optional
684 metadata?: [string]: string
685
686 // Persistence hold the configuration for event persistence
687 persistence?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventPersistence"
688
689 // Schedule is a cron-like expression. For reference, see: https://en.wikipedia.org/wiki/Cron
690 // +optional
691 schedule?: string
692
693 // Timezone in which to run the schedule
694 // +optional
695 timezone?: string
696 }
697
698 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CatchupConfiguration": {
699 // Enabled enables to triggered the missed schedule when eventsource restarts
700 enabled?: bool
701
702 // MaxDuration holds max catchup duration
703 maxDuration?: string
704 }
705
706 // Condition contains details about resource state
707 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Condition": {
708 // Last time the condition transitioned from one status to another.
709 // +optional
710 lastTransitionTime?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
711
712 // Human-readable message indicating details about last transition.
713 // +optional
714 message?: string
715
716 // Unique, this should be a short, machine understandable string that gives the reason
717 // for condition's last transition. For example, "ImageNotFound"
718 // +optional
719 reason?: string
720
721 // Condition status, True, False or Unknown.
722 // +required
723 status?: string
724
725 // Condition type.
726 // +required
727 type?: string
728 }
729
730 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetByTime": {
731 // Cron is a cron-like expression. For reference, see: https://en.wikipedia.org/wiki/Cron
732 cron?: string
733
734 // +optional
735 timezone?: string
736 }
737
738 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetCriteria": {
739 // Schedule is a cron-like expression. For reference, see: https://en.wikipedia.org/wiki/Cron
740 byTime?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetByTime"
741 }
742
743 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConfigMapPersistence": {
744 // CreateIfNotExist will create configmap if it doesn't exists
745 createIfNotExist?: bool
746
747 // Name of the configmap
748 name?: string
749 }
750
751 // Container defines customized spec for a container
752 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Container": {
753 // +optional
754 env?: [...#."io.k8s.api.core.v1.EnvVar"]
755
756 // +optional
757 envFrom?: [...#."io.k8s.api.core.v1.EnvFromSource"]
758
759 // +optional
760 imagePullPolicy?: string
761
762 // +optional
763 resources?: #."io.k8s.api.core.v1.ResourceRequirements"
764
765 // +optional
766 securityContext?: #."io.k8s.api.core.v1.SecurityContext"
767
768 // +optional
769 volumeMounts?: [...#."io.k8s.api.core.v1.VolumeMount"]
770 }
771
772 // CustomTrigger refers to the specification of the custom trigger.
773 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CustomTrigger": {
774 // CertSecret refers to the secret that contains cert for secure connection
775 // between sensor and custom trigger gRPC server.
776 certSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
777
778 // Parameters is the list of parameters that is applied to resolved custom trigger trigger object.
779 parameters?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
780
781 // Payload is the list of key-value extracted from an event payload to construct
782 // the request payload.
783 payload?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
784
785 // Secure refers to type of the connection between sensor to custom trigger gRPC
786 secure?: bool
787
788 // ServerNameOverride for the secure connection between sensor and custom trigger gRPC server.
789 serverNameOverride?: string
790
791 // ServerURL is the url of the gRPC server that executes custom trigger
792 serverURL?: string
793
794 // Spec is the custom trigger resource specification that custom trigger gRPC
795 // server knows how to interpret.
796 spec?: [string]: string
797 }
798
799 // DataFilter describes constraints and filters for event data
800 // Regular Expressions are purposefully not a feature as they are overkill for our uses here
801 // See Rob Pike's Post:
802 // https://commandcenter.blogspot.com/2011/08/regular-expressions-in-lexing-and.html
803 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.DataFilter": {
804 // Comparator compares the event data with a user given value.
805 // Can be ">=", ">", "=", "!=", "<", or "<=".
806 // Is optional, and if left blank treated as equality "=".
807 comparator?: string
808
809 // Path is the JSONPath of the event's (JSON decoded) data key
810 // Path is a series of keys separated by a dot. A key may contain wildcard characters '*' and '?'.
811 // To access an array value use the index as the key. The dot and wildcard
812 // characters can be escaped with '\\'.
813 // See https://github.com/tidwall/gjson#path-syntax for more information on how to use this.
814 path?: string
815
816 // Template is a go-template for extracting a string from the event's data.
817 // A Template is evaluated with provided path, type and value.
818 // The templating follows the standard go-template syntax as well as sprig's extra functions.
819 // See https://pkg.go.dev/text/template and https://masterminds.github.io/sprig/
820 template?: string
821
822 // Type contains the JSON type of the data
823 type?: string
824
825 // Value is the allowed string values for this key
826 // Booleans are passed using strconv.ParseBool()
827 // Numbers are parsed using as float64 using strconv.ParseFloat()
828 // Strings are taken as is
829 // Nils this value is ignored
830 value?: [...string]
831 }
832
833 // EmailTrigger refers to the specification of the email notification trigger.
834 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmailTrigger": {
835 // Body refers to the body/content of the email send.
836 // +optional
837 body?: string
838
839 // From refers to the address from which the email is send from.
840 // +optional
841 from?: string
842
843 // Host refers to the smtp host url to which email is send.
844 host?: string
845
846 // Parameters is the list of key-value extracted from event's payload that are applied to
847 // the trigger resource.
848 // +optional
849 parameters?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
850
851 // Port refers to the smtp server port to which email is send.
852 // Defaults to 0.
853 // +optional
854 port?: int
855
856 // SMTPPassword refers to the Kubernetes secret that holds the smtp password
857 // used to connect to smtp server.
858 // +optional
859 smtpPassword?: #."io.k8s.api.core.v1.SecretKeySelector"
860
861 // Subject refers to the subject line for the email send.
862 // +optional
863 subject?: string
864
865 // To refers to the email addresses to which the emails are send.
866 // +optional
867 to?: [...string]
868
869 // Username refers to the username used to connect to the smtp server.
870 // +optional
871 username?: string
872 }
873
874 // EmitterEventSource describes the event source for emitter
875 // More info at https://emitter.io/develop/getting-started/
876 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmitterEventSource": {
877 // Broker URI to connect to.
878 broker?: string
879
880 // ChannelKey refers to the channel key
881 channelKey?: string
882
883 // ChannelName refers to the channel name
884 channelName?: string
885
886 // Backoff holds parameters applied to connection.
887 // +optional
888 connectionBackoff?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
889
890 // Filter
891 // +optional
892 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
893
894 // JSONBody specifies that all event body payload coming from this
895 // source will be JSON
896 // +optional
897 jsonBody?: bool
898
899 // Metadata holds the user defined metadata which will passed along the event payload.
900 // +optional
901 metadata?: [string]: string
902
903 // Password to use to connect to broker
904 // +optional
905 password?: #."io.k8s.api.core.v1.SecretKeySelector"
906
907 // TLS configuration for the emitter client.
908 // +optional
909 tls?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
910
911 // Username to use to connect to broker
912 // +optional
913 username?: #."io.k8s.api.core.v1.SecretKeySelector"
914 }
915
916 // EventContext holds the context of the cloudevent received from an event source.
917 // +protobuf.options.(gogoproto.goproto_stringer)=false
918 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventContext": {
919 // DataContentType - A MIME (RFC2046) string describing the media type of `data`.
920 datacontenttype?: string
921
922 // ID of the event; must be non-empty and unique within the scope of the producer.
923 id?: string
924
925 // Source - A URI describing the event producer.
926 source?: string
927
928 // SpecVersion - The version of the CloudEvents specification used by the
929 // io.argoproj.workflow.v1alpha1.
930 specversion?: string
931
932 // Subject - The subject of the event in the context of the event producer
933 subject?: string
934
935 // Time - A Timestamp when the event happened.
936 time?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
937
938 // Type - The type of the occurrence which has happened.
939 type?: string
940 }
941
942 // EventDependency describes a dependency
943 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependency": {
944 // EventName is the name of the event
945 eventName?: string
946
947 // EventSourceName is the name of EventSource that Sensor depends on
948 eventSourceName?: string
949
950 // Filters and rules governing toleration of success and constraints on the
951 // context and data of an event
952 filters?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyFilter"
953
954 // FiltersLogicalOperator defines how different filters are evaluated together.
955 // Available values: and (&&), or (||)
956 // Is optional and if left blank treated as and (&&).
957 filtersLogicalOperator?: string
958
959 // Name is a unique name of this dependency
960 name?: string
961
962 // Transform transforms the event data
963 transform?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyTransformer"
964 }
965
966 // EventDependencyFilter defines filters and constraints for a io.argoproj.workflow.v1alpha1.
967 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyFilter": {
968 // Context filter constraints
969 context?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventContext"
970
971 // Data filter constraints with escalation
972 data?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.DataFilter"]
973
974 // DataLogicalOperator defines how multiple Data filters (if defined) are evaluated together.
975 // Available values: and (&&), or (||)
976 // Is optional and if left blank treated as and (&&).
977 dataLogicalOperator?: string
978
979 // ExprLogicalOperator defines how multiple Exprs filters (if defined) are evaluated together.
980 // Available values: and (&&), or (||)
981 // Is optional and if left blank treated as and (&&).
982 exprLogicalOperator?: string
983
984 // Exprs contains the list of expressions evaluated against the event payload.
985 exprs?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ExprFilter"]
986
987 // Script refers to a Lua script evaluated to determine the validity of an
988 // io.argoproj.workflow.v1alpha1.
989 script?: string
990
991 // Time filter on the event with escalation
992 time?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TimeFilter"
993 }
994
995 // EventDependencyTransformer transforms the event
996 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyTransformer": {
997 // JQ holds the jq command applied for transformation
998 // +optional
999 jq?: string
1000
1001 // Script refers to a Lua script used to transform the event
1002 // +optional
1003 script?: string
1004 }
1005
1006 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventPersistence": {
1007 // Catchup enables to triggered the missed schedule when eventsource restarts
1008 catchup?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CatchupConfiguration"
1009
1010 // ConfigMap holds configmap details for persistence
1011 configMap?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConfigMapPersistence"
1012 }
1013
1014 // EventSource is the definition of a eventsource resource
1015 // +genclient
1016 // +kubebuilder:resource:shortName=es
1017 // +kubebuilder:subresource:status
1018 // +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
1019 // +k8s:openapi-gen=true
1020 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource": {
1021 metadata?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
1022 spec?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceSpec"
1023
1024 // +optional
1025 status?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceStatus"
1026 }
1027
1028 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter": expression?: string
1029
1030 // EventSourceList is the list of eventsource resources
1031 // +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
1032 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceList": {
1033 items?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"]
1034 metadata?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
1035 }
1036
1037 // EventSourceSpec refers to specification of event-source resource
1038 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceSpec": {
1039 // AMQP event sources
1040 amqp?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPEventSource"
1041
1042 // AzureEventsHub event sources
1043 azureEventsHub?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventsHubEventSource"
1044
1045 // AzureQueueStorage event source
1046 azureQueueStorage?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureQueueStorageEventSource"
1047
1048 // Azure Service Bus event source
1049 azureServiceBus?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusEventSource"
1050
1051 // Bitbucket event sources
1052 bitbucket?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketEventSource"
1053
1054 // Bitbucket Server event sources
1055 bitbucketserver?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerEventSource"
1056
1057 // Calendar event sources
1058 calendar?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CalendarEventSource"
1059
1060 // Emitter event source
1061 emitter?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmitterEventSource"
1062
1063 // EventBusName references to a EventBus name. By default the value is "default"
1064 eventBusName?: string
1065
1066 // File event sources
1067 file?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileEventSource"
1068
1069 // Generic event source
1070 generic?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GenericEventSource"
1071
1072 // Gerrit event source
1073 gerrit?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GerritEventSource"
1074
1075 // Github event sources
1076 github?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubEventSource"
1077
1078 // Gitlab event sources
1079 gitlab?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitlabEventSource"
1080
1081 // HDFS event sources
1082 hdfs?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HDFSEventSource"
1083
1084 // Kafka event sources
1085 kafka?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaEventSource"
1086
1087 // Minio event sources
1088 minio?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact"
1089
1090 // MQTT event sources
1091 mqtt?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.MQTTEventSource"
1092
1093 // NATS event sources
1094 nats?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSEventsSource"
1095
1096 // NSQ event source
1097 nsq?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NSQEventSource"
1098
1099 // PubSub event sources
1100 pubSub?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PubSubEventSource"
1101
1102 // Pulsar event source
1103 pulsar?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarEventSource"
1104
1105 // Redis event source
1106 redis?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisEventSource"
1107
1108 // Redis stream source
1109 redisStream?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisStreamEventSource"
1110
1111 // Replicas is the event source deployment replicas
1112 replicas?: int
1113
1114 // Resource event sources
1115 resource?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceEventSource"
1116
1117 // Service is the specifications of the service to expose the event source
1118 // +optional
1119 service?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Service"
1120
1121 // SFTP event sources
1122 sftp?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SFTPEventSource"
1123
1124 // Slack event sources
1125 slack?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackEventSource"
1126
1127 // SNS event sources
1128 sns?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SNSEventSource"
1129
1130 // SQS event sources
1131 sqs?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SQSEventSource"
1132
1133 // StorageGrid event sources
1134 storageGrid?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridEventSource"
1135
1136 // Stripe event sources
1137 stripe?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StripeEventSource"
1138
1139 // Template is the pod specification for the event source
1140 // +optional
1141 template?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template"
1142
1143 // Webhook event sources
1144 webhook?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookEventSource"
1145 }
1146
1147 // EventSourceStatus holds the status of the event-source resource
1148 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceStatus": status?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status"
1149
1150 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ExprFilter": {
1151 // Expr refers to the expression that determines the outcome of the filter.
1152 expr?: string
1153
1154 // Fields refers to set of keys that refer to the paths within event payload.
1155 fields?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PayloadField"]
1156 }
1157
1158 // FileArtifact contains information about an artifact in a filesystem
1159 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileArtifact": path?: string
1160
1161 // FileEventSource describes an event-source for file related events.
1162 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileEventSource": {
1163 // Type of file operations to watch
1164 // Refer https://github.com/fsnotify/fsnotify/blob/master/fsnotify.go for more information
1165 eventType?: string
1166
1167 // Filter
1168 // +optional
1169 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1170
1171 // Metadata holds the user defined metadata which will passed along the event payload.
1172 // +optional
1173 metadata?: [string]: string
1174
1175 // Use polling instead of inotify
1176 polling?: bool
1177
1178 // WatchPathConfig contains configuration about the file path to watch
1179 watchPathConfig?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig"
1180 }
1181
1182 // GenericEventSource refers to a generic event source. It can be used to
1183 // implement a custom event source.
1184 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GenericEventSource": {
1185 // AuthSecret holds a secret selector that contains a bearer token for authentication
1186 // +optional
1187 authSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
1188
1189 // Config is the event source configuration
1190 config?: string
1191
1192 // Filter
1193 // +optional
1194 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1195
1196 // Insecure determines the type of connection.
1197 insecure?: bool
1198
1199 // JSONBody specifies that all event body payload coming from this
1200 // source will be JSON
1201 // +optional
1202 jsonBody?: bool
1203
1204 // Metadata holds the user defined metadata which will passed along the event payload.
1205 // +optional
1206 metadata?: [string]: string
1207
1208 // URL of the gRPC server that implements the event source.
1209 url?: string
1210 }
1211
1212 // GerritEventSource refers to event-source related to gerrit events
1213 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GerritEventSource": {
1214 // Auth hosts secret selectors for username and password
1215 // +optional
1216 auth?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
1217
1218 // DeleteHookOnFinish determines whether to delete the Gerrit hook for the
1219 // project once the event source is stopped.
1220 // +optional
1221 deleteHookOnFinish?: bool
1222
1223 // Events are gerrit event to listen to.
1224 // Refer https://gerrit-review.googlesource.com/Documentation/cmd-stream-events.html#events
1225 events?: [...string]
1226
1227 // Filter
1228 // +optional
1229 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1230
1231 // GerritBaseURL is the base URL for API requests to a custom endpoint
1232 gerritBaseURL?: string
1233
1234 // HookName is the name of the webhook
1235 hookName?: string
1236
1237 // Metadata holds the user defined metadata which will passed along the event payload.
1238 // +optional
1239 metadata?: [string]: string
1240
1241 // List of project namespace paths like "whynowy/test".
1242 projects?: [...string]
1243
1244 // SslVerify to enable ssl verification
1245 // +optional
1246 sslVerify?: bool
1247
1248 // Webhook holds configuration to run a http server
1249 webhook?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
1250 }
1251
1252 // GitArtifact contains information about an artifact stored in git
1253 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitArtifact": {
1254 // Branch to use to pull trigger resource
1255 // +optional
1256 branch?: string
1257
1258 // Directory to clone the repository. We clone complete directory because
1259 // GitArtifact is not limited to any specific Git service providers.
1260 // Hence we don't use any specific git provider client.
1261 cloneDirectory?: string
1262
1263 // Creds contain reference to git username and password
1264 // +optional
1265 creds?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitCreds"
1266
1267 // Path to file that contains trigger resource definition
1268 filePath?: string
1269
1270 // Whether to ignore host key
1271 // +optional
1272 insecureIgnoreHostKey?: bool
1273
1274 // Ref to use to pull trigger resource. Will result in a shallow clone and
1275 // fetch.
1276 // +optional
1277 ref?: string
1278
1279 // Remote to manage set of tracked repositories. Defaults to "origin".
1280 // Refer https://git-scm.com/docs/git-remote
1281 // +optional
1282 remote?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitRemoteConfig"
1283
1284 // SSHKeySecret refers to the secret that contains SSH key
1285 sshKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
1286
1287 // Tag to use to pull trigger resource
1288 // +optional
1289 tag?: string
1290
1291 // Git URL
1292 url?: string
1293 }
1294
1295 // GitCreds contain reference to git username and password
1296 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitCreds": {
1297 password?: #."io.k8s.api.core.v1.SecretKeySelector"
1298 username?: #."io.k8s.api.core.v1.SecretKeySelector"
1299 }
1300
1301 // GitRemoteConfig contains the configuration of a Git remote
1302 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitRemoteConfig": {
1303 // Name of the remote to fetch from.
1304 name?: string
1305
1306 // URLs the URLs of a remote repository. It must be non-empty. Fetch will
1307 // always use the first URL, while push will use all of them.
1308 urls?: [...string]
1309 }
1310
1311 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubAppCreds": {
1312 // AppID refers to the GitHub App ID for the application you created
1313 appID?: string
1314
1315 // InstallationID refers to the Installation ID of the GitHub app you created and installed
1316 installationID?: string
1317
1318 // PrivateKey refers to a K8s secret containing the GitHub app private key
1319 privateKey?: #."io.k8s.api.core.v1.SecretKeySelector"
1320 }
1321
1322 // GithubEventSource refers to event-source for github related events
1323 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubEventSource": {
1324 // Active refers to status of the webhook for event deliveries.
1325 // https://developer.github.com/webhooks/creating/#active
1326 // +optional
1327 active?: bool
1328
1329 // APIToken refers to a K8s secret containing github api token
1330 // +optional
1331 apiToken?: #."io.k8s.api.core.v1.SecretKeySelector"
1332
1333 // ContentType of the event delivery
1334 contentType?: string
1335
1336 // DeleteHookOnFinish determines whether to delete the GitHub hook for the
1337 // repository once the event source is stopped.
1338 // +optional
1339 deleteHookOnFinish?: bool
1340
1341 // Events refer to Github events to which the event source will subscribe
1342 events?: [...string]
1343
1344 // Filter
1345 // +optional
1346 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1347
1348 // GitHubApp holds the GitHub app credentials
1349 // +optional
1350 githubApp?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubAppCreds"
1351
1352 // GitHub base URL (for GitHub Enterprise)
1353 // +optional
1354 githubBaseURL?: string
1355
1356 // GitHub upload URL (for GitHub Enterprise)
1357 // +optional
1358 githubUploadURL?: string
1359
1360 // Id is the webhook's id
1361 // Deprecated: This is not used at all, will be removed in v1.6
1362 // +optional
1363 id?: string
1364
1365 // Insecure tls verification
1366 insecure?: bool
1367
1368 // Metadata holds the user defined metadata which will passed along the event payload.
1369 // +optional
1370 metadata?: [string]: string
1371
1372 // Organizations holds the names of organizations (used for organization level
1373 // webhooks). Not required if Repositories is set.
1374 organizations?: [...string]
1375
1376 // DeprecatedOwner refers to GitHub owner name i.e. argoproj
1377 // Deprecated: use Repositories instead. Will be unsupported in v 1.6
1378 // +optional
1379 owner?: string
1380
1381 // Repositories holds the information of repositories, which uses repo owner as the key,
1382 // and list of repo names as the value. Not required if Organizations is set.
1383 repositories?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OwnedRepositories"]
1384
1385 // DeprecatedRepository refers to GitHub repo name i.e. argo-events
1386 // Deprecated: use Repositories instead. Will be unsupported in v 1.6
1387 // +optional
1388 repository?: string
1389
1390 // Webhook refers to the configuration required to run a http server
1391 webhook?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
1392
1393 // WebhookSecret refers to K8s secret containing GitHub webhook secret
1394 // https://developer.github.com/webhooks/securing/
1395 // +optional
1396 webhookSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
1397 }
1398
1399 // GitlabEventSource refers to event-source related to Gitlab events
1400 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitlabEventSource": {
1401 // AccessToken references to k8 secret which holds the gitlab api access information
1402 accessToken?: #."io.k8s.api.core.v1.SecretKeySelector"
1403
1404 // DeleteHookOnFinish determines whether to delete the GitLab hook for the
1405 // project once the event source is stopped.
1406 // +optional
1407 deleteHookOnFinish?: bool
1408
1409 // EnableSSLVerification to enable ssl verification
1410 // +optional
1411 enableSSLVerification?: bool
1412
1413 // Events are gitlab event to listen to.
1414 // Refer
1415 // https://github.com/xanzy/go-gitlab/blob/bf34eca5d13a9f4c3f501d8a97b8ac226d55e4d9/projects.go#L794.
1416 events?: [...string]
1417
1418 // Filter
1419 // +optional
1420 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1421
1422 // GitlabBaseURL is the base URL for API requests to a custom endpoint
1423 gitlabBaseURL?: string
1424
1425 // List of group IDs or group name like "test".
1426 // Group level hook available in Premium and Ultimate Gitlab.
1427 // +optional
1428 groups?: [...string]
1429
1430 // Metadata holds the user defined metadata which will passed along the event payload.
1431 // +optional
1432 metadata?: [string]: string
1433
1434 // DeprecatedProjectID is the id of project for which integration needs to setup
1435 // Deprecated: use Projects instead. Will be unsupported in v 1.7
1436 // +optional
1437 projectID?: string
1438
1439 // List of project IDs or project namespace paths like "whynowy/test".
1440 // If neither a project nor a group is defined, the EventSource will not manage webhooks.
1441 // +optional
1442 projects?: [...string]
1443
1444 // SecretToken references to k8 secret which holds the Secret Token used by webhook config
1445 secretToken?: #."io.k8s.api.core.v1.SecretKeySelector"
1446
1447 // Webhook holds configuration to run a http server
1448 webhook?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
1449 }
1450
1451 // HDFSEventSource refers to event-source for HDFS related events
1452 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HDFSEventSource": {
1453 addresses?: [...string]
1454
1455 // CheckInterval is a string that describes an interval duration to check the
1456 // directory state, e.g. 1s, 30m, 2h... (defaults to 1m)
1457 checkInterval?: string
1458
1459 // Filter
1460 // +optional
1461 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1462
1463 // HDFSUser is the user to access HDFS file system.
1464 // It is ignored if either ccache or keytab is used.
1465 hdfsUser?: string
1466
1467 // KrbCCacheSecret is the secret selector for Kerberos ccache
1468 // Either ccache or keytab can be set to use Kerberos.
1469 krbCCacheSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
1470
1471 // KrbConfig is the configmap selector for Kerberos config as string
1472 // It must be set if either ccache or keytab is used.
1473 krbConfigConfigMap?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
1474
1475 // KrbKeytabSecret is the secret selector for Kerberos keytab
1476 // Either ccache or keytab can be set to use Kerberos.
1477 krbKeytabSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
1478
1479 // KrbRealm is the Kerberos realm used with Kerberos keytab
1480 // It must be set if keytab is used.
1481 krbRealm?: string
1482
1483 // KrbServicePrincipalName is the principal name of Kerberos service
1484 // It must be set if either ccache or keytab is used.
1485 krbServicePrincipalName?: string
1486
1487 // KrbUsername is the Kerberos username used with Kerberos keytab
1488 // It must be set if keytab is used.
1489 krbUsername?: string
1490
1491 // Metadata holds the user defined metadata which will passed along the event payload.
1492 // +optional
1493 metadata?: [string]: string
1494
1495 // Type of file operations to watch
1496 type?: string
1497 watchPathConfig?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig"
1498 }
1499
1500 // HTTPTrigger is the trigger for the HTTP request
1501 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HTTPTrigger": {
1502 // BasicAuth configuration for the http request.
1503 // +optional
1504 basicAuth?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
1505
1506 // Headers for the HTTP request.
1507 // +optional
1508 headers?: [string]: string
1509
1510 // Method refers to the type of the HTTP request.
1511 // Refer https://golang.org/src/net/http/method.go for more io.argoproj.workflow.v1alpha1.
1512 // Default value is POST.
1513 // +optional
1514 method?: string
1515
1516 // Parameters is the list of key-value extracted from event's payload that are applied to
1517 // the HTTP trigger resource.
1518 parameters?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1519 payload?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1520
1521 // Secure Headers stored in Kubernetes Secrets for the HTTP requests.
1522 // +optional
1523 secureHeaders?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader"]
1524
1525 // Timeout refers to the HTTP request timeout in seconds.
1526 // Default value is 60 seconds.
1527 // +optional
1528 timeout?: string
1529
1530 // TLS configuration for the HTTP client.
1531 // +optional
1532 tls?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1533
1534 // URL refers to the URL to send HTTP request to.
1535 url?: string
1536 }
1537
1538 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Int64OrString": {
1539 int64Val?: string
1540 strVal?: string
1541 type?: string
1542 }
1543
1544 // K8SResource represent arbitrary structured data.
1545 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResource": value?: string
1546
1547 // K8SResourcePolicy refers to the policy used to check the state of K8s based triggers using labels
1548 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResourcePolicy": {
1549 // Backoff before checking resource state
1550 backoff?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1551
1552 // ErrorOnBackoffTimeout determines whether sensor should transition to error
1553 // state if the trigger policy is unable to determine
1554 // the state of the resource
1555 errorOnBackoffTimeout?: bool
1556
1557 // Labels required to identify whether a resource is in success state
1558 labels?: [string]: string
1559 }
1560
1561 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaConsumerGroup": {
1562 // The name for the consumer group to use
1563 groupName?: string
1564
1565 // When starting up a new group do we want to start from the oldest event (true)
1566 // or the newest event (false), defaults to false
1567 // +optional
1568 oldest?: bool
1569
1570 // Rebalance strategy can be one of: sticky, roundrobin, range. Range is the default.
1571 // +optional
1572 rebalanceStrategy?: string
1573 }
1574
1575 // KafkaEventSource refers to event-source for Kafka related events
1576 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaEventSource": {
1577 // Yaml format Sarama config for Kafka connection.
1578 // It follows the struct of sarama.Config. See https://github.com/IBM/sarama/blob/main/config.go
1579 // e.g.
1580 //
1581 // consumer:
1582 // fetch:
1583 // min: 1
1584 // net:
1585 // MaxOpenRequests: 5
1586 //
1587 // +optional
1588 config?: string
1589
1590 // Backoff holds parameters applied to connection.
1591 connectionBackoff?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1592
1593 // Consumer group for kafka client
1594 // +optional
1595 consumerGroup?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaConsumerGroup"
1596
1597 // Filter
1598 // +optional
1599 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1600
1601 // JSONBody specifies that all event body payload coming from this
1602 // source will be JSON
1603 // +optional
1604 jsonBody?: bool
1605
1606 // Sets a limit on how many events get read from kafka per second.
1607 // +optional
1608 limitEventsPerSecond?: string
1609
1610 // Metadata holds the user defined metadata which will passed along the event payload.
1611 // +optional
1612 metadata?: [string]: string
1613
1614 // Partition name
1615 // +optional
1616 partition?: string
1617
1618 // SASL configuration for the kafka client
1619 // +optional
1620 sasl?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig"
1621
1622 // TLS configuration for the kafka client.
1623 // +optional
1624 tls?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1625
1626 // Topic name
1627 topic?: string
1628
1629 // URL to kafka cluster, multiple URLs separated by comma
1630 url?: string
1631
1632 // Specify what kafka version is being connected to enables certain features in
1633 // sarama, defaults to 1.0.0
1634 // +optional
1635 version?: string
1636 }
1637
1638 // KafkaTrigger refers to the specification of the Kafka trigger.
1639 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaTrigger": {
1640 // Compress determines whether to compress message or not.
1641 // Defaults to false.
1642 // If set to true, compresses message using snappy compression.
1643 // +optional
1644 compress?: bool
1645
1646 // FlushFrequency refers to the frequency in milliseconds to flush batches.
1647 // Defaults to 500 milliseconds.
1648 // +optional
1649 flushFrequency?: int
1650
1651 // Headers for the Kafka Messages.
1652 // +optional
1653 headers?: [string]: string
1654
1655 // Parameters is the list of parameters that is applied to resolved Kafka trigger object.
1656 parameters?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1657
1658 // +optional
1659 // DEPRECATED
1660 partition?: int
1661
1662 // The partitioning key for the messages put on the Kafka topic.
1663 // +optional.
1664 partitioningKey?: string
1665
1666 // Payload is the list of key-value extracted from an event payload to construct
1667 // the request payload.
1668 payload?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1669
1670 // RequiredAcks used in producer to tell the broker how many replica acknowledgements
1671 // Defaults to 1 (Only wait for the leader to ack).
1672 // +optional.
1673 requiredAcks?: int
1674
1675 // SASL configuration for the kafka client
1676 // +optional
1677 sasl?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig"
1678
1679 // Schema Registry configuration to producer message with avro format
1680 // +optional
1681 schemaRegistry?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SchemaRegistryConfig"
1682
1683 // Secure Headers stored in Kubernetes Secrets for the Kafka messages.
1684 // +optional
1685 secureHeaders?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader"]
1686
1687 // TLS configuration for the Kafka producer.
1688 // +optional
1689 tls?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1690
1691 // Name of the topic.
1692 // More info at https://kafka.apache.org/documentation/#intro_topics
1693 topic?: string
1694
1695 // URL of the Kafka broker, multiple URLs separated by comma.
1696 url?: string
1697
1698 // Specify what kafka version is being connected to enables certain features in
1699 // sarama, defaults to 1.0.0
1700 // +optional
1701 version?: string
1702 }
1703
1704 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.LogTrigger": {
1705 // Only print messages every interval. Useful to prevent logging too much data for busy events.
1706 // +optional
1707 intervalSeconds?: string
1708 }
1709
1710 // MQTTEventSource refers to event-source for MQTT related events
1711 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.MQTTEventSource": {
1712 // Auth hosts secret selectors for username and password
1713 // +optional
1714 auth?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
1715
1716 // ClientID is the id of the client
1717 clientId?: string
1718
1719 // ConnectionBackoff holds backoff applied to connection.
1720 connectionBackoff?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1721
1722 // Filter
1723 // +optional
1724 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1725
1726 // JSONBody specifies that all event body payload coming from this
1727 // source will be JSON
1728 // +optional
1729 jsonBody?: bool
1730
1731 // Metadata holds the user defined metadata which will passed along the event payload.
1732 // +optional
1733 metadata?: [string]: string
1734
1735 // TLS configuration for the mqtt client.
1736 // +optional
1737 tls?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1738
1739 // Topic name
1740 topic?: string
1741
1742 // URL to connect to broker
1743 url?: string
1744 }
1745
1746 // Metadata holds the annotations and labels of an event source pod
1747 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata": {
1748 annotations?: [string]: string
1749 labels?: [string]: string
1750 }
1751
1752 // NATSAuth refers to the auth info for NATS EventSource
1753 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth": {
1754 // Baisc auth with username and password
1755 // +optional
1756 basic?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
1757
1758 // credential used to connect
1759 // +optional
1760 credential?: #."io.k8s.api.core.v1.SecretKeySelector"
1761
1762 // NKey used to connect
1763 // +optional
1764 nkey?: #."io.k8s.api.core.v1.SecretKeySelector"
1765
1766 // Token used to connect
1767 // +optional
1768 token?: #."io.k8s.api.core.v1.SecretKeySelector"
1769 }
1770
1771 // NATSEventsSource refers to event-source for NATS related events
1772 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSEventsSource": {
1773 // Auth information
1774 // +optional
1775 auth?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth"
1776
1777 // ConnectionBackoff holds backoff applied to connection.
1778 connectionBackoff?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1779
1780 // Filter
1781 // +optional
1782 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1783
1784 // JSONBody specifies that all event body payload coming from this
1785 // source will be JSON
1786 // +optional
1787 jsonBody?: bool
1788
1789 // Metadata holds the user defined metadata which will passed along the event payload.
1790 // +optional
1791 metadata?: [string]: string
1792
1793 // Queue is the name of the queue group to subscribe as if specified. Uses QueueSubscribe
1794 // logic to subscribe as queue group. If the queue is empty, uses default Subscribe logic.
1795 // +optional
1796 queue?: string
1797
1798 // Subject holds the name of the subject onto which messages are published
1799 subject?: string
1800
1801 // TLS configuration for the nats client.
1802 // +optional
1803 tls?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1804
1805 // URL to connect to NATS cluster
1806 url?: string
1807 }
1808
1809 // NATSTrigger refers to the specification of the NATS trigger.
1810 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSTrigger": {
1811 // AuthInformation
1812 // +optional
1813 auth?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth"
1814 parameters?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1815 payload?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1816
1817 // Name of the subject to put message on.
1818 subject?: string
1819
1820 // TLS configuration for the NATS producer.
1821 // +optional
1822 tls?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1823
1824 // URL of the NATS cluster.
1825 url?: string
1826 }
1827
1828 // NSQEventSource describes the event source for NSQ PubSub
1829 // More info at https://godoc.org/github.com/nsqio/go-nsq
1830 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NSQEventSource": {
1831 // Channel used for subscription
1832 channel?: string
1833
1834 // Backoff holds parameters applied to connection.
1835 // +optional
1836 connectionBackoff?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1837
1838 // Filter
1839 // +optional
1840 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1841
1842 // HostAddress is the address of the host for NSQ lookup
1843 hostAddress?: string
1844
1845 // JSONBody specifies that all event body payload coming from this
1846 // source will be JSON
1847 // +optional
1848 jsonBody?: bool
1849
1850 // Metadata holds the user defined metadata which will passed along the event payload.
1851 // +optional
1852 metadata?: [string]: string
1853
1854 // TLS configuration for the nsq client.
1855 // +optional
1856 tls?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1857
1858 // Topic to subscribe to.
1859 topic?: string
1860 }
1861
1862 // OpenWhiskTrigger refers to the specification of the OpenWhisk trigger.
1863 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OpenWhiskTrigger": {
1864 // Name of the action/function.
1865 actionName?: string
1866
1867 // AuthToken for authentication.
1868 // +optional
1869 authToken?: #."io.k8s.api.core.v1.SecretKeySelector"
1870
1871 // Host URL of the OpenWhisk.
1872 host?: string
1873
1874 // Namespace for the action.
1875 // Defaults to "_".
1876 // +optional.
1877 namespace?: string
1878
1879 // Parameters is the list of key-value extracted from event's payload that are applied to
1880 // the trigger resource.
1881 // +optional
1882 parameters?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1883
1884 // Payload is the list of key-value extracted from an event payload to construct
1885 // the request payload.
1886 payload?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1887
1888 // Version for the API.
1889 // Defaults to v1.
1890 // +optional
1891 version?: string
1892 }
1893
1894 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OwnedRepositories": {
1895 // Repository names
1896 names?: [...string]
1897
1898 // Organization or user name
1899 owner?: string
1900 }
1901
1902 // PayloadField binds a value at path within the event payload against a name.
1903 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PayloadField": {
1904 // Name acts as key that holds the value at the path.
1905 name?: string
1906
1907 // Path is the JSONPath of the event's (JSON decoded) data key
1908 // Path is a series of keys separated by a dot. A key may contain wildcard characters '*' and '?'.
1909 // To access an array value use the index as the key. The dot and wildcard
1910 // characters can be escaped with '\\'.
1911 // See https://github.com/tidwall/gjson#path-syntax for more information on how to use this.
1912 path?: string
1913 }
1914
1915 // PubSubEventSource refers to event-source for GCP PubSub related events.
1916 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PubSubEventSource": {
1917 // CredentialSecret references to the secret that contains JSON credentials to access GCP.
1918 // If it is missing, it implicitly uses Workload Identity to access.
1919 // https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
1920 // +optional
1921 credentialSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
1922
1923 // DeleteSubscriptionOnFinish determines whether to delete the GCP PubSub
1924 // subscription once the event source is stopped.
1925 // +optional
1926 deleteSubscriptionOnFinish?: bool
1927
1928 // Filter
1929 // +optional
1930 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1931
1932 // JSONBody specifies that all event body payload coming from this
1933 // source will be JSON
1934 // +optional
1935 jsonBody?: bool
1936
1937 // Metadata holds the user defined metadata which will passed along the event payload.
1938 // +optional
1939 metadata?: [string]: string
1940
1941 // ProjectID is GCP project ID for the subscription.
1942 // Required if you run Argo Events outside of GKE/GCE.
1943 // (otherwise, the default value is its project)
1944 // +optional
1945 projectID?: string
1946
1947 // SubscriptionID is ID of subscription.
1948 // Required if you use existing subscription.
1949 // The default value will be auto generated hash based on this eventsource
1950 // setting, so the subscription
1951 // might be recreated every time you update the setting, which has a possibility of event loss.
1952 // +optional
1953 subscriptionID?: string
1954
1955 // Topic to which the subscription should belongs.
1956 // Required if you want the eventsource to create a new subscription.
1957 // If you specify this field along with an existing subscription,
1958 // it will be verified whether it actually belongs to the specified topic.
1959 // +optional
1960 topic?: string
1961
1962 // TopicProjectID is GCP project ID for the topic.
1963 // By default, it is same as ProjectID.
1964 // +optional
1965 topicProjectID?: string
1966 }
1967
1968 // PulsarEventSource describes the event source for Apache Pulsar
1969 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarEventSource": {
1970 // Authentication athenz parameters for the pulsar client.
1971 // Refer https://github.com/apache/pulsar-client-go/blob/master/pulsar/auth/athenz.go
1972 // Either token or athenz can be set to use auth.
1973 // +optional
1974 authAthenzParams?: [string]: string
1975
1976 // Authentication athenz privateKey secret for the pulsar client.
1977 // AuthAthenzSecret must be set if AuthAthenzParams is used.
1978 // +optional
1979 authAthenzSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
1980
1981 // Authentication token for the pulsar client.
1982 // Either token or athenz can be set to use auth.
1983 // +optional
1984 authTokenSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
1985
1986 // Backoff holds parameters applied to connection.
1987 // +optional
1988 connectionBackoff?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1989
1990 // Filter
1991 // +optional
1992 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1993
1994 // JSONBody specifies that all event body payload coming from this
1995 // source will be JSON
1996 // +optional
1997 jsonBody?: bool
1998
1999 // Metadata holds the user defined metadata which will passed along the event payload.
2000 // +optional
2001 metadata?: [string]: string
2002
2003 // TLS configuration for the pulsar client.
2004 // +optional
2005 tls?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2006
2007 // Whether the Pulsar client accept untrusted TLS certificate from broker.
2008 // +optional
2009 tlsAllowInsecureConnection?: bool
2010
2011 // Trusted TLS certificate secret.
2012 // +optional
2013 tlsTrustCertsSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
2014
2015 // Whether the Pulsar client verify the validity of the host name from broker.
2016 // +optional
2017 tlsValidateHostname?: bool
2018
2019 // Name of the topics to subscribe to.
2020 // +required
2021 topics?: [...string]
2022
2023 // Type of the subscription.
2024 // Only "exclusive" and "shared" is supported.
2025 // Defaults to exclusive.
2026 // +optional
2027 type?: string
2028
2029 // Configure the service URL for the Pulsar service.
2030 // +required
2031 url?: string
2032 }
2033
2034 // PulsarTrigger refers to the specification of the Pulsar trigger.
2035 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarTrigger": {
2036 // Authentication athenz parameters for the pulsar client.
2037 // Refer https://github.com/apache/pulsar-client-go/blob/master/pulsar/auth/athenz.go
2038 // Either token or athenz can be set to use auth.
2039 // +optional
2040 authAthenzParams?: [string]: string
2041
2042 // Authentication athenz privateKey secret for the pulsar client.
2043 // AuthAthenzSecret must be set if AuthAthenzParams is used.
2044 // +optional
2045 authAthenzSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
2046
2047 // Authentication token for the pulsar client.
2048 // Either token or athenz can be set to use auth.
2049 // +optional
2050 authTokenSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
2051
2052 // Backoff holds parameters applied to connection.
2053 // +optional
2054 connectionBackoff?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
2055
2056 // Parameters is the list of parameters that is applied to resolved Kafka trigger object.
2057 parameters?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2058
2059 // Payload is the list of key-value extracted from an event payload to construct
2060 // the request payload.
2061 payload?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2062
2063 // TLS configuration for the pulsar client.
2064 // +optional
2065 tls?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2066
2067 // Whether the Pulsar client accept untrusted TLS certificate from broker.
2068 // +optional
2069 tlsAllowInsecureConnection?: bool
2070
2071 // Trusted TLS certificate secret.
2072 // +optional
2073 tlsTrustCertsSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
2074
2075 // Whether the Pulsar client verify the validity of the host name from broker.
2076 // +optional
2077 tlsValidateHostname?: bool
2078
2079 // Name of the topic.
2080 // See https://pulsar.apache.org/docs/en/concepts-messaging/
2081 topic?: string
2082
2083 // Configure the service URL for the Pulsar service.
2084 // +required
2085 url?: string
2086 }
2087
2088 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RateLimit": {
2089 requestsPerUnit?: int
2090
2091 // Defaults to Second
2092 unit?: string
2093 }
2094
2095 // RedisEventSource describes an event source for the Redis PubSub.
2096 // More info at https://godoc.org/github.com/go-redis/redis#example-PubSub
2097 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisEventSource": {
2098 channels?: [...string]
2099
2100 // DB to use. If not specified, default DB 0 will be used.
2101 // +optional
2102 db?: int
2103
2104 // Filter
2105 // +optional
2106 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2107
2108 // HostAddress refers to the address of the Redis host/server
2109 hostAddress?: string
2110
2111 // JSONBody specifies that all event body payload coming from this
2112 // source will be JSON
2113 // +optional
2114 jsonBody?: bool
2115
2116 // Metadata holds the user defined metadata which will passed along the event payload.
2117 // +optional
2118 metadata?: [string]: string
2119
2120 // Namespace to use to retrieve the password from. It should only be specified
2121 // if password is declared
2122 // +optional
2123 namespace?: string
2124
2125 // Password required for authentication if any.
2126 // +optional
2127 password?: #."io.k8s.api.core.v1.SecretKeySelector"
2128
2129 // TLS configuration for the redis client.
2130 // +optional
2131 tls?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2132
2133 // Username required for ACL style authentication if any.
2134 // +optional
2135 username?: string
2136 }
2137
2138 // RedisStreamEventSource describes an event source for
2139 // Redis streams (https://redis.io/topics/streams-intro)
2140 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisStreamEventSource": {
2141 // ConsumerGroup refers to the Redis stream consumer group that will be
2142 // created on all redis streams. Messages are read through this group. Defaults to 'argo-events-cg'
2143 // +optional
2144 consumerGroup?: string
2145
2146 // DB to use. If not specified, default DB 0 will be used.
2147 // +optional
2148 db?: int
2149
2150 // Filter
2151 // +optional
2152 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2153
2154 // HostAddress refers to the address of the Redis host/server (master instance)
2155 hostAddress?: string
2156
2157 // MaxMsgCountPerRead holds the maximum number of messages per stream that will
2158 // be read in each XREADGROUP of all streams
2159 // Example: if there are 2 streams and MaxMsgCountPerRead=10, then each
2160 // XREADGROUP may read upto a total of 20 messages.
2161 // Same as COUNT option in XREADGROUP(https://redis.io/topics/streams-intro). Defaults to 10
2162 // +optional
2163 maxMsgCountPerRead?: int
2164
2165 // Metadata holds the user defined metadata which will passed along the event payload.
2166 // +optional
2167 metadata?: [string]: string
2168
2169 // Password required for authentication if any.
2170 // +optional
2171 password?: #."io.k8s.api.core.v1.SecretKeySelector"
2172
2173 // Streams to look for entries. XREADGROUP is used on all streams using a single consumer group.
2174 streams?: [...string]
2175
2176 // TLS configuration for the redis client.
2177 // +optional
2178 tls?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2179
2180 // Username required for ACL style authentication if any.
2181 // +optional
2182 username?: string
2183 }
2184
2185 // ResourceEventSource refers to a event-source for K8s resource related events.
2186 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceEventSource": {
2187 // EventTypes is the list of event type to watch.
2188 // Possible values are - ADD, UPDATE and DELETE.
2189 eventTypes?: [...string]
2190
2191 // Filter is applied on the metadata of the resource
2192 // If you apply filter, then the internal event informer will only monitor
2193 // objects that pass the filter.
2194 // +optional
2195 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceFilter"
2196
2197 // Group of the resource
2198 groupVersionResource?: #."io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource"
2199
2200 // Metadata holds the user defined metadata which will passed along the event payload.
2201 // +optional
2202 metadata?: [string]: string
2203
2204 // Namespace where resource is deployed
2205 namespace?: string
2206 }
2207
2208 // ResourceFilter contains K8s ObjectMeta information to further filter resource event objects
2209 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceFilter": {
2210 // If the resource is created after the start time then the event is treated as valid.
2211 // +optional
2212 afterStart?: bool
2213
2214 // If resource is created before the specified time then the event is treated as valid.
2215 // +optional
2216 createdBy?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
2217
2218 // Fields provide field filters similar to K8s field selector
2219 // (see https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/).
2220 // Unlike K8s field selector, it supports arbitrary fileds like "spec.serviceAccountName",
2221 // and the value could be a string or a regex.
2222 // Same as K8s field selector, operator "=", "==" and "!=" are supported.
2223 // +optional
2224 fields?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector"]
2225
2226 // Labels provide listing options to K8s API to watch resource/s.
2227 // Refer
2228 // https://kubernetes.io/docs/concepts/overview/working-with-objects/label-selectors/
2229 // for more io.argoproj.workflow.v1alpha1.
2230 // Unlike K8s field selector, multiple values are passed as comma separated
2231 // values instead of list of values.
2232 // Eg: value: value1,value2.
2233 // Same as K8s label selector, operator "=", "==", "!=", "exists", "!", "notin", "in", "gt" and "lt"
2234 // are supported
2235 // +optional
2236 labels?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector"]
2237
2238 // Prefix filter is applied on the resource name.
2239 // +optional
2240 prefix?: string
2241 }
2242
2243 // S3Artifact contains information about an S3 connection and bucket
2244 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact": {
2245 accessKey?: #."io.k8s.api.core.v1.SecretKeySelector"
2246 bucket?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Bucket"
2247 caCertificate?: #."io.k8s.api.core.v1.SecretKeySelector"
2248 endpoint?: string
2249 events?: [...string]
2250 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Filter"
2251 insecure?: bool
2252 metadata?: [string]: string
2253 region?: string
2254 secretKey?: #."io.k8s.api.core.v1.SecretKeySelector"
2255 }
2256
2257 // S3Bucket contains information to describe an S3 Bucket
2258 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Bucket": {
2259 key?: string
2260 name?: string
2261 }
2262
2263 // S3Filter represents filters to apply to bucket notifications for specifying
2264 // constraints on objects
2265 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Filter": {
2266 prefix?: string
2267 suffix?: string
2268 }
2269
2270 // SASLConfig refers to SASL configuration for a client
2271 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig": {
2272 // SASLMechanism is the name of the enabled SASL mechanism.
2273 // Possible values: OAUTHBEARER, PLAIN (defaults to PLAIN).
2274 // +optional
2275 mechanism?: string
2276
2277 // Password for SASL/PLAIN authentication
2278 passwordSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
2279
2280 // User is the authentication identity (authcid) to present for
2281 // SASL/PLAIN or SASL/SCRAM authentication
2282 userSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
2283 }
2284
2285 // SFTPEventSource describes an event-source for sftp related events.
2286 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SFTPEventSource": {
2287 // Address sftp address.
2288 address?: #."io.k8s.api.core.v1.SecretKeySelector"
2289
2290 // Type of file operations to watch
2291 // Refer https://github.com/fsnotify/fsnotify/blob/master/fsnotify.go for more information
2292 eventType?: string
2293
2294 // Filter
2295 // +optional
2296 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2297
2298 // Metadata holds the user defined metadata which will passed along the event payload.
2299 // +optional
2300 metadata?: [string]: string
2301
2302 // Password required for authentication if any.
2303 password?: #."io.k8s.api.core.v1.SecretKeySelector"
2304
2305 // PollIntervalDuration the interval at which to poll the SFTP server
2306 // defaults to 10 seconds
2307 // +optional
2308 pollIntervalDuration?: string
2309
2310 // SSHKeySecret refers to the secret that contains SSH key. Key needs to contain
2311 // private key and public key.
2312 sshKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
2313
2314 // Username required for authentication if any.
2315 username?: #."io.k8s.api.core.v1.SecretKeySelector"
2316
2317 // WatchPathConfig contains configuration about the file path to watch
2318 watchPathConfig?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig"
2319 }
2320
2321 // SNSEventSource refers to event-source for AWS SNS related events
2322 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SNSEventSource": {
2323 // AccessKey refers K8s secret containing aws access key
2324 accessKey?: #."io.k8s.api.core.v1.SecretKeySelector"
2325
2326 // Endpoint configures connection to a specific SNS endpoint instead of Amazons servers
2327 // +optional
2328 endpoint?: string
2329
2330 // Filter
2331 // +optional
2332 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2333
2334 // Metadata holds the user defined metadata which will passed along the event payload.
2335 // +optional
2336 metadata?: [string]: string
2337
2338 // Region is AWS region
2339 region?: string
2340
2341 // RoleARN is the Amazon Resource Name (ARN) of the role to assume.
2342 // +optional
2343 roleARN?: string
2344
2345 // SecretKey refers K8s secret containing aws secret key
2346 secretKey?: #."io.k8s.api.core.v1.SecretKeySelector"
2347
2348 // TopicArn
2349 topicArn?: string
2350
2351 // ValidateSignature is boolean that can be set to true for SNS signature verification
2352 // +optional
2353 validateSignature?: bool
2354
2355 // Webhook configuration for http server
2356 webhook?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
2357 }
2358
2359 // SQSEventSource refers to event-source for AWS SQS related events
2360 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SQSEventSource": {
2361 // AccessKey refers K8s secret containing aws access key
2362 accessKey?: #."io.k8s.api.core.v1.SecretKeySelector"
2363
2364 // DLQ specifies if a dead-letter queue is configured for messages that can't be
2365 // processed successfully.
2366 // If set to true, messages with invalid payload won't be acknowledged to allow
2367 // to forward them farther to the dead-letter queue.
2368 // The default value is false.
2369 // +optional
2370 dlq?: bool
2371
2372 // Endpoint configures connection to a specific SQS endpoint instead of Amazons servers
2373 // +optional
2374 endpoint?: string
2375
2376 // Filter
2377 // +optional
2378 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2379
2380 // JSONBody specifies that all event body payload coming from this
2381 // source will be JSON
2382 // +optional
2383 jsonBody?: bool
2384
2385 // Metadata holds the user defined metadata which will passed along the event payload.
2386 // +optional
2387 metadata?: [string]: string
2388
2389 // Queue is AWS SQS queue to listen to for messages
2390 queue?: string
2391
2392 // QueueAccountID is the ID of the account that created the queue to monitor
2393 // +optional
2394 queueAccountId?: string
2395
2396 // Region is AWS region
2397 region?: string
2398
2399 // RoleARN is the Amazon Resource Name (ARN) of the role to assume.
2400 // +optional
2401 roleARN?: string
2402
2403 // SecretKey refers K8s secret containing aws secret key
2404 secretKey?: #."io.k8s.api.core.v1.SecretKeySelector"
2405
2406 // SessionToken refers to K8s secret containing AWS temporary credentials(STS) session token
2407 // +optional
2408 sessionToken?: #."io.k8s.api.core.v1.SecretKeySelector"
2409
2410 // WaitTimeSeconds is The duration (in seconds) for which the call waits for a message to arrive
2411 // in the queue before returning.
2412 waitTimeSeconds?: string
2413 }
2414
2415 // SchemaRegistryConfig refers to configuration for a client
2416 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SchemaRegistryConfig": {
2417 // +optional
2418 // SchemaRegistry - basic authentication
2419 auth?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
2420
2421 // Schema ID
2422 schemaId?: int
2423
2424 // Schema Registry URL.
2425 url?: string
2426 }
2427
2428 // SecureHeader refers to HTTP Headers with auth tokens as values
2429 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader": {
2430 name?: string
2431
2432 // Values can be read from either secrets or configmaps
2433 valueFrom?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ValueFromSource"
2434 }
2435
2436 // Selector represents conditional operation to select K8s objects.
2437 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector": {
2438 // Key name
2439 key?: string
2440
2441 // Supported operations like ==, != etc.
2442 // Defaults to ==.
2443 // Refer
2444 // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
2445 // for more io.argoproj.workflow.v1alpha1.
2446 // +optional
2447 operation?: string
2448
2449 // Value
2450 value?: string
2451 }
2452
2453 // Sensor is the definition of a sensor resource
2454 // +genclient
2455 // +genclient:noStatus
2456 // +kubebuilder:resource:shortName=sn
2457 // +kubebuilder:subresource:status
2458 // +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
2459 // +k8s:openapi-gen=true
2460 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor": {
2461 metadata?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
2462 spec?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorSpec"
2463
2464 // +optional
2465 status?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorStatus"
2466 }
2467
2468 // SensorList is the list of Sensor resources
2469 // +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
2470 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorList": {
2471 items?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"]
2472 metadata?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
2473 }
2474
2475 // SensorSpec represents desired sensor state
2476 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorSpec": {
2477 // Dependencies is a list of the events that this sensor is dependent on.
2478 dependencies?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependency"]
2479
2480 // ErrorOnFailedRound if set to true, marks sensor state as `error` if the
2481 // previous trigger round fails.
2482 // Once sensor state is set to `error`, no further triggers will be processed.
2483 errorOnFailedRound?: bool
2484
2485 // EventBusName references to a EventBus name. By default the value is "default"
2486 eventBusName?: string
2487
2488 // LoggingFields add additional key-value pairs when logging happens
2489 // +optional
2490 loggingFields?: [string]: string
2491
2492 // Replicas is the sensor deployment replicas
2493 replicas?: int
2494
2495 // RevisionHistoryLimit specifies how many old deployment revisions to retain
2496 // +optional
2497 revisionHistoryLimit?: int
2498
2499 // Template is the pod specification for the sensor
2500 // +optional
2501 template?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template"
2502
2503 // Triggers is a list of the things that this sensor evokes. These are the outputs from this sensor.
2504 triggers?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger"]
2505 }
2506
2507 // SensorStatus contains information about the status of a sensor.
2508 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorStatus": status?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status"
2509
2510 // Service holds the service information eventsource exposes
2511 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Service": {
2512 // clusterIP is the IP address of the service and is usually assigned
2513 // randomly by the master. If an address is specified manually and is not in
2514 // use by others, it will be allocated to the service; otherwise, creation
2515 // of the service will fail. This field can not be changed through updates.
2516 // Valid values are "None", empty string (""), or a valid IP address. "None"
2517 // can be specified for headless services when proxying is not required.
2518 // More info:
2519 // https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
2520 // +optional
2521 clusterIP?: string
2522
2523 // Metadata sets the pods's metadata, i.e. annotations and labels
2524 // default={annotations: {}, labels: {}}
2525 metadata?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata"
2526
2527 // The list of ports that are exposed by this ClusterIP service.
2528 // +patchMergeKey=port
2529 // +patchStrategy=merge
2530 // +listType=map
2531 // +listMapKey=port
2532 // +listMapKey=protocol
2533 ports?: [...#."io.k8s.api.core.v1.ServicePort"]
2534 }
2535
2536 // SlackEventSource refers to event-source for Slack related events
2537 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackEventSource": {
2538 // Filter
2539 // +optional
2540 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2541
2542 // Metadata holds the user defined metadata which will passed along the event payload.
2543 // +optional
2544 metadata?: [string]: string
2545
2546 // Slack App signing secret
2547 signingSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
2548
2549 // Token for URL verification handshake
2550 token?: #."io.k8s.api.core.v1.SecretKeySelector"
2551
2552 // Webhook holds configuration for a REST endpoint
2553 webhook?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
2554 }
2555
2556 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackSender": {
2557 // Icon is the Slack application's icon, e.g. :robot_face: or https://example.com/image.png
2558 // +optional
2559 icon?: string
2560
2561 // Username is the Slack application's username
2562 // +optional
2563 username?: string
2564 }
2565
2566 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackThread": {
2567 // BroadcastMessageToChannel allows to also broadcast the message from the thread to the channel
2568 // +optional
2569 broadcastMessageToChannel?: bool
2570
2571 // MessageAggregationKey allows to aggregate the messages to a thread by some key.
2572 // +optional
2573 messageAggregationKey?: string
2574 }
2575
2576 // SlackTrigger refers to the specification of the slack notification trigger.
2577 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackTrigger": {
2578 // Attachments is a JSON format string that represents an array of Slack
2579 // attachments according to the attachments API:
2580 // https://api.slack.com/reference/messaging/attachments .
2581 // +optional
2582 attachments?: string
2583
2584 // Blocks is a JSON format string that represents an array of Slack blocks
2585 // according to the blocks API:
2586 // https://api.slack.com/reference/block-kit/blocks .
2587 // +optional
2588 blocks?: string
2589
2590 // Channel refers to which Slack channel to send Slack message.
2591 // +optional
2592 channel?: string
2593
2594 // Message refers to the message to send to the Slack channel.
2595 // +optional
2596 message?: string
2597
2598 // Parameters is the list of key-value extracted from event's payload that are applied to
2599 // the trigger resource.
2600 // +optional
2601 parameters?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2602
2603 // Sender refers to additional configuration of the Slack application that sends the message.
2604 // +optional
2605 sender?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackSender"
2606
2607 // SlackToken refers to the Kubernetes secret that holds the slack token required to send messages.
2608 slackToken?: #."io.k8s.api.core.v1.SecretKeySelector"
2609
2610 // Thread refers to additional options for sending messages to a Slack thread.
2611 // +optional
2612 thread?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackThread"
2613 }
2614
2615 // StandardK8STrigger is the standard Kubernetes resource trigger
2616 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StandardK8STrigger": {
2617 // LiveObject specifies whether the resource should be directly fetched from K8s instead
2618 // of being marshaled from the resource artifact. If set to true, the resource artifact
2619 // must contain the information required to uniquely identify the resource in the cluster,
2620 // that is, you must specify "apiVersion", "kind" as well as "name" and "namespace" meta
2621 // data.
2622 // Only valid for operation type `update`
2623 // +optional
2624 liveObject?: bool
2625
2626 // Operation refers to the type of operation performed on the k8s resource.
2627 // Default value is Create.
2628 // +optional
2629 operation?: string
2630
2631 // Parameters is the list of parameters that is applied to resolved K8s trigger object.
2632 parameters?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2633
2634 // PatchStrategy controls the K8s object patching strategy when the trigger
2635 // operation is specified as patch.
2636 // possible values:
2637 // "application/json-patch+json"
2638 // "application/merge-patch+json"
2639 // "application/strategic-merge-patch+json"
2640 // "application/apply-patch+yaml".
2641 // Defaults to "application/merge-patch+json"
2642 // +optional
2643 patchStrategy?: string
2644
2645 // Source of the K8s resource file(s)
2646 source?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation"
2647 }
2648
2649 // Status is a common structure which can be used for Status field.
2650 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status": {
2651 // Conditions are the latest available observations of a resource's current state.
2652 // +optional
2653 // +patchMergeKey=type
2654 // +patchStrategy=merge
2655 conditions?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Condition"]
2656 }
2657
2658 // StatusPolicy refers to the policy used to check the state of the trigger using response status
2659 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StatusPolicy": allow?: [...int]
2660
2661 // StorageGridEventSource refers to event-source for StorageGrid related events
2662 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridEventSource": {
2663 // APIURL is the url of the storagegrid api.
2664 apiURL?: string
2665
2666 // Auth token for storagegrid api
2667 authToken?: #."io.k8s.api.core.v1.SecretKeySelector"
2668
2669 // Name of the bucket to register notifications for.
2670 bucket?: string
2671 events?: [...string]
2672
2673 // Filter on object key which caused the notification.
2674 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridFilter"
2675
2676 // Metadata holds the user defined metadata which will passed along the event payload.
2677 // +optional
2678 metadata?: [string]: string
2679
2680 // S3 region.
2681 // Defaults to us-east-1
2682 // +optional
2683 region?: string
2684
2685 // TopicArn
2686 topicArn?: string
2687
2688 // Webhook holds configuration for a REST endpoint
2689 webhook?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
2690 }
2691
2692 // StorageGridFilter represents filters to apply to bucket notifications for
2693 // specifying constraints on objects
2694 // +k8s:openapi-gen=true
2695 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridFilter": {
2696 prefix?: string
2697 suffix?: string
2698 }
2699
2700 // StripeEventSource describes the event source for stripe webhook notifications
2701 // More info at https://stripe.com/docs/webhooks
2702 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StripeEventSource": {
2703 // APIKey refers to K8s secret that holds Stripe API key. Used only if CreateWebhook is enabled.
2704 // +optional
2705 apiKey?: #."io.k8s.api.core.v1.SecretKeySelector"
2706
2707 // CreateWebhook if specified creates a new webhook programmatically.
2708 // +optional
2709 createWebhook?: bool
2710
2711 // EventFilter describes the type of events to listen to. If not specified, all
2712 // types of events will be processed.
2713 // More info at https://stripe.com/docs/api/events/list
2714 // +optional
2715 eventFilter?: [...string]
2716
2717 // Metadata holds the user defined metadata which will passed along the event payload.
2718 // +optional
2719 metadata?: [string]: string
2720
2721 // Webhook holds configuration for a REST endpoint
2722 webhook?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
2723 }
2724
2725 // TLSConfig refers to TLS configuration for a client.
2726 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig": {
2727 // CACertSecret refers to the secret that contains the CA cert
2728 caCertSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
2729
2730 // ClientCertSecret refers to the secret that contains the client cert
2731 clientCertSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
2732
2733 // ClientKeySecret refers to the secret that contains the client key
2734 clientKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
2735
2736 // If true, skips creation of TLSConfig with certs and creates an empty
2737 // TLSConfig. (Defaults to false)
2738 // +optional
2739 insecureSkipVerify?: bool
2740 }
2741
2742 // Template holds the information of a deployment template
2743 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template": {
2744 // If specified, the pod's scheduling constraints
2745 // +optional
2746 affinity?: #."io.k8s.api.core.v1.Affinity"
2747
2748 // Container is the main container image to run in the sensor pod
2749 // +optional
2750 container?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Container"
2751
2752 // ImagePullSecrets is an optional list of references to secrets in the same
2753 // namespace to use for pulling any of the images used by this PodSpec.
2754 // If specified, these secrets will be passed to individual puller
2755 // implementations for them to use. For example,
2756 // in the case of docker, only DockerConfig type secrets are honored.
2757 // More info:
2758 // https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
2759 // +optional
2760 // +patchMergeKey=name
2761 // +patchStrategy=merge
2762 imagePullSecrets?: [...#."io.k8s.api.core.v1.LocalObjectReference"]
2763
2764 // Metadata sets the pods's metadata, i.e. annotations and labels
2765 metadata?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata"
2766
2767 // NodeSelector is a selector which must be true for the pod to fit on a node.
2768 // Selector which must match a node's labels for the pod to be scheduled on that node.
2769 // More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
2770 // +optional
2771 nodeSelector?: [string]: string
2772
2773 // The priority value. Various system components use this field to find the
2774 // priority of the EventSource pod. When Priority Admission Controller is enabled,
2775 // it prevents users from setting this field. The admission controller populates
2776 // this field from PriorityClassName.
2777 // The higher the value, the higher the priority.
2778 // More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
2779 // +optional
2780 priority?: int
2781
2782 // If specified, indicates the EventSource pod's priority. "system-node-critical"
2783 // and "system-cluster-critical" are two special keywords which indicate the
2784 // highest priorities with the former being the highest priority. Any other
2785 // name must be defined by creating a PriorityClass object with that name.
2786 // If not specified, the pod priority will be default or zero if there is no
2787 // default.
2788 // More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
2789 // +optional
2790 priorityClassName?: string
2791
2792 // SecurityContext holds pod-level security attributes and common container settings.
2793 // Optional: Defaults to empty. See type description for default values of each field.
2794 // +optional
2795 securityContext?: #."io.k8s.api.core.v1.PodSecurityContext"
2796
2797 // ServiceAccountName is the name of the ServiceAccount to use to run sensor pod.
2798 // More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2799 // +optional
2800 serviceAccountName?: string
2801
2802 // If specified, the pod's tolerations.
2803 // +optional
2804 tolerations?: [...#."io.k8s.api.core.v1.Toleration"]
2805
2806 // Volumes is a list of volumes that can be mounted by containers in a
2807 // io.argoproj.workflow.v1alpha1.
2808 // +patchStrategy=merge
2809 // +patchMergeKey=name
2810 // +optional
2811 volumes?: [...#."io.k8s.api.core.v1.Volume"]
2812 }
2813
2814 // TimeFilter describes a window in time.
2815 // It filters out events that occur outside the time limits.
2816 // In other words, only events that occur after Start and before Stop
2817 // will pass this filter.
2818 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TimeFilter": {
2819 // Start is the beginning of a time window in UTC.
2820 // Before this time, events for this dependency are ignored.
2821 // Format is hh:mm:ss.
2822 start?: string
2823
2824 // Stop is the end of a time window in UTC.
2825 // After or equal to this time, events for this dependency are ignored and
2826 // Format is hh:mm:ss.
2827 // If it is smaller than Start, it is treated as next day of Start
2828 // (e.g.: 22:00:00-01:00:00 means 22:00:00-25:00:00).
2829 stop?: string
2830 }
2831
2832 // Trigger is an action taken, output produced, an event created, a message sent
2833 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger": {
2834 // AtLeastOnce determines the trigger execution semantics.
2835 // Defaults to false. Trigger execution will use at-most-once semantics.
2836 // If set to true, Trigger execution will switch to at-least-once semantics.
2837 // +kubebuilder:default=false
2838 // +optional
2839 atLeastOnce?: bool
2840
2841 // If the trigger fails, it will retry up to the configured number of
2842 // retries. If the maximum retries are reached and the trigger is set to
2843 // execute atLeastOnce, the dead letter queue (DLQ) trigger will be invoked if
2844 // specified. Invoking the dead letter queue trigger helps prevent data
2845 // loss.
2846 // +optional
2847 dlqTrigger?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger"
2848
2849 // Parameters is the list of parameters applied to the trigger template definition
2850 parameters?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2851
2852 // Policy to configure backoff and execution criteria for the trigger
2853 // +optional
2854 policy?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerPolicy"
2855
2856 // Rate limit, default unit is Second
2857 // +optional
2858 rateLimit?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RateLimit"
2859
2860 // Retry strategy, defaults to no retry
2861 // +optional
2862 retryStrategy?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
2863
2864 // Template describes the trigger specification.
2865 template?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerTemplate"
2866 }
2867
2868 // TriggerParameter indicates a passed parameter to a service template
2869 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter": {
2870 // Dest is the JSONPath of a resource key.
2871 // A path is a series of keys separated by a dot. The colon character can be escaped with '.'
2872 // The -1 key can be used to append a value to an existing array.
2873 // See https://github.com/tidwall/sjson#path-syntax for more information about how this is used.
2874 dest?: string
2875
2876 // Operation is what to do with the existing value at Dest, whether to
2877 // 'prepend', 'overwrite', or 'append' it.
2878 operation?: string
2879
2880 // Src contains a source reference to the value of the parameter from a dependency
2881 src?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameterSource"
2882 }
2883
2884 // TriggerParameterSource defines the source for a parameter from a event event
2885 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameterSource": {
2886 // ContextKey is the JSONPath of the event's (JSON decoded) context key
2887 // ContextKey is a series of keys separated by a dot. A key may contain wildcard
2888 // characters '*' and '?'.
2889 // To access an array value use the index as the key. The dot and wildcard
2890 // characters can be escaped with '\\'.
2891 // See https://github.com/tidwall/gjson#path-syntax for more information on how to use this.
2892 contextKey?: string
2893
2894 // ContextTemplate is a go-template for extracting a string from the event's context.
2895 // If a ContextTemplate is provided with a ContextKey, the template will be
2896 // evaluated first and fallback to the ContextKey.
2897 // The templating follows the standard go-template syntax as well as sprig's extra functions.
2898 // See https://pkg.go.dev/text/template and https://masterminds.github.io/sprig/
2899 contextTemplate?: string
2900
2901 // DataKey is the JSONPath of the event's (JSON decoded) data key
2902 // DataKey is a series of keys separated by a dot. A key may contain wildcard
2903 // characters '*' and '?'.
2904 // To access an array value use the index as the key. The dot and wildcard
2905 // characters can be escaped with '\\'.
2906 // See https://github.com/tidwall/gjson#path-syntax for more information on how to use this.
2907 dataKey?: string
2908
2909 // DataTemplate is a go-template for extracting a string from the event's data.
2910 // If a DataTemplate is provided with a DataKey, the template will be evaluated
2911 // first and fallback to the DataKey.
2912 // The templating follows the standard go-template syntax as well as sprig's extra functions.
2913 // See https://pkg.go.dev/text/template and https://masterminds.github.io/sprig/
2914 dataTemplate?: string
2915
2916 // DependencyName refers to the name of the dependency. The event which is
2917 // stored for this dependency is used as payload
2918 // for the parameterization. Make sure to refer to one of the dependencies you
2919 // have defined under Dependencies list.
2920 dependencyName?: string
2921
2922 // UseRawData indicates if the value in an event at data key should be used
2923 // without converting to string.
2924 // When true, a number, boolean, json or string parameter may be extracted. When
2925 // the field is unspecified, or explicitly
2926 // false, the behavior is to turn the extracted field into a string. (e.g. when
2927 // set to true, the parameter
2928 // 123 will resolve to the numerical type, but when false, or not provided, the
2929 // string "123" will be resolved)
2930 // +optional
2931 useRawData?: bool
2932
2933 // Value is the default literal value to use for this parameter source
2934 // This is only used if the DataKey is invalid.
2935 // If the DataKey is invalid and this is not defined, this param source will produce an error.
2936 value?: string
2937 }
2938
2939 // TriggerPolicy dictates the policy for the trigger retries
2940 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerPolicy": {
2941 // K8SResourcePolicy refers to the policy used to check the state of K8s based
2942 // triggers using using labels
2943 k8s?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResourcePolicy"
2944
2945 // Status refers to the policy used to check the state of the trigger using response status
2946 status?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StatusPolicy"
2947 }
2948
2949 // TriggerTemplate is the template that describes trigger specification.
2950 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerTemplate": {
2951 // ArgoWorkflow refers to the trigger that can perform various operations on an
2952 // Argo io.argoproj.workflow.v1alpha1.
2953 // +optional
2954 argoWorkflow?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArgoWorkflowTrigger"
2955
2956 // AWSLambda refers to the trigger designed to invoke AWS Lambda function with
2957 // with on-the-fly constructable payload.
2958 // +optional
2959 awsLambda?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AWSLambdaTrigger"
2960
2961 // AzureEventHubs refers to the trigger send an event to an Azure Event Hub.
2962 // +optional
2963 azureEventHubs?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventHubsTrigger"
2964
2965 // AzureServiceBus refers to the trigger designed to place messages on Azure Service Bus
2966 // +optional
2967 azureServiceBus?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusTrigger"
2968
2969 // Conditions is the conditions to execute the trigger.
2970 // For example: "(dep01 || dep02) && dep04"
2971 // +optional
2972 conditions?: string
2973
2974 // Criteria to reset the conditons
2975 // +optional
2976 conditionsReset?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetCriteria"]
2977
2978 // CustomTrigger refers to the trigger designed to connect to a gRPC trigger
2979 // server and execute a custom trigger.
2980 // +optional
2981 custom?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CustomTrigger"
2982
2983 // Email refers to the trigger designed to send an email notification
2984 // +optional
2985 email?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmailTrigger"
2986
2987 // HTTP refers to the trigger designed to dispatch a HTTP request with
2988 // on-the-fly constructable payload.
2989 // +optional
2990 http?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HTTPTrigger"
2991
2992 // StandardK8STrigger refers to the trigger designed to create or update a
2993 // generic Kubernetes resource.
2994 // +optional
2995 k8s?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StandardK8STrigger"
2996
2997 // Kafka refers to the trigger designed to place messages on Kafka topic.
2998 // +optional.
2999 kafka?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaTrigger"
3000
3001 // Log refers to the trigger designed to invoke log the io.argoproj.workflow.v1alpha1.
3002 // +optional
3003 log?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.LogTrigger"
3004
3005 // Name is a unique name of the action to take.
3006 name?: string
3007
3008 // NATS refers to the trigger designed to place message on NATS subject.
3009 // +optional.
3010 nats?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSTrigger"
3011
3012 // OpenWhisk refers to the trigger designed to invoke OpenWhisk action.
3013 // +optional
3014 openWhisk?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OpenWhiskTrigger"
3015
3016 // Pulsar refers to the trigger designed to place messages on Pulsar topic.
3017 // +optional
3018 pulsar?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarTrigger"
3019
3020 // Slack refers to the trigger designed to send slack notification message.
3021 // +optional
3022 slack?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackTrigger"
3023 }
3024
3025 // URLArtifact contains information about an artifact at an http endpoint.
3026 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.URLArtifact": {
3027 // Path is the complete URL
3028 path?: string
3029
3030 // VerifyCert decides whether the connection is secure or not
3031 verifyCert?: bool
3032 }
3033
3034 // ValueFromSource allows you to reference keys from either a Configmap or Secret
3035 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ValueFromSource": {
3036 configMapKeyRef?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
3037 secretKeyRef?: #."io.k8s.api.core.v1.SecretKeySelector"
3038 }
3039
3040 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig": {
3041 // Directory to watch for events
3042 directory?: string
3043
3044 // Path is relative path of object to watch with respect to the directory
3045 path?: string
3046
3047 // PathRegexp is regexp of relative path of object to watch with respect to the directory
3048 pathRegexp?: string
3049 }
3050
3051 // WebhookContext holds a general purpose REST API context
3052 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext": {
3053 // AuthSecret holds a secret selector that contains a bearer token for authentication
3054 // +optional
3055 authSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
3056
3057 // REST API endpoint
3058 endpoint?: string
3059
3060 // MaxPayloadSize is the maximum webhook payload size that the server will accept.
3061 // Requests exceeding that limit will be rejected with "request too large" response.
3062 // Default value: 1048576 (1MB).
3063 // +optional
3064 maxPayloadSize?: string
3065
3066 // Metadata holds the user defined metadata which will passed along the event payload.
3067 // +optional
3068 metadata?: [string]: string
3069
3070 // Method is HTTP request method that indicates the desired action to be
3071 // performed for a given resource.
3072 // See RFC7231 Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
3073 method?: string
3074
3075 // Port on which HTTP server is listening for incoming events.
3076 port?: string
3077
3078 // ServerCertPath refers the file that contains the cert.
3079 serverCertSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
3080
3081 // ServerKeyPath refers the file that contains private key
3082 serverKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
3083
3084 // URL is the url of the server.
3085 url?: string
3086 }
3087
3088 // CalendarEventSource describes an HTTP based EventSource
3089 #: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookEventSource": {
3090 // Filter
3091 // +optional
3092 filter?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
3093 webhookContext?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
3094 }
3095
3096 #: "google.protobuf.Any": {
3097 type_url?: string
3098 value?: string
3099 }
3100
3101 #: "grpc.gateway.runtime.Error": {
3102 code?: int
3103 details?: [...#."google.protobuf.Any"]
3104 error?: string
3105 message?: string
3106 }
3107
3108 #: "grpc.gateway.runtime.StreamError": {
3109 details?: [...#."google.protobuf.Any"]
3110 grpc_code?: int
3111 http_code?: int
3112 http_status?: string
3113 message?: string
3114 }
3115
3116 // Amount represent a numeric amount.
3117 #: "io.argoproj.workflow.v1alpha1.Amount": number
3118
3119 // ArchiveStrategy describes how to archive files/directory when saving artifacts
3120 #: "io.argoproj.workflow.v1alpha1.ArchiveStrategy": {
3121 none?: #."io.argoproj.workflow.v1alpha1.NoneStrategy"
3122 tar?: #."io.argoproj.workflow.v1alpha1.TarStrategy"
3123 zip?: #."io.argoproj.workflow.v1alpha1.ZipStrategy"
3124 }
3125
3126 #: "io.argoproj.workflow.v1alpha1.ArchivedWorkflowDeletedResponse": {}
3127
3128 // Arguments to a template
3129 #: "io.argoproj.workflow.v1alpha1.Arguments": {
3130 // Artifacts is the list of artifacts to pass to the template or workflow
3131 artifacts?: [...#."io.argoproj.workflow.v1alpha1.Artifact"]
3132
3133 // Parameters is the list of parameters to pass to the template or workflow
3134 parameters?: [...#."io.argoproj.workflow.v1alpha1.Parameter"]
3135 }
3136
3137 // ArtGCStatus maintains state related to ArtifactGC
3138 #: "io.argoproj.workflow.v1alpha1.ArtGCStatus": {
3139 // if this is true, we already checked to see if we need to do it and we don't
3140 notSpecified?: bool
3141
3142 // have completed Pods been processed? (mapped by Pod name) used to prevent
3143 // re-processing the Status of a Pod more than once
3144 podsRecouped?: [string]: bool
3145
3146 // have Pods been started to perform this strategy? (enables us not to
3147 // re-process what we've already done)
3148 strategiesProcessed?: [string]: bool
3149 }
3150
3151 // Artifact indicates an artifact to place at a specified path
3152 #: "io.argoproj.workflow.v1alpha1.Artifact": {
3153 // Archive controls how the artifact will be saved to the artifact repository.
3154 archive?: #."io.argoproj.workflow.v1alpha1.ArchiveStrategy"
3155
3156 // ArchiveLogs indicates if the container logs should be archived
3157 archiveLogs?: bool
3158
3159 // ArtifactGC describes the strategy to use when to deleting an artifact from
3160 // completed or deleted workflows
3161 artifactGC?: #."io.argoproj.workflow.v1alpha1.ArtifactGC"
3162
3163 // Artifactory contains artifactory artifact location details
3164 artifactory?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact"
3165
3166 // Azure contains Azure Storage artifact location details
3167 azure?: #."io.argoproj.workflow.v1alpha1.AzureArtifact"
3168
3169 // Has this been deleted?
3170 deleted?: bool
3171
3172 // From allows an artifact to reference an artifact from a previous step
3173 from?: string
3174
3175 // FromExpression, if defined, is evaluated to specify the value for the artifact
3176 fromExpression?: string
3177
3178 // GCS contains GCS artifact location details
3179 gcs?: #."io.argoproj.workflow.v1alpha1.GCSArtifact"
3180
3181 // Git contains git artifact location details
3182 git?: #."io.argoproj.workflow.v1alpha1.GitArtifact"
3183
3184 // GlobalName exports an output artifact to the global scope, making it
3185 // available as io.argoproj.workflow.v1alpha1.outputs.artifacts.XXXX and in
3186 // workflow.status.outputs.artifacts
3187 globalName?: string
3188
3189 // HDFS contains HDFS artifact location details
3190 hdfs?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact"
3191
3192 // HTTP contains HTTP artifact location details
3193 http?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact"
3194
3195 // mode bits to use on this file, must be a value between 0 and 0777. Set when
3196 // loading input artifacts. It is recommended to set the mode value to ensure
3197 // the artifact has the expected permissions in your container.
3198 mode?: int
3199
3200 // name of the artifact. must be unique within a template's inputs/outputs.
3201 name!: string
3202
3203 // Make Artifacts optional, if Artifacts doesn't generate or exist
3204 optional?: bool
3205
3206 // OSS contains OSS artifact location details
3207 oss?: #."io.argoproj.workflow.v1alpha1.OSSArtifact"
3208
3209 // Path is the container path to the artifact
3210 path?: string
3211
3212 // Plugin contains plugin artifact location details
3213 plugin?: #."io.argoproj.workflow.v1alpha1.PluginArtifact"
3214
3215 // Raw contains raw artifact location details
3216 raw?: #."io.argoproj.workflow.v1alpha1.RawArtifact"
3217
3218 // If mode is set, apply the permission recursively into the artifact if it is a folder
3219 recurseMode?: bool
3220
3221 // S3 contains S3 artifact location details
3222 s3?: #."io.argoproj.workflow.v1alpha1.S3Artifact"
3223
3224 // SubPath allows an artifact to be sourced from a subpath within the specified source
3225 subPath?: string
3226 }
3227
3228 // ArtifactGC describes how to delete artifacts from completed Workflows - this
3229 // is embedded into the WorkflowLevelArtifactGC, and also used for individual
3230 // Artifacts to override that as needed
3231 #: "io.argoproj.workflow.v1alpha1.ArtifactGC": {
3232 // PodMetadata is an optional field for specifying the Labels and Annotations
3233 // that should be assigned to the Pod doing the deletion
3234 podMetadata?: #."io.argoproj.workflow.v1alpha1.Metadata"
3235
3236 // ServiceAccountName is an optional field for specifying the Service Account
3237 // that should be assigned to the Pod doing the deletion
3238 serviceAccountName?: string
3239
3240 // Strategy is the strategy to use.
3241 strategy?: string
3242 }
3243
3244 // ArtifactLocation describes a location for a single or multiple artifacts. It
3245 // is used as single artifact in the context of inputs/outputs (e.g.
3246 // outputs.artifacts.artname). It is also used to describe the location of
3247 // multiple artifacts such as the archive location of a single workflow step,
3248 // which the executor will use as a default location to store its files.
3249 #: "io.argoproj.workflow.v1alpha1.ArtifactLocation": {
3250 // ArchiveLogs indicates if the container logs should be archived
3251 archiveLogs?: bool
3252
3253 // Artifactory contains artifactory artifact location details
3254 artifactory?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact"
3255
3256 // Azure contains Azure Storage artifact location details
3257 azure?: #."io.argoproj.workflow.v1alpha1.AzureArtifact"
3258
3259 // GCS contains GCS artifact location details
3260 gcs?: #."io.argoproj.workflow.v1alpha1.GCSArtifact"
3261
3262 // Git contains git artifact location details
3263 git?: #."io.argoproj.workflow.v1alpha1.GitArtifact"
3264
3265 // HDFS contains HDFS artifact location details
3266 hdfs?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact"
3267
3268 // HTTP contains HTTP artifact location details
3269 http?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact"
3270
3271 // OSS contains OSS artifact location details
3272 oss?: #."io.argoproj.workflow.v1alpha1.OSSArtifact"
3273
3274 // Plugin contains plugin artifact location details
3275 plugin?: #."io.argoproj.workflow.v1alpha1.PluginArtifact"
3276
3277 // Raw contains raw artifact location details
3278 raw?: #."io.argoproj.workflow.v1alpha1.RawArtifact"
3279
3280 // S3 contains S3 artifact location details
3281 s3?: #."io.argoproj.workflow.v1alpha1.S3Artifact"
3282 }
3283
3284 // ArtifactPaths expands a step from a collection of artifacts
3285 #: "io.argoproj.workflow.v1alpha1.ArtifactPaths": {
3286 // Archive controls how the artifact will be saved to the artifact repository.
3287 archive?: #."io.argoproj.workflow.v1alpha1.ArchiveStrategy"
3288
3289 // ArchiveLogs indicates if the container logs should be archived
3290 archiveLogs?: bool
3291
3292 // ArtifactGC describes the strategy to use when to deleting an artifact from
3293 // completed or deleted workflows
3294 artifactGC?: #."io.argoproj.workflow.v1alpha1.ArtifactGC"
3295
3296 // Artifactory contains artifactory artifact location details
3297 artifactory?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact"
3298
3299 // Azure contains Azure Storage artifact location details
3300 azure?: #."io.argoproj.workflow.v1alpha1.AzureArtifact"
3301
3302 // Has this been deleted?
3303 deleted?: bool
3304
3305 // From allows an artifact to reference an artifact from a previous step
3306 from?: string
3307
3308 // FromExpression, if defined, is evaluated to specify the value for the artifact
3309 fromExpression?: string
3310
3311 // GCS contains GCS artifact location details
3312 gcs?: #."io.argoproj.workflow.v1alpha1.GCSArtifact"
3313
3314 // Git contains git artifact location details
3315 git?: #."io.argoproj.workflow.v1alpha1.GitArtifact"
3316
3317 // GlobalName exports an output artifact to the global scope, making it
3318 // available as io.argoproj.workflow.v1alpha1.outputs.artifacts.XXXX and in
3319 // workflow.status.outputs.artifacts
3320 globalName?: string
3321
3322 // HDFS contains HDFS artifact location details
3323 hdfs?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact"
3324
3325 // HTTP contains HTTP artifact location details
3326 http?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact"
3327
3328 // mode bits to use on this file, must be a value between 0 and 0777. Set when
3329 // loading input artifacts. It is recommended to set the mode value to ensure
3330 // the artifact has the expected permissions in your container.
3331 mode?: int
3332
3333 // name of the artifact. must be unique within a template's inputs/outputs.
3334 name!: string
3335
3336 // Make Artifacts optional, if Artifacts doesn't generate or exist
3337 optional?: bool
3338
3339 // OSS contains OSS artifact location details
3340 oss?: #."io.argoproj.workflow.v1alpha1.OSSArtifact"
3341
3342 // Path is the container path to the artifact
3343 path?: string
3344
3345 // Plugin contains plugin artifact location details
3346 plugin?: #."io.argoproj.workflow.v1alpha1.PluginArtifact"
3347
3348 // Raw contains raw artifact location details
3349 raw?: #."io.argoproj.workflow.v1alpha1.RawArtifact"
3350
3351 // If mode is set, apply the permission recursively into the artifact if it is a folder
3352 recurseMode?: bool
3353
3354 // S3 contains S3 artifact location details
3355 s3?: #."io.argoproj.workflow.v1alpha1.S3Artifact"
3356
3357 // SubPath allows an artifact to be sourced from a subpath within the specified source
3358 subPath?: string
3359 }
3360
3361 // ArtifactRepository represents an artifact repository in which a controller
3362 // will store its artifacts
3363 #: "io.argoproj.workflow.v1alpha1.ArtifactRepository": {
3364 // ArchiveLogs enables log archiving
3365 archiveLogs?: bool
3366
3367 // Artifactory stores artifacts to JFrog Artifactory
3368 artifactory?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifactRepository"
3369
3370 // Azure stores artifact in an Azure Storage account
3371 azure?: #."io.argoproj.workflow.v1alpha1.AzureArtifactRepository"
3372
3373 // GCS stores artifact in a GCS object store
3374 gcs?: #."io.argoproj.workflow.v1alpha1.GCSArtifactRepository"
3375
3376 // HDFS stores artifacts in HDFS
3377 hdfs?: #."io.argoproj.workflow.v1alpha1.HDFSArtifactRepository"
3378
3379 // OSS stores artifact in a OSS-compliant object store
3380 oss?: #."io.argoproj.workflow.v1alpha1.OSSArtifactRepository"
3381
3382 // Plugin stores artifact in a plugin-specific artifact repository
3383 plugin?: #."io.argoproj.workflow.v1alpha1.PluginArtifactRepository"
3384
3385 // S3 stores artifact in a S3-compliant object store
3386 s3?: #."io.argoproj.workflow.v1alpha1.S3ArtifactRepository"
3387 }
3388
3389 #: "io.argoproj.workflow.v1alpha1.ArtifactRepositoryRef": {
3390 // The name of the config map. Defaults to "artifact-repositories".
3391 configMap?: string
3392
3393 // The config map key. Defaults to the value of the
3394 // "workflows.argoproj.io/default-artifact-repository" annotation.
3395 key?: string
3396 }
3397
3398 #: "io.argoproj.workflow.v1alpha1.ArtifactRepositoryRefStatus": {
3399 // The repository the workflow will use. This maybe empty before v3.1.
3400 artifactRepository?: #."io.argoproj.workflow.v1alpha1.ArtifactRepository"
3401
3402 // The name of the config map. Defaults to "artifact-repositories".
3403 configMap?: string
3404
3405 // If this ref represents the default artifact repository, rather than a config map.
3406 default?: bool
3407
3408 // The config map key. Defaults to the value of the
3409 // "workflows.argoproj.io/default-artifact-repository" annotation.
3410 key?: string
3411
3412 // The namespace of the config map. Defaults to the workflow's namespace, or the
3413 // controller's namespace (if found).
3414 namespace?: string
3415 }
3416
3417 // ArtifactoryArtifact is the location of an artifactory artifact
3418 #: "io.argoproj.workflow.v1alpha1.ArtifactoryArtifact": {
3419 // PasswordSecret is the secret selector to the repository password
3420 passwordSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
3421
3422 // URL of the artifact
3423 url!: string
3424
3425 // UsernameSecret is the secret selector to the repository username
3426 usernameSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
3427 }
3428
3429 // ArtifactoryArtifactRepository defines the controller configuration for an
3430 // artifactory artifact repository
3431 #: "io.argoproj.workflow.v1alpha1.ArtifactoryArtifactRepository": {
3432 // KeyFormat defines the format of how to store keys and can reference workflow variables.
3433 keyFormat?: string
3434
3435 // PasswordSecret is the secret selector to the repository password
3436 passwordSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
3437
3438 // RepoURL is the url for artifactory repo.
3439 repoURL?: string
3440
3441 // UsernameSecret is the secret selector to the repository username
3442 usernameSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
3443 }
3444
3445 // AzureArtifact is the location of an Azure Storage artifact
3446 #: "io.argoproj.workflow.v1alpha1.AzureArtifact": {
3447 // AccountKeySecret is the secret selector to the Azure Blob Storage account access key
3448 accountKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
3449
3450 // Blob is the blob name (i.e., path) in the container where the artifact resides
3451 blob!: string
3452
3453 // Container is the container where resources will be stored
3454 container!: string
3455
3456 // Endpoint is the service url associated with an account. It is most likely
3457 // "https://<ACCOUNT_NAME>.blob.core.windows.net"
3458 endpoint!: string
3459
3460 // UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
3461 useSDKCreds?: bool
3462 }
3463
3464 // AzureArtifactRepository defines the controller configuration for an Azure
3465 // Blob Storage artifact repository
3466 #: "io.argoproj.workflow.v1alpha1.AzureArtifactRepository": {
3467 // AccountKeySecret is the secret selector to the Azure Blob Storage account access key
3468 accountKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
3469
3470 // BlobNameFormat is defines the format of how to store blob names. Can reference workflow variables
3471 blobNameFormat?: string
3472
3473 // Container is the container where resources will be stored
3474 container!: string
3475
3476 // Endpoint is the service url associated with an account. It is most likely
3477 // "https://<ACCOUNT_NAME>.blob.core.windows.net"
3478 endpoint!: string
3479
3480 // UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
3481 useSDKCreds?: bool
3482 }
3483
3484 // Backoff is a backoff strategy to use within retryStrategy
3485 #: "io.argoproj.workflow.v1alpha1.Backoff": {
3486 // Cap is a limit on revised values of the duration parameter. If a
3487 // multiplication by the factor parameter would make the duration exceed the
3488 // cap then the duration is set to the cap
3489 cap?: string
3490
3491 // Duration is the amount to back off. Default unit is seconds, but could also
3492 // be a duration (e.g. "2m", "1h")
3493 duration?: string
3494
3495 // Factor is a factor to multiply the base duration after each failed retry
3496 factor?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
3497
3498 // MaxDuration is the maximum amount of time allowed for a workflow in the
3499 // backoff strategy. It is important to note that if the workflow template
3500 // includes activeDeadlineSeconds, the pod's deadline is initially set with
3501 // activeDeadlineSeconds. However, when the workflow fails, the pod's deadline
3502 // is then overridden by maxDuration. This ensures that the workflow does not
3503 // exceed the specified maximum duration when retries are involved.
3504 maxDuration?: string
3505 }
3506
3507 // BasicAuth describes the secret selectors required for basic authentication
3508 #: "io.argoproj.workflow.v1alpha1.BasicAuth": {
3509 // PasswordSecret is the secret selector to the repository password
3510 passwordSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
3511
3512 // UsernameSecret is the secret selector to the repository username
3513 usernameSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
3514 }
3515
3516 // Cache is the configuration for the type of cache to be used
3517 #: "io.argoproj.workflow.v1alpha1.Cache": {
3518 // ConfigMap sets a ConfigMap-based cache
3519 configMap!: #."io.k8s.api.core.v1.LocalObjectReference"
3520 }
3521
3522 // ClientCertAuth holds necessary information for client authentication via certificates
3523 #: "io.argoproj.workflow.v1alpha1.ClientCertAuth": {
3524 clientCertSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
3525 clientKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
3526 }
3527
3528 // ClusterWorkflowTemplate is the definition of a workflow template resource in cluster scope
3529 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate": {
3530 // APIVersion defines the versioned schema of this representation of an object.
3531 // Servers should convert recognized schemas to the latest internal value, and
3532 // may reject unrecognized values. More info:
3533 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
3534 apiVersion?: "argoproj.io/v1alpha1"
3535
3536 // Kind is a string value representing the REST resource this object represents.
3537 // Servers may infer this from the endpoint the client submits requests to.
3538 // Cannot be updated. In CamelCase. More info:
3539 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
3540 kind?: "ClusterWorkflowTemplate"
3541 metadata!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
3542 spec!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
3543 }
3544
3545 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateCreateRequest": {
3546 createOptions?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
3547 template?: #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"
3548 }
3549
3550 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateDeleteResponse": {}
3551
3552 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateLintRequest": {
3553 createOptions?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
3554 template?: #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"
3555 }
3556
3557 // ClusterWorkflowTemplateList is list of ClusterWorkflowTemplate resources
3558 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateList": {
3559 // APIVersion defines the versioned schema of this representation of an object.
3560 // Servers should convert recognized schemas to the latest internal value, and
3561 // may reject unrecognized values. More info:
3562 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
3563 apiVersion?: string
3564 items!: [...#."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"]
3565
3566 // Kind is a string value representing the REST resource this object represents.
3567 // Servers may infer this from the endpoint the client submits requests to.
3568 // Cannot be updated. In CamelCase. More info:
3569 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
3570 kind?: string
3571 metadata!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
3572 }
3573
3574 #: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateUpdateRequest": {
3575 // DEPRECATED: This field is ignored.
3576 name?: string
3577 template?: #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"
3578 }
3579
3580 #: "io.argoproj.workflow.v1alpha1.CollectEventRequest": name?: string
3581
3582 #: "io.argoproj.workflow.v1alpha1.CollectEventResponse": {}
3583
3584 // Column is a custom column that will be exposed in the Workflow List View.
3585 #: "io.argoproj.workflow.v1alpha1.Column": {
3586 // The key of the label or annotation, e.g., "workflows.argoproj.io/completed".
3587 key!: string
3588
3589 // The name of this column, e.g., "Workflow Completed".
3590 name!: string
3591
3592 // The type of this column, "label" or "annotation".
3593 type!: string
3594 }
3595
3596 #: "io.argoproj.workflow.v1alpha1.Condition": {
3597 // Message is the condition message
3598 message?: string
3599
3600 // Status is the status of the condition
3601 status?: string
3602
3603 // Type is the type of condition
3604 type?: string
3605 }
3606
3607 #: "io.argoproj.workflow.v1alpha1.ContainerNode": {
3608 // Arguments to the entrypoint. The container image's CMD is used if this is not
3609 // provided. Variable references $(VAR_NAME) are expanded using the container's
3610 // environment. If a variable cannot be resolved, the reference in the input
3611 // string will be unchanged. Double $$ are reduced to a single $, which allows
3612 // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
3613 // string literal "$(VAR_NAME)". Escaped references will never be expanded,
3614 // regardless of whether the variable exists or not. Cannot be updated. More
3615 // info:
3616 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
3617 args?: [...string]
3618
3619 // Entrypoint array. Not executed within a shell. The container image's
3620 // ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME)
3621 // are expanded using the container's environment. If a variable cannot be
3622 // resolved, the reference in the input string will be unchanged. Double $$ are
3623 // reduced to a single $, which allows for escaping the $(VAR_NAME) syntax:
3624 // i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped
3625 // references will never be expanded, regardless of whether the variable exists
3626 // or not. Cannot be updated. More info:
3627 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
3628 command?: [...string]
3629 dependencies?: [...string]
3630
3631 // List of environment variables to set in the container. Cannot be updated.
3632 env?: [...#."io.k8s.api.core.v1.EnvVar"]
3633
3634 // List of sources to populate environment variables in the container. The keys
3635 // defined within a source must be a C_IDENTIFIER. All invalid keys will be
3636 // reported as an event when the container is starting. When a key exists in
3637 // multiple sources, the value associated with the last source will take
3638 // precedence. Values defined by an Env with a duplicate key will take
3639 // precedence. Cannot be updated.
3640 envFrom?: [...#."io.k8s.api.core.v1.EnvFromSource"]
3641
3642 // Container image name. More info:
3643 // https://kubernetes.io/docs/concepts/containers/images This field is optional
3644 // to allow higher level config management to default or override container
3645 // images in workload controllers like Deployments and StatefulSets.
3646 image?: string
3647
3648 // Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if
3649 // :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More
3650 // info: https://kubernetes.io/docs/concepts/containers/images#updating-images
3651 imagePullPolicy?: string
3652
3653 // Actions that the management system should take in response to container
3654 // lifecycle events. Cannot be updated.
3655 lifecycle?: #."io.k8s.api.core.v1.Lifecycle"
3656
3657 // Periodic probe of container liveness. Container will be restarted if the
3658 // probe fails. Cannot be updated. More info:
3659 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
3660 livenessProbe?: #."io.k8s.api.core.v1.Probe"
3661
3662 // Name of the container specified as a DNS_LABEL. Each container in a pod must
3663 // have a unique name (DNS_LABEL). Cannot be updated.
3664 name!: string
3665
3666 // List of ports to expose from the container. Not specifying a port here DOES
3667 // NOT prevent that port from being exposed. Any port which is listening on the
3668 // default "0.0.0.0" address inside a container will be accessible from the
3669 // network. Modifying this array with strategic merge patch may corrupt the
3670 // data. For more information See
3671 // https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.
3672 ports?: [...#."io.k8s.api.core.v1.ContainerPort"]
3673
3674 // Periodic probe of container service readiness. Container will be removed from
3675 // service endpoints if the probe fails. Cannot be updated. More info:
3676 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
3677 readinessProbe?: #."io.k8s.api.core.v1.Probe"
3678
3679 // Resources resize policy for the container.
3680 resizePolicy?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
3681
3682 // Compute Resources required by this container. Cannot be updated. More info:
3683 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
3684 resources?: #."io.k8s.api.core.v1.ResourceRequirements"
3685
3686 // RestartPolicy defines the restart behavior of individual containers in a pod.
3687 // This field may only be set for init containers, and the only allowed value
3688 // is "Always". For non-init containers or when this field is not specified,
3689 // the restart behavior is defined by the Pod's restart policy and the
3690 // container type. Setting the RestartPolicy as "Always" for the init container
3691 // will have the following effect: this init container will be continually
3692 // restarted on exit until all regular containers have terminated. Once all
3693 // regular containers have completed, all init containers with restartPolicy
3694 // "Always" will be shut down. This lifecycle differs from normal init
3695 // containers and is often referred to as a "sidecar" container. Although this
3696 // init container still starts in the init container sequence, it does not wait
3697 // for the container to complete before proceeding to the next init container.
3698 // Instead, the next init container starts immediately after this init
3699 // container is started, or after any startupProbe has successfully completed.
3700 restartPolicy?: string
3701
3702 // SecurityContext defines the security options the container should be run
3703 // with. If set, the fields of SecurityContext override the equivalent fields
3704 // of PodSecurityContext. More info:
3705 // https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
3706 securityContext?: #."io.k8s.api.core.v1.SecurityContext"
3707
3708 // StartupProbe indicates that the Pod has successfully initialized. If
3709 // specified, no other probes are executed until this completes successfully.
3710 // If this probe fails, the Pod will be restarted, just as if the livenessProbe
3711 // failed. This can be used to provide different probe parameters at the
3712 // beginning of a Pod's lifecycle, when it might take a long time to load data
3713 // or warm a cache, than during steady-state operation. This cannot be updated.
3714 // More info:
3715 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
3716 startupProbe?: #."io.k8s.api.core.v1.Probe"
3717
3718 // Whether this container should allocate a buffer for stdin in the container
3719 // runtime. If this is not set, reads from stdin in the container will always
3720 // result in EOF. Default is false.
3721 stdin?: bool
3722
3723 // Whether the container runtime should close the stdin channel after it has
3724 // been opened by a single attach. When stdin is true the stdin stream will
3725 // remain open across multiple attach sessions. If stdinOnce is set to true,
3726 // stdin is opened on container start, is empty until the first client attaches
3727 // to stdin, and then remains open and accepts data until the client
3728 // disconnects, at which time stdin is closed and remains closed until the
3729 // container is restarted. If this flag is false, a container processes that
3730 // reads from stdin will never receive an EOF. Default is false
3731 stdinOnce?: bool
3732
3733 // Optional: Path at which the file to which the container's termination message
3734 // will be written is mounted into the container's filesystem. Message written
3735 // is intended to be brief final status, such as an assertion failure message.
3736 // Will be truncated by the node if greater than 4096 bytes. The total message
3737 // length across all containers will be limited to 12kb. Defaults to
3738 // /dev/termination-log. Cannot be updated.
3739 terminationMessagePath?: string
3740
3741 // Indicate how the termination message should be populated. File will use the
3742 // contents of terminationMessagePath to populate the container status message
3743 // on both success and failure. FallbackToLogsOnError will use the last chunk
3744 // of container log output if the termination message file is empty and the
3745 // container exited with an error. The log output is limited to 2048 bytes or
3746 // 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
3747 terminationMessagePolicy?: string
3748
3749 // Whether this container should allocate a TTY for itself, also requires
3750 // 'stdin' to be true. Default is false.
3751 tty?: bool
3752
3753 // volumeDevices is the list of block devices to be used by the container.
3754 volumeDevices?: [...#."io.k8s.api.core.v1.VolumeDevice"]
3755
3756 // Pod volumes to mount into the container's filesystem. Cannot be updated.
3757 volumeMounts?: [...#."io.k8s.api.core.v1.VolumeMount"]
3758
3759 // Container's working directory. If not specified, the container runtime's
3760 // default will be used, which might be configured in the container image.
3761 // Cannot be updated.
3762 workingDir?: string
3763 }
3764
3765 // ContainerSetRetryStrategy provides controls on how to retry a container set
3766 #: "io.argoproj.workflow.v1alpha1.ContainerSetRetryStrategy": {
3767 // Duration is the time between each retry, examples values are "300ms", "1s" or
3768 // "5m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
3769 duration?: string
3770
3771 // Retries is the maximum number of retry attempts for each container. It does
3772 // not include the first, original attempt; the maximum number of total
3773 // attempts will be `retries + 1`.
3774 retries!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
3775 }
3776
3777 #: "io.argoproj.workflow.v1alpha1.ContainerSetTemplate": {
3778 containers!: [...#."io.argoproj.workflow.v1alpha1.ContainerNode"]
3779
3780 // RetryStrategy describes how to retry container nodes if the container set
3781 // fails. Note that this works differently from the template-level
3782 // `retryStrategy` as it is a process-level retry that does not create new Pods
3783 // or containers.
3784 retryStrategy?: #."io.argoproj.workflow.v1alpha1.ContainerSetRetryStrategy"
3785 volumeMounts?: [...#."io.k8s.api.core.v1.VolumeMount"]
3786 }
3787
3788 // ContinueOn defines if a workflow should continue even if a task or step
3789 // fails/errors. It can be specified if the workflow should continue when the
3790 // pod errors, fails or both.
3791 #: "io.argoproj.workflow.v1alpha1.ContinueOn": {
3792 error?: bool
3793 failed?: bool
3794 }
3795
3796 // Counter is a Counter prometheus metric
3797 #: "io.argoproj.workflow.v1alpha1.Counter": {
3798 // Value is the value of the metric
3799 value!: string
3800 }
3801
3802 #: "io.argoproj.workflow.v1alpha1.CreateCronWorkflowRequest": {
3803 createOptions?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
3804 cronWorkflow?: #."io.argoproj.workflow.v1alpha1.CronWorkflow"
3805 namespace?: string
3806 }
3807
3808 // CreateS3BucketOptions options used to determine automatic automatic bucket-creation process
3809 #: "io.argoproj.workflow.v1alpha1.CreateS3BucketOptions": {
3810 // ObjectLocking Enable object locking
3811 objectLocking?: bool
3812 }
3813
3814 // CronWorkflow is the definition of a scheduled workflow resource
3815 #: "io.argoproj.workflow.v1alpha1.CronWorkflow": {
3816 // APIVersion defines the versioned schema of this representation of an object.
3817 // Servers should convert recognized schemas to the latest internal value, and
3818 // may reject unrecognized values. More info:
3819 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
3820 apiVersion?: "argoproj.io/v1alpha1"
3821
3822 // Kind is a string value representing the REST resource this object represents.
3823 // Servers may infer this from the endpoint the client submits requests to.
3824 // Cannot be updated. In CamelCase. More info:
3825 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
3826 kind?: "CronWorkflow"
3827 metadata!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
3828 spec!: #."io.argoproj.workflow.v1alpha1.CronWorkflowSpec"
3829 status?: #."io.argoproj.workflow.v1alpha1.CronWorkflowStatus"
3830 }
3831
3832 #: "io.argoproj.workflow.v1alpha1.CronWorkflowDeletedResponse": {}
3833
3834 // CronWorkflowList is list of CronWorkflow resources
3835 #: "io.argoproj.workflow.v1alpha1.CronWorkflowList": {
3836 // APIVersion defines the versioned schema of this representation of an object.
3837 // Servers should convert recognized schemas to the latest internal value, and
3838 // may reject unrecognized values. More info:
3839 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
3840 apiVersion?: string
3841 items!: [...#."io.argoproj.workflow.v1alpha1.CronWorkflow"]
3842
3843 // Kind is a string value representing the REST resource this object represents.
3844 // Servers may infer this from the endpoint the client submits requests to.
3845 // Cannot be updated. In CamelCase. More info:
3846 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
3847 kind?: string
3848 metadata!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
3849 }
3850
3851 #: "io.argoproj.workflow.v1alpha1.CronWorkflowResumeRequest": {
3852 name?: string
3853 namespace?: string
3854 }
3855
3856 // CronWorkflowSpec is the specification of a CronWorkflow
3857 #: "io.argoproj.workflow.v1alpha1.CronWorkflowSpec": {
3858 // ConcurrencyPolicy is the K8s-style concurrency policy that will be used
3859 concurrencyPolicy?: string
3860
3861 // FailedJobsHistoryLimit is the number of failed jobs to be kept at a time
3862 failedJobsHistoryLimit?: int
3863
3864 // v3.6 and after: Schedules is a list of schedules to run the Workflow in Cron format
3865 schedules!: [...string]
3866
3867 // StartingDeadlineSeconds is the K8s-style deadline that will limit the time a
3868 // CronWorkflow will be run after its original scheduled time if it is missed.
3869 startingDeadlineSeconds?: int
3870
3871 // v3.6 and after: StopStrategy defines if the CronWorkflow should stop
3872 // scheduling based on a condition
3873 stopStrategy?: #."io.argoproj.workflow.v1alpha1.StopStrategy"
3874
3875 // SuccessfulJobsHistoryLimit is the number of successful jobs to be kept at a time
3876 successfulJobsHistoryLimit?: int
3877
3878 // Suspend is a flag that will stop new CronWorkflows from running if set to true
3879 suspend?: bool
3880
3881 // Timezone is the timezone against which the cron schedule will be calculated,
3882 // e.g. "Asia/Tokyo". Default is machine's local time.
3883 timezone?: string
3884
3885 // v3.6 and after: When is an expression that determines if a run should be scheduled.
3886 when?: string
3887
3888 // WorkflowMetadata contains some metadata of the workflow to be run
3889 workflowMetadata?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
3890
3891 // WorkflowSpec is the spec of the workflow to be run
3892 workflowSpec!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
3893 }
3894
3895 // CronWorkflowStatus is the status of a CronWorkflow
3896 #: "io.argoproj.workflow.v1alpha1.CronWorkflowStatus": {
3897 // Active is a list of active workflows stemming from this CronWorkflow
3898 active?: [...#."io.k8s.api.core.v1.ObjectReference"]
3899
3900 // Conditions is a list of conditions the CronWorkflow may have
3901 conditions?: [...#."io.argoproj.workflow.v1alpha1.Condition"]
3902
3903 // v3.6 and after: Failed counts how many times child workflows failed
3904 failed?: int
3905
3906 // LastScheduleTime is the last time the CronWorkflow was scheduled
3907 lastScheduledTime?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
3908
3909 // v3.6 and after: Phase is an enum of Active or Stopped. It changes to Stopped
3910 // when stopStrategy.expression is true
3911 phase?: string
3912
3913 // v3.6 and after: Succeeded counts how many times child workflows succeeded
3914 succeeded?: int
3915 }
3916
3917 #: "io.argoproj.workflow.v1alpha1.CronWorkflowSuspendRequest": {
3918 name?: string
3919 namespace?: string
3920 }
3921
3922 // DAGTask represents a node in the graph during DAG execution Note: CEL
3923 // validation cannot check withItems (Schemaless) or inline
3924 // (PreserveUnknownFields) fields.
3925 #: "io.argoproj.workflow.v1alpha1.DAGTask": {
3926 // Arguments are the parameter and artifact arguments to the template
3927 arguments?: #."io.argoproj.workflow.v1alpha1.Arguments"
3928
3929 // ContinueOn makes argo to proceed with the following step even if this step
3930 // fails. Errors and Failed states can be specified
3931 continueOn?: #."io.argoproj.workflow.v1alpha1.ContinueOn"
3932
3933 // Dependencies are name of other targets which this depends on
3934 dependencies?: [...string]
3935
3936 // Depends are name of other targets which this depends on
3937 depends?: string
3938
3939 // Hooks hold the lifecycle hook which is invoked at lifecycle of task,
3940 // irrespective of the success, failure, or error status of the primary task
3941 hooks?: [string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook"
3942
3943 // Inline is the template. Template must be empty if this is declared (and
3944 // vice-versa). Note: As mentioned in the corresponding definition in
3945 // WorkflowStep, this struct is defined recursively, so we need
3946 // "x-kubernetes-preserve-unknown-fields: true" in the validation schema.
3947 inline?: #."io.argoproj.workflow.v1alpha1.Template"
3948
3949 // Name is the name of the target
3950 name!: string
3951
3952 // OnExit is a template reference which is invoked at the end of the template,
3953 // irrespective of the success, failure, or error of the primary template.
3954 // DEPRECATED: Use Hooks[exit].Template instead.
3955 onExit?: string
3956
3957 // Name of template to execute
3958 template?: string
3959
3960 // TemplateRef is the reference to the template resource to execute.
3961 templateRef?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
3962
3963 // When is an expression in which the task should conditionally execute
3964 when?: string
3965
3966 // WithItems expands a task into multiple parallel tasks from the items in the
3967 // list Note: The structure of WithItems is free-form, so we need
3968 // "x-kubernetes-preserve-unknown-fields: true" in the validation schema.
3969 withItems?: [...#."io.argoproj.workflow.v1alpha1.Item"]
3970
3971 // WithParam expands a task into multiple parallel tasks from the value in the
3972 // parameter, which is expected to be a JSON list.
3973 withParam?: string
3974
3975 // WithSequence expands a task into a numeric sequence
3976 withSequence?: #."io.argoproj.workflow.v1alpha1.Sequence"
3977 }
3978
3979 // DAGTemplate is a template subtype for directed acyclic graph templates
3980 #: "io.argoproj.workflow.v1alpha1.DAGTemplate": {
3981 // This flag is for DAG logic. The DAG logic has a built-in "fail fast" feature
3982 // to stop scheduling new steps, as soon as it detects that one of the DAG
3983 // nodes is failed. Then it waits until all DAG nodes are completed before
3984 // failing the DAG itself. The FailFast flag default is true, if set to false,
3985 // it will allow a DAG to run all branches of the DAG to completion (either
3986 // success or failure), regardless of the failed outcomes of branches in the
3987 // DAG. More info and example about this feature at
3988 // https://github.com/argoproj/argo-workflows/issues/1442
3989 failFast?: bool
3990
3991 // Target are one or more names of targets to execute in a DAG
3992 target?: string
3993
3994 // Tasks are a list of DAG tasks MaxItems is an artificial limit to limit CEL
3995 // validation costs - see note at top of file
3996 tasks!: [...#."io.argoproj.workflow.v1alpha1.DAGTask"]
3997 }
3998
3999 // Data is a data template
4000 #: "io.argoproj.workflow.v1alpha1.Data": {
4001 // Source sources external data into a data template
4002 source!: #."io.argoproj.workflow.v1alpha1.DataSource"
4003
4004 // Transformation applies a set of transformations
4005 transformation!: [...#."io.argoproj.workflow.v1alpha1.TransformationStep"]
4006 }
4007
4008 // DataSource sources external data into a data template
4009 #: "io.argoproj.workflow.v1alpha1.DataSource": {
4010 // ArtifactPaths is a data transformation that collects a list of artifact paths
4011 artifactPaths?: #."io.argoproj.workflow.v1alpha1.ArtifactPaths"
4012 }
4013
4014 #: "io.argoproj.workflow.v1alpha1.Event": {
4015 // Selector (https://github.com/expr-lang/expr) that we must must match the
4016 // io.argoproj.workflow.v1alpha1. E.g. `payload.message == "test"`
4017 selector!: string
4018 }
4019
4020 #: "io.argoproj.workflow.v1alpha1.EventResponse": {}
4021
4022 // ExecutorConfig holds configurations of an executor container.
4023 #: "io.argoproj.workflow.v1alpha1.ExecutorConfig": {
4024 // ServiceAccountName specifies the service account name of the executor container.
4025 serviceAccountName?: string
4026 }
4027
4028 // GCSArtifact is the location of a GCS artifact
4029 #: "io.argoproj.workflow.v1alpha1.GCSArtifact": {
4030 // Bucket is the name of the bucket
4031 bucket?: string
4032
4033 // Key is the path in the bucket where the artifact resides
4034 key!: string
4035
4036 // ServiceAccountKeySecret is the secret selector to the bucket's service account key
4037 serviceAccountKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4038 }
4039
4040 // GCSArtifactRepository defines the controller configuration for a GCS artifact repository
4041 #: "io.argoproj.workflow.v1alpha1.GCSArtifactRepository": {
4042 // Bucket is the name of the bucket
4043 bucket?: string
4044
4045 // KeyFormat defines the format of how to store keys and can reference workflow variables.
4046 keyFormat?: string
4047
4048 // ServiceAccountKeySecret is the secret selector to the bucket's service account key
4049 serviceAccountKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4050 }
4051
4052 // Gauge is a Gauge prometheus metric
4053 #: "io.argoproj.workflow.v1alpha1.Gauge": {
4054 // Operation defines the operation to apply with value and the metrics' current value
4055 operation?: string
4056
4057 // Realtime emits this metric in real time if applicable
4058 realtime!: bool
4059
4060 // Value is the value to be used in the operation with the metric's current
4061 // value. If no operation is set, value is the value of the metric MaxLength is
4062 // an artificial limit to limit CEL validation costs - see note at top of file
4063 value!: string
4064 }
4065
4066 #: "io.argoproj.workflow.v1alpha1.GetUserInfoResponse": {
4067 email?: string
4068 emailVerified?: bool
4069 groups?: [...string]
4070 issuer?: string
4071 name?: string
4072 serviceAccountName?: string
4073 serviceAccountNamespace?: string
4074 subject?: string
4075 }
4076
4077 // GitArtifact is the location of a git artifact
4078 #: "io.argoproj.workflow.v1alpha1.GitArtifact": {
4079 // Branch is the branch to fetch when `SingleBranch` is enabled
4080 branch?: string
4081
4082 // Depth specifies clones/fetches should be shallow and include the given number
4083 // of commits from the branch tip
4084 depth?: int
4085
4086 // DisableSubmodules disables submodules during git clone
4087 disableSubmodules?: bool
4088
4089 // Fetch specifies a number of refs that should be fetched before checkout
4090 fetch?: [...string]
4091
4092 // InsecureIgnoreHostKey disables SSH strict host key checking during git clone
4093 insecureIgnoreHostKey?: bool
4094
4095 // InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
4096 insecureSkipTLS?: bool
4097
4098 // PasswordSecret is the secret selector to the repository password
4099 passwordSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4100
4101 // Repo is the git repository
4102 repo!: string
4103
4104 // Revision is the git commit, tag, branch to checkout
4105 revision?: string
4106
4107 // SingleBranch enables single branch clone, using the `branch` parameter
4108 singleBranch?: bool
4109
4110 // SSHPrivateKeySecret is the secret selector to the repository ssh private key
4111 sshPrivateKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4112
4113 // UsernameSecret is the secret selector to the repository username
4114 usernameSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4115 }
4116
4117 // HDFSArtifact is the location of an HDFS artifact
4118 #: "io.argoproj.workflow.v1alpha1.HDFSArtifact": {
4119 // Addresses is accessible addresses of HDFS name nodes
4120 addresses?: [...string]
4121
4122 // DataTransferProtection is the protection level for HDFS data transfer. It
4123 // corresponds to the dfs.data.transfer.protection configuration in HDFS.
4124 dataTransferProtection?: string
4125
4126 // Force copies a file forcibly even if it exists
4127 force?: bool
4128
4129 // HDFSUser is the user to access HDFS file system. It is ignored if either
4130 // ccache or keytab is used.
4131 hdfsUser?: string
4132
4133 // KrbCCacheSecret is the secret selector for Kerberos ccache Either ccache or
4134 // keytab can be set to use Kerberos.
4135 krbCCacheSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4136
4137 // KrbConfig is the configmap selector for Kerberos config as string It must be
4138 // set if either ccache or keytab is used.
4139 krbConfigConfigMap?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
4140
4141 // KrbKeytabSecret is the secret selector for Kerberos keytab Either ccache or
4142 // keytab can be set to use Kerberos.
4143 krbKeytabSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4144
4145 // KrbRealm is the Kerberos realm used with Kerberos keytab It must be set if keytab is used.
4146 krbRealm?: string
4147
4148 // KrbServicePrincipalName is the principal name of Kerberos service It must be
4149 // set if either ccache or keytab is used.
4150 krbServicePrincipalName?: string
4151
4152 // KrbUsername is the Kerberos username used with Kerberos keytab It must be set if keytab is used.
4153 krbUsername?: string
4154
4155 // Path is a file path in HDFS
4156 path!: string
4157 }
4158
4159 // HDFSArtifactRepository defines the controller configuration for an HDFS artifact repository
4160 #: "io.argoproj.workflow.v1alpha1.HDFSArtifactRepository": {
4161 // Addresses is accessible addresses of HDFS name nodes
4162 addresses?: [...string]
4163
4164 // DataTransferProtection is the protection level for HDFS data transfer. It
4165 // corresponds to the dfs.data.transfer.protection configuration in HDFS.
4166 dataTransferProtection?: string
4167
4168 // Force copies a file forcibly even if it exists
4169 force?: bool
4170
4171 // HDFSUser is the user to access HDFS file system. It is ignored if either
4172 // ccache or keytab is used.
4173 hdfsUser?: string
4174
4175 // KrbCCacheSecret is the secret selector for Kerberos ccache Either ccache or
4176 // keytab can be set to use Kerberos.
4177 krbCCacheSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4178
4179 // KrbConfig is the configmap selector for Kerberos config as string It must be
4180 // set if either ccache or keytab is used.
4181 krbConfigConfigMap?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
4182
4183 // KrbKeytabSecret is the secret selector for Kerberos keytab Either ccache or
4184 // keytab can be set to use Kerberos.
4185 krbKeytabSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4186
4187 // KrbRealm is the Kerberos realm used with Kerberos keytab It must be set if keytab is used.
4188 krbRealm?: string
4189
4190 // KrbServicePrincipalName is the principal name of Kerberos service It must be
4191 // set if either ccache or keytab is used.
4192 krbServicePrincipalName?: string
4193
4194 // KrbUsername is the Kerberos username used with Kerberos keytab It must be set if keytab is used.
4195 krbUsername?: string
4196
4197 // PathFormat is defines the format of path to store a file. Can reference workflow variables
4198 pathFormat?: string
4199 }
4200
4201 #: "io.argoproj.workflow.v1alpha1.HTTP": {
4202 // Body is content of the HTTP Request
4203 body?: string
4204
4205 // BodyFrom is content of the HTTP Request as Bytes
4206 bodyFrom?: #."io.argoproj.workflow.v1alpha1.HTTPBodySource"
4207
4208 // Headers are an optional list of headers to send with HTTP requests
4209 headers?: [...#."io.argoproj.workflow.v1alpha1.HTTPHeader"]
4210
4211 // InsecureSkipVerify is a bool when if set to true will skip TLS verification for the HTTP client
4212 insecureSkipVerify?: bool
4213
4214 // Method is HTTP methods for HTTP Request
4215 method?: string
4216
4217 // SuccessCondition is an expression if evaluated to true is considered successful
4218 successCondition?: string
4219
4220 // TimeoutSeconds is request timeout for HTTP Request. Default is 30 seconds
4221 timeoutSeconds?: int
4222
4223 // URL of the HTTP Request
4224 url!: string
4225 }
4226
4227 // HTTPArtifact allows a file served on HTTP to be placed as an input artifact in a container
4228 #: "io.argoproj.workflow.v1alpha1.HTTPArtifact": {
4229 // Auth contains information for client authentication
4230 auth?: #."io.argoproj.workflow.v1alpha1.HTTPAuth"
4231
4232 // Headers are an optional list of headers to send with HTTP requests for artifacts
4233 headers?: [...#."io.argoproj.workflow.v1alpha1.Header"]
4234
4235 // URL of the artifact
4236 url!: string
4237 }
4238
4239 #: "io.argoproj.workflow.v1alpha1.HTTPAuth": {
4240 basicAuth?: #."io.argoproj.workflow.v1alpha1.BasicAuth"
4241 clientCert?: #."io.argoproj.workflow.v1alpha1.ClientCertAuth"
4242 oauth2?: #."io.argoproj.workflow.v1alpha1.OAuth2Auth"
4243 }
4244
4245 // HTTPBodySource contains the source of the HTTP body.
4246 #: "io.argoproj.workflow.v1alpha1.HTTPBodySource": bytes?: string
4247
4248 #: "io.argoproj.workflow.v1alpha1.HTTPHeader": {
4249 name!: string
4250 value?: string
4251 valueFrom?: #."io.argoproj.workflow.v1alpha1.HTTPHeaderSource"
4252 }
4253
4254 #: "io.argoproj.workflow.v1alpha1.HTTPHeaderSource": secretKeyRef?: #."io.k8s.api.core.v1.SecretKeySelector"
4255
4256 // Header indicate a key-value request header to be used when fetching artifacts over HTTP
4257 #: "io.argoproj.workflow.v1alpha1.Header": {
4258 // Name is the header name
4259 name!: string
4260
4261 // Value is the literal value to use for the header
4262 value!: string
4263 }
4264
4265 // Histogram is a Histogram prometheus metric
4266 #: "io.argoproj.workflow.v1alpha1.Histogram": {
4267 // Buckets is a list of bucket divisors for the histogram
4268 buckets!: [...#."io.argoproj.workflow.v1alpha1.Amount"]
4269
4270 // Value is the value of the metric
4271 value!: string
4272 }
4273
4274 #: "io.argoproj.workflow.v1alpha1.InfoResponse": {
4275 columns?: [...#."io.argoproj.workflow.v1alpha1.Column"]
4276 links?: [...#."io.argoproj.workflow.v1alpha1.Link"]
4277 managedNamespace?: string
4278
4279 // which modals to show
4280 modals?: [string]: bool
4281 navColor?: string
4282 }
4283
4284 // Inputs are the mechanism for passing parameters, artifacts, volumes from one template to another
4285 #: "io.argoproj.workflow.v1alpha1.Inputs": {
4286 // Artifact are a list of artifacts passed as inputs
4287 artifacts?: [...#."io.argoproj.workflow.v1alpha1.Artifact"]
4288
4289 // Parameters are a list of parameters passed as inputs MaxItems is an
4290 // artificial limit to limit CEL validation costs - see note at top of file
4291 parameters?: [...#."io.argoproj.workflow.v1alpha1.Parameter"]
4292 }
4293
4294 // Item expands a single workflow step into multiple parallel steps The value of
4295 // Item can be a map, string, bool, or number
4296 #: "io.argoproj.workflow.v1alpha1.Item": _
4297
4298 // LabelKeys is list of keys
4299 #: "io.argoproj.workflow.v1alpha1.LabelKeys": items?: [...string]
4300
4301 #: "io.argoproj.workflow.v1alpha1.LabelValueFrom": expression!: string
4302
4303 // Labels is list of workflow labels
4304 #: "io.argoproj.workflow.v1alpha1.LabelValues": items?: [...string]
4305
4306 #: "io.argoproj.workflow.v1alpha1.LifecycleHook": {
4307 // Arguments hold arguments to the template
4308 arguments?: #."io.argoproj.workflow.v1alpha1.Arguments"
4309
4310 // Expression is a condition expression for when a node will be retried. If it
4311 // evaluates to false, the node will not be retried and the retry strategy will
4312 // be ignored
4313 expression?: string
4314
4315 // Template is the name of the template to execute by the hook
4316 template?: string
4317
4318 // TemplateRef is the reference to the template resource to execute by the hook
4319 templateRef?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
4320 }
4321
4322 // A link to another app.
4323 #: "io.argoproj.workflow.v1alpha1.Link": {
4324 // The name of the link, E.g. "Workflow Logs" or "Pod Logs"
4325 name!: string
4326
4327 // "workflow", "pod", "pod-logs", "event-source-logs", "sensor-logs", "workflow-list" or "chat"
4328 scope!: string
4329
4330 // Target attribute specifies where a linked document will be opened when a user
4331 // clicks on a link. E.g. "_blank", "_self". If the target is _blank, it will
4332 // open in a new tab.
4333 target!: string
4334
4335 // The URL. Can contain "${metadata.namespace}", "${metadata.name}",
4336 // "${status.startedAt}", "${status.finishedAt}" or any other element in
4337 // workflow yaml, e.g.
4338 // "${io.argoproj.workflow.v1alpha1.metadata.annotations.userDefinedKey}"
4339 url!: string
4340 }
4341
4342 #: "io.argoproj.workflow.v1alpha1.LintCronWorkflowRequest": {
4343 cronWorkflow?: #."io.argoproj.workflow.v1alpha1.CronWorkflow"
4344 namespace?: string
4345 }
4346
4347 #: "io.argoproj.workflow.v1alpha1.LogEntry": {
4348 content?: string
4349 podName?: string
4350 }
4351
4352 #: "io.argoproj.workflow.v1alpha1.ManifestFrom": {
4353 // Artifact contains the artifact to use
4354 artifact!: #."io.argoproj.workflow.v1alpha1.Artifact"
4355 }
4356
4357 // MemoizationStatus is the status of this memoized node
4358 #: "io.argoproj.workflow.v1alpha1.MemoizationStatus": {
4359 // Cache is the name of the cache that was used
4360 cacheName!: string
4361
4362 // Hit indicates whether this node was created from a cache entry
4363 hit!: bool
4364
4365 // Key is the name of the key used for this node's cache
4366 key!: string
4367 }
4368
4369 // Memoization enables caching for the Outputs of the template
4370 #: "io.argoproj.workflow.v1alpha1.Memoize": {
4371 // Cache sets and configures the kind of cache
4372 cache!: #."io.argoproj.workflow.v1alpha1.Cache"
4373
4374 // Key is the key to use as the caching key
4375 key!: string
4376
4377 // MaxAge is the maximum age (e.g. "180s", "24h") of an entry that is still
4378 // considered valid. If an entry is older than the MaxAge, it will be ignored.
4379 maxAge!: string
4380 }
4381
4382 // Pod metadata
4383 #: "io.argoproj.workflow.v1alpha1.Metadata": {
4384 annotations?: [string]: string
4385 labels?: [string]: string
4386 }
4387
4388 // MetricLabel is a single label for a prometheus metric
4389 #: "io.argoproj.workflow.v1alpha1.MetricLabel": {
4390 key!: string
4391 value!: string
4392 }
4393
4394 // Metrics are a list of metrics emitted from a Workflow/Template
4395 #: "io.argoproj.workflow.v1alpha1.Metrics": {
4396 // Prometheus is a list of prometheus metrics to be emitted MaxItems is an
4397 // artificial limit to limit CEL validation costs - see note at top of file
4398 prometheus!: [...#."io.argoproj.workflow.v1alpha1.Prometheus"]
4399 }
4400
4401 // Mutex holds Mutex configuration
4402 #: "io.argoproj.workflow.v1alpha1.Mutex": {
4403 // Database specifies this is database controlled if this is set true
4404 database?: bool
4405
4406 // name of the mutex
4407 name?: string
4408
4409 // Namespace is the namespace of the mutex, default: [namespace of workflow]
4410 namespace?: string
4411 }
4412
4413 // MutexHolding describes the mutex and the object which is holding it.
4414 #: "io.argoproj.workflow.v1alpha1.MutexHolding": {
4415 // Holder is a reference to the object which holds the Mutex. Holding Scenario:
4416 // 1. Current workflow's NodeID which is holding the lock.
4417 // e.g: ${NodeID}
4418 // Waiting Scenario:
4419 // 1. Current workflow or other workflow NodeID which is holding the lock.
4420 // e.g: ${WorkflowName}/${NodeID}
4421 holder?: string
4422
4423 // Reference for the mutex e.g: ${namespace}/mutex/${mutexName}
4424 mutex?: string
4425 }
4426
4427 // MutexStatus contains which objects hold mutex locks, and which objects this
4428 // workflow is waiting on to release locks.
4429 #: "io.argoproj.workflow.v1alpha1.MutexStatus": {
4430 // Holding is a list of mutexes and their respective objects that are held by
4431 // mutex lock for this io.argoproj.workflow.v1alpha1.
4432 holding?: [...#."io.argoproj.workflow.v1alpha1.MutexHolding"]
4433
4434 // Waiting is a list of mutexes and their respective objects this workflow is waiting for.
4435 waiting?: [...#."io.argoproj.workflow.v1alpha1.MutexHolding"]
4436 }
4437
4438 #: "io.argoproj.workflow.v1alpha1.NodeFlag": {
4439 // Hooked tracks whether or not this node was triggered by hook or onExit
4440 hooked?: bool
4441
4442 // Retried tracks whether or not this node was retried by retryStrategy
4443 retried?: bool
4444 }
4445
4446 // NodeStatus contains status information about an individual node in the workflow
4447 #: "io.argoproj.workflow.v1alpha1.NodeStatus": {
4448 // BoundaryID indicates the node ID of the associated template root node in
4449 // which this node belongs to
4450 boundaryID?: string
4451
4452 // Children is a list of child node IDs
4453 children?: [...string]
4454
4455 // Daemoned tracks whether or not this node was daemoned and need to be terminated
4456 daemoned?: bool
4457
4458 // DisplayName is a human readable representation of the node. Unique within a template boundary
4459 displayName?: string
4460
4461 // EstimatedDuration in seconds.
4462 estimatedDuration?: int
4463
4464 // FailedPodRestarts tracks the number of times the pod for this node was
4465 // restarted due to infrastructure failures before the main container started.
4466 failedPodRestarts?: int
4467
4468 // Time at which this node completed
4469 finishedAt?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
4470
4471 // HostNodeName name of the Kubernetes node on which the Pod is running, if applicable
4472 hostNodeName?: string
4473
4474 // ID is a unique identifier of a node within the worklow It is implemented as a
4475 // hash of the node name, which makes the ID deterministic
4476 id!: string
4477
4478 // Inputs captures input parameter values and artifact locations supplied to
4479 // this template invocation
4480 inputs?: #."io.argoproj.workflow.v1alpha1.Inputs"
4481
4482 // MemoizationStatus holds information about cached nodes
4483 memoizationStatus?: #."io.argoproj.workflow.v1alpha1.MemoizationStatus"
4484
4485 // A human readable message indicating details about why the node is in this condition.
4486 message?: string
4487
4488 // Name is unique name in the node tree used to generate the node ID
4489 name!: string
4490
4491 // NodeFlag tracks some history of node. e.g.) hooked, retried, etc.
4492 nodeFlag?: #."io.argoproj.workflow.v1alpha1.NodeFlag"
4493
4494 // OutboundNodes tracks the node IDs which are considered "outbound" nodes to a
4495 // template invocation. For every invocation of a template, there are nodes
4496 // which we considered as "outbound". Essentially, these are last nodes in the
4497 // execution sequence to run, before the template is considered completed.
4498 // These nodes are then connected as parents to a following step.
4499 //
4500 // In the case of single pod steps (i.e. container, script, resource templates),
4501 // this list will be nil since the pod itself is already considered the
4502 // "outbound" node. In the case of DAGs, outbound nodes are the "target" tasks
4503 // (tasks with no children). In the case of steps, outbound nodes are all the
4504 // containers involved in the last step group. NOTE: since templates are
4505 // composable, the list of outbound nodes are carried upwards when a DAG/steps
4506 // template invokes another DAG/steps template. In other words, the outbound
4507 // nodes of a template, will be a superset of the outbound nodes of its last
4508 // children.
4509 outboundNodes?: [...string]
4510
4511 // Outputs captures output parameter values and artifact locations produced by
4512 // this template invocation
4513 outputs?: #."io.argoproj.workflow.v1alpha1.Outputs"
4514
4515 // Phase a simple, high-level summary of where the node is in its lifecycle. Can
4516 // be used as a state machine. Will be one of these values "Pending", "Running"
4517 // before the node is completed, or "Succeeded", "Skipped", "Failed", "Error",
4518 // or "Omitted" as a final state.
4519 phase?: string
4520
4521 // PodIP captures the IP of the pod for daemoned steps
4522 podIP?: string
4523
4524 // Progress to completion
4525 progress?: string
4526
4527 // ResourcesDuration is indicative, but not accurate, resource duration. This is
4528 // populated when the nodes completes.
4529 resourcesDuration?: [string]: int
4530
4531 // RestartingPodUID tracks the UID of the pod that is currently being restarted.
4532 // This prevents duplicate restart attempts when the controller processes the
4533 // same failed pod multiple times. Cleared when the replacement pod starts
4534 // running.
4535 restartingPodUID?: string
4536
4537 // Time at which this node started
4538 startedAt?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
4539
4540 // SynchronizationStatus is the synchronization status of the node
4541 synchronizationStatus?: #."io.argoproj.workflow.v1alpha1.NodeSynchronizationStatus"
4542
4543 // TaskResultSynced is used to determine if the node's output has been received
4544 taskResultSynced?: bool
4545
4546 // TemplateName is the template name which this node corresponds to. Not
4547 // applicable to virtual nodes (e.g. Retry, StepGroup)
4548 templateName?: string
4549
4550 // TemplateRef is the reference to the template resource which this node
4551 // corresponds to. Not applicable to virtual nodes (e.g. Retry, StepGroup)
4552 templateRef?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
4553
4554 // TemplateScope is the template scope in which the template of this node was retrieved.
4555 templateScope?: string
4556
4557 // Type indicates type of node
4558 type!: string
4559 }
4560
4561 // NodeSynchronizationStatus stores the status of a node
4562 #: "io.argoproj.workflow.v1alpha1.NodeSynchronizationStatus": {
4563 // Waiting is the name of the lock that this node is waiting for
4564 waiting?: string
4565 }
4566
4567 // NoneStrategy indicates to skip tar process and upload the files or directory
4568 // tree as independent files. Note that if the artifact is a directory, the
4569 // artifact driver must support the ability to save/load the directory
4570 // appropriately.
4571 #: "io.argoproj.workflow.v1alpha1.NoneStrategy": {}
4572
4573 // OAuth2Auth holds all information for client authentication via OAuth2 tokens
4574 #: "io.argoproj.workflow.v1alpha1.OAuth2Auth": {
4575 clientIDSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4576 clientSecretSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4577 endpointParams?: [...#."io.argoproj.workflow.v1alpha1.OAuth2EndpointParam"]
4578 scopes?: [...string]
4579 tokenURLSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4580 }
4581
4582 // EndpointParam is for requesting optional fields that should be sent in the oauth request
4583 #: "io.argoproj.workflow.v1alpha1.OAuth2EndpointParam": {
4584 // Name is the header name
4585 key!: string
4586
4587 // Value is the literal value to use for the header
4588 value?: string
4589 }
4590
4591 // OSSArtifact is the location of an Alibaba Cloud OSS artifact
4592 #: "io.argoproj.workflow.v1alpha1.OSSArtifact": {
4593 // AccessKeySecret is the secret selector to the bucket's access key
4594 accessKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4595
4596 // Bucket is the name of the bucket
4597 bucket?: string
4598
4599 // CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket
4600 // for output artifacts, if it doesn't exist
4601 createBucketIfNotPresent?: bool
4602
4603 // Endpoint is the hostname of the bucket endpoint
4604 endpoint?: string
4605
4606 // Key is the path in the bucket where the artifact resides
4607 key!: string
4608
4609 // LifecycleRule specifies how to manage bucket's lifecycle
4610 lifecycleRule?: #."io.argoproj.workflow.v1alpha1.OSSLifecycleRule"
4611
4612 // SecretKeySecret is the secret selector to the bucket's secret key
4613 secretKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4614
4615 // SecurityToken is the user's temporary security token. For more details, check
4616 // out: https://www.alibabacloud.com/help/doc-detail/100624.htm
4617 securityToken?: string
4618
4619 // UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
4620 useSDKCreds?: bool
4621 }
4622
4623 // OSSArtifactRepository defines the controller configuration for an OSS artifact repository
4624 #: "io.argoproj.workflow.v1alpha1.OSSArtifactRepository": {
4625 // AccessKeySecret is the secret selector to the bucket's access key
4626 accessKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4627
4628 // Bucket is the name of the bucket
4629 bucket?: string
4630
4631 // CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket
4632 // for output artifacts, if it doesn't exist
4633 createBucketIfNotPresent?: bool
4634
4635 // Endpoint is the hostname of the bucket endpoint
4636 endpoint?: string
4637
4638 // KeyFormat defines the format of how to store keys and can reference workflow variables.
4639 keyFormat?: string
4640
4641 // LifecycleRule specifies how to manage bucket's lifecycle
4642 lifecycleRule?: #."io.argoproj.workflow.v1alpha1.OSSLifecycleRule"
4643
4644 // SecretKeySecret is the secret selector to the bucket's secret key
4645 secretKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4646
4647 // SecurityToken is the user's temporary security token. For more details, check
4648 // out: https://www.alibabacloud.com/help/doc-detail/100624.htm
4649 securityToken?: string
4650
4651 // UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
4652 useSDKCreds?: bool
4653 }
4654
4655 // OSSLifecycleRule specifies how to manage bucket's lifecycle
4656 #: "io.argoproj.workflow.v1alpha1.OSSLifecycleRule": {
4657 // MarkDeletionAfterDays is the number of days before we delete objects in the bucket
4658 markDeletionAfterDays?: int
4659
4660 // MarkInfrequentAccessAfterDays is the number of days before we convert the
4661 // objects in the bucket to Infrequent Access (IA) storage type
4662 markInfrequentAccessAfterDays?: int
4663 }
4664
4665 // Outputs hold parameters, artifacts, and results from a step
4666 #: "io.argoproj.workflow.v1alpha1.Outputs": {
4667 // Artifacts holds the list of output artifacts produced by a step
4668 artifacts?: [...#."io.argoproj.workflow.v1alpha1.Artifact"]
4669
4670 // ExitCode holds the exit code of a script template
4671 exitCode?: string
4672
4673 // Parameters holds the list of output parameters produced by a step
4674 parameters?: [...#."io.argoproj.workflow.v1alpha1.Parameter"]
4675
4676 // Result holds the result (stdout) of a script or container template, or the
4677 // response body of an HTTP template
4678 result?: string
4679 }
4680
4681 #: "io.argoproj.workflow.v1alpha1.ParallelSteps": [...#."io.argoproj.workflow.v1alpha1.WorkflowStep"]
4682
4683 // Parameter indicate a passed string parameter to a service template with an optional default value
4684 #: "io.argoproj.workflow.v1alpha1.Parameter": {
4685 // Default is the default value to use for an input parameter if a value was not supplied
4686 default?: string
4687
4688 // Description is the parameter description
4689 description?: string
4690
4691 // Enum holds a list of string values to choose from, for the actual value of the parameter
4692 enum?: [...string]
4693
4694 // GlobalName exports an output parameter to the global scope, making it
4695 // available as io.argoproj.workflow.v1alpha1.outputs.parameters.XXXX and in
4696 // workflow.status.outputs.parameters
4697 globalName?: string
4698
4699 // Name is the parameter name
4700 name!: string
4701
4702 // Value is the literal value to use for the parameter. If specified in the
4703 // context of an input parameter, any passed values take precedence over the
4704 // specified value
4705 value?: string
4706
4707 // ValueFrom is the source for the output parameter's value
4708 valueFrom?: #."io.argoproj.workflow.v1alpha1.ValueFrom"
4709 }
4710
4711 // Plugin is an Object with exactly one key
4712 #: "io.argoproj.workflow.v1alpha1.Plugin": {}
4713
4714 // PluginArtifact is the location of a plugin artifact
4715 #: "io.argoproj.workflow.v1alpha1.PluginArtifact": {
4716 // Configuration is the plugin defined configuration for the artifact driver plugin
4717 configuration?: string
4718
4719 // ConnectionTimeoutSeconds is the timeout for the artifact driver connection,
4720 // overriding the driver's timeout
4721 connectionTimeoutSeconds?: int
4722
4723 // Key is the path in the artifact repository where the artifact resides
4724 key!: string
4725
4726 // Name is the name of the artifact driver plugin
4727 name?: string
4728 }
4729
4730 // PluginArtifactRepository defines the controller configuration for a plugin artifact repository
4731 #: "io.argoproj.workflow.v1alpha1.PluginArtifactRepository": {
4732 configuration!: string
4733 keyFormat?: string
4734 name!: string
4735 }
4736
4737 // PodGC describes how to delete completed pods as they complete
4738 #: "io.argoproj.workflow.v1alpha1.PodGC": {
4739 // DeleteDelayDuration specifies the duration before pods in the GC queue get deleted.
4740 deleteDelayDuration?: string
4741
4742 // LabelSelector is the label selector to check if the pods match the labels
4743 // before being added to the pod GC queue.
4744 labelSelector?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
4745
4746 // Strategy is the strategy to use. One of "OnPodCompletion", "OnPodSuccess",
4747 // "OnWorkflowCompletion", "OnWorkflowSuccess". If unset, does not delete Pods
4748 strategy?: string
4749 }
4750
4751 // Prometheus is a prometheus metric to be emitted
4752 #: "io.argoproj.workflow.v1alpha1.Prometheus": {
4753 // Counter is a counter metric
4754 counter?: #."io.argoproj.workflow.v1alpha1.Counter"
4755
4756 // Gauge is a gauge metric
4757 gauge?: #."io.argoproj.workflow.v1alpha1.Gauge"
4758
4759 // Help is a string that describes the metric
4760 help!: string
4761
4762 // Histogram is a histogram metric
4763 histogram?: #."io.argoproj.workflow.v1alpha1.Histogram"
4764
4765 // Labels is a list of metric labels
4766 labels?: [...#."io.argoproj.workflow.v1alpha1.MetricLabel"]
4767
4768 // Name is the name of the metric
4769 name!: string
4770
4771 // When is a conditional statement that decides when to emit the metric
4772 when?: string
4773 }
4774
4775 // RawArtifact allows raw string content to be placed as an artifact in a container
4776 #: "io.argoproj.workflow.v1alpha1.RawArtifact": {
4777 // Data is the string contents of the artifact
4778 data!: string
4779 }
4780
4781 // ResourceTemplate is a template subtype to manipulate kubernetes resources
4782 #: "io.argoproj.workflow.v1alpha1.ResourceTemplate": {
4783 // Action is the action to perform to the resource. Must be one of: get, create,
4784 // apply, delete, replace, patch
4785 action!: string
4786
4787 // FailureCondition is a label selector expression which describes the
4788 // conditions of the k8s resource in which the step was considered failed
4789 failureCondition?: string
4790
4791 // Flags is a set of additional options passed to kubectl before submitting a
4792 // resource I.e. to disable resource validation: flags: [
4793 // "--validate=false" # disable resource validation
4794 // ]
4795 flags?: [...string]
4796
4797 // Manifest contains the kubernetes manifest
4798 manifest?: string
4799
4800 // ManifestFrom is the source for a single kubernetes manifest
4801 manifestFrom?: #."io.argoproj.workflow.v1alpha1.ManifestFrom"
4802
4803 // MergeStrategy is the strategy used to merge a patch. It defaults to
4804 // "strategic" Must be one of: strategic, merge, json
4805 mergeStrategy?: string
4806
4807 // SetOwnerReference sets the reference to the workflow on the OwnerReference of generated resource.
4808 setOwnerReference?: bool
4809
4810 // SuccessCondition is a label selector expression which describes the
4811 // conditions of the k8s resource in which it is acceptable to proceed to the
4812 // following step
4813 successCondition?: string
4814 }
4815
4816 #: "io.argoproj.workflow.v1alpha1.ResubmitArchivedWorkflowRequest": {
4817 memoized?: bool
4818 name?: string
4819 namespace?: string
4820 parameters?: [...string]
4821 uid?: string
4822 }
4823
4824 // RetryAffinity prevents running steps on the same host.
4825 #: "io.argoproj.workflow.v1alpha1.RetryAffinity": nodeAntiAffinity?: #."io.argoproj.workflow.v1alpha1.RetryNodeAntiAffinity"
4826
4827 #: "io.argoproj.workflow.v1alpha1.RetryArchivedWorkflowRequest": {
4828 name?: string
4829 namespace?: string
4830 nodeFieldSelector?: string
4831 parameters?: [...string]
4832 restartSuccessful?: bool
4833 uid?: string
4834 }
4835
4836 // RetryNodeAntiAffinity is a placeholder for future expansion, only empty
4837 // nodeAntiAffinity is allowed. In order to prevent running steps on the same
4838 // host, it uses "kubernetes.io/hostname".
4839 #: "io.argoproj.workflow.v1alpha1.RetryNodeAntiAffinity": {}
4840
4841 // RetryStrategy provides controls on how to retry a workflow step
4842 #: "io.argoproj.workflow.v1alpha1.RetryStrategy": {
4843 // Affinity prevents running workflow's step on the same host
4844 affinity?: #."io.argoproj.workflow.v1alpha1.RetryAffinity"
4845
4846 // Backoff is a backoff strategy
4847 backoff?: #."io.argoproj.workflow.v1alpha1.Backoff"
4848
4849 // Expression is a condition expression for when a node will be retried. If it
4850 // evaluates to false, the node will not be retried and the retry strategy will
4851 // be ignored
4852 expression?: string
4853
4854 // Limit is the maximum number of retry attempts when retrying a container. It
4855 // does not include the original container; the maximum number of total
4856 // attempts will be `limit + 1`.
4857 limit?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
4858
4859 // RetryPolicy is a policy of NodePhase statuses that will be retried
4860 retryPolicy?: string
4861 }
4862
4863 // S3Artifact is the location of an S3 artifact
4864 #: "io.argoproj.workflow.v1alpha1.S3Artifact": {
4865 // AccessKeySecret is the secret selector to the bucket's access key
4866 accessKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4867
4868 // Bucket is the name of the bucket
4869 bucket?: string
4870
4871 // CASecret specifies the secret that contains the CA, used to verify the TLS connection
4872 caSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4873
4874 // CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket
4875 // for output artifacts, if it doesn't exist. Setting Enabled Encryption will
4876 // apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it
4877 // is.
4878 createBucketIfNotPresent?: #."io.argoproj.workflow.v1alpha1.CreateS3BucketOptions"
4879 encryptionOptions?: #."io.argoproj.workflow.v1alpha1.S3EncryptionOptions"
4880
4881 // Endpoint is the hostname of the bucket endpoint
4882 endpoint?: string
4883
4884 // Insecure will connect to the service with TLS
4885 insecure?: bool
4886
4887 // Key is the key in the bucket where the artifact resides
4888 key?: string
4889
4890 // Region contains the optional bucket region
4891 region?: string
4892
4893 // RoleARN is the Amazon Resource Name (ARN) of the role to assume.
4894 roleARN?: string
4895
4896 // SecretKeySecret is the secret selector to the bucket's secret key
4897 secretKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4898
4899 // SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
4900 sessionTokenSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4901
4902 // UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
4903 useSDKCreds?: bool
4904 }
4905
4906 // S3ArtifactRepository defines the controller configuration for an S3 artifact repository
4907 #: "io.argoproj.workflow.v1alpha1.S3ArtifactRepository": {
4908 // AccessKeySecret is the secret selector to the bucket's access key
4909 accessKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4910
4911 // Bucket is the name of the bucket
4912 bucket?: string
4913
4914 // CASecret specifies the secret that contains the CA, used to verify the TLS connection
4915 caSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4916
4917 // CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket
4918 // for output artifacts, if it doesn't exist. Setting Enabled Encryption will
4919 // apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it
4920 // is.
4921 createBucketIfNotPresent?: #."io.argoproj.workflow.v1alpha1.CreateS3BucketOptions"
4922 encryptionOptions?: #."io.argoproj.workflow.v1alpha1.S3EncryptionOptions"
4923
4924 // Endpoint is the hostname of the bucket endpoint
4925 endpoint?: string
4926
4927 // Insecure will connect to the service with TLS
4928 insecure?: bool
4929
4930 // KeyFormat defines the format of how to store keys and can reference workflow variables.
4931 keyFormat?: string
4932
4933 // KeyPrefix is prefix used as part of the bucket key in which the controller
4934 // will store artifacts. DEPRECATED. Use KeyFormat instead
4935 keyPrefix?: string
4936
4937 // Region contains the optional bucket region
4938 region?: string
4939
4940 // RoleARN is the Amazon Resource Name (ARN) of the role to assume.
4941 roleARN?: string
4942
4943 // SecretKeySecret is the secret selector to the bucket's secret key
4944 secretKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4945
4946 // SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
4947 sessionTokenSecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4948
4949 // UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
4950 useSDKCreds?: bool
4951 }
4952
4953 // S3EncryptionOptions used to determine encryption options during s3 operations
4954 #: "io.argoproj.workflow.v1alpha1.S3EncryptionOptions": {
4955 // EnableEncryption tells the driver to encrypt objects if set to true. If
4956 // kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
4957 enableEncryption?: bool
4958
4959 // KmsEncryptionContext is a json blob that contains an encryption context. See
4960 // https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
4961 // for more information
4962 kmsEncryptionContext?: string
4963
4964 // KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
4965 kmsKeyId?: string
4966
4967 // ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts
4968 // using SSE-C with the specified secret.
4969 serverSideCustomerKeySecret?: #."io.k8s.api.core.v1.SecretKeySelector"
4970 }
4971
4972 // ScriptTemplate is a template subtype to enable scripting through code steps
4973 #: "io.argoproj.workflow.v1alpha1.ScriptTemplate": {
4974 // Arguments to the entrypoint. The container image's CMD is used if this is not
4975 // provided. Variable references $(VAR_NAME) are expanded using the container's
4976 // environment. If a variable cannot be resolved, the reference in the input
4977 // string will be unchanged. Double $$ are reduced to a single $, which allows
4978 // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
4979 // string literal "$(VAR_NAME)". Escaped references will never be expanded,
4980 // regardless of whether the variable exists or not. Cannot be updated. More
4981 // info:
4982 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
4983 args?: [...string]
4984
4985 // Entrypoint array. Not executed within a shell. The container image's
4986 // ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME)
4987 // are expanded using the container's environment. If a variable cannot be
4988 // resolved, the reference in the input string will be unchanged. Double $$ are
4989 // reduced to a single $, which allows for escaping the $(VAR_NAME) syntax:
4990 // i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped
4991 // references will never be expanded, regardless of whether the variable exists
4992 // or not. Cannot be updated. More info:
4993 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
4994 command?: [...string]
4995
4996 // List of environment variables to set in the container. Cannot be updated.
4997 env?: [...#."io.k8s.api.core.v1.EnvVar"]
4998
4999 // List of sources to populate environment variables in the container. The keys
5000 // defined within a source must be a C_IDENTIFIER. All invalid keys will be
5001 // reported as an event when the container is starting. When a key exists in
5002 // multiple sources, the value associated with the last source will take
5003 // precedence. Values defined by an Env with a duplicate key will take
5004 // precedence. Cannot be updated.
5005 envFrom?: [...#."io.k8s.api.core.v1.EnvFromSource"]
5006
5007 // Container image name. More info:
5008 // https://kubernetes.io/docs/concepts/containers/images This field is optional
5009 // to allow higher level config management to default or override container
5010 // images in workload controllers like Deployments and StatefulSets.
5011 image!: string
5012
5013 // Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if
5014 // :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More
5015 // info: https://kubernetes.io/docs/concepts/containers/images#updating-images
5016 imagePullPolicy?: string
5017
5018 // Actions that the management system should take in response to container
5019 // lifecycle events. Cannot be updated.
5020 lifecycle?: #."io.k8s.api.core.v1.Lifecycle"
5021
5022 // Periodic probe of container liveness. Container will be restarted if the
5023 // probe fails. Cannot be updated. More info:
5024 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5025 livenessProbe?: #."io.k8s.api.core.v1.Probe"
5026
5027 // Name of the container specified as a DNS_LABEL. Each container in a pod must
5028 // have a unique name (DNS_LABEL). Cannot be updated.
5029 name?: string
5030
5031 // List of ports to expose from the container. Not specifying a port here DOES
5032 // NOT prevent that port from being exposed. Any port which is listening on the
5033 // default "0.0.0.0" address inside a container will be accessible from the
5034 // network. Modifying this array with strategic merge patch may corrupt the
5035 // data. For more information See
5036 // https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.
5037 ports?: [...#."io.k8s.api.core.v1.ContainerPort"]
5038
5039 // Periodic probe of container service readiness. Container will be removed from
5040 // service endpoints if the probe fails. Cannot be updated. More info:
5041 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5042 readinessProbe?: #."io.k8s.api.core.v1.Probe"
5043
5044 // Resources resize policy for the container.
5045 resizePolicy?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
5046
5047 // Compute Resources required by this container. Cannot be updated. More info:
5048 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
5049 resources?: #."io.k8s.api.core.v1.ResourceRequirements"
5050
5051 // RestartPolicy defines the restart behavior of individual containers in a pod.
5052 // This field may only be set for init containers, and the only allowed value
5053 // is "Always". For non-init containers or when this field is not specified,
5054 // the restart behavior is defined by the Pod's restart policy and the
5055 // container type. Setting the RestartPolicy as "Always" for the init container
5056 // will have the following effect: this init container will be continually
5057 // restarted on exit until all regular containers have terminated. Once all
5058 // regular containers have completed, all init containers with restartPolicy
5059 // "Always" will be shut down. This lifecycle differs from normal init
5060 // containers and is often referred to as a "sidecar" container. Although this
5061 // init container still starts in the init container sequence, it does not wait
5062 // for the container to complete before proceeding to the next init container.
5063 // Instead, the next init container starts immediately after this init
5064 // container is started, or after any startupProbe has successfully completed.
5065 restartPolicy?: string
5066
5067 // SecurityContext defines the security options the container should be run
5068 // with. If set, the fields of SecurityContext override the equivalent fields
5069 // of PodSecurityContext. More info:
5070 // https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
5071 securityContext?: #."io.k8s.api.core.v1.SecurityContext"
5072
5073 // Source contains the source code of the script to execute
5074 source!: string
5075
5076 // StartupProbe indicates that the Pod has successfully initialized. If
5077 // specified, no other probes are executed until this completes successfully.
5078 // If this probe fails, the Pod will be restarted, just as if the livenessProbe
5079 // failed. This can be used to provide different probe parameters at the
5080 // beginning of a Pod's lifecycle, when it might take a long time to load data
5081 // or warm a cache, than during steady-state operation. This cannot be updated.
5082 // More info:
5083 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5084 startupProbe?: #."io.k8s.api.core.v1.Probe"
5085
5086 // Whether this container should allocate a buffer for stdin in the container
5087 // runtime. If this is not set, reads from stdin in the container will always
5088 // result in EOF. Default is false.
5089 stdin?: bool
5090
5091 // Whether the container runtime should close the stdin channel after it has
5092 // been opened by a single attach. When stdin is true the stdin stream will
5093 // remain open across multiple attach sessions. If stdinOnce is set to true,
5094 // stdin is opened on container start, is empty until the first client attaches
5095 // to stdin, and then remains open and accepts data until the client
5096 // disconnects, at which time stdin is closed and remains closed until the
5097 // container is restarted. If this flag is false, a container processes that
5098 // reads from stdin will never receive an EOF. Default is false
5099 stdinOnce?: bool
5100
5101 // Optional: Path at which the file to which the container's termination message
5102 // will be written is mounted into the container's filesystem. Message written
5103 // is intended to be brief final status, such as an assertion failure message.
5104 // Will be truncated by the node if greater than 4096 bytes. The total message
5105 // length across all containers will be limited to 12kb. Defaults to
5106 // /dev/termination-log. Cannot be updated.
5107 terminationMessagePath?: string
5108
5109 // Indicate how the termination message should be populated. File will use the
5110 // contents of terminationMessagePath to populate the container status message
5111 // on both success and failure. FallbackToLogsOnError will use the last chunk
5112 // of container log output if the termination message file is empty and the
5113 // container exited with an error. The log output is limited to 2048 bytes or
5114 // 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
5115 terminationMessagePolicy?: string
5116
5117 // Whether this container should allocate a TTY for itself, also requires
5118 // 'stdin' to be true. Default is false.
5119 tty?: bool
5120
5121 // volumeDevices is the list of block devices to be used by the container.
5122 volumeDevices?: [...#."io.k8s.api.core.v1.VolumeDevice"]
5123
5124 // Pod volumes to mount into the container's filesystem. Cannot be updated.
5125 volumeMounts?: [...#."io.k8s.api.core.v1.VolumeMount"]
5126
5127 // Container's working directory. If not specified, the container runtime's
5128 // default will be used, which might be configured in the container image.
5129 // Cannot be updated.
5130 workingDir?: string
5131 }
5132
5133 #: "io.argoproj.workflow.v1alpha1.SemaphoreHolding": {
5134 // Holders stores the list of current holder names in the io.argoproj.workflow.v1alpha1.
5135 holders?: [...string]
5136
5137 // Semaphore stores the semaphore name.
5138 semaphore?: string
5139 }
5140
5141 // SemaphoreRef is a reference of Semaphore
5142 #: "io.argoproj.workflow.v1alpha1.SemaphoreRef": {
5143 // ConfigMapKeyRef is a configmap selector for Semaphore configuration
5144 configMapKeyRef?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
5145
5146 // SyncDatabaseRef is a database reference for Semaphore configuration
5147 database?: #."io.argoproj.workflow.v1alpha1.SyncDatabaseRef"
5148
5149 // Namespace is the namespace of the configmap, default: [namespace of workflow]
5150 namespace?: string
5151 }
5152
5153 #: "io.argoproj.workflow.v1alpha1.SemaphoreStatus": {
5154 // Holding stores the list of resource acquired synchronization lock for workflows.
5155 holding?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreHolding"]
5156
5157 // Waiting indicates the list of current synchronization lock holders.
5158 waiting?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreHolding"]
5159 }
5160
5161 // Sequence expands a workflow step into numeric range
5162 #: "io.argoproj.workflow.v1alpha1.Sequence": {
5163 // Count is number of elements in the sequence (default: 0). Not to be used with end
5164 count?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
5165
5166 // Number at which to end the sequence (default: 0). Not to be used with Count
5167 end?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
5168
5169 // Format is a printf format string to format the value in the sequence
5170 format?: string
5171
5172 // Number at which to start the sequence (default: 0)
5173 start?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
5174 }
5175
5176 // StopStrategy defines if the CronWorkflow should stop scheduling based on an
5177 // expression. v3.6 and after
5178 #: "io.argoproj.workflow.v1alpha1.StopStrategy": {
5179 // v3.6 and after: Expression is an expression that stops scheduling workflows
5180 // when true. Use the variables `cronworkflow`.`failed` or
5181 // `cronworkflow`.`succeeded` to access the number of failed or successful
5182 // child workflows.
5183 expression!: string
5184 }
5185
5186 #: "io.argoproj.workflow.v1alpha1.Submit": {
5187 // Arguments extracted from the event and then set as arguments to the workflow created.
5188 arguments?: #."io.argoproj.workflow.v1alpha1.Arguments"
5189
5190 // Metadata optional means to customize select fields of the workflow metadata
5191 metadata?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
5192
5193 // WorkflowTemplateRef the workflow template to submit
5194 workflowTemplateRef!: #."io.argoproj.workflow.v1alpha1.WorkflowTemplateRef"
5195 }
5196
5197 // SubmitOpts are workflow submission options
5198 #: "io.argoproj.workflow.v1alpha1.SubmitOpts": {
5199 // Annotations adds to metadata.labels
5200 annotations?: string
5201
5202 // DryRun validates the workflow on the client-side without creating it. This
5203 // option is not supported in API
5204 dryRun?: bool
5205
5206 // Entrypoint overrides spec.entrypoint
5207 entryPoint?: string
5208
5209 // GenerateName overrides metadata.generateName
5210 generateName?: string
5211
5212 // Labels adds to metadata.labels
5213 labels?: string
5214
5215 // Name overrides metadata.name
5216 name?: string
5217
5218 // OwnerReference creates a metadata.ownerReference
5219 ownerReference?: #."io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference"
5220
5221 // Parameters passes input parameters to workflow
5222 parameters?: [...string]
5223
5224 // Set the podPriorityClassName of the workflow
5225 podPriorityClassName?: string
5226
5227 // Priority is used if controller is configured to process limited number of
5228 // workflows in parallel, higher priority workflows are processed first.
5229 priority?: int
5230
5231 // ServerDryRun validates the workflow on the server-side without creating it
5232 serverDryRun?: bool
5233
5234 // ServiceAccount runs all pods in the workflow using specified ServiceAccount.
5235 serviceAccount?: string
5236 }
5237
5238 // SuppliedValueFrom is a placeholder for a value to be filled in directly,
5239 // either through the CLI, API, etc.
5240 #: "io.argoproj.workflow.v1alpha1.SuppliedValueFrom": {}
5241
5242 // SuspendTemplate is a template subtype to suspend a workflow at a predetermined point in time
5243 #: "io.argoproj.workflow.v1alpha1.SuspendTemplate": {
5244 // Duration is the seconds to wait before automatically resuming a template.
5245 // Must be a string. Default unit is seconds. Could also be a Duration, e.g.:
5246 // "2m", "6h"
5247 duration?: string
5248 }
5249
5250 #: "io.argoproj.workflow.v1alpha1.SyncDatabaseRef": key!: string
5251
5252 // Synchronization holds synchronization lock configuration
5253 #: "io.argoproj.workflow.v1alpha1.Synchronization": {
5254 // v3.6 and after: Mutexes holds the list of Mutex lock details
5255 mutexes?: [...#."io.argoproj.workflow.v1alpha1.Mutex"]
5256
5257 // v3.6 and after: Semaphores holds the list of Semaphores configuration
5258 semaphores?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreRef"]
5259 }
5260
5261 // SynchronizationStatus stores the status of semaphore and mutex.
5262 #: "io.argoproj.workflow.v1alpha1.SynchronizationStatus": {
5263 // Mutex stores this workflow's mutex holder details
5264 mutex?: #."io.argoproj.workflow.v1alpha1.MutexStatus"
5265
5266 // Semaphore stores this workflow's Semaphore holder details
5267 semaphore?: #."io.argoproj.workflow.v1alpha1.SemaphoreStatus"
5268 }
5269
5270 // TTLStrategy is the strategy for the time to live depending on if the workflow succeeded or failed
5271 #: "io.argoproj.workflow.v1alpha1.TTLStrategy": {
5272 // SecondsAfterCompletion is the number of seconds to live after completion
5273 secondsAfterCompletion?: int
5274
5275 // SecondsAfterFailure is the number of seconds to live after failure
5276 secondsAfterFailure?: int
5277
5278 // SecondsAfterSuccess is the number of seconds to live after success
5279 secondsAfterSuccess?: int
5280 }
5281
5282 // TarStrategy will tar and gzip the file or directory when saving
5283 #: "io.argoproj.workflow.v1alpha1.TarStrategy": {
5284 // CompressionLevel specifies the gzip compression level to use for the
5285 // artifact. Defaults to gzip.DefaultCompression.
5286 compressionLevel?: int
5287 }
5288
5289 // Template is a reusable and composable unit of execution in a workflow
5290 #: "io.argoproj.workflow.v1alpha1.Template": {
5291 // Optional duration in seconds relative to the StartTime that the pod may be
5292 // active on a node before the system actively tries to terminate the pod;
5293 // value must be positive integer This field is only applicable to container
5294 // and script templates.
5295 activeDeadlineSeconds?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
5296
5297 // Affinity sets the pod's scheduling constraints Overrides the affinity set at
5298 // the workflow level (if any)
5299 affinity?: #."io.k8s.api.core.v1.Affinity"
5300
5301 // Annotations is a list of annotations to add to the template at runtime
5302 annotations?: [string]: string
5303
5304 // Location in which all files related to the step will be stored (logs,
5305 // artifacts, etc...). Can be overridden by individual items in Outputs. If
5306 // omitted, will use the default artifact repository location configured in the
5307 // controller, appended with the <workflowname>/<nodename> in the key.
5308 archiveLocation?: #."io.argoproj.workflow.v1alpha1.ArtifactLocation"
5309
5310 // AutomountServiceAccountToken indicates whether a service account token should
5311 // be automatically mounted in pods. ServiceAccountName of ExecutorConfig must
5312 // be specified if this value is false.
5313 automountServiceAccountToken?: bool
5314
5315 // Container is the main container image to run in the pod
5316 container?: #."io.k8s.api.core.v1.Container"
5317
5318 // ContainerSet groups multiple containers within a single pod.
5319 containerSet?: #."io.argoproj.workflow.v1alpha1.ContainerSetTemplate"
5320
5321 // Daemon will allow a workflow to proceed to the next step so long as the
5322 // container reaches readiness
5323 daemon?: bool
5324
5325 // DAG template subtype which runs a DAG
5326 dag?: #."io.argoproj.workflow.v1alpha1.DAGTemplate"
5327
5328 // Data is a data template
5329 data?: #."io.argoproj.workflow.v1alpha1.Data"
5330
5331 // Executor holds configurations of the executor container.
5332 executor?: #."io.argoproj.workflow.v1alpha1.ExecutorConfig"
5333
5334 // FailFast, if specified, will fail this template if any of its child pods has
5335 // failed. This is useful for when this template is expanded with `withItems`,
5336 // etc.
5337 failFast?: bool
5338
5339 // HostAliases is an optional list of hosts and IPs that will be injected into the pod spec
5340 hostAliases?: [...#."io.k8s.api.core.v1.HostAlias"]
5341
5342 // HTTP makes a HTTP request
5343 http?: #."io.argoproj.workflow.v1alpha1.HTTP"
5344
5345 // InitContainers is a list of containers which run before the main container.
5346 initContainers?: [...#."io.argoproj.workflow.v1alpha1.UserContainer"]
5347
5348 // Inputs describe what inputs parameters and artifacts are supplied to this template
5349 inputs?: #."io.argoproj.workflow.v1alpha1.Inputs"
5350
5351 // Memoize allows templates to use outputs generated from already executed templates
5352 memoize?: #."io.argoproj.workflow.v1alpha1.Memoize"
5353
5354 // Metadata sets the pods's metadata, i.e. annotations and labels
5355 metadata?: #."io.argoproj.workflow.v1alpha1.Metadata"
5356
5357 // Metrics are a list of metrics emitted from this template
5358 metrics?: #."io.argoproj.workflow.v1alpha1.Metrics"
5359
5360 // Name is the name of the template
5361 name?: string
5362
5363 // NodeSelector is a selector to schedule this step of the workflow to be run on
5364 // the selected node(s). Overrides the selector set at the workflow level.
5365 nodeSelector?: [string]: string
5366
5367 // Outputs describe the parameters and artifacts that this template produces
5368 outputs?: #."io.argoproj.workflow.v1alpha1.Outputs"
5369
5370 // Parallelism limits the max total parallel pods that can execute at the same
5371 // time within the boundaries of this template invocation. If additional
5372 // steps/dag templates are invoked, the pods created by those templates will
5373 // not be counted towards this total.
5374 parallelism?: int
5375
5376 // Plugin is a plugin template Note: the structure of a plugin template is
5377 // free-form, so we need to have "x-kubernetes-preserve-unknown-fields: true"
5378 // in the validation schema.
5379 plugin?: #."io.argoproj.workflow.v1alpha1.Plugin"
5380
5381 // PodSpecPatch holds strategic merge patch to apply against the pod spec.
5382 // Allows parameterization of container fields which are not strings (e.g.
5383 // resource limits).
5384 podSpecPatch?: string
5385
5386 // PriorityClassName to apply to workflow pods.
5387 priorityClassName?: string
5388
5389 // Resource template subtype which can run k8s resources
5390 resource?: #."io.argoproj.workflow.v1alpha1.ResourceTemplate"
5391
5392 // RetryStrategy describes how to retry a template when it fails
5393 retryStrategy?: #."io.argoproj.workflow.v1alpha1.RetryStrategy"
5394
5395 // If specified, the pod will be dispatched by specified scheduler. Or it will
5396 // be dispatched by workflow scope scheduler if specified. If neither
5397 // specified, the pod will be dispatched by default scheduler.
5398 schedulerName?: string
5399
5400 // Script runs a portion of code against an interpreter
5401 script?: #."io.argoproj.workflow.v1alpha1.ScriptTemplate"
5402
5403 // SecurityContext holds pod-level security attributes and common container
5404 // settings. Optional: Defaults to empty. See type description for default
5405 // values of each field.
5406 securityContext?: #."io.k8s.api.core.v1.PodSecurityContext"
5407
5408 // ServiceAccountName to apply to workflow pods
5409 serviceAccountName?: string
5410
5411 // Sidecars is a list of containers which run alongside the main container
5412 // Sidecars are automatically killed when the main container completes
5413 sidecars?: [...#."io.argoproj.workflow.v1alpha1.UserContainer"]
5414
5415 // Steps define a series of sequential/parallel workflow steps
5416 steps?: [...#."io.argoproj.workflow.v1alpha1.ParallelSteps"]
5417
5418 // Suspend template subtype which can suspend a workflow when reaching the step
5419 suspend?: #."io.argoproj.workflow.v1alpha1.SuspendTemplate"
5420
5421 // Synchronization holds synchronization lock configuration for this template
5422 synchronization?: #."io.argoproj.workflow.v1alpha1.Synchronization"
5423
5424 // Timeout allows to set the total node execution timeout duration counting from
5425 // the node's start time. This duration also includes time in which the node
5426 // spends in Pending state. This duration may not be applied to Step or DAG
5427 // templates.
5428 timeout?: string
5429
5430 // Tolerations to apply to workflow pods.
5431 tolerations?: [...#."io.k8s.api.core.v1.Toleration"]
5432
5433 // Volumes is a list of volumes that can be mounted by containers in a template.
5434 volumes?: [...#."io.k8s.api.core.v1.Volume"]
5435 }
5436
5437 // TemplateRef is a reference of template resource.
5438 #: "io.argoproj.workflow.v1alpha1.TemplateRef": {
5439 // ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
5440 clusterScope?: bool
5441
5442 // Name is the resource name of the template.
5443 name?: string
5444
5445 // Template is the name of referred template in the resource.
5446 template?: string
5447 }
5448
5449 #: "io.argoproj.workflow.v1alpha1.TransformationStep": {
5450 // Expression defines an expr expression to apply
5451 expression!: string
5452 }
5453
5454 #: "io.argoproj.workflow.v1alpha1.UpdateCronWorkflowRequest": {
5455 cronWorkflow?: #."io.argoproj.workflow.v1alpha1.CronWorkflow"
5456
5457 // DEPRECATED: This field is ignored.
5458 name?: string
5459 namespace?: string
5460 }
5461
5462 // UserContainer is a container specified by a user.
5463 #: "io.argoproj.workflow.v1alpha1.UserContainer": {
5464 // Arguments to the entrypoint. The container image's CMD is used if this is not
5465 // provided. Variable references $(VAR_NAME) are expanded using the container's
5466 // environment. If a variable cannot be resolved, the reference in the input
5467 // string will be unchanged. Double $$ are reduced to a single $, which allows
5468 // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
5469 // string literal "$(VAR_NAME)". Escaped references will never be expanded,
5470 // regardless of whether the variable exists or not. Cannot be updated. More
5471 // info:
5472 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
5473 args?: [...string]
5474
5475 // Entrypoint array. Not executed within a shell. The container image's
5476 // ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME)
5477 // are expanded using the container's environment. If a variable cannot be
5478 // resolved, the reference in the input string will be unchanged. Double $$ are
5479 // reduced to a single $, which allows for escaping the $(VAR_NAME) syntax:
5480 // i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped
5481 // references will never be expanded, regardless of whether the variable exists
5482 // or not. Cannot be updated. More info:
5483 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
5484 command?: [...string]
5485
5486 // List of environment variables to set in the container. Cannot be updated.
5487 env?: [...#."io.k8s.api.core.v1.EnvVar"]
5488
5489 // List of sources to populate environment variables in the container. The keys
5490 // defined within a source must be a C_IDENTIFIER. All invalid keys will be
5491 // reported as an event when the container is starting. When a key exists in
5492 // multiple sources, the value associated with the last source will take
5493 // precedence. Values defined by an Env with a duplicate key will take
5494 // precedence. Cannot be updated.
5495 envFrom?: [...#."io.k8s.api.core.v1.EnvFromSource"]
5496
5497 // Container image name. More info:
5498 // https://kubernetes.io/docs/concepts/containers/images This field is optional
5499 // to allow higher level config management to default or override container
5500 // images in workload controllers like Deployments and StatefulSets.
5501 image?: string
5502
5503 // Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if
5504 // :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More
5505 // info: https://kubernetes.io/docs/concepts/containers/images#updating-images
5506 imagePullPolicy?: string
5507
5508 // Actions that the management system should take in response to container
5509 // lifecycle events. Cannot be updated.
5510 lifecycle?: #."io.k8s.api.core.v1.Lifecycle"
5511
5512 // Periodic probe of container liveness. Container will be restarted if the
5513 // probe fails. Cannot be updated. More info:
5514 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5515 livenessProbe?: #."io.k8s.api.core.v1.Probe"
5516
5517 // MirrorVolumeMounts will mount the same volumes specified in the main
5518 // container to the container (including artifacts), at the same mountPaths.
5519 // This enables dind daemon to partially see the same filesystem as the main
5520 // container in order to use features such as docker volume binding
5521 mirrorVolumeMounts?: bool
5522
5523 // Name of the container specified as a DNS_LABEL. Each container in a pod must
5524 // have a unique name (DNS_LABEL). Cannot be updated.
5525 name!: string
5526
5527 // List of ports to expose from the container. Not specifying a port here DOES
5528 // NOT prevent that port from being exposed. Any port which is listening on the
5529 // default "0.0.0.0" address inside a container will be accessible from the
5530 // network. Modifying this array with strategic merge patch may corrupt the
5531 // data. For more information See
5532 // https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.
5533 ports?: [...#."io.k8s.api.core.v1.ContainerPort"]
5534
5535 // Periodic probe of container service readiness. Container will be removed from
5536 // service endpoints if the probe fails. Cannot be updated. More info:
5537 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5538 readinessProbe?: #."io.k8s.api.core.v1.Probe"
5539
5540 // Resources resize policy for the container.
5541 resizePolicy?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
5542
5543 // Compute Resources required by this container. Cannot be updated. More info:
5544 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
5545 resources?: #."io.k8s.api.core.v1.ResourceRequirements"
5546
5547 // RestartPolicy defines the restart behavior of individual containers in a pod.
5548 // This field may only be set for init containers, and the only allowed value
5549 // is "Always". For non-init containers or when this field is not specified,
5550 // the restart behavior is defined by the Pod's restart policy and the
5551 // container type. Setting the RestartPolicy as "Always" for the init container
5552 // will have the following effect: this init container will be continually
5553 // restarted on exit until all regular containers have terminated. Once all
5554 // regular containers have completed, all init containers with restartPolicy
5555 // "Always" will be shut down. This lifecycle differs from normal init
5556 // containers and is often referred to as a "sidecar" container. Although this
5557 // init container still starts in the init container sequence, it does not wait
5558 // for the container to complete before proceeding to the next init container.
5559 // Instead, the next init container starts immediately after this init
5560 // container is started, or after any startupProbe has successfully completed.
5561 restartPolicy?: string
5562
5563 // SecurityContext defines the security options the container should be run
5564 // with. If set, the fields of SecurityContext override the equivalent fields
5565 // of PodSecurityContext. More info:
5566 // https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
5567 securityContext?: #."io.k8s.api.core.v1.SecurityContext"
5568
5569 // StartupProbe indicates that the Pod has successfully initialized. If
5570 // specified, no other probes are executed until this completes successfully.
5571 // If this probe fails, the Pod will be restarted, just as if the livenessProbe
5572 // failed. This can be used to provide different probe parameters at the
5573 // beginning of a Pod's lifecycle, when it might take a long time to load data
5574 // or warm a cache, than during steady-state operation. This cannot be updated.
5575 // More info:
5576 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5577 startupProbe?: #."io.k8s.api.core.v1.Probe"
5578
5579 // Whether this container should allocate a buffer for stdin in the container
5580 // runtime. If this is not set, reads from stdin in the container will always
5581 // result in EOF. Default is false.
5582 stdin?: bool
5583
5584 // Whether the container runtime should close the stdin channel after it has
5585 // been opened by a single attach. When stdin is true the stdin stream will
5586 // remain open across multiple attach sessions. If stdinOnce is set to true,
5587 // stdin is opened on container start, is empty until the first client attaches
5588 // to stdin, and then remains open and accepts data until the client
5589 // disconnects, at which time stdin is closed and remains closed until the
5590 // container is restarted. If this flag is false, a container processes that
5591 // reads from stdin will never receive an EOF. Default is false
5592 stdinOnce?: bool
5593
5594 // Optional: Path at which the file to which the container's termination message
5595 // will be written is mounted into the container's filesystem. Message written
5596 // is intended to be brief final status, such as an assertion failure message.
5597 // Will be truncated by the node if greater than 4096 bytes. The total message
5598 // length across all containers will be limited to 12kb. Defaults to
5599 // /dev/termination-log. Cannot be updated.
5600 terminationMessagePath?: string
5601
5602 // Indicate how the termination message should be populated. File will use the
5603 // contents of terminationMessagePath to populate the container status message
5604 // on both success and failure. FallbackToLogsOnError will use the last chunk
5605 // of container log output if the termination message file is empty and the
5606 // container exited with an error. The log output is limited to 2048 bytes or
5607 // 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
5608 terminationMessagePolicy?: string
5609
5610 // Whether this container should allocate a TTY for itself, also requires
5611 // 'stdin' to be true. Default is false.
5612 tty?: bool
5613
5614 // volumeDevices is the list of block devices to be used by the container.
5615 volumeDevices?: [...#."io.k8s.api.core.v1.VolumeDevice"]
5616
5617 // Pod volumes to mount into the container's filesystem. Cannot be updated.
5618 volumeMounts?: [...#."io.k8s.api.core.v1.VolumeMount"]
5619
5620 // Container's working directory. If not specified, the container runtime's
5621 // default will be used, which might be configured in the container image.
5622 // Cannot be updated.
5623 workingDir?: string
5624 }
5625
5626 // ValueFrom describes a location in which to obtain the value to a parameter
5627 #: "io.argoproj.workflow.v1alpha1.ValueFrom": {
5628 // ConfigMapKeyRef is configmap selector for input parameter configuration
5629 configMapKeyRef?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
5630
5631 // Default specifies a value to be used if retrieving the value from the specified source fails
5632 default?: string
5633
5634 // Selector (https://github.com/expr-lang/expr) that is evaluated against the
5635 // event to get the value of the parameter. E.g. `payload.message`
5636 event?: string
5637
5638 // Expression, if defined, is evaluated to specify the value for the parameter
5639 expression?: string
5640
5641 // JQFilter expression against the resource object in resource templates
5642 jqFilter?: string
5643
5644 // JSONPath of a resource to retrieve an output parameter value from in resource templates
5645 jsonPath?: string
5646
5647 // Parameter reference to a step or dag task in which to retrieve an output
5648 // parameter value from (e.g. steps.mystep.outputs.myparam)
5649 parameter?: string
5650
5651 // Path in the container to retrieve an output parameter value from in container templates
5652 path?: string
5653
5654 // Supplied value to be filled in directly, either through the CLI, API, etc.
5655 supplied?: #."io.argoproj.workflow.v1alpha1.SuppliedValueFrom"
5656 }
5657
5658 #: "io.argoproj.workflow.v1alpha1.Version": {
5659 buildDate!: string
5660 compiler!: string
5661 gitCommit!: string
5662 gitTag!: string
5663 gitTreeState!: string
5664 goVersion!: string
5665 platform!: string
5666 version!: string
5667 }
5668
5669 // VolumeClaimGC describes how to delete volumes from completed Workflows
5670 #: "io.argoproj.workflow.v1alpha1.VolumeClaimGC": {
5671 // Strategy is the strategy to use. One of "OnWorkflowCompletion",
5672 // "OnWorkflowSuccess". Defaults to "OnWorkflowSuccess"
5673 strategy?: string
5674 }
5675
5676 // Workflow is the definition of a workflow resource
5677 #: "io.argoproj.workflow.v1alpha1.Workflow": {
5678 // APIVersion defines the versioned schema of this representation of an object.
5679 // Servers should convert recognized schemas to the latest internal value, and
5680 // may reject unrecognized values. More info:
5681 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
5682 apiVersion?: "argoproj.io/v1alpha1"
5683
5684 // Kind is a string value representing the REST resource this object represents.
5685 // Servers may infer this from the endpoint the client submits requests to.
5686 // Cannot be updated. In CamelCase. More info:
5687 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
5688 kind?: "Workflow"
5689 metadata!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
5690 spec!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
5691 status?: #."io.argoproj.workflow.v1alpha1.WorkflowStatus"
5692 }
5693
5694 #: "io.argoproj.workflow.v1alpha1.WorkflowCreateRequest": {
5695 createOptions?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
5696
5697 // This field is no longer used.
5698 instanceID?: string
5699 namespace?: string
5700 serverDryRun?: bool
5701 workflow?: #."io.argoproj.workflow.v1alpha1.Workflow"
5702 }
5703
5704 #: "io.argoproj.workflow.v1alpha1.WorkflowDeleteResponse": {}
5705
5706 // WorkflowEventBinding is the definition of an event resource
5707 #: "io.argoproj.workflow.v1alpha1.WorkflowEventBinding": {
5708 // APIVersion defines the versioned schema of this representation of an object.
5709 // Servers should convert recognized schemas to the latest internal value, and
5710 // may reject unrecognized values. More info:
5711 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
5712 apiVersion?: "argoproj.io/v1alpha1"
5713
5714 // Kind is a string value representing the REST resource this object represents.
5715 // Servers may infer this from the endpoint the client submits requests to.
5716 // Cannot be updated. In CamelCase. More info:
5717 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
5718 kind?: "WorkflowEventBinding"
5719 metadata!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
5720 spec!: #."io.argoproj.workflow.v1alpha1.WorkflowEventBindingSpec"
5721 }
5722
5723 // WorkflowEventBindingList is list of event resources
5724 #: "io.argoproj.workflow.v1alpha1.WorkflowEventBindingList": {
5725 // APIVersion defines the versioned schema of this representation of an object.
5726 // Servers should convert recognized schemas to the latest internal value, and
5727 // may reject unrecognized values. More info:
5728 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
5729 apiVersion?: string
5730 items!: [...#."io.argoproj.workflow.v1alpha1.WorkflowEventBinding"]
5731
5732 // Kind is a string value representing the REST resource this object represents.
5733 // Servers may infer this from the endpoint the client submits requests to.
5734 // Cannot be updated. In CamelCase. More info:
5735 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
5736 kind?: string
5737 metadata!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
5738 }
5739
5740 #: "io.argoproj.workflow.v1alpha1.WorkflowEventBindingSpec": {
5741 // Event is the event to bind to
5742 event!: #."io.argoproj.workflow.v1alpha1.Event"
5743
5744 // Submit is the workflow template to submit
5745 submit?: #."io.argoproj.workflow.v1alpha1.Submit"
5746 }
5747
5748 // WorkflowLevelArtifactGC describes how to delete artifacts from completed
5749 // Workflows - this spec is used on the Workflow level
5750 #: "io.argoproj.workflow.v1alpha1.WorkflowLevelArtifactGC": {
5751 // ForceFinalizerRemoval: if set to true, the finalizer will be removed in the
5752 // case that Artifact GC fails
5753 forceFinalizerRemoval?: bool
5754
5755 // PodMetadata is an optional field for specifying the Labels and Annotations
5756 // that should be assigned to the Pod doing the deletion
5757 podMetadata?: #."io.argoproj.workflow.v1alpha1.Metadata"
5758
5759 // PodSpecPatch holds strategic merge patch to apply against the artgc pod spec.
5760 podSpecPatch?: string
5761
5762 // ServiceAccountName is an optional field for specifying the Service Account
5763 // that should be assigned to the Pod doing the deletion
5764 serviceAccountName?: string
5765
5766 // Strategy is the strategy to use.
5767 strategy?: string
5768 }
5769
5770 #: "io.argoproj.workflow.v1alpha1.WorkflowLintRequest": {
5771 namespace?: string
5772 workflow?: #."io.argoproj.workflow.v1alpha1.Workflow"
5773 }
5774
5775 // WorkflowList is list of Workflow resources
5776 #: "io.argoproj.workflow.v1alpha1.WorkflowList": {
5777 // APIVersion defines the versioned schema of this representation of an object.
5778 // Servers should convert recognized schemas to the latest internal value, and
5779 // may reject unrecognized values. More info:
5780 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
5781 apiVersion?: string
5782 items!: [...#."io.argoproj.workflow.v1alpha1.Workflow"]
5783
5784 // Kind is a string value representing the REST resource this object represents.
5785 // Servers may infer this from the endpoint the client submits requests to.
5786 // Cannot be updated. In CamelCase. More info:
5787 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
5788 kind?: string
5789 metadata!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
5790 }
5791
5792 #: "io.argoproj.workflow.v1alpha1.WorkflowMetadata": {
5793 annotations?: [string]: string
5794 labels?: [string]: string
5795 labelsFrom?: [string]: #."io.argoproj.workflow.v1alpha1.LabelValueFrom"
5796 }
5797
5798 #: "io.argoproj.workflow.v1alpha1.WorkflowResubmitRequest": {
5799 memoized?: bool
5800 name?: string
5801 namespace?: string
5802 parameters?: [...string]
5803 }
5804
5805 #: "io.argoproj.workflow.v1alpha1.WorkflowResumeRequest": {
5806 name?: string
5807 namespace?: string
5808 nodeFieldSelector?: string
5809 }
5810
5811 #: "io.argoproj.workflow.v1alpha1.WorkflowRetryRequest": {
5812 name?: string
5813 namespace?: string
5814 nodeFieldSelector?: string
5815 parameters?: [...string]
5816 restartSuccessful?: bool
5817 }
5818
5819 #: "io.argoproj.workflow.v1alpha1.WorkflowSetRequest": {
5820 message?: string
5821 name?: string
5822 namespace?: string
5823 nodeFieldSelector?: string
5824 outputParameters?: string
5825 phase?: string
5826 }
5827
5828 // WorkflowSpec is the specification of a Workflow.
5829 #: "io.argoproj.workflow.v1alpha1.WorkflowSpec": {
5830 // Optional duration in seconds relative to the workflow start time which the
5831 // workflow is allowed to run before the controller terminates the
5832 // io.argoproj.workflow.v1alpha1. A value of zero is used to terminate a
5833 // Running workflow
5834 activeDeadlineSeconds?: int
5835
5836 // Affinity sets the scheduling constraints for all pods in the
5837 // io.argoproj.workflow.v1alpha1. Can be overridden by an affinity specified in
5838 // the template
5839 affinity?: #."io.k8s.api.core.v1.Affinity"
5840
5841 // ArchiveLogs indicates if the container logs should be archived
5842 archiveLogs?: bool
5843
5844 // Arguments contain the parameters and artifacts sent to the workflow
5845 // entrypoint Parameters are referencable globally using the 'workflow'
5846 // variable prefix. e.g. io.argoproj.workflow.v1alpha1.parameters.myparam
5847 arguments?: #."io.argoproj.workflow.v1alpha1.Arguments"
5848
5849 // ArtifactGC describes the strategy to use when deleting artifacts from
5850 // completed or deleted workflows (applies to all output Artifacts unless
5851 // Artifact.ArtifactGC is specified, which overrides this)
5852 artifactGC?: #."io.argoproj.workflow.v1alpha1.WorkflowLevelArtifactGC"
5853
5854 // ArtifactRepositoryRef specifies the configMap name and key containing the
5855 // artifact repository config.
5856 artifactRepositoryRef?: #."io.argoproj.workflow.v1alpha1.ArtifactRepositoryRef"
5857
5858 // AutomountServiceAccountToken indicates whether a service account token should
5859 // be automatically mounted in pods. ServiceAccountName of ExecutorConfig must
5860 // be specified if this value is false.
5861 automountServiceAccountToken?: bool
5862
5863 // PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.
5864 dnsConfig?: #."io.k8s.api.core.v1.PodDNSConfig"
5865
5866 // Set DNS policy for workflow pods. Defaults to "ClusterFirst". Valid values
5867 // are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS
5868 // parameters given in DNSConfig will be merged with the policy selected with
5869 // DNSPolicy. To have DNS options set along with hostNetwork, you have to
5870 // specify DNS policy explicitly to 'ClusterFirstWithHostNet'.
5871 dnsPolicy?: string
5872
5873 // Entrypoint is a template reference to the starting point of the io.argoproj.workflow.v1alpha1.
5874 entrypoint?: string
5875
5876 // Executor holds configurations of executor containers of the io.argoproj.workflow.v1alpha1.
5877 executor?: #."io.argoproj.workflow.v1alpha1.ExecutorConfig"
5878
5879 // Hooks holds the lifecycle hook which is invoked at lifecycle of step,
5880 // irrespective of the success, failure, or error status of the primary step
5881 hooks?: [string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook"
5882 hostAliases?: [...#."io.k8s.api.core.v1.HostAlias"]
5883
5884 // Host networking requested for this workflow pod. Default to false.
5885 hostNetwork?: bool
5886
5887 // ImagePullSecrets is a list of references to secrets in the same namespace to
5888 // use for pulling any images in pods that reference this ServiceAccount.
5889 // ImagePullSecrets are distinct from Secrets because Secrets can be mounted in
5890 // the pod, but ImagePullSecrets are only accessed by the kubelet. More info:
5891 // https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
5892 imagePullSecrets?: [...#."io.k8s.api.core.v1.LocalObjectReference"]
5893
5894 // Metrics are a list of metrics emitted from this Workflow
5895 metrics?: #."io.argoproj.workflow.v1alpha1.Metrics"
5896
5897 // NodeSelector is a selector which will result in all pods of the workflow to
5898 // be scheduled on the selected node(s). This is able to be overridden by a
5899 // nodeSelector specified in the template.
5900 nodeSelector?: [string]: string
5901
5902 // OnExit is a template reference which is invoked at the end of the workflow,
5903 // irrespective of the success, failure, or error of the primary
5904 // io.argoproj.workflow.v1alpha1.
5905 onExit?: string
5906
5907 // Parallelism limits the max total parallel pods that can execute at the same time in a workflow
5908 parallelism?: int
5909
5910 // PodDisruptionBudget holds the number of concurrent disruptions that you allow
5911 // for Workflow's Pods. Controller will automatically add the selector with
5912 // workflow name, if selector is empty. Optional: Defaults to empty.
5913 podDisruptionBudget?: #."io.k8s.api.policy.v1.PodDisruptionBudgetSpec"
5914
5915 // PodGC describes the strategy to use when deleting completed pods
5916 podGC?: #."io.argoproj.workflow.v1alpha1.PodGC"
5917
5918 // PodMetadata defines additional metadata that should be applied to workflow pods
5919 podMetadata?: #."io.argoproj.workflow.v1alpha1.Metadata"
5920
5921 // PriorityClassName to apply to workflow pods.
5922 podPriorityClassName?: string
5923
5924 // PodSpecPatch holds strategic merge patch to apply against the pod spec.
5925 // Allows parameterization of container fields which are not strings (e.g.
5926 // resource limits).
5927 podSpecPatch?: string
5928
5929 // Priority is used if controller is configured to process limited number of
5930 // workflows in parallel. Workflows with higher priority are processed first.
5931 priority?: int
5932
5933 // RetryStrategy for all templates in the io.argoproj.workflow.v1alpha1.
5934 retryStrategy?: #."io.argoproj.workflow.v1alpha1.RetryStrategy"
5935
5936 // Set scheduler name for all pods. Will be overridden if container/script
5937 // template's scheduler name is set. Default scheduler will be used if neither
5938 // specified.
5939 schedulerName?: string
5940
5941 // SecurityContext holds pod-level security attributes and common container
5942 // settings. Optional: Defaults to empty. See type description for default
5943 // values of each field.
5944 securityContext?: #."io.k8s.api.core.v1.PodSecurityContext"
5945
5946 // ServiceAccountName is the name of the ServiceAccount to run all pods of the workflow as.
5947 serviceAccountName?: string
5948
5949 // Shutdown will shutdown the workflow according to its ShutdownStrategy
5950 shutdown?: string
5951
5952 // Suspend will suspend the workflow and prevent execution of any future steps in the workflow
5953 suspend?: bool
5954
5955 // Synchronization holds synchronization lock configuration for this Workflow
5956 synchronization?: #."io.argoproj.workflow.v1alpha1.Synchronization"
5957
5958 // TemplateDefaults holds default template values that will apply to all
5959 // templates in the Workflow, unless overridden on the template-level
5960 templateDefaults?: #."io.argoproj.workflow.v1alpha1.Template"
5961
5962 // Templates is a list of workflow templates used in a workflow MaxItems is an
5963 // artificial limit to limit CEL validation costs - see note at top of file
5964 templates?: [...#."io.argoproj.workflow.v1alpha1.Template"]
5965
5966 // Tolerations to apply to workflow pods.
5967 tolerations?: [...#."io.k8s.api.core.v1.Toleration"]
5968
5969 // TTLStrategy limits the lifetime of a Workflow that has finished execution
5970 // depending on if it Succeeded or Failed. If this struct is set, once the
5971 // Workflow finishes, it will be deleted after the time to live expires. If
5972 // this field is unset, the controller config map will hold the default values.
5973 ttlStrategy?: #."io.argoproj.workflow.v1alpha1.TTLStrategy"
5974
5975 // VolumeClaimGC describes the strategy to use when deleting volumes from completed workflows
5976 volumeClaimGC?: #."io.argoproj.workflow.v1alpha1.VolumeClaimGC"
5977
5978 // VolumeClaimTemplates is a list of claims that containers are allowed to
5979 // reference. The Workflow controller will create the claims at the beginning
5980 // of the workflow and delete the claims upon completion of the workflow
5981 volumeClaimTemplates?: [...#."io.k8s.api.core.v1.PersistentVolumeClaim"]
5982
5983 // Volumes is a list of volumes that can be mounted by containers in a
5984 // io.argoproj.workflow.v1alpha1.
5985 volumes?: [...#."io.k8s.api.core.v1.Volume"]
5986
5987 // WorkflowMetadata contains some metadata of the workflow to refer to
5988 workflowMetadata?: #."io.argoproj.workflow.v1alpha1.WorkflowMetadata"
5989
5990 // WorkflowTemplateRef holds a reference to a WorkflowTemplate for execution
5991 workflowTemplateRef?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplateRef"
5992 }
5993
5994 // WorkflowStatus contains overall status information about a workflow
5995 #: "io.argoproj.workflow.v1alpha1.WorkflowStatus": {
5996 // ArtifactGCStatus maintains the status of Artifact Garbage Collection
5997 artifactGCStatus?: #."io.argoproj.workflow.v1alpha1.ArtGCStatus"
5998
5999 // ArtifactRepositoryRef is used to cache the repository to use so we do not
6000 // need to determine it everytime we reconcile.
6001 artifactRepositoryRef?: #."io.argoproj.workflow.v1alpha1.ArtifactRepositoryRefStatus"
6002
6003 // Compressed and base64 decoded Nodes map
6004 compressedNodes?: string
6005
6006 // Conditions is a list of conditions the Workflow may have
6007 conditions?: [...#."io.argoproj.workflow.v1alpha1.Condition"]
6008
6009 // EstimatedDuration in seconds.
6010 estimatedDuration?: int
6011
6012 // Time at which this workflow completed
6013 finishedAt?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
6014
6015 // A human readable message indicating details about why the workflow is in this condition.
6016 message?: string
6017
6018 // Nodes is a mapping between a node ID and the node's status.
6019 nodes?: [string]: #."io.argoproj.workflow.v1alpha1.NodeStatus"
6020
6021 // Whether on not node status has been offloaded to a database. If exists, then
6022 // Nodes and CompressedNodes will be empty. This will actually be populated
6023 // with a hash of the offloaded data.
6024 offloadNodeStatusVersion?: string
6025
6026 // Outputs captures output values and artifact locations produced by the workflow via global outputs
6027 outputs?: #."io.argoproj.workflow.v1alpha1.Outputs"
6028
6029 // PersistentVolumeClaims tracks all PVCs that were created as part of the
6030 // io.argoproj.workflow.v1alpha1. The contents of this list are drained at the
6031 // end of the workflow.
6032 persistentVolumeClaims?: [...#."io.k8s.api.core.v1.Volume"]
6033
6034 // Phase a simple, high-level summary of where the workflow is in its lifecycle.
6035 // Will be "" (Unknown), "Pending", or "Running" before the workflow is
6036 // completed, and "Succeeded", "Failed" or "Error" once the workflow has
6037 // completed.
6038 phase?: string
6039
6040 // Progress to completion
6041 progress?: string
6042
6043 // ResourcesDuration is the total for the workflow
6044 resourcesDuration?: [string]: int
6045
6046 // Time at which this workflow started
6047 startedAt?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
6048
6049 // StoredTemplates is a mapping between a template ref and the node's status.
6050 storedTemplates?: [string]: #."io.argoproj.workflow.v1alpha1.Template"
6051
6052 // StoredWorkflowSpec stores the WorkflowTemplate spec for future execution.
6053 storedWorkflowTemplateSpec?: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
6054
6055 // Synchronization stores the status of synchronization locks
6056 synchronization?: #."io.argoproj.workflow.v1alpha1.SynchronizationStatus"
6057
6058 // TaskResultsCompletionStatus tracks task result completion status (mapped by
6059 // node ID). Used to prevent premature archiving and garbage collection.
6060 taskResultsCompletionStatus?: [string]: bool
6061 }
6062
6063 // WorkflowStep is a reference to a template to execute in a series of step
6064 // Note: CEL validation cannot check withItems (Schemaless) or inline
6065 // (PreserveUnknownFields) fields.
6066 #: "io.argoproj.workflow.v1alpha1.WorkflowStep": {
6067 // Arguments hold arguments to the template
6068 arguments?: #."io.argoproj.workflow.v1alpha1.Arguments"
6069
6070 // ContinueOn makes argo to proceed with the following step even if this step
6071 // fails. Errors and Failed states can be specified
6072 continueOn?: #."io.argoproj.workflow.v1alpha1.ContinueOn"
6073
6074 // Hooks holds the lifecycle hook which is invoked at lifecycle of step,
6075 // irrespective of the success, failure, or error status of the primary step
6076 hooks?: [string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook"
6077
6078 // Inline is the template. Template must be empty if this is declared (and
6079 // vice-versa). Note: This struct is defined recursively, since the inline
6080 // template can potentially contain steps/DAGs that also has an "inline" field.
6081 // Kubernetes doesn't allow recursive types, so we need
6082 // "x-kubernetes-preserve-unknown-fields: true" in the validation schema.
6083 inline?: #."io.argoproj.workflow.v1alpha1.Template"
6084
6085 // Name of the step
6086 name?: string
6087
6088 // OnExit is a template reference which is invoked at the end of the template,
6089 // irrespective of the success, failure, or error of the primary template.
6090 // DEPRECATED: Use Hooks[exit].Template instead.
6091 onExit?: string
6092
6093 // Template is the name of the template to execute as the step
6094 template?: string
6095
6096 // TemplateRef is the reference to the template resource to execute as the step.
6097 templateRef?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
6098
6099 // When is an expression in which the step should conditionally execute
6100 when?: string
6101
6102 // WithItems expands a step into multiple parallel steps from the items in the
6103 // list Note: The structure of WithItems is free-form, so we need
6104 // "x-kubernetes-preserve-unknown-fields: true" in the validation schema.
6105 withItems?: [...#."io.argoproj.workflow.v1alpha1.Item"]
6106
6107 // WithParam expands a step into multiple parallel steps from the value in the
6108 // parameter, which is expected to be a JSON list.
6109 withParam?: string
6110
6111 // WithSequence expands a step into a numeric sequence
6112 withSequence?: #."io.argoproj.workflow.v1alpha1.Sequence"
6113 }
6114
6115 #: "io.argoproj.workflow.v1alpha1.WorkflowStopRequest": {
6116 message?: string
6117 name?: string
6118 namespace?: string
6119 nodeFieldSelector?: string
6120 }
6121
6122 #: "io.argoproj.workflow.v1alpha1.WorkflowSubmitRequest": {
6123 namespace?: string
6124 resourceKind?: string
6125 resourceName?: string
6126 submitOptions?: #."io.argoproj.workflow.v1alpha1.SubmitOpts"
6127 }
6128
6129 #: "io.argoproj.workflow.v1alpha1.WorkflowSuspendRequest": {
6130 name?: string
6131 namespace?: string
6132 }
6133
6134 // WorkflowTemplate is the definition of a workflow template resource
6135 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplate": {
6136 // APIVersion defines the versioned schema of this representation of an object.
6137 // Servers should convert recognized schemas to the latest internal value, and
6138 // may reject unrecognized values. More info:
6139 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
6140 apiVersion?: "argoproj.io/v1alpha1"
6141
6142 // Kind is a string value representing the REST resource this object represents.
6143 // Servers may infer this from the endpoint the client submits requests to.
6144 // Cannot be updated. In CamelCase. More info:
6145 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
6146 kind?: "WorkflowTemplate"
6147 metadata!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
6148 spec!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
6149 }
6150
6151 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateCreateRequest": {
6152 createOptions?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
6153 namespace?: string
6154 template?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplate"
6155 }
6156
6157 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateDeleteResponse": {}
6158
6159 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateLintRequest": {
6160 createOptions?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
6161 namespace?: string
6162 template?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplate"
6163 }
6164
6165 // WorkflowTemplateList is list of WorkflowTemplate resources
6166 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateList": {
6167 // APIVersion defines the versioned schema of this representation of an object.
6168 // Servers should convert recognized schemas to the latest internal value, and
6169 // may reject unrecognized values. More info:
6170 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
6171 apiVersion?: string
6172 items!: [...#."io.argoproj.workflow.v1alpha1.WorkflowTemplate"]
6173
6174 // Kind is a string value representing the REST resource this object represents.
6175 // Servers may infer this from the endpoint the client submits requests to.
6176 // Cannot be updated. In CamelCase. More info:
6177 // https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
6178 kind?: string
6179 metadata!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
6180 }
6181
6182 // WorkflowTemplateRef is a reference to a WorkflowTemplate resource.
6183 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateRef": {
6184 // ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
6185 clusterScope?: bool
6186
6187 // Name is the resource name of the workflow template.
6188 name?: string
6189 }
6190
6191 #: "io.argoproj.workflow.v1alpha1.WorkflowTemplateUpdateRequest": {
6192 // DEPRECATED: This field is ignored.
6193 name?: string
6194 namespace?: string
6195 template?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplate"
6196 }
6197
6198 #: "io.argoproj.workflow.v1alpha1.WorkflowTerminateRequest": {
6199 name?: string
6200 namespace?: string
6201 }
6202
6203 #: "io.argoproj.workflow.v1alpha1.WorkflowWatchEvent": {
6204 // the workflow
6205 object?: #."io.argoproj.workflow.v1alpha1.Workflow"
6206
6207 // the type of change
6208 type?: string
6209 }
6210
6211 // ZipStrategy will unzip zipped input artifacts
6212 #: "io.argoproj.workflow.v1alpha1.ZipStrategy": {}
6213
6214 // Represents a Persistent Disk resource in AWS.
6215 //
6216 // An AWS EBS disk must exist before mounting to a container. The disk must also
6217 // be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted
6218 // as read/write once. AWS EBS volumes support ownership management and SELinux
6219 // relabeling.
6220 #: "io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource": {
6221 // fsType is the filesystem type of the volume that you want to mount. Tip:
6222 // Ensure that the filesystem type is supported by the host operating system.
6223 // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
6224 // unspecified. More info:
6225 // https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
6226 fsType?: string
6227
6228 // partition is the partition in the volume that you want to mount. If omitted,
6229 // the default is to mount by volume name. Examples: For volume /dev/sda1, you
6230 // specify the partition as "1". Similarly, the volume partition for /dev/sda
6231 // is "0" (or you can leave the property empty).
6232 partition?: int
6233
6234 // readOnly value true will force the readOnly setting in VolumeMounts. More
6235 // info:
6236 // https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
6237 readOnly?: bool
6238
6239 // volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS
6240 // volume). More info:
6241 // https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
6242 volumeID!: string
6243 }
6244
6245 // Affinity is a group of affinity scheduling rules.
6246 #: "io.k8s.api.core.v1.Affinity": {
6247 // Describes node affinity scheduling rules for the pod.
6248 nodeAffinity?: #."io.k8s.api.core.v1.NodeAffinity"
6249
6250 // Describes pod affinity scheduling rules (e.g. co-locate this pod in the same
6251 // node, zone, etc. as some other pod(s)).
6252 podAffinity?: #."io.k8s.api.core.v1.PodAffinity"
6253
6254 // Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in
6255 // the same node, zone, etc. as some other pod(s)).
6256 podAntiAffinity?: #."io.k8s.api.core.v1.PodAntiAffinity"
6257 }
6258
6259 // AppArmorProfile defines a pod or container's AppArmor settings.
6260 #: "io.k8s.api.core.v1.AppArmorProfile": {
6261 // localhostProfile indicates a profile loaded on the node that should be used.
6262 // The profile must be preconfigured on the node to work. Must match the loaded
6263 // name of the profile. Must be set if and only if type is "Localhost".
6264 localhostProfile?: string
6265
6266 // type indicates which kind of AppArmor profile will be applied. Valid options are:
6267 // Localhost - a profile pre-loaded on the node.
6268 // RuntimeDefault - the container runtime's default profile.
6269 // Unconfined - no AppArmor enforcement.
6270 type!: string
6271 }
6272
6273 // AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
6274 #: "io.k8s.api.core.v1.AzureDiskVolumeSource": {
6275 // cachingMode is the Host Caching mode: None, Read Only, Read Write.
6276 cachingMode?: string
6277
6278 // diskName is the Name of the data disk in the blob storage
6279 diskName!: string
6280
6281 // diskURI is the URI of data disk in the blob storage
6282 diskURI!: string
6283
6284 // fsType is Filesystem type to mount. Must be a filesystem type supported by
6285 // the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to
6286 // be "ext4" if unspecified.
6287 fsType?: string
6288
6289 // kind expected values are Shared: multiple blob disks per storage account
6290 // Dedicated: single blob disk per storage account Managed: azure managed data
6291 // disk (only in managed availability set). defaults to shared
6292 kind?: string
6293
6294 // readOnly Defaults to false (read/write). ReadOnly here will force the
6295 // ReadOnly setting in VolumeMounts.
6296 readOnly?: bool
6297 }
6298
6299 // AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
6300 #: "io.k8s.api.core.v1.AzureFileVolumeSource": {
6301 // readOnly defaults to false (read/write). ReadOnly here will force the
6302 // ReadOnly setting in VolumeMounts.
6303 readOnly?: bool
6304
6305 // secretName is the name of secret that contains Azure Storage Account Name and Key
6306 secretName!: string
6307
6308 // shareName is the azure share Name
6309 shareName!: string
6310 }
6311
6312 // Represents a source location of a volume to mount, managed by an external CSI driver
6313 #: "io.k8s.api.core.v1.CSIVolumeSource": {
6314 // driver is the name of the CSI driver that handles this volume. Consult with
6315 // your admin for the correct name as registered in the cluster.
6316 driver!: string
6317
6318 // fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value
6319 // is passed to the associated CSI driver which will determine the default
6320 // filesystem to apply.
6321 fsType?: string
6322
6323 // nodePublishSecretRef is a reference to the secret object containing sensitive
6324 // information to pass to the CSI driver to complete the CSI NodePublishVolume
6325 // and NodeUnpublishVolume calls. This field is optional, and may be empty if
6326 // no secret is required. If the secret object contains more than one secret,
6327 // all secret references are passed.
6328 nodePublishSecretRef?: #."io.k8s.api.core.v1.LocalObjectReference"
6329
6330 // readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).
6331 readOnly?: bool
6332
6333 // volumeAttributes stores driver-specific properties that are passed to the CSI
6334 // driver. Consult your driver's documentation for supported values.
6335 volumeAttributes?: [string]: string
6336 }
6337
6338 // Adds and removes POSIX capabilities from running containers.
6339 #: "io.k8s.api.core.v1.Capabilities": {
6340 // Added capabilities
6341 add?: [...string]
6342
6343 // Removed capabilities
6344 drop?: [...string]
6345 }
6346
6347 // Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs
6348 // volumes do not support ownership management or SELinux relabeling.
6349 #: "io.k8s.api.core.v1.CephFSVolumeSource": {
6350 // monitors is Required: Monitors is a collection of Ceph monitors More info:
6351 // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
6352 monitors!: [...string]
6353
6354 // path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /
6355 path?: string
6356
6357 // readOnly is Optional: Defaults to false (read/write). ReadOnly here will
6358 // force the ReadOnly setting in VolumeMounts. More info:
6359 // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
6360 readOnly?: bool
6361
6362 // secretFile is Optional: SecretFile is the path to key ring for User, default
6363 // is /etc/ceph/user.secret More info:
6364 // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
6365 secretFile?: string
6366
6367 // secretRef is Optional: SecretRef is reference to the authentication secret
6368 // for User, default is empty. More info:
6369 // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
6370 secretRef?: #."io.k8s.api.core.v1.LocalObjectReference"
6371
6372 // user is optional: User is the rados user name, default is admin More info:
6373 // https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
6374 user?: string
6375 }
6376
6377 // Represents a cinder volume resource in Openstack. A Cinder volume must exist
6378 // before mounting to a container. The volume must also be in the same region
6379 // as the kubelet. Cinder volumes support ownership management and SELinux
6380 // relabeling.
6381 #: "io.k8s.api.core.v1.CinderVolumeSource": {
6382 // fsType is the filesystem type to mount. Must be a filesystem type supported
6383 // by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly
6384 // inferred to be "ext4" if unspecified. More info:
6385 // https://examples.k8s.io/mysql-cinder-pd/README.md
6386 fsType?: string
6387
6388 // readOnly defaults to false (read/write). ReadOnly here will force the
6389 // ReadOnly setting in VolumeMounts. More info:
6390 // https://examples.k8s.io/mysql-cinder-pd/README.md
6391 readOnly?: bool
6392
6393 // secretRef is optional: points to a secret object containing parameters used
6394 // to connect to OpenStack.
6395 secretRef?: #."io.k8s.api.core.v1.LocalObjectReference"
6396
6397 // volumeID used to identify the volume in cinder. More info:
6398 // https://examples.k8s.io/mysql-cinder-pd/README.md
6399 volumeID!: string
6400 }
6401
6402 // ClusterTrustBundleProjection describes how to select a set of
6403 // ClusterTrustBundle objects and project their contents into the pod
6404 // filesystem.
6405 #: "io.k8s.api.core.v1.ClusterTrustBundleProjection": {
6406 // Select all ClusterTrustBundles that match this label selector. Only has
6407 // effect if signerName is set. Mutually-exclusive with name. If unset,
6408 // interpreted as "match nothing". If set but empty, interpreted as "match
6409 // everything".
6410 labelSelector?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
6411
6412 // Select a single ClusterTrustBundle by object name. Mutually-exclusive with
6413 // signerName and labelSelector.
6414 name?: string
6415
6416 // If true, don't block pod startup if the referenced ClusterTrustBundle(s)
6417 // aren't available. If using name, then the named ClusterTrustBundle is
6418 // allowed not to exist. If using signerName, then the combination of
6419 // signerName and labelSelector is allowed to match zero ClusterTrustBundles.
6420 optional?: bool
6421
6422 // Relative path from the volume root to write the bundle.
6423 path!: string
6424
6425 // Select all ClusterTrustBundles that match this signer name.
6426 // Mutually-exclusive with name. The contents of all selected
6427 // ClusterTrustBundles will be unified and deduplicated.
6428 signerName?: string
6429 }
6430
6431 // ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.
6432 //
6433 // The contents of the target ConfigMap's Data field will represent the
6434 // key-value pairs as environment variables.
6435 #: "io.k8s.api.core.v1.ConfigMapEnvSource": {
6436 // Name of the referent. This field is effectively required, but due to
6437 // backwards compatibility is allowed to be empty. Instances of this type with
6438 // an empty value here are almost certainly wrong. More info:
6439 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6440 name?: string
6441
6442 // Specify whether the ConfigMap must be defined
6443 optional?: bool
6444 }
6445
6446 // Selects a key from a ConfigMap.
6447 #: "io.k8s.api.core.v1.ConfigMapKeySelector": {
6448 // The key to select.
6449 key!: string
6450
6451 // Name of the referent. This field is effectively required, but due to
6452 // backwards compatibility is allowed to be empty. Instances of this type with
6453 // an empty value here are almost certainly wrong. More info:
6454 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6455 name?: string
6456
6457 // Specify whether the ConfigMap or its key must be defined
6458 optional?: bool
6459 }
6460
6461 // Adapts a ConfigMap into a projected volume.
6462 //
6463 // The contents of the target ConfigMap's Data field will be presented in a
6464 // projected volume as files using the keys in the Data field as the file
6465 // names, unless the items element is populated with specific mappings of keys
6466 // to paths. Note that this is identical to a configmap volume source without
6467 // the default mode.
6468 #: "io.k8s.api.core.v1.ConfigMapProjection": {
6469 // items if unspecified, each key-value pair in the Data field of the referenced
6470 // ConfigMap will be projected into the volume as a file whose name is the key
6471 // and content is the value. If specified, the listed keys will be projected
6472 // into the specified paths, and unlisted keys will not be present. If a key is
6473 // specified which is not present in the ConfigMap, the volume setup will error
6474 // unless it is marked optional. Paths must be relative and may not contain the
6475 // '..' path or start with '..'.
6476 items?: [...#."io.k8s.api.core.v1.KeyToPath"]
6477
6478 // Name of the referent. This field is effectively required, but due to
6479 // backwards compatibility is allowed to be empty. Instances of this type with
6480 // an empty value here are almost certainly wrong. More info:
6481 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6482 name?: string
6483
6484 // optional specify whether the ConfigMap or its keys must be defined
6485 optional?: bool
6486 }
6487
6488 // Adapts a ConfigMap into a volume.
6489 //
6490 // The contents of the target ConfigMap's Data field will be presented in a
6491 // volume as files using the keys in the Data field as the file names, unless
6492 // the items element is populated with specific mappings of keys to paths.
6493 // ConfigMap volumes support ownership management and SELinux relabeling.
6494 #: "io.k8s.api.core.v1.ConfigMapVolumeSource": {
6495 // defaultMode is optional: mode bits used to set permissions on created files
6496 // by default. Must be an octal value between 0000 and 0777 or a decimal value
6497 // between 0 and 511. YAML accepts both octal and decimal values, JSON requires
6498 // decimal values for mode bits. Defaults to 0644. Directories within the path
6499 // are not affected by this setting. This might be in conflict with other
6500 // options that affect the file mode, like fsGroup, and the result can be other
6501 // mode bits set.
6502 defaultMode?: int
6503
6504 // items if unspecified, each key-value pair in the Data field of the referenced
6505 // ConfigMap will be projected into the volume as a file whose name is the key
6506 // and content is the value. If specified, the listed keys will be projected
6507 // into the specified paths, and unlisted keys will not be present. If a key is
6508 // specified which is not present in the ConfigMap, the volume setup will error
6509 // unless it is marked optional. Paths must be relative and may not contain the
6510 // '..' path or start with '..'.
6511 items?: [...#."io.k8s.api.core.v1.KeyToPath"]
6512
6513 // Name of the referent. This field is effectively required, but due to
6514 // backwards compatibility is allowed to be empty. Instances of this type with
6515 // an empty value here are almost certainly wrong. More info:
6516 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6517 name?: string
6518
6519 // optional specify whether the ConfigMap or its keys must be defined
6520 optional?: bool
6521 }
6522
6523 // A single application container that you want to run within a pod.
6524 #: "io.k8s.api.core.v1.Container": {
6525 // Arguments to the entrypoint. The container image's CMD is used if this is not
6526 // provided. Variable references $(VAR_NAME) are expanded using the container's
6527 // environment. If a variable cannot be resolved, the reference in the input
6528 // string will be unchanged. Double $$ are reduced to a single $, which allows
6529 // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
6530 // string literal "$(VAR_NAME)". Escaped references will never be expanded,
6531 // regardless of whether the variable exists or not. Cannot be updated. More
6532 // info:
6533 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
6534 args?: [...string]
6535
6536 // Entrypoint array. Not executed within a shell. The container image's
6537 // ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME)
6538 // are expanded using the container's environment. If a variable cannot be
6539 // resolved, the reference in the input string will be unchanged. Double $$ are
6540 // reduced to a single $, which allows for escaping the $(VAR_NAME) syntax:
6541 // i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped
6542 // references will never be expanded, regardless of whether the variable exists
6543 // or not. Cannot be updated. More info:
6544 // https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
6545 command?: [...string]
6546
6547 // List of environment variables to set in the container. Cannot be updated.
6548 env?: [...#."io.k8s.api.core.v1.EnvVar"]
6549
6550 // List of sources to populate environment variables in the container. The keys
6551 // defined within a source must be a C_IDENTIFIER. All invalid keys will be
6552 // reported as an event when the container is starting. When a key exists in
6553 // multiple sources, the value associated with the last source will take
6554 // precedence. Values defined by an Env with a duplicate key will take
6555 // precedence. Cannot be updated.
6556 envFrom?: [...#."io.k8s.api.core.v1.EnvFromSource"]
6557
6558 // Container image name. More info:
6559 // https://kubernetes.io/docs/concepts/containers/images This field is optional
6560 // to allow higher level config management to default or override container
6561 // images in workload controllers like Deployments and StatefulSets.
6562 image!: string
6563
6564 // Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if
6565 // :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More
6566 // info: https://kubernetes.io/docs/concepts/containers/images#updating-images
6567 imagePullPolicy?: string
6568
6569 // Actions that the management system should take in response to container
6570 // lifecycle events. Cannot be updated.
6571 lifecycle?: #."io.k8s.api.core.v1.Lifecycle"
6572
6573 // Periodic probe of container liveness. Container will be restarted if the
6574 // probe fails. Cannot be updated. More info:
6575 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
6576 livenessProbe?: #."io.k8s.api.core.v1.Probe"
6577
6578 // Name of the container specified as a DNS_LABEL. Each container in a pod must
6579 // have a unique name (DNS_LABEL). Cannot be updated.
6580 name?: string
6581
6582 // List of ports to expose from the container. Not specifying a port here DOES
6583 // NOT prevent that port from being exposed. Any port which is listening on the
6584 // default "0.0.0.0" address inside a container will be accessible from the
6585 // network. Modifying this array with strategic merge patch may corrupt the
6586 // data. For more information See
6587 // https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.
6588 ports?: [...#."io.k8s.api.core.v1.ContainerPort"]
6589
6590 // Periodic probe of container service readiness. Container will be removed from
6591 // service endpoints if the probe fails. Cannot be updated. More info:
6592 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
6593 readinessProbe?: #."io.k8s.api.core.v1.Probe"
6594
6595 // Resources resize policy for the container.
6596 resizePolicy?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
6597
6598 // Compute Resources required by this container. Cannot be updated. More info:
6599 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
6600 resources?: #."io.k8s.api.core.v1.ResourceRequirements"
6601
6602 // RestartPolicy defines the restart behavior of individual containers in a pod.
6603 // This field may only be set for init containers, and the only allowed value
6604 // is "Always". For non-init containers or when this field is not specified,
6605 // the restart behavior is defined by the Pod's restart policy and the
6606 // container type. Setting the RestartPolicy as "Always" for the init container
6607 // will have the following effect: this init container will be continually
6608 // restarted on exit until all regular containers have terminated. Once all
6609 // regular containers have completed, all init containers with restartPolicy
6610 // "Always" will be shut down. This lifecycle differs from normal init
6611 // containers and is often referred to as a "sidecar" container. Although this
6612 // init container still starts in the init container sequence, it does not wait
6613 // for the container to complete before proceeding to the next init container.
6614 // Instead, the next init container starts immediately after this init
6615 // container is started, or after any startupProbe has successfully completed.
6616 restartPolicy?: string
6617
6618 // SecurityContext defines the security options the container should be run
6619 // with. If set, the fields of SecurityContext override the equivalent fields
6620 // of PodSecurityContext. More info:
6621 // https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
6622 securityContext?: #."io.k8s.api.core.v1.SecurityContext"
6623
6624 // StartupProbe indicates that the Pod has successfully initialized. If
6625 // specified, no other probes are executed until this completes successfully.
6626 // If this probe fails, the Pod will be restarted, just as if the livenessProbe
6627 // failed. This can be used to provide different probe parameters at the
6628 // beginning of a Pod's lifecycle, when it might take a long time to load data
6629 // or warm a cache, than during steady-state operation. This cannot be updated.
6630 // More info:
6631 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
6632 startupProbe?: #."io.k8s.api.core.v1.Probe"
6633
6634 // Whether this container should allocate a buffer for stdin in the container
6635 // runtime. If this is not set, reads from stdin in the container will always
6636 // result in EOF. Default is false.
6637 stdin?: bool
6638
6639 // Whether the container runtime should close the stdin channel after it has
6640 // been opened by a single attach. When stdin is true the stdin stream will
6641 // remain open across multiple attach sessions. If stdinOnce is set to true,
6642 // stdin is opened on container start, is empty until the first client attaches
6643 // to stdin, and then remains open and accepts data until the client
6644 // disconnects, at which time stdin is closed and remains closed until the
6645 // container is restarted. If this flag is false, a container processes that
6646 // reads from stdin will never receive an EOF. Default is false
6647 stdinOnce?: bool
6648
6649 // Optional: Path at which the file to which the container's termination message
6650 // will be written is mounted into the container's filesystem. Message written
6651 // is intended to be brief final status, such as an assertion failure message.
6652 // Will be truncated by the node if greater than 4096 bytes. The total message
6653 // length across all containers will be limited to 12kb. Defaults to
6654 // /dev/termination-log. Cannot be updated.
6655 terminationMessagePath?: string
6656
6657 // Indicate how the termination message should be populated. File will use the
6658 // contents of terminationMessagePath to populate the container status message
6659 // on both success and failure. FallbackToLogsOnError will use the last chunk
6660 // of container log output if the termination message file is empty and the
6661 // container exited with an error. The log output is limited to 2048 bytes or
6662 // 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
6663 terminationMessagePolicy?: string
6664
6665 // Whether this container should allocate a TTY for itself, also requires
6666 // 'stdin' to be true. Default is false.
6667 tty?: bool
6668
6669 // volumeDevices is the list of block devices to be used by the container.
6670 volumeDevices?: [...#."io.k8s.api.core.v1.VolumeDevice"]
6671
6672 // Pod volumes to mount into the container's filesystem. Cannot be updated.
6673 volumeMounts?: [...#."io.k8s.api.core.v1.VolumeMount"]
6674
6675 // Container's working directory. If not specified, the container runtime's
6676 // default will be used, which might be configured in the container image.
6677 // Cannot be updated.
6678 workingDir?: string
6679 }
6680
6681 // ContainerPort represents a network port in a single container.
6682 #: "io.k8s.api.core.v1.ContainerPort": {
6683 // Number of port to expose on the pod's IP address. This must be a valid port
6684 // number, 0 < x < 65536.
6685 containerPort!: int
6686
6687 // What host IP to bind the external port to.
6688 hostIP?: string
6689
6690 // Number of port to expose on the host. If specified, this must be a valid port
6691 // number, 0 < x < 65536. If HostNetwork is specified, this must match
6692 // ContainerPort. Most containers do not need this.
6693 hostPort?: int
6694
6695 // If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
6696 // named port in a pod must have a unique name. Name for the port that can be
6697 // referred to by services.
6698 name?: string
6699
6700 // Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP".
6701 protocol?: string
6702 }
6703
6704 // ContainerResizePolicy represents resource resize policy for the container.
6705 #: "io.k8s.api.core.v1.ContainerResizePolicy": {
6706 // Name of the resource to which this resource resize policy applies. Supported values: cpu, memory.
6707 resourceName!: string
6708
6709 // Restart policy to apply when specified resource is resized. If not specified,
6710 // it defaults to NotRequired.
6711 restartPolicy!: string
6712 }
6713
6714 // Represents downward API info for projecting into a projected volume. Note
6715 // that this is identical to a downwardAPI volume source without the default
6716 // mode.
6717 #: "io.k8s.api.core.v1.DownwardAPIProjection": {
6718 // Items is a list of DownwardAPIVolume file
6719 items?: [...#."io.k8s.api.core.v1.DownwardAPIVolumeFile"]
6720 }
6721
6722 // DownwardAPIVolumeFile represents information to create the file containing the pod field
6723 #: "io.k8s.api.core.v1.DownwardAPIVolumeFile": {
6724 // Required: Selects a field of the pod: only annotations, labels, name,
6725 // namespace and uid are supported.
6726 fieldRef?: #."io.k8s.api.core.v1.ObjectFieldSelector"
6727
6728 // Optional: mode bits used to set permissions on this file, must be an octal
6729 // value between 0000 and 0777 or a decimal value between 0 and 511. YAML
6730 // accepts both octal and decimal values, JSON requires decimal values for mode
6731 // bits. If not specified, the volume defaultMode will be used. This might be
6732 // in conflict with other options that affect the file mode, like fsGroup, and
6733 // the result can be other mode bits set.
6734 mode?: int
6735
6736 // Required: Path is the relative path name of the file to be created. Must not
6737 // be absolute or contain the '..' path. Must be utf-8 encoded. The first item
6738 // of the relative path must not start with '..'
6739 path!: string
6740
6741 // Selects a resource of the container: only resources limits and requests
6742 // (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently
6743 // supported.
6744 resourceFieldRef?: #."io.k8s.api.core.v1.ResourceFieldSelector"
6745 }
6746
6747 // DownwardAPIVolumeSource represents a volume containing downward API info.
6748 // Downward API volumes support ownership management and SELinux relabeling.
6749 #: "io.k8s.api.core.v1.DownwardAPIVolumeSource": {
6750 // Optional: mode bits to use on created files by default. Must be a Optional:
6751 // mode bits used to set permissions on created files by default. Must be an
6752 // octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML
6753 // accepts both octal and decimal values, JSON requires decimal values for mode
6754 // bits. Defaults to 0644. Directories within the path are not affected by this
6755 // setting. This might be in conflict with other options that affect the file
6756 // mode, like fsGroup, and the result can be other mode bits set.
6757 defaultMode?: int
6758
6759 // Items is a list of downward API volume file
6760 items?: [...#."io.k8s.api.core.v1.DownwardAPIVolumeFile"]
6761 }
6762
6763 // Represents an empty directory for a pod. Empty directory volumes support
6764 // ownership management and SELinux relabeling.
6765 #: "io.k8s.api.core.v1.EmptyDirVolumeSource": {
6766 // medium represents what type of storage medium should back this directory. The
6767 // default is "" which means to use the node's default medium. Must be an empty
6768 // string (default) or Memory. More info:
6769 // https://kubernetes.io/docs/concepts/storage/volumes#emptydir
6770 medium?: string
6771
6772 // sizeLimit is the total amount of local storage required for this EmptyDir
6773 // volume. The size limit is also applicable for memory medium. The maximum
6774 // usage on memory medium EmptyDir would be the minimum value between the
6775 // SizeLimit specified here and the sum of memory limits of all containers in a
6776 // pod. The default is nil which means that the limit is undefined. More info:
6777 // https://kubernetes.io/docs/concepts/storage/volumes#emptydir
6778 sizeLimit?: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
6779 }
6780
6781 // EnvFromSource represents the source of a set of ConfigMaps or Secrets
6782 #: "io.k8s.api.core.v1.EnvFromSource": {
6783 // The ConfigMap to select from
6784 configMapRef?: #."io.k8s.api.core.v1.ConfigMapEnvSource"
6785
6786 // Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
6787 prefix?: string
6788
6789 // The Secret to select from
6790 secretRef?: #."io.k8s.api.core.v1.SecretEnvSource"
6791 }
6792
6793 // EnvVar represents an environment variable present in a Container.
6794 #: "io.k8s.api.core.v1.EnvVar": {
6795 // Name of the environment variable. Must be a C_IDENTIFIER.
6796 name!: string
6797
6798 // Variable references $(VAR_NAME) are expanded using the previously defined
6799 // environment variables in the container and any service environment
6800 // variables. If a variable cannot be resolved, the reference in the input
6801 // string will be unchanged. Double $$ are reduced to a single $, which allows
6802 // for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
6803 // string literal "$(VAR_NAME)". Escaped references will never be expanded,
6804 // regardless of whether the variable exists or not. Defaults to "".
6805 value?: string
6806
6807 // Source for the environment variable's value. Cannot be used if value is not empty.
6808 valueFrom?: #."io.k8s.api.core.v1.EnvVarSource"
6809 }
6810
6811 // EnvVarSource represents a source for the value of an EnvVar.
6812 #: "io.k8s.api.core.v1.EnvVarSource": {
6813 // Selects a key of a ConfigMap.
6814 configMapKeyRef?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
6815
6816 // Selects a field of the pod: supports metadata.name, metadata.namespace,
6817 // `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`, spec.nodeName,
6818 // spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
6819 fieldRef?: #."io.k8s.api.core.v1.ObjectFieldSelector"
6820
6821 // Selects a resource of the container: only resources limits and requests
6822 // (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu,
6823 // requests.memory and requests.ephemeral-storage) are currently supported.
6824 resourceFieldRef?: #."io.k8s.api.core.v1.ResourceFieldSelector"
6825
6826 // Selects a key of a secret in the pod's namespace
6827 secretKeyRef?: #."io.k8s.api.core.v1.SecretKeySelector"
6828 }
6829
6830 // Represents an ephemeral volume that is handled by a normal storage driver.
6831 #: "io.k8s.api.core.v1.EphemeralVolumeSource": {
6832 // Will be used to create a stand-alone PVC to provision the volume. The pod in
6833 // which this EphemeralVolumeSource is embedded will be the owner of the PVC,
6834 // i.e. the PVC will be deleted together with the pod. The name of the PVC will
6835 // be `<pod name>-<volume name>` where `<volume name>` is the name from the
6836 // `PodSpec.Volumes` array entry. Pod validation will reject the pod if the
6837 // concatenated name is not valid for a PVC (for example, too long).
6838 //
6839 // An existing PVC with that name that is not owned by the pod will *not* be
6840 // used for the pod to avoid using an unrelated volume by mistake. Starting the
6841 // pod is then blocked until the unrelated PVC is removed. If such a
6842 // pre-created PVC is meant to be used by the pod, the PVC has to updated with
6843 // an owner reference to the pod once the pod exists. Normally this should not
6844 // be necessary, but it may be useful when manually reconstructing a broken
6845 // cluster.
6846 //
6847 // This field is read-only and no changes will be made by Kubernetes to the PVC
6848 // after it has been created.
6849 //
6850 // Required, must not be nil.
6851 volumeClaimTemplate?: #."io.k8s.api.core.v1.PersistentVolumeClaimTemplate"
6852 }
6853
6854 // Event is a report of an event somewhere in the cluster. Events have a limited
6855 // retention time and triggers and messages may evolve with time. Event
6856 // consumers should not rely on the timing of an event with a given Reason
6857 // reflecting a consistent underlying trigger, or the continued existence of
6858 // events with that Reason. Events should be treated as informative,
6859 // best-effort, supplemental data.
6860 #: "io.k8s.api.core.v1.Event": {
6861 // What action was taken/failed regarding to the Regarding object.
6862 action?: string
6863
6864 // APIVersion defines the versioned schema of this representation of an object.
6865 // Servers should convert recognized schemas to the latest internal value, and
6866 // may reject unrecognized values. More info:
6867 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
6868 apiVersion?: string
6869
6870 // The number of times this event has occurred.
6871 count?: int
6872
6873 // Time when this Event was first observed.
6874 eventTime?: #."io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime"
6875
6876 // The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
6877 firstTimestamp?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
6878
6879 // The object that this event is about.
6880 involvedObject!: #."io.k8s.api.core.v1.ObjectReference"
6881
6882 // Kind is a string value representing the REST resource this object represents.
6883 // Servers may infer this from the endpoint the client submits requests to.
6884 // Cannot be updated. In CamelCase. More info:
6885 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
6886 kind?: string
6887
6888 // The time at which the most recent occurrence of this event was recorded.
6889 lastTimestamp?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
6890
6891 // A human-readable description of the status of this operation.
6892 message?: string
6893
6894 // Standard object's metadata. More info:
6895 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
6896 metadata!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
6897
6898 // This should be a short, machine understandable string that gives the reason
6899 // for the transition into the object's current status.
6900 reason?: string
6901
6902 // Optional secondary object for more complex actions.
6903 related?: #."io.k8s.api.core.v1.ObjectReference"
6904
6905 // Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
6906 reportingComponent?: string
6907
6908 // ID of the controller instance, e.g. `kubelet-xyzf`.
6909 reportingInstance?: string
6910
6911 // Data about the Event series this event represents or nil if it's a singleton Event.
6912 series?: #."io.k8s.api.core.v1.EventSeries"
6913
6914 // The component reporting this event. Should be a short machine understandable string.
6915 source?: #."io.k8s.api.core.v1.EventSource"
6916
6917 // Type of this event (Normal, Warning), new types could be added in the future
6918 type?: string
6919 }
6920
6921 // EventSeries contain information on series of events, i.e. thing that was/is
6922 // happening continuously for some time.
6923 #: "io.k8s.api.core.v1.EventSeries": {
6924 // Number of occurrences in this series up to the last heartbeat time
6925 count?: int
6926
6927 // Time of the last occurrence observed
6928 lastObservedTime?: #."io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime"
6929 }
6930
6931 // EventSource contains information for an event.
6932 #: "io.k8s.api.core.v1.EventSource": {
6933 // Component from which the event is generated.
6934 component?: string
6935
6936 // Node name on which the event is generated.
6937 host?: string
6938 }
6939
6940 // ExecAction describes a "run in container" action.
6941 #: "io.k8s.api.core.v1.ExecAction": {
6942 // Command is the command line to execute inside the container, the working
6943 // directory for the command is root ('/') in the container's filesystem. The
6944 // command is simply exec'd, it is not run inside a shell, so traditional shell
6945 // instructions ('|', etc) won't work. To use a shell, you need to explicitly
6946 // call out to that shell. Exit status of 0 is treated as live/healthy and
6947 // non-zero is unhealthy.
6948 command?: [...string]
6949 }
6950
6951 // Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted
6952 // as read/write once. Fibre Channel volumes support ownership management and
6953 // SELinux relabeling.
6954 #: "io.k8s.api.core.v1.FCVolumeSource": {
6955 // fsType is the filesystem type to mount. Must be a filesystem type supported
6956 // by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred
6957 // to be "ext4" if unspecified.
6958 fsType?: string
6959
6960 // lun is Optional: FC target lun number
6961 lun?: int
6962
6963 // readOnly is Optional: Defaults to false (read/write). ReadOnly here will
6964 // force the ReadOnly setting in VolumeMounts.
6965 readOnly?: bool
6966
6967 // targetWWNs is Optional: FC target worldwide names (WWNs)
6968 targetWWNs?: [...string]
6969
6970 // wwids Optional: FC volume world wide identifiers (wwids) Either wwids or
6971 // combination of targetWWNs and lun must be set, but not both simultaneously.
6972 wwids?: [...string]
6973 }
6974
6975 // FlexVolume represents a generic volume resource that is provisioned/attached
6976 // using an exec based plugin.
6977 #: "io.k8s.api.core.v1.FlexVolumeSource": {
6978 // driver is the name of the driver to use for this volume.
6979 driver!: string
6980
6981 // fsType is the filesystem type to mount. Must be a filesystem type supported
6982 // by the host operating system. Ex. "ext4", "xfs", "ntfs". The default
6983 // filesystem depends on FlexVolume script.
6984 fsType?: string
6985
6986 // options is Optional: this field holds extra command options if any.
6987 options?: [string]: string
6988
6989 // readOnly is Optional: defaults to false (read/write). ReadOnly here will
6990 // force the ReadOnly setting in VolumeMounts.
6991 readOnly?: bool
6992
6993 // secretRef is Optional: secretRef is reference to the secret object containing
6994 // sensitive information to pass to the plugin scripts. This may be empty if no
6995 // secret object is specified. If the secret object contains more than one
6996 // secret, all secrets are passed to the plugin scripts.
6997 secretRef?: #."io.k8s.api.core.v1.LocalObjectReference"
6998 }
6999
7000 // Represents a Flocker volume mounted by the Flocker agent. One and only one of
7001 // datasetName and datasetUUID should be set. Flocker volumes do not support
7002 // ownership management or SELinux relabeling.
7003 #: "io.k8s.api.core.v1.FlockerVolumeSource": {
7004 // datasetName is Name of the dataset stored as metadata -> name on the dataset
7005 // for Flocker should be considered as deprecated
7006 datasetName?: string
7007
7008 // datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset
7009 datasetUUID?: string
7010 }
7011
7012 // Represents a Persistent Disk resource in Google Compute Engine.
7013 //
7014 // A GCE PD must exist before mounting to a container. The disk must also be in
7015 // the same GCE project and zone as the kubelet. A GCE PD can only be mounted
7016 // as read/write once or read-only many times. GCE PDs support ownership
7017 // management and SELinux relabeling.
7018 #: "io.k8s.api.core.v1.GCEPersistentDiskVolumeSource": {
7019 // fsType is filesystem type of the volume that you want to mount. Tip: Ensure
7020 // that the filesystem type is supported by the host operating system.
7021 // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
7022 // unspecified. More info:
7023 // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
7024 fsType?: string
7025
7026 // partition is the partition in the volume that you want to mount. If omitted,
7027 // the default is to mount by volume name. Examples: For volume /dev/sda1, you
7028 // specify the partition as "1". Similarly, the volume partition for /dev/sda
7029 // is "0" (or you can leave the property empty). More info:
7030 // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
7031 partition?: int
7032
7033 // pdName is unique name of the PD resource in GCE. Used to identify the disk in
7034 // GCE. More info:
7035 // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
7036 pdName!: string
7037
7038 // readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to
7039 // false. More info:
7040 // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
7041 readOnly?: bool
7042 }
7043
7044 // GRPCAction specifies an action involving a GRPC service.
7045 #: "io.k8s.api.core.v1.GRPCAction": {
7046 // Port number of the gRPC service. Number must be in the range 1 to 65535.
7047 port!: int
7048
7049 // Service is the name of the service to place in the gRPC HealthCheckRequest
7050 // (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
7051 //
7052 // If this is not specified, the default behavior is defined by gRPC.
7053 service?: string
7054 }
7055
7056 // Represents a volume that is populated with the contents of a git repository.
7057 // Git repo volumes do not support ownership management. Git repo volumes
7058 // support SELinux relabeling.
7059 //
7060 // DEPRECATED: GitRepo is deprecated. To provision a container with a git repo,
7061 // mount an EmptyDir into an InitContainer that clones the repo using git, then
7062 // mount the EmptyDir into the Pod's container.
7063 #: "io.k8s.api.core.v1.GitRepoVolumeSource": {
7064 // directory is the target directory name. Must not contain or start with '..'.
7065 // If '.' is supplied, the volume directory will be the git repository.
7066 // Otherwise, if specified, the volume will contain the git repository in the
7067 // subdirectory with the given name.
7068 directory?: string
7069
7070 // repository is the URL
7071 repository!: string
7072
7073 // revision is the commit hash for the specified revision.
7074 revision?: string
7075 }
7076
7077 // Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs
7078 // volumes do not support ownership management or SELinux relabeling.
7079 #: "io.k8s.api.core.v1.GlusterfsVolumeSource": {
7080 // endpoints is the endpoint name that details Glusterfs topology. More info:
7081 // https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
7082 endpoints!: string
7083
7084 // path is the Glusterfs volume path. More info:
7085 // https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
7086 path!: string
7087
7088 // readOnly here will force the Glusterfs volume to be mounted with read-only
7089 // permissions. Defaults to false. More info:
7090 // https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
7091 readOnly?: bool
7092 }
7093
7094 // HTTPGetAction describes an action based on HTTP Get requests.
7095 #: "io.k8s.api.core.v1.HTTPGetAction": {
7096 // Host name to connect to, defaults to the pod IP. You probably want to set
7097 // "Host" in httpHeaders instead.
7098 host?: string
7099
7100 // Custom headers to set in the request. HTTP allows repeated headers.
7101 httpHeaders?: [...#."io.k8s.api.core.v1.HTTPHeader"]
7102
7103 // Path to access on the HTTP server.
7104 path?: string
7105
7106 // Name or number of the port to access on the container. Number must be in the
7107 // range 1 to 65535. Name must be an IANA_SVC_NAME.
7108 port!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
7109
7110 // Scheme to use for connecting to the host. Defaults to HTTP.
7111 scheme?: string
7112 }
7113
7114 // HTTPHeader describes a custom header to be used in HTTP probes
7115 #: "io.k8s.api.core.v1.HTTPHeader": {
7116 // The header field name. This will be canonicalized upon output, so
7117 // case-variant names will be understood as the same header.
7118 name!: string
7119
7120 // The header field value
7121 value!: string
7122 }
7123
7124 // HostAlias holds the mapping between IP and hostnames that will be injected as
7125 // an entry in the pod's hosts file.
7126 #: "io.k8s.api.core.v1.HostAlias": {
7127 // Hostnames for the above IP address.
7128 hostnames?: [...string]
7129
7130 // IP address of the host file entry.
7131 ip!: string
7132 }
7133
7134 // Represents a host path mapped into a pod. Host path volumes do not support
7135 // ownership management or SELinux relabeling.
7136 #: "io.k8s.api.core.v1.HostPathVolumeSource": {
7137 // path of the directory on the host. If the path is a symlink, it will follow
7138 // the link to the real path. More info:
7139 // https://kubernetes.io/docs/concepts/storage/volumes#hostpath
7140 path!: string
7141
7142 // type for HostPath Volume Defaults to "" More info:
7143 // https://kubernetes.io/docs/concepts/storage/volumes#hostpath
7144 type?: string
7145 }
7146
7147 // Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write
7148 // once. ISCSI volumes support ownership management and SELinux relabeling.
7149 #: "io.k8s.api.core.v1.ISCSIVolumeSource": {
7150 // chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication
7151 chapAuthDiscovery?: bool
7152
7153 // chapAuthSession defines whether support iSCSI Session CHAP authentication
7154 chapAuthSession?: bool
7155
7156 // fsType is the filesystem type of the volume that you want to mount. Tip:
7157 // Ensure that the filesystem type is supported by the host operating system.
7158 // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
7159 // unspecified. More info:
7160 // https://kubernetes.io/docs/concepts/storage/volumes#iscsi
7161 fsType?: string
7162
7163 // initiatorName is the custom iSCSI Initiator Name. If initiatorName is
7164 // specified with iscsiInterface simultaneously, new iSCSI interface <target
7165 // portal>:<volume name> will be created for the connection.
7166 initiatorName?: string
7167
7168 // iqn is the target iSCSI Qualified Name.
7169 iqn!: string
7170
7171 // iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).
7172 iscsiInterface?: string
7173
7174 // lun represents iSCSI Target Lun number.
7175 lun!: int
7176
7177 // portals is the iSCSI Target Portal List. The portal is either an IP or
7178 // ip_addr:port if the port is other than default (typically TCP ports 860 and
7179 // 3260).
7180 portals?: [...string]
7181
7182 // readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.
7183 readOnly?: bool
7184
7185 // secretRef is the CHAP Secret for iSCSI target and initiator authentication
7186 secretRef?: #."io.k8s.api.core.v1.LocalObjectReference"
7187
7188 // targetPortal is iSCSI Target Portal. The Portal is either an IP or
7189 // ip_addr:port if the port is other than default (typically TCP ports 860 and
7190 // 3260).
7191 targetPortal!: string
7192 }
7193
7194 // ImageVolumeSource represents a image volume resource.
7195 #: "io.k8s.api.core.v1.ImageVolumeSource": {
7196 // Policy for pulling OCI objects. Possible values are: Always: the kubelet
7197 // always attempts to pull the reference. Container creation will fail If the
7198 // pull fails. Never: the kubelet never pulls the reference and only uses a
7199 // local image or artifact. Container creation will fail if the reference isn't
7200 // present. IfNotPresent: the kubelet pulls if the reference isn't already
7201 // present on disk. Container creation will fail if the reference isn't present
7202 // and the pull fails. Defaults to Always if :latest tag is specified, or
7203 // IfNotPresent otherwise.
7204 pullPolicy?: string
7205
7206 // Required: Image or artifact reference to be used. Behaves in the same way as
7207 // pod.spec.containers[*].image. Pull secrets will be assembled in the same way
7208 // as for the container image by looking up node credentials, SA image pull
7209 // secrets, and pod spec image pull secrets. More info:
7210 // https://kubernetes.io/docs/concepts/containers/images This field is optional
7211 // to allow higher level config management to default or override container
7212 // images in workload controllers like Deployments and StatefulSets.
7213 reference?: string
7214 }
7215
7216 // Maps a string key to a path within a volume.
7217 #: "io.k8s.api.core.v1.KeyToPath": {
7218 // key is the key to project.
7219 key!: string
7220
7221 // mode is Optional: mode bits used to set permissions on this file. Must be an
7222 // octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML
7223 // accepts both octal and decimal values, JSON requires decimal values for mode
7224 // bits. If not specified, the volume defaultMode will be used. This might be
7225 // in conflict with other options that affect the file mode, like fsGroup, and
7226 // the result can be other mode bits set.
7227 mode?: int
7228
7229 // path is the relative path of the file to map the key to. May not be an
7230 // absolute path. May not contain the path element '..'. May not start with the
7231 // string '..'.
7232 path!: string
7233 }
7234
7235 // Lifecycle describes actions that the management system should take in
7236 // response to container lifecycle events. For the PostStart and PreStop
7237 // lifecycle handlers, management of the container blocks until the action is
7238 // complete, unless the container process fails, in which case the handler is
7239 // aborted.
7240 #: "io.k8s.api.core.v1.Lifecycle": {
7241 // PostStart is called immediately after a container is created. If the handler
7242 // fails, the container is terminated and restarted according to its restart
7243 // policy. Other management of the container blocks until the hook completes.
7244 // More info:
7245 // https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
7246 postStart?: #."io.k8s.api.core.v1.LifecycleHandler"
7247
7248 // PreStop is called immediately before a container is terminated due to an API
7249 // request or management event such as liveness/startup probe failure,
7250 // preemption, resource contention, etc. The handler is not called if the
7251 // container crashes or exits. The Pod's termination grace period countdown
7252 // begins before the PreStop hook is executed. Regardless of the outcome of the
7253 // handler, the container will eventually terminate within the Pod's
7254 // termination grace period (unless delayed by finalizers). Other management of
7255 // the container blocks until the hook completes or until the termination grace
7256 // period is reached. More info:
7257 // https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
7258 preStop?: #."io.k8s.api.core.v1.LifecycleHandler"
7259
7260 // StopSignal defines which signal will be sent to a container when it is being
7261 // stopped. If not specified, the default is defined by the container runtime
7262 // in use. StopSignal can only be set for Pods with a non-empty .spec.os.name
7263 stopSignal?: string
7264 }
7265
7266 // LifecycleHandler defines a specific action that should be taken in a
7267 // lifecycle hook. One and only one of the fields, except TCPSocket must be
7268 // specified.
7269 #: "io.k8s.api.core.v1.LifecycleHandler": {
7270 // Exec specifies a command to execute in the container.
7271 exec?: #."io.k8s.api.core.v1.ExecAction"
7272
7273 // HTTPGet specifies an HTTP GET request to perform.
7274 httpGet?: #."io.k8s.api.core.v1.HTTPGetAction"
7275
7276 // Sleep represents a duration that the container should sleep.
7277 sleep?: #."io.k8s.api.core.v1.SleepAction"
7278
7279 // Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for
7280 // backward compatibility. There is no validation of this field and lifecycle
7281 // hooks will fail at runtime when it is specified.
7282 tcpSocket?: #."io.k8s.api.core.v1.TCPSocketAction"
7283 }
7284
7285 // LocalObjectReference contains enough information to let you locate the
7286 // referenced object inside the same namespace.
7287 #: "io.k8s.api.core.v1.LocalObjectReference": {
7288 // Name of the referent. This field is effectively required, but due to
7289 // backwards compatibility is allowed to be empty. Instances of this type with
7290 // an empty value here are almost certainly wrong. More info:
7291 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7292 name?: string
7293 }
7294
7295 // ModifyVolumeStatus represents the status object of ControllerModifyVolume operation
7296 #: "io.k8s.api.core.v1.ModifyVolumeStatus": {
7297 // status is the status of the ControllerModifyVolume operation. It can be in
7298 // any of following states:
7299 // - Pending
7300 // Pending indicates that the PersistentVolumeClaim cannot be modified due to
7301 // unmet requirements, such as
7302 // the specified VolumeAttributesClass not existing.
7303 // - InProgress
7304 // InProgress indicates that the volume is being modified.
7305 // - Infeasible
7306 // Infeasible indicates that the request has been rejected as invalid by the CSI driver. To
7307 // resolve the error, a valid VolumeAttributesClass needs to be specified.
7308 // Note: New statuses can be added in the future. Consumers should check for
7309 // unknown statuses and fail appropriately.
7310 status!: string
7311
7312 // targetVolumeAttributesClassName is the name of the VolumeAttributesClass the
7313 // PVC currently being reconciled
7314 targetVolumeAttributesClassName?: string
7315 }
7316
7317 // Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not
7318 // support ownership management or SELinux relabeling.
7319 #: "io.k8s.api.core.v1.NFSVolumeSource": {
7320 // path that is exported by the NFS server. More info:
7321 // https://kubernetes.io/docs/concepts/storage/volumes#nfs
7322 path!: string
7323
7324 // readOnly here will force the NFS export to be mounted with read-only
7325 // permissions. Defaults to false. More info:
7326 // https://kubernetes.io/docs/concepts/storage/volumes#nfs
7327 readOnly?: bool
7328
7329 // server is the hostname or IP address of the NFS server. More info:
7330 // https://kubernetes.io/docs/concepts/storage/volumes#nfs
7331 server!: string
7332 }
7333
7334 // Node affinity is a group of node affinity scheduling rules.
7335 #: "io.k8s.api.core.v1.NodeAffinity": {
7336 // The scheduler will prefer to schedule pods to nodes that satisfy the affinity
7337 // expressions specified by this field, but it may choose a node that violates
7338 // one or more of the expressions. The node that is most preferred is the one
7339 // with the greatest sum of weights, i.e. for each node that meets all of the
7340 // scheduling requirements (resource request, requiredDuringScheduling affinity
7341 // expressions, etc.), compute a sum by iterating through the elements of this
7342 // field and adding "weight" to the sum if the node matches the corresponding
7343 // matchExpressions; the node(s) with the highest sum are the most preferred.
7344 preferredDuringSchedulingIgnoredDuringExecution?: [...#."io.k8s.api.core.v1.PreferredSchedulingTerm"]
7345
7346 // If the affinity requirements specified by this field are not met at
7347 // scheduling time, the pod will not be scheduled onto the node. If the
7348 // affinity requirements specified by this field cease to be met at some point
7349 // during pod execution (e.g. due to an update), the system may or may not try
7350 // to eventually evict the pod from its node.
7351 requiredDuringSchedulingIgnoredDuringExecution?: #."io.k8s.api.core.v1.NodeSelector"
7352 }
7353
7354 // A node selector represents the union of the results of one or more label
7355 // queries over a set of nodes; that is, it represents the OR of the selectors
7356 // represented by the node selector terms.
7357 #: "io.k8s.api.core.v1.NodeSelector": {
7358 // Required. A list of node selector terms. The terms are ORed.
7359 nodeSelectorTerms!: [...#."io.k8s.api.core.v1.NodeSelectorTerm"]
7360 }
7361
7362 // A node selector requirement is a selector that contains values, a key, and an
7363 // operator that relates the key and values.
7364 #: "io.k8s.api.core.v1.NodeSelectorRequirement": {
7365 // The label key that the selector applies to.
7366 key!: string
7367
7368 // Represents a key's relationship to a set of values. Valid operators are In,
7369 // NotIn, Exists, DoesNotExist. Gt, and Lt.
7370 operator!: string
7371
7372 // An array of string values. If the operator is In or NotIn, the values array
7373 // must be non-empty. If the operator is Exists or DoesNotExist, the values
7374 // array must be empty. If the operator is Gt or Lt, the values array must have
7375 // a single element, which will be interpreted as an integer. This array is
7376 // replaced during a strategic merge patch.
7377 values?: [...string]
7378 }
7379
7380 // A null or empty node selector term matches no objects. The requirements of
7381 // them are ANDed. The TopologySelectorTerm type implements a subset of the
7382 // NodeSelectorTerm.
7383 #: "io.k8s.api.core.v1.NodeSelectorTerm": {
7384 // A list of node selector requirements by node's labels.
7385 matchExpressions?: [...#."io.k8s.api.core.v1.NodeSelectorRequirement"]
7386
7387 // A list of node selector requirements by node's fields.
7388 matchFields?: [...#."io.k8s.api.core.v1.NodeSelectorRequirement"]
7389 }
7390
7391 // ObjectFieldSelector selects an APIVersioned field of an object.
7392 #: "io.k8s.api.core.v1.ObjectFieldSelector": {
7393 // Version of the schema the FieldPath is written in terms of, defaults to "v1".
7394 apiVersion?: string
7395
7396 // Path of the field to select in the specified API version.
7397 fieldPath!: string
7398 }
7399
7400 // ObjectReference contains enough information to let you inspect or modify the referred object.
7401 #: "io.k8s.api.core.v1.ObjectReference": {
7402 // API version of the referent.
7403 apiVersion?: string
7404
7405 // If referring to a piece of an object instead of an entire object, this string
7406 // should contain a valid JSON/Go field access statement, such as
7407 // desiredState.manifest.containers[2]. For example, if the object reference is
7408 // to a container within a pod, this would take on a value like:
7409 // "spec.containers{name}" (where "name" refers to the name of the container
7410 // that triggered the event) or if no container name is specified
7411 // "spec.containers[2]" (container with index 2 in this pod). This syntax is
7412 // chosen only to have some well-defined way of referencing a part of an
7413 // object.
7414 fieldPath?: string
7415
7416 // Kind of the referent. More info:
7417 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
7418 kind?: string
7419
7420 // Name of the referent. More info:
7421 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7422 name?: string
7423
7424 // Namespace of the referent. More info:
7425 // https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
7426 namespace?: string
7427
7428 // Specific resourceVersion to which this reference is made, if any. More info:
7429 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
7430 resourceVersion?: string
7431
7432 // UID of the referent. More info:
7433 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
7434 uid?: string
7435 }
7436
7437 // PersistentVolumeClaim is a user's request for and claim to a persistent volume
7438 #: "io.k8s.api.core.v1.PersistentVolumeClaim": {
7439 // APIVersion defines the versioned schema of this representation of an object.
7440 // Servers should convert recognized schemas to the latest internal value, and
7441 // may reject unrecognized values. More info:
7442 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
7443 apiVersion?: string
7444
7445 // Kind is a string value representing the REST resource this object represents.
7446 // Servers may infer this from the endpoint the client submits requests to.
7447 // Cannot be updated. In CamelCase. More info:
7448 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
7449 kind?: string
7450
7451 // Standard object's metadata. More info:
7452 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
7453 metadata?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
7454
7455 // spec defines the desired characteristics of a volume requested by a pod
7456 // author. More info:
7457 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
7458 spec?: #."io.k8s.api.core.v1.PersistentVolumeClaimSpec"
7459
7460 // status represents the current information/status of a persistent volume
7461 // claim. Read-only. More info:
7462 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
7463 status?: #."io.k8s.api.core.v1.PersistentVolumeClaimStatus"
7464 }
7465
7466 // PersistentVolumeClaimCondition contains details about state of pvc
7467 #: "io.k8s.api.core.v1.PersistentVolumeClaimCondition": {
7468 // lastProbeTime is the time we probed the condition.
7469 lastProbeTime?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
7470
7471 // lastTransitionTime is the time the condition transitioned from one status to another.
7472 lastTransitionTime?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
7473
7474 // message is the human-readable message indicating details about last transition.
7475 message?: string
7476
7477 // reason is a unique, this should be a short, machine understandable string
7478 // that gives the reason for condition's last transition. If it reports
7479 // "Resizing" that means the underlying persistent volume is being resized.
7480 reason?: string
7481
7482 // Status is the status of the condition. Can be True, False, Unknown. More
7483 // info:
7484 // https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required
7485 status!: string
7486
7487 // Type is the type of the condition. More info:
7488 // 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
7489 type!: string
7490 }
7491
7492 // PersistentVolumeClaimSpec describes the common attributes of storage devices
7493 // and allows a Source for provider-specific attributes
7494 #: "io.k8s.api.core.v1.PersistentVolumeClaimSpec": {
7495 // accessModes contains the desired access modes the volume should have. More
7496 // info:
7497 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
7498 accessModes?: [...string]
7499
7500 // dataSource field can be used to specify either: * An existing VolumeSnapshot
7501 // object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC
7502 // (PersistentVolumeClaim) If the provisioner or an external controller can
7503 // support the specified data source, it will create a new volume based on the
7504 // contents of the specified data source. When the AnyVolumeDataSource feature
7505 // gate is enabled, dataSource contents will be copied to dataSourceRef, and
7506 // dataSourceRef contents will be copied to dataSource when
7507 // dataSourceRef.namespace is not specified. If the namespace is specified,
7508 // then dataSourceRef will not be copied to dataSource.
7509 dataSource?: #."io.k8s.api.core.v1.TypedLocalObjectReference"
7510
7511 // dataSourceRef specifies the object from which to populate the volume with
7512 // data, if a non-empty volume is desired. This may be any object from a
7513 // non-empty API group (non core object) or a PersistentVolumeClaim object.
7514 // When this field is specified, volume binding will only succeed if the type
7515 // of the specified object matches some installed volume populator or dynamic
7516 // provisioner. This field will replace the functionality of the dataSource
7517 // field and as such if both fields are non-empty, they must have the same
7518 // value. For backwards compatibility, when namespace isn't specified in
7519 // dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the
7520 // same value automatically if one of them is empty and the other is non-empty.
7521 // When namespace is specified in dataSourceRef, dataSource isn't set to the
7522 // same value and must be empty. There are three important differences between
7523 // dataSource and dataSourceRef: * While dataSource only allows two specific
7524 // types of objects, dataSourceRef
7525 // allows any non-core object, as well as PersistentVolumeClaim objects.
7526 // * While dataSource ignores disallowed values (dropping them), dataSourceRef
7527 // preserves all values, and generates an error if a disallowed value is
7528 // specified.
7529 // * While dataSource only allows local objects, dataSourceRef allows objects
7530 // in any namespaces.
7531 // (Beta) Using this field requires the AnyVolumeDataSource feature gate to be
7532 // enabled. (Alpha) Using the namespace field of dataSourceRef requires the
7533 // CrossNamespaceVolumeDataSource feature gate to be enabled.
7534 dataSourceRef?: #."io.k8s.api.core.v1.TypedObjectReference"
7535
7536 // resources represents the minimum resources the volume should have. If
7537 // RecoverVolumeExpansionFailure feature is enabled users are allowed to
7538 // specify resource requirements that are lower than previous value but must
7539 // still be higher than capacity recorded in the status field of the claim.
7540 // More info:
7541 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
7542 resources?: #."io.k8s.api.core.v1.VolumeResourceRequirements"
7543
7544 // selector is a label query over volumes to consider for binding.
7545 selector?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
7546
7547 // storageClassName is the name of the StorageClass required by the claim. More
7548 // info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
7549 storageClassName?: string
7550
7551 // volumeAttributesClassName may be used to set the VolumeAttributesClass used
7552 // by this claim. If specified, the CSI driver will create or update the volume
7553 // with the attributes defined in the corresponding VolumeAttributesClass. This
7554 // has a different purpose than storageClassName, it can be changed after the
7555 // claim is created. An empty string value means that no VolumeAttributesClass
7556 // will be applied to the claim but it's not allowed to reset this field to
7557 // empty string once it is set. If unspecified and the PersistentVolumeClaim is
7558 // unbound, the default VolumeAttributesClass will be set by the
7559 // persistentvolume controller if it exists. If the resource referred to by
7560 // volumeAttributesClass does not exist, this PersistentVolumeClaim will be set
7561 // to a Pending state, as reflected by the modifyVolumeStatus field, until such
7562 // as a resource exists. More info:
7563 // https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
7564 // (Beta) Using this field requires the VolumeAttributesClass feature gate to
7565 // be enabled (off by default).
7566 volumeAttributesClassName?: string
7567
7568 // volumeMode defines what type of volume is required by the claim. Value of
7569 // Filesystem is implied when not included in claim spec.
7570 volumeMode?: string
7571
7572 // volumeName is the binding reference to the PersistentVolume backing this claim.
7573 volumeName?: string
7574 }
7575
7576 // PersistentVolumeClaimStatus is the current status of a persistent volume claim.
7577 #: "io.k8s.api.core.v1.PersistentVolumeClaimStatus": {
7578 // accessModes contains the actual access modes the volume backing the PVC has.
7579 // More info:
7580 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
7581 accessModes?: [...string]
7582
7583 // allocatedResourceStatuses stores status of resource being resized for the
7584 // given PVC. Key names follow standard Kubernetes label syntax. Valid values
7585 // are either:
7586 // * Un-prefixed keys:
7587 // - storage - the capacity of the volume.
7588 // * Custom resources must use implementation-defined prefixed names such as
7589 // "example.com/my-custom-resource"
7590 // Apart from above values - keys that are unprefixed or have kubernetes.io
7591 // prefix are considered reserved and hence may not be used.
7592 //
7593 // ClaimResourceStatus can be in any of following states:
7594 // - ControllerResizeInProgress:
7595 // State set when resize controller starts resizing the volume in control-plane.
7596 // - ControllerResizeFailed:
7597 // State set when resize has failed in resize controller with a terminal error.
7598 // - NodeResizePending:
7599 // State set when resize controller has finished resizing the volume but further resizing of
7600 // volume is needed on the node.
7601 // - NodeResizeInProgress:
7602 // State set when kubelet starts resizing the volume.
7603 // - NodeResizeFailed:
7604 // State set when resizing has failed in kubelet with a terminal error. Transient errors don't set
7605 // NodeResizeFailed.
7606 // For example: if expanding a PVC for more capacity - this field can be one of
7607 // the following states:
7608 // - pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeInProgress"
7609 // - pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeFailed"
7610 // - pvc.status.allocatedResourceStatus['storage'] = "NodeResizePending"
7611 // - pvc.status.allocatedResourceStatus['storage'] = "NodeResizeInProgress"
7612 // - pvc.status.allocatedResourceStatus['storage'] = "NodeResizeFailed"
7613 // When this field is not set, it means that no resize operation is in progress for the given PVC.
7614 //
7615 // A controller that receives PVC update with previously unknown resourceName or
7616 // ClaimResourceStatus should ignore the update for the purpose it was
7617 // designed. For example - a controller that only is responsible for resizing
7618 // capacity of the volume, should ignore PVC updates that change other valid
7619 // resources associated with PVC.
7620 //
7621 // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
7622 allocatedResourceStatuses?: [string]: string
7623
7624 // allocatedResources tracks the resources allocated to a PVC including its
7625 // capacity. Key names follow standard Kubernetes label syntax. Valid values
7626 // are either:
7627 // * Un-prefixed keys:
7628 // - storage - the capacity of the volume.
7629 // * Custom resources must use implementation-defined prefixed names such as
7630 // "example.com/my-custom-resource"
7631 // Apart from above values - keys that are unprefixed or have kubernetes.io
7632 // prefix are considered reserved and hence may not be used.
7633 //
7634 // Capacity reported here may be larger than the actual capacity when a volume
7635 // expansion operation is requested. For storage quota, the larger value from
7636 // allocatedResources and PVC.spec.resources is used. If allocatedResources is
7637 // not set, PVC.spec.resources alone is used for quota calculation. If a volume
7638 // expansion capacity request is lowered, allocatedResources is only lowered if
7639 // there are no expansion operations in progress and if the actual volume
7640 // capacity is equal or lower than the requested capacity.
7641 //
7642 // A controller that receives PVC update with previously unknown resourceName
7643 // should ignore the update for the purpose it was designed. For example - a
7644 // controller that only is responsible for resizing capacity of the volume,
7645 // should ignore PVC updates that change other valid resources associated with
7646 // PVC.
7647 //
7648 // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
7649 allocatedResources?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
7650
7651 // capacity represents the actual resources of the underlying volume.
7652 capacity?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
7653
7654 // conditions is the current Condition of persistent volume claim. If underlying
7655 // persistent volume is being resized then the Condition will be set to
7656 // 'Resizing'.
7657 conditions?: [...#."io.k8s.api.core.v1.PersistentVolumeClaimCondition"]
7658
7659 // currentVolumeAttributesClassName is the current name of the
7660 // VolumeAttributesClass the PVC is using. When unset, there is no
7661 // VolumeAttributeClass applied to this PersistentVolumeClaim This is a beta
7662 // field and requires enabling VolumeAttributesClass feature (off by default).
7663 currentVolumeAttributesClassName?: string
7664
7665 // ModifyVolumeStatus represents the status object of ControllerModifyVolume
7666 // operation. When this is unset, there is no ModifyVolume operation being
7667 // attempted. This is a beta field and requires enabling VolumeAttributesClass
7668 // feature (off by default).
7669 modifyVolumeStatus?: #."io.k8s.api.core.v1.ModifyVolumeStatus"
7670
7671 // phase represents the current phase of PersistentVolumeClaim.
7672 phase?: string
7673 }
7674
7675 // PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim
7676 // objects as part of an EphemeralVolumeSource.
7677 #: "io.k8s.api.core.v1.PersistentVolumeClaimTemplate": {
7678 // May contain labels and annotations that will be copied into the PVC when
7679 // creating it. No other fields are allowed and will be rejected during
7680 // validation.
7681 metadata?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
7682
7683 // The specification for the PersistentVolumeClaim. The entire content is copied
7684 // unchanged into the PVC that gets created from this template. The same fields
7685 // as in a PersistentVolumeClaim are also valid here.
7686 spec!: #."io.k8s.api.core.v1.PersistentVolumeClaimSpec"
7687 }
7688
7689 // PersistentVolumeClaimVolumeSource references the user's PVC in the same
7690 // namespace. This volume finds the bound PV and mounts that volume for the
7691 // pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around
7692 // another type of volume that is owned by someone else (the system).
7693 #: "io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource": {
7694 // claimName is the name of a PersistentVolumeClaim in the same namespace as the
7695 // pod using this volume. More info:
7696 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
7697 claimName!: string
7698
7699 // readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
7700 readOnly?: bool
7701 }
7702
7703 // Represents a Photon Controller persistent disk resource.
7704 #: "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": {
7705 // fsType is the filesystem type to mount. Must be a filesystem type supported
7706 // by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred
7707 // to be "ext4" if unspecified.
7708 fsType?: string
7709
7710 // pdID is the ID that identifies Photon Controller persistent disk
7711 pdID!: string
7712 }
7713
7714 // Pod affinity is a group of inter pod affinity scheduling rules.
7715 #: "io.k8s.api.core.v1.PodAffinity": {
7716 // The scheduler will prefer to schedule pods to nodes that satisfy the affinity
7717 // expressions specified by this field, but it may choose a node that violates
7718 // one or more of the expressions. The node that is most preferred is the one
7719 // with the greatest sum of weights, i.e. for each node that meets all of the
7720 // scheduling requirements (resource request, requiredDuringScheduling affinity
7721 // expressions, etc.), compute a sum by iterating through the elements of this
7722 // field and adding "weight" to the sum if the node has pods which matches the
7723 // corresponding podAffinityTerm; the node(s) with the highest sum are the most
7724 // preferred.
7725 preferredDuringSchedulingIgnoredDuringExecution?: [...#."io.k8s.api.core.v1.WeightedPodAffinityTerm"]
7726
7727 // If the affinity requirements specified by this field are not met at
7728 // scheduling time, the pod will not be scheduled onto the node. If the
7729 // affinity requirements specified by this field cease to be met at some point
7730 // during pod execution (e.g. due to a pod label update), the system may or may
7731 // not try to eventually evict the pod from its node. When there are multiple
7732 // elements, the lists of nodes corresponding to each podAffinityTerm are
7733 // intersected, i.e. all terms must be satisfied.
7734 requiredDuringSchedulingIgnoredDuringExecution?: [...#."io.k8s.api.core.v1.PodAffinityTerm"]
7735 }
7736
7737 // Defines a set of pods (namely those matching the labelSelector relative to
7738 // the given namespace(s)) that this pod should be co-located (affinity) or not
7739 // co-located (anti-affinity) with, where co-located is defined as running on a
7740 // node whose value of the label with key <topologyKey> matches that of any
7741 // node on which a pod of the set of pods is running
7742 #: "io.k8s.api.core.v1.PodAffinityTerm": {
7743 // A label query over a set of resources, in this case pods. If it's null, this
7744 // PodAffinityTerm matches with no Pods.
7745 labelSelector?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
7746
7747 // MatchLabelKeys is a set of pod label keys to select which pods will be taken
7748 // into consideration. The keys are used to lookup values from the incoming pod
7749 // labels, those key-value labels are merged with `labelSelector` as `key in
7750 // (value)` to select the group of existing pods which pods will be taken into
7751 // consideration for the incoming pod's pod (anti) affinity. Keys that don't
7752 // exist in the incoming pod labels will be ignored. The default value is
7753 // empty. The same key is forbidden to exist in both matchLabelKeys and
7754 // labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't
7755 // set.
7756 matchLabelKeys?: [...string]
7757
7758 // MismatchLabelKeys is a set of pod label keys to select which pods will be
7759 // taken into consideration. The keys are used to lookup values from the
7760 // incoming pod labels, those key-value labels are merged with `labelSelector`
7761 // as `key notin (value)` to select the group of existing pods which pods will
7762 // be taken into consideration for the incoming pod's pod (anti) affinity. Keys
7763 // that don't exist in the incoming pod labels will be ignored. The default
7764 // value is empty. The same key is forbidden to exist in both mismatchLabelKeys
7765 // and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector
7766 // isn't set.
7767 mismatchLabelKeys?: [...string]
7768
7769 // A label query over the set of namespaces that the term applies to. The term
7770 // is applied to the union of the namespaces selected by this field and the
7771 // ones listed in the namespaces field. null selector and null or empty
7772 // namespaces list means "this pod's namespace". An empty selector ({}) matches
7773 // all namespaces.
7774 namespaceSelector?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
7775
7776 // namespaces specifies a static list of namespace names that the term applies
7777 // to. The term is applied to the union of the namespaces listed in this field
7778 // and the ones selected by namespaceSelector. null or empty namespaces list
7779 // and null namespaceSelector means "this pod's namespace".
7780 namespaces?: [...string]
7781
7782 // This pod should be co-located (affinity) or not co-located (anti-affinity)
7783 // with the pods matching the labelSelector in the specified namespaces, where
7784 // co-located is defined as running on a node whose value of the label with key
7785 // topologyKey matches that of any node on which any of the selected pods is
7786 // running. Empty topologyKey is not allowed.
7787 topologyKey!: string
7788 }
7789
7790 // Pod anti affinity is a group of inter pod anti affinity scheduling rules.
7791 #: "io.k8s.api.core.v1.PodAntiAffinity": {
7792 // The scheduler will prefer to schedule pods to nodes that satisfy the
7793 // anti-affinity expressions specified by this field, but it may choose a node
7794 // that violates one or more of the expressions. The node that is most
7795 // preferred is the one with the greatest sum of weights, i.e. for each node
7796 // that meets all of the scheduling requirements (resource request,
7797 // requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by
7798 // iterating through the elements of this field and adding "weight" to the sum
7799 // if the node has pods which matches the corresponding podAffinityTerm; the
7800 // node(s) with the highest sum are the most preferred.
7801 preferredDuringSchedulingIgnoredDuringExecution?: [...#."io.k8s.api.core.v1.WeightedPodAffinityTerm"]
7802
7803 // If the anti-affinity requirements specified by this field are not met at
7804 // scheduling time, the pod will not be scheduled onto the node. If the
7805 // anti-affinity requirements specified by this field cease to be met at some
7806 // point during pod execution (e.g. due to a pod label update), the system may
7807 // or may not try to eventually evict the pod from its node. When there are
7808 // multiple elements, the lists of nodes corresponding to each podAffinityTerm
7809 // are intersected, i.e. all terms must be satisfied.
7810 requiredDuringSchedulingIgnoredDuringExecution?: [...#."io.k8s.api.core.v1.PodAffinityTerm"]
7811 }
7812
7813 // PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.
7814 #: "io.k8s.api.core.v1.PodDNSConfig": {
7815 // A list of DNS name server IP addresses. This will be appended to the base
7816 // nameservers generated from DNSPolicy. Duplicated nameservers will be
7817 // removed.
7818 nameservers?: [...string]
7819
7820 // A list of DNS resolver options. This will be merged with the base options
7821 // generated from DNSPolicy. Duplicated entries will be removed. Resolution
7822 // options given in Options will override those that appear in the base
7823 // DNSPolicy.
7824 options?: [...#."io.k8s.api.core.v1.PodDNSConfigOption"]
7825
7826 // A list of DNS search domains for host-name lookup. This will be appended to
7827 // the base search paths generated from DNSPolicy. Duplicated search paths will
7828 // be removed.
7829 searches?: [...string]
7830 }
7831
7832 // PodDNSConfigOption defines DNS resolver options of a pod.
7833 #: "io.k8s.api.core.v1.PodDNSConfigOption": {
7834 // Name is this DNS resolver option's name. Required.
7835 name?: string
7836
7837 // Value is this DNS resolver option's value.
7838 value?: string
7839 }
7840
7841 // PodSecurityContext holds pod-level security attributes and common container
7842 // settings. Some fields are also present in container.securityContext. Field
7843 // values of container.securityContext take precedence over field values of
7844 // PodSecurityContext.
7845 #: "io.k8s.api.core.v1.PodSecurityContext": {
7846 // appArmorProfile is the AppArmor options to use by the containers in this pod.
7847 // Note that this field cannot be set when spec.os.name is windows.
7848 appArmorProfile?: #."io.k8s.api.core.v1.AppArmorProfile"
7849
7850 // A special supplemental group that applies to all containers in a pod. Some
7851 // volume types allow the Kubelet to change the ownership of that volume to be
7852 // owned by the pod:
7853 //
7854 // 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files
7855 // created in the volume will be owned by FSGroup) 3. The permission bits are
7856 // OR'd with rw-rw----
7857 //
7858 // If unset, the Kubelet will not modify the ownership and permissions of any
7859 // volume. Note that this field cannot be set when spec.os.name is windows.
7860 fsGroup?: int
7861
7862 // fsGroupChangePolicy defines behavior of changing ownership and permission of
7863 // the volume before being exposed inside Pod. This field will only apply to
7864 // volume types which support fsGroup based ownership(and permissions). It will
7865 // have no effect on ephemeral volume types such as: secret, configmaps and
7866 // emptydir. Valid values are "OnRootMismatch" and "Always". If not specified,
7867 // "Always" is used. Note that this field cannot be set when spec.os.name is
7868 // windows.
7869 fsGroupChangePolicy?: string
7870
7871 // The GID to run the entrypoint of the container process. Uses runtime default
7872 // if unset. May also be set in SecurityContext. If set in both SecurityContext
7873 // and PodSecurityContext, the value specified in SecurityContext takes
7874 // precedence for that container. Note that this field cannot be set when
7875 // spec.os.name is windows.
7876 runAsGroup?: int
7877
7878 // Indicates that the container must run as a non-root user. If true, the
7879 // Kubelet will validate the image at runtime to ensure that it does not run as
7880 // UID 0 (root) and fail to start the container if it does. If unset or false,
7881 // no such validation will be performed. May also be set in SecurityContext. If
7882 // set in both SecurityContext and PodSecurityContext, the value specified in
7883 // SecurityContext takes precedence.
7884 runAsNonRoot?: bool
7885
7886 // The UID to run the entrypoint of the container process. Defaults to user
7887 // specified in image metadata if unspecified. May also be set in
7888 // SecurityContext. If set in both SecurityContext and PodSecurityContext, the
7889 // value specified in SecurityContext takes precedence for that container. Note
7890 // that this field cannot be set when spec.os.name is windows.
7891 runAsUser?: int
7892
7893 // seLinuxChangePolicy defines how the container's SELinux label is applied to
7894 // all volumes used by the Pod. It has no effect on nodes that do not support
7895 // SELinux or to volumes does not support SELinux. Valid values are
7896 // "MountOption" and "Recursive".
7897 //
7898 // "Recursive" means relabeling of all files on all Pod volumes by the container
7899 // runtime. This may be slow for large volumes, but allows mixing privileged
7900 // and unprivileged Pods sharing the same volume on the same node.
7901 //
7902 // "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
7903 // This requires all Pods that share the same volume to use the same SELinux
7904 // label. It is not possible to share the same volume among privileged and
7905 // unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI
7906 // volumes, and all CSI volumes whose CSI driver announces SELinux support by
7907 // setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes
7908 // are always re-labelled recursively. "MountOption" value is allowed only when
7909 // SELinuxMount feature gate is enabled.
7910 //
7911 // If not specified and SELinuxMount feature gate is enabled, "MountOption" is
7912 // used. If not specified and SELinuxMount feature gate is disabled,
7913 // "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all
7914 // other volumes.
7915 //
7916 // This field affects only Pods that have SELinux label set, either in
7917 // PodSecurityContext or in SecurityContext of all containers.
7918 //
7919 // All Pods that use the same volume should use the same seLinuxChangePolicy,
7920 // otherwise some pods can get stuck in ContainerCreating state. Note that this
7921 // field cannot be set when spec.os.name is windows.
7922 seLinuxChangePolicy?: string
7923
7924 // The SELinux context to be applied to all containers. If unspecified, the
7925 // container runtime will allocate a random SELinux context for each container.
7926 // May also be set in SecurityContext. If set in both SecurityContext and
7927 // PodSecurityContext, the value specified in SecurityContext takes precedence
7928 // for that container. Note that this field cannot be set when spec.os.name is
7929 // windows.
7930 seLinuxOptions?: #."io.k8s.api.core.v1.SELinuxOptions"
7931
7932 // The seccomp options to use by the containers in this pod. Note that this
7933 // field cannot be set when spec.os.name is windows.
7934 seccompProfile?: #."io.k8s.api.core.v1.SeccompProfile"
7935
7936 // A list of groups applied to the first process run in each container, in
7937 // addition to the container's primary GID and fsGroup (if specified). If the
7938 // SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy
7939 // field determines whether these are in addition to or instead of any group
7940 // memberships defined in the container image. If unspecified, no additional
7941 // groups are added, though group memberships defined in the container image
7942 // may still be used, depending on the supplementalGroupsPolicy field. Note
7943 // that this field cannot be set when spec.os.name is windows.
7944 supplementalGroups?: [...int]
7945
7946 // Defines how supplemental groups of the first container processes are
7947 // calculated. Valid values are "Merge" and "Strict". If not specified, "Merge"
7948 // is used. (Alpha) Using the field requires the SupplementalGroupsPolicy
7949 // feature gate to be enabled and the container runtime must implement support
7950 // for this feature. Note that this field cannot be set when spec.os.name is
7951 // windows.
7952 supplementalGroupsPolicy?: string
7953
7954 // Sysctls hold a list of namespaced sysctls used for the pod. Pods with
7955 // unsupported sysctls (by the container runtime) might fail to launch. Note
7956 // that this field cannot be set when spec.os.name is windows.
7957 sysctls?: [...#."io.k8s.api.core.v1.Sysctl"]
7958
7959 // The Windows specific settings applied to all containers. If unspecified, the
7960 // options within a container's SecurityContext will be used. If set in both
7961 // SecurityContext and PodSecurityContext, the value specified in
7962 // SecurityContext takes precedence. Note that this field cannot be set when
7963 // spec.os.name is linux.
7964 windowsOptions?: #."io.k8s.api.core.v1.WindowsSecurityContextOptions"
7965 }
7966
7967 // PortworxVolumeSource represents a Portworx volume resource.
7968 #: "io.k8s.api.core.v1.PortworxVolumeSource": {
7969 // fSType represents the filesystem type to mount Must be a filesystem type
7970 // supported by the host operating system. Ex. "ext4", "xfs". Implicitly
7971 // inferred to be "ext4" if unspecified.
7972 fsType?: string
7973
7974 // readOnly defaults to false (read/write). ReadOnly here will force the
7975 // ReadOnly setting in VolumeMounts.
7976 readOnly?: bool
7977
7978 // volumeID uniquely identifies a Portworx volume
7979 volumeID!: string
7980 }
7981
7982 // An empty preferred scheduling term matches all objects with implicit weight 0
7983 // (i.e. it's a no-op). A null preferred scheduling term matches no objects
7984 // (i.e. is also a no-op).
7985 #: "io.k8s.api.core.v1.PreferredSchedulingTerm": {
7986 // A node selector term, associated with the corresponding weight.
7987 preference!: #."io.k8s.api.core.v1.NodeSelectorTerm"
7988
7989 // Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
7990 weight!: int
7991 }
7992
7993 // Probe describes a health check to be performed against a container to
7994 // determine whether it is alive or ready to receive traffic.
7995 #: "io.k8s.api.core.v1.Probe": {
7996 // Exec specifies a command to execute in the container.
7997 exec?: #."io.k8s.api.core.v1.ExecAction"
7998
7999 // Minimum consecutive failures for the probe to be considered failed after
8000 // having succeeded. Defaults to 3. Minimum value is 1.
8001 failureThreshold?: int
8002
8003 // GRPC specifies a GRPC HealthCheckRequest.
8004 grpc?: #."io.k8s.api.core.v1.GRPCAction"
8005
8006 // HTTPGet specifies an HTTP GET request to perform.
8007 httpGet?: #."io.k8s.api.core.v1.HTTPGetAction"
8008
8009 // Number of seconds after the container has started before liveness probes are
8010 // initiated. More info:
8011 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
8012 initialDelaySeconds?: int
8013
8014 // How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
8015 periodSeconds?: int
8016
8017 // Minimum consecutive successes for the probe to be considered successful after
8018 // having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum
8019 // value is 1.
8020 successThreshold?: int
8021
8022 // TCPSocket specifies a connection to a TCP port.
8023 tcpSocket?: #."io.k8s.api.core.v1.TCPSocketAction"
8024
8025 // Optional duration in seconds the pod needs to terminate gracefully upon probe
8026 // failure. The grace period is the duration in seconds after the processes
8027 // running in the pod are sent a termination signal and the time when the
8028 // processes are forcibly halted with a kill signal. Set this value longer than
8029 // the expected cleanup time for your process. If this value is nil, the pod's
8030 // terminationGracePeriodSeconds will be used. Otherwise, this value overrides
8031 // the value provided by the pod spec. Value must be non-negative integer. The
8032 // value zero indicates stop immediately via the kill signal (no opportunity to
8033 // shut down). This is a beta field and requires enabling
8034 // ProbeTerminationGracePeriod feature gate. Minimum value is 1.
8035 // spec.terminationGracePeriodSeconds is used if unset.
8036 terminationGracePeriodSeconds?: int
8037
8038 // Number of seconds after which the probe times out. Defaults to 1 second.
8039 // Minimum value is 1. More info:
8040 // https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
8041 timeoutSeconds?: int
8042 }
8043
8044 // Represents a projected volume source
8045 #: "io.k8s.api.core.v1.ProjectedVolumeSource": {
8046 // defaultMode are the mode bits used to set permissions on created files by
8047 // default. Must be an octal value between 0000 and 0777 or a decimal value
8048 // between 0 and 511. YAML accepts both octal and decimal values, JSON requires
8049 // decimal values for mode bits. Directories within the path are not affected
8050 // by this setting. This might be in conflict with other options that affect
8051 // the file mode, like fsGroup, and the result can be other mode bits set.
8052 defaultMode?: int
8053
8054 // sources is the list of volume projections. Each entry in this list handles one source.
8055 sources?: [...#."io.k8s.api.core.v1.VolumeProjection"]
8056 }
8057
8058 // Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes
8059 // do not support ownership management or SELinux relabeling.
8060 #: "io.k8s.api.core.v1.QuobyteVolumeSource": {
8061 // group to map volume access to Default is no group
8062 group?: string
8063
8064 // readOnly here will force the Quobyte volume to be mounted with read-only
8065 // permissions. Defaults to false.
8066 readOnly?: bool
8067
8068 // registry represents a single or multiple Quobyte Registry services specified
8069 // as a string as host:port pair (multiple entries are separated with commas)
8070 // which acts as the central registry for volumes
8071 registry!: string
8072
8073 // tenant owning the given Quobyte volume in the Backend Used with dynamically
8074 // provisioned Quobyte volumes, value is set by the plugin
8075 tenant?: string
8076
8077 // user to map volume access to Defaults to serivceaccount user
8078 user?: string
8079
8080 // volume is a string that references an already created Quobyte volume by name.
8081 volume!: string
8082 }
8083
8084 // Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD
8085 // volumes support ownership management and SELinux relabeling.
8086 #: "io.k8s.api.core.v1.RBDVolumeSource": {
8087 // fsType is the filesystem type of the volume that you want to mount. Tip:
8088 // Ensure that the filesystem type is supported by the host operating system.
8089 // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
8090 // unspecified. More info:
8091 // https://kubernetes.io/docs/concepts/storage/volumes#rbd
8092 fsType?: string
8093
8094 // image is the rados image name. More info:
8095 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8096 image!: string
8097
8098 // keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring.
8099 // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8100 keyring?: string
8101
8102 // monitors is a collection of Ceph monitors. More info:
8103 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8104 monitors!: [...string]
8105
8106 // pool is the rados pool name. Default is rbd. More info:
8107 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8108 pool?: string
8109
8110 // readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to
8111 // false. More info:
8112 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8113 readOnly?: bool
8114
8115 // secretRef is name of the authentication secret for RBDUser. If provided
8116 // overrides keyring. Default is nil. More info:
8117 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8118 secretRef?: #."io.k8s.api.core.v1.LocalObjectReference"
8119
8120 // user is the rados user name. Default is admin. More info:
8121 // https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8122 user?: string
8123 }
8124
8125 // ResourceClaim references one entry in PodSpec.ResourceClaims.
8126 #: "io.k8s.api.core.v1.ResourceClaim": {
8127 // Name must match the name of one entry in pod.spec.resourceClaims of the Pod
8128 // where this field is used. It makes that resource available inside a
8129 // container.
8130 name!: string
8131
8132 // Request is the name chosen for a request in the referenced claim. If empty,
8133 // everything from the claim is made available, otherwise only the result of
8134 // this request.
8135 request?: string
8136 }
8137
8138 // ResourceFieldSelector represents container resources (cpu, memory) and their output format
8139 #: "io.k8s.api.core.v1.ResourceFieldSelector": {
8140 // Container name: required for volumes, optional for env vars
8141 containerName?: string
8142
8143 // Specifies the output format of the exposed resources, defaults to "1"
8144 divisor?: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
8145
8146 // Required: resource to select
8147 resource!: string
8148 }
8149
8150 // ResourceRequirements describes the compute resource requirements.
8151 #: "io.k8s.api.core.v1.ResourceRequirements": {
8152 // Claims lists the names of resources, defined in spec.resourceClaims, that are
8153 // used by this container.
8154 //
8155 // This is an alpha field and requires enabling the DynamicResourceAllocation feature gate.
8156 //
8157 // This field is immutable. It can only be set for containers.
8158 claims?: [...#."io.k8s.api.core.v1.ResourceClaim"]
8159
8160 // Limits describes the maximum amount of compute resources allowed. More info:
8161 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
8162 limits?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
8163
8164 // Requests describes the minimum amount of compute resources required. If
8165 // Requests is omitted for a container, it defaults to Limits if that is
8166 // explicitly specified, otherwise to an implementation-defined value. Requests
8167 // cannot exceed Limits. More info:
8168 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
8169 requests?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
8170 }
8171
8172 // SELinuxOptions are the labels to be applied to the container
8173 #: "io.k8s.api.core.v1.SELinuxOptions": {
8174 // Level is SELinux level label that applies to the container.
8175 level?: string
8176
8177 // Role is a SELinux role label that applies to the container.
8178 role?: string
8179
8180 // Type is a SELinux type label that applies to the container.
8181 type?: string
8182
8183 // User is a SELinux user label that applies to the container.
8184 user?: string
8185 }
8186
8187 // ScaleIOVolumeSource represents a persistent ScaleIO volume
8188 #: "io.k8s.api.core.v1.ScaleIOVolumeSource": {
8189 // fsType is the filesystem type to mount. Must be a filesystem type supported
8190 // by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs".
8191 fsType?: string
8192
8193 // gateway is the host address of the ScaleIO API Gateway.
8194 gateway!: string
8195
8196 // protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.
8197 protectionDomain?: string
8198
8199 // readOnly Defaults to false (read/write). ReadOnly here will force the
8200 // ReadOnly setting in VolumeMounts.
8201 readOnly?: bool
8202
8203 // secretRef references to the secret for ScaleIO user and other sensitive
8204 // information. If this is not provided, Login operation will fail.
8205 secretRef!: #."io.k8s.api.core.v1.LocalObjectReference"
8206
8207 // sslEnabled Flag enable/disable SSL communication with Gateway, default false
8208 sslEnabled?: bool
8209
8210 // storageMode indicates whether the storage for a volume should be
8211 // ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.
8212 storageMode?: string
8213
8214 // storagePool is the ScaleIO Storage Pool associated with the protection domain.
8215 storagePool?: string
8216
8217 // system is the name of the storage system as configured in ScaleIO.
8218 system!: string
8219
8220 // volumeName is the name of a volume already created in the ScaleIO system that
8221 // is associated with this volume source.
8222 volumeName?: string
8223 }
8224
8225 // SeccompProfile defines a pod/container's seccomp profile settings. Only one
8226 // profile source may be set.
8227 #: "io.k8s.api.core.v1.SeccompProfile": {
8228 // localhostProfile indicates a profile defined in a file on the node should be
8229 // used. The profile must be preconfigured on the node to work. Must be a
8230 // descending path, relative to the kubelet's configured seccomp profile
8231 // location. Must be set if type is "Localhost". Must NOT be set for any other
8232 // type.
8233 localhostProfile?: string
8234
8235 // type indicates which kind of seccomp profile will be applied. Valid options are:
8236 //
8237 // Localhost - a profile defined in a file on the node should be used.
8238 // RuntimeDefault - the container runtime default profile should be used.
8239 // Unconfined - no profile should be applied.
8240 type!: string
8241 }
8242
8243 // SecretEnvSource selects a Secret to populate the environment variables with.
8244 //
8245 // The contents of the target Secret's Data field will represent the key-value
8246 // pairs as environment variables.
8247 #: "io.k8s.api.core.v1.SecretEnvSource": {
8248 // Name of the referent. This field is effectively required, but due to
8249 // backwards compatibility is allowed to be empty. Instances of this type with
8250 // an empty value here are almost certainly wrong. More info:
8251 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8252 name?: string
8253
8254 // Specify whether the Secret must be defined
8255 optional?: bool
8256 }
8257
8258 // SecretKeySelector selects a key of a Secret.
8259 #: "io.k8s.api.core.v1.SecretKeySelector": {
8260 // The key of the secret to select from. Must be a valid secret key.
8261 key!: string
8262
8263 // Name of the referent. This field is effectively required, but due to
8264 // backwards compatibility is allowed to be empty. Instances of this type with
8265 // an empty value here are almost certainly wrong. More info:
8266 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8267 name?: string
8268
8269 // Specify whether the Secret or its key must be defined
8270 optional?: bool
8271 }
8272
8273 // Adapts a secret into a projected volume.
8274 //
8275 // The contents of the target Secret's Data field will be presented in a
8276 // projected volume as files using the keys in the Data field as the file
8277 // names. Note that this is identical to a secret volume source without the
8278 // default mode.
8279 #: "io.k8s.api.core.v1.SecretProjection": {
8280 // items if unspecified, each key-value pair in the Data field of the referenced
8281 // Secret will be projected into the volume as a file whose name is the key and
8282 // content is the value. If specified, the listed keys will be projected into
8283 // the specified paths, and unlisted keys will not be present. If a key is
8284 // specified which is not present in the Secret, the volume setup will error
8285 // unless it is marked optional. Paths must be relative and may not contain the
8286 // '..' path or start with '..'.
8287 items?: [...#."io.k8s.api.core.v1.KeyToPath"]
8288
8289 // Name of the referent. This field is effectively required, but due to
8290 // backwards compatibility is allowed to be empty. Instances of this type with
8291 // an empty value here are almost certainly wrong. More info:
8292 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8293 name?: string
8294
8295 // optional field specify whether the Secret or its key must be defined
8296 optional?: bool
8297 }
8298
8299 // Adapts a Secret into a volume.
8300 //
8301 // The contents of the target Secret's Data field will be presented in a volume
8302 // as files using the keys in the Data field as the file names. Secret volumes
8303 // support ownership management and SELinux relabeling.
8304 #: "io.k8s.api.core.v1.SecretVolumeSource": {
8305 // defaultMode is Optional: mode bits used to set permissions on created files
8306 // by default. Must be an octal value between 0000 and 0777 or a decimal value
8307 // between 0 and 511. YAML accepts both octal and decimal values, JSON requires
8308 // decimal values for mode bits. Defaults to 0644. Directories within the path
8309 // are not affected by this setting. This might be in conflict with other
8310 // options that affect the file mode, like fsGroup, and the result can be other
8311 // mode bits set.
8312 defaultMode?: int
8313
8314 // items If unspecified, each key-value pair in the Data field of the referenced
8315 // Secret will be projected into the volume as a file whose name is the key and
8316 // content is the value. If specified, the listed keys will be projected into
8317 // the specified paths, and unlisted keys will not be present. If a key is
8318 // specified which is not present in the Secret, the volume setup will error
8319 // unless it is marked optional. Paths must be relative and may not contain the
8320 // '..' path or start with '..'.
8321 items?: [...#."io.k8s.api.core.v1.KeyToPath"]
8322
8323 // optional field specify whether the Secret or its keys must be defined
8324 optional?: bool
8325
8326 // secretName is the name of the secret in the pod's namespace to use. More
8327 // info: https://kubernetes.io/docs/concepts/storage/volumes#secret
8328 secretName?: string
8329 }
8330
8331 // SecurityContext holds security configuration that will be applied to a
8332 // container. Some fields are present in both SecurityContext and
8333 // PodSecurityContext. When both are set, the values in SecurityContext take
8334 // precedence.
8335 #: "io.k8s.api.core.v1.SecurityContext": {
8336 // AllowPrivilegeEscalation controls whether a process can gain more privileges
8337 // than its parent process. This bool directly controls if the no_new_privs
8338 // flag will be set on the container process. AllowPrivilegeEscalation is true
8339 // always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note
8340 // that this field cannot be set when spec.os.name is windows.
8341 allowPrivilegeEscalation?: bool
8342
8343 // appArmorProfile is the AppArmor options to use by this container. If set,
8344 // this profile overrides the pod's appArmorProfile. Note that this field
8345 // cannot be set when spec.os.name is windows.
8346 appArmorProfile?: #."io.k8s.api.core.v1.AppArmorProfile"
8347
8348 // The capabilities to add/drop when running containers. Defaults to the default
8349 // set of capabilities granted by the container runtime. Note that this field
8350 // cannot be set when spec.os.name is windows.
8351 capabilities?: #."io.k8s.api.core.v1.Capabilities"
8352
8353 // Run container in privileged mode. Processes in privileged containers are
8354 // essentially equivalent to root on the host. Defaults to false. Note that
8355 // this field cannot be set when spec.os.name is windows.
8356 privileged?: bool
8357
8358 // procMount denotes the type of proc mount to use for the containers. The
8359 // default value is Default which uses the container runtime defaults for
8360 // readonly paths and masked paths. This requires the ProcMountType feature
8361 // flag to be enabled. Note that this field cannot be set when spec.os.name is
8362 // windows.
8363 procMount?: string
8364
8365 // Whether this container has a read-only root filesystem. Default is false.
8366 // Note that this field cannot be set when spec.os.name is windows.
8367 readOnlyRootFilesystem?: bool
8368
8369 // The GID to run the entrypoint of the container process. Uses runtime default
8370 // if unset. May also be set in PodSecurityContext. If set in both
8371 // SecurityContext and PodSecurityContext, the value specified in
8372 // SecurityContext takes precedence. Note that this field cannot be set when
8373 // spec.os.name is windows.
8374 runAsGroup?: int
8375
8376 // Indicates that the container must run as a non-root user. If true, the
8377 // Kubelet will validate the image at runtime to ensure that it does not run as
8378 // UID 0 (root) and fail to start the container if it does. If unset or false,
8379 // no such validation will be performed. May also be set in PodSecurityContext.
8380 // If set in both SecurityContext and PodSecurityContext, the value specified
8381 // in SecurityContext takes precedence.
8382 runAsNonRoot?: bool
8383
8384 // The UID to run the entrypoint of the container process. Defaults to user
8385 // specified in image metadata if unspecified. May also be set in
8386 // PodSecurityContext. If set in both SecurityContext and PodSecurityContext,
8387 // the value specified in SecurityContext takes precedence. Note that this
8388 // field cannot be set when spec.os.name is windows.
8389 runAsUser?: int
8390
8391 // The SELinux context to be applied to the container. If unspecified, the
8392 // container runtime will allocate a random SELinux context for each container.
8393 // May also be set in PodSecurityContext. If set in both SecurityContext and
8394 // PodSecurityContext, the value specified in SecurityContext takes precedence.
8395 // Note that this field cannot be set when spec.os.name is windows.
8396 seLinuxOptions?: #."io.k8s.api.core.v1.SELinuxOptions"
8397
8398 // The seccomp options to use by this container. If seccomp options are provided
8399 // at both the pod & container level, the container options override the pod
8400 // options. Note that this field cannot be set when spec.os.name is windows.
8401 seccompProfile?: #."io.k8s.api.core.v1.SeccompProfile"
8402
8403 // The Windows specific settings applied to all containers. If unspecified, the
8404 // options from the PodSecurityContext will be used. If set in both
8405 // SecurityContext and PodSecurityContext, the value specified in
8406 // SecurityContext takes precedence. Note that this field cannot be set when
8407 // spec.os.name is linux.
8408 windowsOptions?: #."io.k8s.api.core.v1.WindowsSecurityContextOptions"
8409 }
8410
8411 // ServiceAccountTokenProjection represents a projected service account token
8412 // volume. This projection can be used to insert a service account token into
8413 // the pods runtime filesystem for use against APIs (Kubernetes API Server or
8414 // otherwise).
8415 #: "io.k8s.api.core.v1.ServiceAccountTokenProjection": {
8416 // audience is the intended audience of the token. A recipient of a token must
8417 // identify itself with an identifier specified in the audience of the token,
8418 // and otherwise should reject the token. The audience defaults to the
8419 // identifier of the apiserver.
8420 audience?: string
8421
8422 // expirationSeconds is the requested duration of validity of the service
8423 // account token. As the token approaches expiration, the kubelet volume plugin
8424 // will proactively rotate the service account token. The kubelet will start
8425 // trying to rotate the token if the token is older than 80 percent of its time
8426 // to live or if the token is older than 24 hours.Defaults to 1 hour and must
8427 // be at least 10 minutes.
8428 expirationSeconds?: int
8429
8430 // path is the path relative to the mount point of the file to project the token into.
8431 path!: string
8432 }
8433
8434 // ServicePort contains information on service's port.
8435 #: "io.k8s.api.core.v1.ServicePort": {
8436 // The application protocol for this port. This is used as a hint for
8437 // implementations to offer richer behavior for protocols that they understand.
8438 // This field follows standard Kubernetes label syntax. Valid values are
8439 // either:
8440 //
8441 // * Un-prefixed protocol names - reserved for IANA standard service names (as
8442 // per RFC-6335 and https://www.iana.org/assignments/service-names).
8443 //
8444 // * Kubernetes-defined prefixed names:
8445 // * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in
8446 // https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-
8447 // * 'kubernetes.io/ws' - WebSocket over cleartext as described in
8448 // https://www.rfc-editor.org/rfc/rfc6455
8449 // * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455
8450 //
8451 // * Other protocols should use implementation-defined prefixed names such as
8452 // mycompany.com/my-custom-protocol.
8453 appProtocol?: string
8454
8455 // The name of this port within the service. This must be a DNS_LABEL. All ports
8456 // within a ServiceSpec must have unique names. When considering the endpoints
8457 // for a Service, this must match the 'name' field in the EndpointPort.
8458 // Optional if only one ServicePort is defined on this service.
8459 name?: string
8460
8461 // The port on each node on which this service is exposed when type is NodePort
8462 // or LoadBalancer. Usually assigned by the system. If a value is specified,
8463 // in-range, and not in use it will be used, otherwise the operation will fail.
8464 // If not specified, a port will be allocated if this Service requires one. If
8465 // this field is specified when creating a Service which does not need it,
8466 // creation will fail. This field will be wiped when updating a Service to no
8467 // longer need it (e.g. changing type from NodePort to ClusterIP). More info:
8468 // https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
8469 nodePort?: int
8470
8471 // The port that will be exposed by this service.
8472 port!: int
8473
8474 // The IP protocol for this port. Supports "TCP", "UDP", and "SCTP". Default is TCP.
8475 protocol?: string
8476
8477 // Number or name of the port to access on the pods targeted by the service.
8478 // Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If
8479 // this is a string, it will be looked up as a named port in the target Pod's
8480 // container ports. If this is not specified, the value of the 'port' field is
8481 // used (an identity map). This field is ignored for services with
8482 // clusterIP=None, and should be omitted or set equal to the 'port' field. More
8483 // info:
8484 // https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
8485 targetPort?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
8486 }
8487
8488 // SleepAction describes a "sleep" action.
8489 #: "io.k8s.api.core.v1.SleepAction": {
8490 // Seconds is the number of seconds to sleep.
8491 seconds!: int
8492 }
8493
8494 // Represents a StorageOS persistent volume resource.
8495 #: "io.k8s.api.core.v1.StorageOSVolumeSource": {
8496 // fsType is the filesystem type to mount. Must be a filesystem type supported
8497 // by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred
8498 // to be "ext4" if unspecified.
8499 fsType?: string
8500
8501 // readOnly defaults to false (read/write). ReadOnly here will force the
8502 // ReadOnly setting in VolumeMounts.
8503 readOnly?: bool
8504
8505 // secretRef specifies the secret to use for obtaining the StorageOS API
8506 // credentials. If not specified, default values will be attempted.
8507 secretRef?: #."io.k8s.api.core.v1.LocalObjectReference"
8508
8509 // volumeName is the human-readable name of the StorageOS volume. Volume names
8510 // are only unique within a namespace.
8511 volumeName?: string
8512
8513 // volumeNamespace specifies the scope of the volume within StorageOS. If no
8514 // namespace is specified then the Pod's namespace will be used. This allows
8515 // the Kubernetes name scoping to be mirrored within StorageOS for tighter
8516 // integration. Set VolumeName to any name to override the default behaviour.
8517 // Set to "default" if you are not using namespaces within StorageOS.
8518 // Namespaces that do not pre-exist within StorageOS will be created.
8519 volumeNamespace?: string
8520 }
8521
8522 // Sysctl defines a kernel parameter to be set
8523 #: "io.k8s.api.core.v1.Sysctl": {
8524 // Name of a property to set
8525 name!: string
8526
8527 // Value of a property to set
8528 value!: string
8529 }
8530
8531 // TCPSocketAction describes an action based on opening a socket
8532 #: "io.k8s.api.core.v1.TCPSocketAction": {
8533 // Optional: Host name to connect to, defaults to the pod IP.
8534 host?: string
8535
8536 // Number or name of the port to access on the container. Number must be in the
8537 // range 1 to 65535. Name must be an IANA_SVC_NAME.
8538 port!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
8539 }
8540
8541 // The pod this Toleration is attached to tolerates any taint that matches the
8542 // triple <key,value,effect> using the matching operator <operator>.
8543 #: "io.k8s.api.core.v1.Toleration": {
8544 // Effect indicates the taint effect to match. Empty means match all taint
8545 // effects. When specified, allowed values are NoSchedule, PreferNoSchedule and
8546 // NoExecute.
8547 effect?: string
8548
8549 // Key is the taint key that the toleration applies to. Empty means match all
8550 // taint keys. If the key is empty, operator must be Exists; this combination
8551 // means to match all values and all keys.
8552 key?: string
8553
8554 // Operator represents a key's relationship to the value. Valid operators are
8555 // Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for
8556 // value, so that a pod can tolerate all taints of a particular category.
8557 operator?: string
8558
8559 // TolerationSeconds represents the period of time the toleration (which must be
8560 // of effect NoExecute, otherwise this field is ignored) tolerates the taint.
8561 // By default, it is not set, which means tolerate the taint forever (do not
8562 // evict). Zero and negative values will be treated as 0 (evict immediately) by
8563 // the system.
8564 tolerationSeconds?: int
8565
8566 // Value is the taint value the toleration matches to. If the operator is
8567 // Exists, the value should be empty, otherwise just a regular string.
8568 value?: string
8569 }
8570
8571 // TypedLocalObjectReference contains enough information to let you locate the
8572 // typed referenced object inside the same namespace.
8573 #: "io.k8s.api.core.v1.TypedLocalObjectReference": {
8574 // APIGroup is the group for the resource being referenced. If APIGroup is not
8575 // specified, the specified Kind must be in the core API group. For any other
8576 // third-party types, APIGroup is required.
8577 apiGroup?: string
8578
8579 // Kind is the type of resource being referenced
8580 kind!: string
8581
8582 // Name is the name of resource being referenced
8583 name!: string
8584 }
8585
8586 // TypedObjectReference contains enough information to let you locate the typed referenced object
8587 #: "io.k8s.api.core.v1.TypedObjectReference": {
8588 // APIGroup is the group for the resource being referenced. If APIGroup is not
8589 // specified, the specified Kind must be in the core API group. For any other
8590 // third-party types, APIGroup is required.
8591 apiGroup?: string
8592
8593 // Kind is the type of resource being referenced
8594 kind!: string
8595
8596 // Name is the name of resource being referenced
8597 name!: string
8598
8599 // Namespace is the namespace of resource being referenced Note that when a
8600 // namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is
8601 // required in the referent namespace to allow that namespace's owner to accept
8602 // the reference. See the ReferenceGrant documentation for details. (Alpha)
8603 // This field requires the CrossNamespaceVolumeDataSource feature gate to be
8604 // enabled.
8605 namespace?: string
8606 }
8607
8608 // Volume represents a named volume in a pod that may be accessed by any container in the pod.
8609 #: "io.k8s.api.core.v1.Volume": {
8610 // awsElasticBlockStore represents an AWS Disk resource that is attached to a
8611 // kubelet's host machine and then exposed to the pod. Deprecated:
8612 // AWSElasticBlockStore is deprecated. All operations for the in-tree
8613 // awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
8614 // More info:
8615 // https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
8616 awsElasticBlockStore?: #."io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource"
8617
8618 // azureDisk represents an Azure Data Disk mount on the host and bind mount to
8619 // the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree
8620 // azureDisk type are redirected to the disk.csi.azure.com CSI driver.
8621 azureDisk?: #."io.k8s.api.core.v1.AzureDiskVolumeSource"
8622
8623 // azureFile represents an Azure File Service mount on the host and bind mount
8624 // to the pod. Deprecated: AzureFile is deprecated. All operations for the
8625 // in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.
8626 azureFile?: #."io.k8s.api.core.v1.AzureFileVolumeSource"
8627
8628 // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
8629 // Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer
8630 // supported.
8631 cephfs?: #."io.k8s.api.core.v1.CephFSVolumeSource"
8632
8633 // cinder represents a cinder volume attached and mounted on kubelets host
8634 // machine. Deprecated: Cinder is deprecated. All operations for the in-tree
8635 // cinder type are redirected to the cinder.csi.openstack.org CSI driver. More
8636 // info: https://examples.k8s.io/mysql-cinder-pd/README.md
8637 cinder?: #."io.k8s.api.core.v1.CinderVolumeSource"
8638
8639 // configMap represents a configMap that should populate this volume
8640 configMap?: #."io.k8s.api.core.v1.ConfigMapVolumeSource"
8641
8642 // csi (Container Storage Interface) represents ephemeral storage that is
8643 // handled by certain external CSI drivers.
8644 csi?: #."io.k8s.api.core.v1.CSIVolumeSource"
8645
8646 // downwardAPI represents downward API about the pod that should populate this volume
8647 downwardAPI?: #."io.k8s.api.core.v1.DownwardAPIVolumeSource"
8648
8649 // emptyDir represents a temporary directory that shares a pod's lifetime. More
8650 // info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
8651 emptyDir?: #."io.k8s.api.core.v1.EmptyDirVolumeSource"
8652
8653 // ephemeral represents a volume that is handled by a cluster storage driver.
8654 // The volume's lifecycle is tied to the pod that defines it - it will be
8655 // created before the pod starts, and deleted when the pod is removed.
8656 //
8657 // Use this if: a) the volume is only needed while the pod runs, b) features of
8658 // normal volumes like restoring from snapshot or capacity
8659 // tracking are needed,
8660 // c) the storage driver is specified through a storage class, and d) the
8661 // storage driver supports dynamic volume provisioning through
8662 // a PersistentVolumeClaim (see EphemeralVolumeSource for more
8663 // information on the connection between this volume type
8664 // and PersistentVolumeClaim).
8665 //
8666 // Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that
8667 // persist for longer than the lifecycle of an individual pod.
8668 //
8669 // Use CSI for light-weight local ephemeral volumes if the CSI driver is meant
8670 // to be used that way - see the documentation of the driver for more
8671 // information.
8672 //
8673 // A pod can use both types of ephemeral volumes and persistent volumes at the same time.
8674 ephemeral?: #."io.k8s.api.core.v1.EphemeralVolumeSource"
8675
8676 // fc represents a Fibre Channel resource that is attached to a kubelet's host
8677 // machine and then exposed to the pod.
8678 fc?: #."io.k8s.api.core.v1.FCVolumeSource"
8679
8680 // flexVolume represents a generic volume resource that is provisioned/attached
8681 // using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider
8682 // using a CSIDriver instead.
8683 flexVolume?: #."io.k8s.api.core.v1.FlexVolumeSource"
8684
8685 // flocker represents a Flocker volume attached to a kubelet's host machine.
8686 // This depends on the Flocker control service being running. Deprecated:
8687 // Flocker is deprecated and the in-tree flocker type is no longer supported.
8688 flocker?: #."io.k8s.api.core.v1.FlockerVolumeSource"
8689
8690 // gcePersistentDisk represents a GCE Disk resource that is attached to a
8691 // kubelet's host machine and then exposed to the pod. Deprecated:
8692 // GCEPersistentDisk is deprecated. All operations for the in-tree
8693 // gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI
8694 // driver. More info:
8695 // https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
8696 gcePersistentDisk?: #."io.k8s.api.core.v1.GCEPersistentDiskVolumeSource"
8697
8698 // gitRepo represents a git repository at a particular revision. Deprecated:
8699 // GitRepo is deprecated. To provision a container with a git repo, mount an
8700 // EmptyDir into an InitContainer that clones the repo using git, then mount
8701 // the EmptyDir into the Pod's container.
8702 gitRepo?: #."io.k8s.api.core.v1.GitRepoVolumeSource"
8703
8704 // glusterfs represents a Glusterfs mount on the host that shares a pod's
8705 // lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type
8706 // is no longer supported. More info:
8707 // https://examples.k8s.io/volumes/glusterfs/README.md
8708 glusterfs?: #."io.k8s.api.core.v1.GlusterfsVolumeSource"
8709
8710 // hostPath represents a pre-existing file or directory on the host machine that
8711 // is directly exposed to the container. This is generally used for system
8712 // agents or other privileged things that are allowed to see the host machine.
8713 // Most containers will NOT need this. More info:
8714 // https://kubernetes.io/docs/concepts/storage/volumes#hostpath
8715 hostPath?: #."io.k8s.api.core.v1.HostPathVolumeSource"
8716
8717 // image represents an OCI object (a container image or artifact) pulled and
8718 // mounted on the kubelet's host machine. The volume is resolved at pod startup
8719 // depending on which PullPolicy value is provided:
8720 //
8721 // - Always: the kubelet always attempts to pull the reference. Container
8722 // creation will fail If the pull fails. - Never: the kubelet never pulls the
8723 // reference and only uses a local image or artifact. Container creation will
8724 // fail if the reference isn't present. - IfNotPresent: the kubelet pulls if
8725 // the reference isn't already present on disk. Container creation will fail if
8726 // the reference isn't present and the pull fails.
8727 //
8728 // The volume gets re-resolved if the pod gets deleted and recreated, which
8729 // means that new remote content will become available on pod recreation. A
8730 // failure to resolve or pull the image during pod startup will block
8731 // containers from starting and may add significant latency. Failures will be
8732 // retried using normal volume backoff and will be reported on the pod reason
8733 // and message. The types of objects that may be mounted by this volume are
8734 // defined by the container runtime implementation on a host machine and at
8735 // minimum must include all valid types supported by the container image field.
8736 // The OCI object gets mounted in a single directory
8737 // (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers
8738 // in the same way as for container images. The volume will be mounted
8739 // read-only (ro) and non-executable files (noexec). Sub path mounts for
8740 // containers are not supported (spec.containers[*].volumeMounts.subpath)
8741 // before 1.33. The field spec.securityContext.fsGroupChangePolicy has no
8742 // effect on this volume type.
8743 image?: #."io.k8s.api.core.v1.ImageVolumeSource"
8744
8745 // iscsi represents an ISCSI Disk resource that is attached to a kubelet's host
8746 // machine and then exposed to the pod. More info:
8747 // https://examples.k8s.io/volumes/iscsi/README.md
8748 iscsi?: #."io.k8s.api.core.v1.ISCSIVolumeSource"
8749
8750 // name of the volume. Must be a DNS_LABEL and unique within the pod. More info:
8751 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8752 name!: string
8753
8754 // nfs represents an NFS mount on the host that shares a pod's lifetime More
8755 // info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
8756 nfs?: #."io.k8s.api.core.v1.NFSVolumeSource"
8757
8758 // persistentVolumeClaimVolumeSource represents a reference to a
8759 // PersistentVolumeClaim in the same namespace. More info:
8760 // https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
8761 persistentVolumeClaim?: #."io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource"
8762
8763 // photonPersistentDisk represents a PhotonController persistent disk attached
8764 // and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is
8765 // deprecated and the in-tree photonPersistentDisk type is no longer supported.
8766 photonPersistentDisk?: #."io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource"
8767
8768 // portworxVolume represents a portworx volume attached and mounted on kubelets
8769 // host machine. Deprecated: PortworxVolume is deprecated. All operations for
8770 // the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI
8771 // driver when the CSIMigrationPortworx feature-gate is on.
8772 portworxVolume?: #."io.k8s.api.core.v1.PortworxVolumeSource"
8773
8774 // projected items for all in one resources secrets, configmaps, and downward API
8775 projected?: #."io.k8s.api.core.v1.ProjectedVolumeSource"
8776
8777 // quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
8778 // Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer
8779 // supported.
8780 quobyte?: #."io.k8s.api.core.v1.QuobyteVolumeSource"
8781
8782 // rbd represents a Rados Block Device mount on the host that shares a pod's
8783 // lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no
8784 // longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md
8785 rbd?: #."io.k8s.api.core.v1.RBDVolumeSource"
8786
8787 // scaleIO represents a ScaleIO persistent volume attached and mounted on
8788 // Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO
8789 // type is no longer supported.
8790 scaleIO?: #."io.k8s.api.core.v1.ScaleIOVolumeSource"
8791
8792 // secret represents a secret that should populate this volume. More info:
8793 // https://kubernetes.io/docs/concepts/storage/volumes#secret
8794 secret?: #."io.k8s.api.core.v1.SecretVolumeSource"
8795
8796 // storageOS represents a StorageOS volume attached and mounted on Kubernetes
8797 // nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is
8798 // no longer supported.
8799 storageos?: #."io.k8s.api.core.v1.StorageOSVolumeSource"
8800
8801 // vsphereVolume represents a vSphere volume attached and mounted on kubelets
8802 // host machine. Deprecated: VsphereVolume is deprecated. All operations for
8803 // the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com
8804 // CSI driver.
8805 vsphereVolume?: #."io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource"
8806 }
8807
8808 // volumeDevice describes a mapping of a raw block device within a container.
8809 #: "io.k8s.api.core.v1.VolumeDevice": {
8810 // devicePath is the path inside of the container that the device will be mapped to.
8811 devicePath!: string
8812
8813 // name must match the name of a persistentVolumeClaim in the pod
8814 name!: string
8815 }
8816
8817 // VolumeMount describes a mounting of a Volume within a container.
8818 #: "io.k8s.api.core.v1.VolumeMount": {
8819 // Path within the container at which the volume should be mounted. Must not contain ':'.
8820 mountPath!: string
8821
8822 // mountPropagation determines how mounts are propagated from the host to
8823 // container and the other way around. When not set, MountPropagationNone is
8824 // used. This field is beta in 1.10. When RecursiveReadOnly is set to
8825 // IfPossible or to Enabled, MountPropagation must be None or unspecified
8826 // (which defaults to None).
8827 mountPropagation?: string
8828
8829 // This must match the Name of a Volume.
8830 name!: string
8831
8832 // Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.
8833 readOnly?: bool
8834
8835 // RecursiveReadOnly specifies whether read-only mounts should be handled recursively.
8836 //
8837 // If ReadOnly is false, this field has no meaning and must be unspecified.
8838 //
8839 // If ReadOnly is true, and this field is set to Disabled, the mount is not made
8840 // recursively read-only. If this field is set to IfPossible, the mount is made
8841 // recursively read-only, if it is supported by the container runtime. If this
8842 // field is set to Enabled, the mount is made recursively read-only if it is
8843 // supported by the container runtime, otherwise the pod will not be started
8844 // and an error will be generated to indicate the reason.
8845 //
8846 // If this field is set to IfPossible or Enabled, MountPropagation must be set
8847 // to None (or be unspecified, which defaults to None).
8848 //
8849 // If this field is not specified, it is treated as an equivalent of Disabled.
8850 recursiveReadOnly?: string
8851
8852 // Path within the volume from which the container's volume should be mounted.
8853 // Defaults to "" (volume's root).
8854 subPath?: string
8855
8856 // Expanded path within the volume from which the container's volume should be
8857 // mounted. Behaves similarly to SubPath but environment variable references
8858 // $(VAR_NAME) are expanded using the container's environment. Defaults to ""
8859 // (volume's root). SubPathExpr and SubPath are mutually exclusive.
8860 subPathExpr?: string
8861 }
8862
8863 // Projection that may be projected along with other supported volume types.
8864 // Exactly one of these fields must be set.
8865 #: "io.k8s.api.core.v1.VolumeProjection": {
8866 // ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of
8867 // ClusterTrustBundle objects in an auto-updating file.
8868 //
8869 // Alpha, gated by the ClusterTrustBundleProjection feature gate.
8870 //
8871 // ClusterTrustBundle objects can either be selected by name, or by the
8872 // combination of signer name and a label selector.
8873 //
8874 // Kubelet performs aggressive normalization of the PEM contents written into
8875 // the pod filesystem. Esoteric PEM features such as inter-block comments and
8876 // block headers are stripped. Certificates are deduplicated. The ordering of
8877 // certificates within the file is arbitrary, and Kubelet may change the order
8878 // over time.
8879 clusterTrustBundle?: #."io.k8s.api.core.v1.ClusterTrustBundleProjection"
8880
8881 // configMap information about the configMap data to project
8882 configMap?: #."io.k8s.api.core.v1.ConfigMapProjection"
8883
8884 // downwardAPI information about the downwardAPI data to project
8885 downwardAPI?: #."io.k8s.api.core.v1.DownwardAPIProjection"
8886
8887 // secret information about the secret data to project
8888 secret?: #."io.k8s.api.core.v1.SecretProjection"
8889
8890 // serviceAccountToken is information about the serviceAccountToken data to project
8891 serviceAccountToken?: #."io.k8s.api.core.v1.ServiceAccountTokenProjection"
8892 }
8893
8894 // VolumeResourceRequirements describes the storage resource requirements for a volume.
8895 #: "io.k8s.api.core.v1.VolumeResourceRequirements": {
8896 // Limits describes the maximum amount of compute resources allowed. More info:
8897 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
8898 limits?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
8899
8900 // Requests describes the minimum amount of compute resources required. If
8901 // Requests is omitted for a container, it defaults to Limits if that is
8902 // explicitly specified, otherwise to an implementation-defined value. Requests
8903 // cannot exceed Limits. More info:
8904 // https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
8905 requests?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
8906 }
8907
8908 // Represents a vSphere volume resource.
8909 #: "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": {
8910 // fsType is filesystem type to mount. Must be a filesystem type supported by
8911 // the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to
8912 // be "ext4" if unspecified.
8913 fsType?: string
8914
8915 // storagePolicyID is the storage Policy Based Management (SPBM) profile ID
8916 // associated with the StoragePolicyName.
8917 storagePolicyID?: string
8918
8919 // storagePolicyName is the storage Policy Based Management (SPBM) profile name.
8920 storagePolicyName?: string
8921
8922 // volumePath is the path that identifies vSphere volume vmdk
8923 volumePath!: string
8924 }
8925
8926 // The weights of all of the matched WeightedPodAffinityTerm fields are added
8927 // per-node to find the most preferred node(s)
8928 #: "io.k8s.api.core.v1.WeightedPodAffinityTerm": {
8929 // Required. A pod affinity term, associated with the corresponding weight.
8930 podAffinityTerm!: #."io.k8s.api.core.v1.PodAffinityTerm"
8931
8932 // weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
8933 weight!: int
8934 }
8935
8936 // WindowsSecurityContextOptions contain Windows-specific options and credentials.
8937 #: "io.k8s.api.core.v1.WindowsSecurityContextOptions": {
8938 // GMSACredentialSpec is where the GMSA admission webhook
8939 // (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of
8940 // the GMSA credential spec named by the GMSACredentialSpecName field.
8941 gmsaCredentialSpec?: string
8942
8943 // GMSACredentialSpecName is the name of the GMSA credential spec to use.
8944 gmsaCredentialSpecName?: string
8945
8946 // HostProcess determines if a container should be run as a 'Host Process'
8947 // container. All of a Pod's containers must have the same effective
8948 // HostProcess value (it is not allowed to have a mix of HostProcess containers
8949 // and non-HostProcess containers). In addition, if HostProcess is true then
8950 // HostNetwork must also be set to true.
8951 hostProcess?: bool
8952
8953 // The UserName in Windows to run the entrypoint of the container process.
8954 // Defaults to the user specified in image metadata if unspecified. May also be
8955 // set in PodSecurityContext. If set in both SecurityContext and
8956 // PodSecurityContext, the value specified in SecurityContext takes precedence.
8957 runAsUserName?: string
8958 }
8959
8960 // PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.
8961 #: "io.k8s.api.policy.v1.PodDisruptionBudgetSpec": {
8962 // An eviction is allowed if at most "maxUnavailable" pods selected by
8963 // "selector" are unavailable after the eviction, i.e. even in absence of the
8964 // evicted pod. For example, one can prevent all voluntary evictions by
8965 // specifying 0. This is a mutually exclusive setting with "minAvailable".
8966 maxUnavailable?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
8967
8968 // An eviction is allowed if at least "minAvailable" pods selected by "selector"
8969 // will still be available after the eviction, i.e. even in the absence of the
8970 // evicted pod. So for example you can prevent all voluntary evictions by
8971 // specifying "100%".
8972 minAvailable?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
8973
8974 // Label query over pods whose evictions are managed by the disruption budget. A
8975 // null selector will match no pods, while an empty ({}) selector will select
8976 // all pods within the namespace.
8977 selector?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
8978
8979 // UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods
8980 // should be considered for eviction. Current implementation considers healthy
8981 // pods, as pods that have status.conditions item with
8982 // type="Ready",status="True".
8983 //
8984 // Valid policies are IfHealthyBudget and AlwaysAllow. If no policy is
8985 // specified, the default behavior will be used, which corresponds to the
8986 // IfHealthyBudget policy.
8987 //
8988 // IfHealthyBudget policy means that running pods (status.phase="Running"), but
8989 // not yet healthy can be evicted only if the guarded application is not
8990 // disrupted (status.currentHealthy is at least equal to
8991 // status.desiredHealthy). Healthy pods will be subject to the PDB for
8992 // eviction.
8993 //
8994 // AlwaysAllow policy means that all running pods (status.phase="Running"), but
8995 // not yet healthy are considered disrupted and can be evicted regardless of
8996 // whether the criteria in a PDB is met. This means perspective running pods of
8997 // a disrupted application might not get a chance to become healthy. Healthy
8998 // pods will be subject to the PDB for eviction.
8999 //
9000 // Additional policies may be added in the future. Clients making eviction
9001 // decisions should disallow eviction of unhealthy pods if they encounter an
9002 // unrecognized policy in this field.
9003 unhealthyPodEvictionPolicy?: string
9004 }
9005
9006 // Quantity is a fixed-point representation of a number. It provides convenient
9007 // marshaling/unmarshaling in JSON and YAML, in addition to String() and
9008 // AsInt64() accessors.
9009 //
9010 // The serialization format is:
9011 //
9012 // ``` <quantity> ::= <signedNumber><suffix>
9013 //
9014 // (Note that <suffix> may be empty, from the "" case in <decimalSI>.)
9015 //
9016 // <digit> ::= 0 | 1 | ... | 9 <digits> ::= <digit> | <digit><digits> <number>
9017 // ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign> ::= "+" |
9018 // "-" <signedNumber> ::= <number> | <sign><number> <suffix> ::= <binarySI> |
9019 // <decimalExponent> | <decimalSI> <binarySI> ::= Ki | Mi | Gi | Ti | Pi | Ei
9020 //
9021 // (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
9022 //
9023 // <decimalSI> ::= m | "" | k | M | G | T | P | E
9024 //
9025 // (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
9026 //
9027 // <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
9028 //
9029 // No matter which of the three exponent forms is used, no quantity may
9030 // represent a number greater than 2^63-1 in magnitude, nor may it have more
9031 // than 3 decimal places. Numbers larger or more precise will be capped or
9032 // rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the
9033 // future if we require larger or smaller quantities.
9034 //
9035 // When a Quantity is parsed from a string, it will remember the type of suffix
9036 // it had, and will use the same type again when it is serialized.
9037 //
9038 // Before serializing, Quantity will be put in "canonical form". This means that
9039 // Exponent/suffix will be adjusted up or down (with a corresponding increase
9040 // or decrease in Mantissa) such that:
9041 //
9042 // - No precision is lost - No fractional digits will be emitted - The exponent
9043 // (or suffix) is as large as possible.
9044 //
9045 // The sign will be omitted unless the number is negative.
9046 //
9047 // Examples:
9048 //
9049 // - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
9050 //
9051 // Note that the quantity will NEVER be internally represented by a floating
9052 // point number. That is the whole point of this exercise.
9053 //
9054 // Non-canonical values will still parse as long as they are well formed, but
9055 // will be re-emitted in their canonical form. (So always use canonical form,
9056 // or don't diff.)
9057 //
9058 // This format is intended to make it difficult to use these numbers without
9059 // writing some sort of special handling code in the hopes that that will cause
9060 // implementors to also use a fixed point implementation.
9061 #: "io.k8s.apimachinery.pkg.api.resource.Quantity": string
9062
9063 // CreateOptions may be provided when creating an API object.
9064 #: "io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions": {
9065 // When present, indicates that modifications should not be
9066 // persisted. An invalid or unrecognized dryRun directive will
9067 // result in an error response and no further processing of the
9068 // request. Valid values are:
9069 // - All: all dry run stages will be processed
9070 // +optional
9071 // +listType=atomic
9072 dryRun?: [...string]
9073
9074 // fieldManager is a name associated with the actor or entity
9075 // that is making these changes. The value must be less than or
9076 // 128 characters long, and only contain printable characters,
9077 // as defined by https://golang.org/pkg/unicode/#IsPrint.
9078 // +optional
9079 fieldManager?: string
9080
9081 // fieldValidation instructs the server on how to handle
9082 // objects in the request (POST/PUT/PATCH) containing unknown
9083 // or duplicate fields. Valid values are:
9084 // - Ignore: This will ignore any unknown fields that are silently
9085 // dropped from the object, and will ignore all but the last duplicate
9086 // field that the decoder encounters. This is the default behavior
9087 // prior to v1.23.
9088 // - Warn: This will send a warning via the standard warning response
9089 // header for each unknown field that is dropped from the object, and
9090 // for each duplicate field that is encountered. The request will
9091 // still succeed if there are no other errors, and will only persist
9092 // the last of any duplicate fields. This is the default in v1.23+
9093 // - Strict: This will fail the request with a BadRequest error if
9094 // any unknown fields would be dropped from the object, or if any
9095 // duplicate fields are present. The error returned from the server
9096 // will contain all unknown and duplicate fields encountered.
9097 // +optional
9098 fieldValidation?: string
9099 }
9100
9101 // FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.
9102 //
9103 // Each key is either a '.' representing the field itself, and will always map
9104 // to an empty set, or a string representing a sub-field or item. The string
9105 // will follow one of these four formats: 'f:<name>', where <name> is the name
9106 // of a field in a struct, or key in a map 'v:<value>', where <value> is the
9107 // exact json formatted value of a list item 'i:<index>', where <index> is
9108 // position of a item in a list 'k:<keys>', where <keys> is a map of a list
9109 // item's key fields to their unique values If a key maps to an empty Fields
9110 // value, the field that key represents is part of the set.
9111 //
9112 // The exact format is defined in sigs.k8s.io/structured-merge-diff
9113 #: "io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1": {}
9114
9115 // GroupVersionResource unambiguously identifies a resource. It doesn't
9116 // anonymously include GroupVersion
9117 // to avoid automatic coercion. It doesn't use a GroupVersion to avoid custom marshalling
9118 //
9119 // +protobuf.options.(gogoproto.goproto_stringer)=false
9120 #: "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource": {
9121 group?: string
9122 resource?: string
9123 version?: string
9124 }
9125
9126 // A label selector is a label query over a set of resources. The result of
9127 // matchLabels and matchExpressions are ANDed. An empty label selector matches
9128 // all objects. A null label selector matches no objects.
9129 #: "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector": {
9130 // matchExpressions is a list of label selector requirements. The requirements are ANDed.
9131 matchExpressions?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement"]
9132
9133 // matchLabels is a map of {key,value} pairs. A single {key,value} in the
9134 // matchLabels map is equivalent to an element of matchExpressions, whose key
9135 // field is "key", the operator is "In", and the values array contains only
9136 // "value". The requirements are ANDed.
9137 matchLabels?: [string]: string
9138 }
9139
9140 // A label selector requirement is a selector that contains values, a key, and
9141 // an operator that relates the key and values.
9142 #: "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": {
9143 // key is the label key that the selector applies to.
9144 key!: string
9145
9146 // operator represents a key's relationship to a set of values. Valid operators
9147 // are In, NotIn, Exists and DoesNotExist.
9148 operator!: string
9149
9150 // values is an array of string values. If the operator is In or NotIn, the
9151 // values array must be non-empty. If the operator is Exists or DoesNotExist,
9152 // the values array must be empty. This array is replaced during a strategic
9153 // merge patch.
9154 values?: [...string]
9155 }
9156
9157 // ListMeta describes metadata that synthetic resources must have, including
9158 // lists and various status objects. A resource may have only one of
9159 // {ObjectMeta, ListMeta}.
9160 #: "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta": {
9161 // continue may be set if the user set a limit on the number of items returned,
9162 // and indicates that the server has more data available. The value is opaque
9163 // and may be used to issue another request to the endpoint that served this
9164 // list to retrieve the next set of available objects. Continuing a consistent
9165 // list may not be possible if the server configuration has changed or more
9166 // than a few minutes have passed. The resourceVersion field returned when
9167 // using this continue value will be identical to the value in the first
9168 // response, unless you have received this token from an error message.
9169 continue?: string
9170
9171 // remainingItemCount is the number of subsequent items in the list which are
9172 // not included in this list response. If the list request contained label or
9173 // field selectors, then the number of remaining items is unknown and the field
9174 // will be left unset and omitted during serialization. If the list is complete
9175 // (either because it is not chunking or because this is the last chunk), then
9176 // there are no more remaining items and this field will be left unset and
9177 // omitted during serialization. Servers older than v1.15 do not set this
9178 // field. The intended use of the remainingItemCount is *estimating* the size
9179 // of a collection. Clients should not rely on the remainingItemCount to be set
9180 // or to be exact.
9181 remainingItemCount?: int
9182
9183 // String that identifies the server's internal version of this object that can
9184 // be used by clients to determine when objects have changed. Value must be
9185 // treated as opaque by clients and passed unmodified back to the server.
9186 // Populated by the system. Read-only. More info:
9187 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
9188 resourceVersion?: string
9189
9190 // Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.
9191 selfLink?: string
9192 }
9193
9194 // ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the
9195 // resource that the fieldset applies to.
9196 #: "io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry": {
9197 // APIVersion defines the version of this resource that this field set applies
9198 // to. The format is "group/version" just like the top-level APIVersion field.
9199 // It is necessary to track the version of a field set because it cannot be
9200 // automatically converted.
9201 apiVersion?: string
9202
9203 // FieldsType is the discriminator for the different fields format and version.
9204 // There is currently only one possible value: "FieldsV1"
9205 fieldsType?: string
9206
9207 // FieldsV1 holds the first JSON version format as described in the "FieldsV1" type.
9208 fieldsV1?: #."io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1"
9209
9210 // Manager is an identifier of the workflow managing these fields.
9211 manager?: string
9212
9213 // Operation is the type of operation which lead to this ManagedFieldsEntry
9214 // being created. The only valid values for this field are 'Apply' and
9215 // 'Update'.
9216 operation?: string
9217
9218 // Subresource is the name of the subresource used to update that object, or
9219 // empty string if the object was updated through the main resource. The value
9220 // of this field is used to distinguish between managers, even if they share
9221 // the same name. For example, a status update will be distinct from a regular
9222 // update using the same manager name. Note that the APIVersion field is not
9223 // related to the Subresource field and it always corresponds to the version of
9224 // the main resource.
9225 subresource?: string
9226
9227 // Time is the timestamp of when the ManagedFields entry was added. The
9228 // timestamp will also be updated if a field is added, the manager changes any
9229 // of the owned fields value or removes a field. The timestamp does not update
9230 // when a field is removed from the entry because another manager took it over.
9231 time?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
9232 }
9233
9234 // MicroTime is version of Time with microsecond level precision.
9235 #: "io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime": time.Time
9236
9237 // ObjectMeta is metadata that all persisted resources must have, which includes
9238 // all objects users must create.
9239 #: "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": {
9240 // Annotations is an unstructured key value map stored with a resource that may
9241 // be set by external tools to store and retrieve arbitrary metadata. They are
9242 // not queryable and should be preserved when modifying objects. More info:
9243 // https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations
9244 annotations?: [string]: string
9245
9246 // CreationTimestamp is a timestamp representing the server time when this
9247 // object was created. It is not guaranteed to be set in happens-before order
9248 // across separate operations. Clients may not set this value. It is
9249 // represented in RFC3339 form and is in UTC.
9250 //
9251 // Populated by the system. Read-only. Null for lists. More info:
9252 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
9253 creationTimestamp?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
9254
9255 // Number of seconds allowed for this object to gracefully terminate before it
9256 // will be removed from the system. Only set when deletionTimestamp is also
9257 // set. May only be shortened. Read-only.
9258 deletionGracePeriodSeconds?: int
9259
9260 // DeletionTimestamp is RFC 3339 date and time at which this resource will be
9261 // deleted. This field is set by the server when a graceful deletion is
9262 // requested by the user, and is not directly settable by a client. The
9263 // resource is expected to be deleted (no longer visible from resource lists,
9264 // and not reachable by name) after the time in this field, once the finalizers
9265 // list is empty. As long as the finalizers list contains items, deletion is
9266 // blocked. Once the deletionTimestamp is set, this value may not be unset or
9267 // be set further into the future, although it may be shortened or the resource
9268 // may be deleted prior to this time. For example, a user may request that a
9269 // pod is deleted in 30 seconds. The Kubelet will react by sending a graceful
9270 // termination signal to the containers in the pod. After that 30 seconds, the
9271 // Kubelet will send a hard termination signal (SIGKILL) to the container and
9272 // after cleanup, remove the pod from the API. In the presence of network
9273 // partitions, this object may still exist after this timestamp, until an
9274 // administrator or automated process can determine the resource is fully
9275 // terminated. If not set, graceful deletion of the object has not been
9276 // requested.
9277 //
9278 // Populated by the system when a graceful deletion is requested. Read-only.
9279 // More info:
9280 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
9281 deletionTimestamp?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
9282
9283 // Must be empty before the object is deleted from the registry. Each entry is
9284 // an identifier for the responsible component that will remove the entry from
9285 // the list. If the deletionTimestamp of the object is non-nil, entries in this
9286 // list can only be removed. Finalizers may be processed and removed in any
9287 // order. Order is NOT enforced because it introduces significant risk of stuck
9288 // finalizers. finalizers is a shared field, any actor with permission can
9289 // reorder it. If the finalizer list is processed in order, then this can lead
9290 // to a situation in which the component responsible for the first finalizer in
9291 // the list is waiting for a signal (field value, external system, or other)
9292 // produced by a component responsible for a finalizer later in the list,
9293 // resulting in a deadlock. Without enforced ordering finalizers are free to
9294 // order amongst themselves and are not vulnerable to ordering changes in the
9295 // list.
9296 finalizers?: [...string]
9297
9298 // GenerateName is an optional prefix, used by the server, to generate a unique
9299 // name ONLY IF the Name field has not been provided. If this field is used,
9300 // the name returned to the client will be different than the name passed. This
9301 // value will also be combined with a unique suffix. The provided value has the
9302 // same validation rules as the Name field, and may be truncated by the length
9303 // of the suffix required to make the value unique on the server.
9304 //
9305 // If this field is specified and the generated name exists, the server will return a 409.
9306 //
9307 // Applied only if Name is not specified. More info:
9308 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency
9309 generateName?: string
9310
9311 // A sequence number representing a specific generation of the desired state.
9312 // Populated by the system. Read-only.
9313 generation?: int
9314
9315 // Map of string keys and values that can be used to organize and categorize
9316 // (scope and select) objects. May match selectors of replication controllers
9317 // and services. More info:
9318 // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels
9319 labels?: [string]: string
9320
9321 // ManagedFields maps workflow-id and version to the set of fields that are
9322 // managed by that workflow. This is mostly for internal housekeeping, and
9323 // users typically shouldn't need to set or understand this field. A workflow
9324 // can be the user's name, a controller's name, or the name of a specific apply
9325 // path like "ci-cd". The set of fields is always in the version that the
9326 // workflow used when modifying the object.
9327 managedFields?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry"]
9328
9329 // Name must be unique within a namespace. Is required when creating resources,
9330 // although some resources may allow a client to request the generation of an
9331 // appropriate name automatically. Name is primarily intended for creation
9332 // idempotence and configuration definition. Cannot be updated. More info:
9333 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names
9334 name?: string
9335
9336 // Namespace defines the space within which each name must be unique. An empty
9337 // namespace is equivalent to the "default" namespace, but "default" is the
9338 // canonical representation. Not all objects are required to be scoped to a
9339 // namespace - the value of this field for those objects will be empty.
9340 //
9341 // Must be a DNS_LABEL. Cannot be updated. More info:
9342 // https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces
9343 namespace?: string
9344
9345 // List of objects depended by this object. If ALL objects in the list have been
9346 // deleted, this object will be garbage collected. If this object is managed by
9347 // a controller, then an entry in this list will point to this controller, with
9348 // the controller field set to true. There cannot be more than one managing
9349 // controller.
9350 ownerReferences?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference"]
9351
9352 // An opaque value that represents the internal version of this object that can
9353 // be used by clients to determine when objects have changed. May be used for
9354 // optimistic concurrency, change detection, and the watch operation on a
9355 // resource or set of resources. Clients must treat these values as opaque and
9356 // passed unmodified back to the server. They may only be valid for a
9357 // particular resource or set of resources.
9358 //
9359 // Populated by the system. Read-only. Value must be treated as opaque by
9360 // clients and . More info:
9361 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
9362 resourceVersion?: string
9363
9364 // Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.
9365 selfLink?: string
9366
9367 // UID is the unique in time and space value for this object. It is typically
9368 // generated by the server on successful creation of a resource and is not
9369 // allowed to change on PUT operations.
9370 //
9371 // Populated by the system. Read-only. More info:
9372 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids
9373 uid?: string
9374 }
9375
9376 // OwnerReference contains enough information to let you identify an owning
9377 // object. An owning object must be in the same namespace as the dependent, or
9378 // be cluster-scoped, so there is no namespace field.
9379 #: "io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference": {
9380 // API version of the referent.
9381 apiVersion!: string
9382
9383 // If true, AND if the owner has the "foregroundDeletion" finalizer, then the
9384 // owner cannot be deleted from the key-value store until this reference is
9385 // removed. See
9386 // https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion
9387 // for how the garbage collector interacts with this field and enforces the
9388 // foreground deletion. Defaults to false. To set this field, a user needs
9389 // "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will
9390 // be returned.
9391 blockOwnerDeletion?: bool
9392
9393 // If true, this reference points to the managing controller.
9394 controller?: bool
9395
9396 // Kind of the referent. More info:
9397 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
9398 kind!: string
9399
9400 // Name of the referent. More info:
9401 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names
9402 name!: string
9403
9404 // UID of the referent. More info:
9405 // https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids
9406 uid!: string
9407 }
9408
9409 // Time is a wrapper around time.Time which supports correct marshaling to YAML
9410 // and JSON. Wrappers are provided for many of the factory methods that the
9411 // time package offers.
9412 #: "io.k8s.apimachinery.pkg.apis.meta.v1.Time": time.Time
9413
9414 #: "io.k8s.apimachinery.pkg.util.intstr.IntOrString": string
9415
9416 #: "sensor.CreateSensorRequest": {
9417 createOptions?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
9418 namespace?: string
9419 sensor?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"
9420 }
9421
9422 #: "sensor.DeleteSensorResponse": {}
9423
9424 // structured log entry
9425 #: "sensor.LogEntry": {
9426 // optional - trigger dependency name
9427 dependencyName?: string
9428
9429 // optional - Cloud Event context
9430 eventContext?: string
9431 level?: string
9432 msg?: string
9433 namespace?: string
9434 sensorName?: string
9435 time?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
9436
9437 // optional - any trigger name
9438 triggerName?: string
9439 }
9440
9441 #: "sensor.SensorWatchEvent": {
9442 object?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"
9443 type?: string
9444 }
9445
9446 #: "sensor.UpdateSensorRequest": {
9447 name?: string
9448 namespace?: string
9449 sensor?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"
9450 }
9451
9452 #: "sync.CreateSyncLimitRequest": {
9453 cmName?: string
9454 key?: string
9455 limit?: int
9456 namespace?: string
9457 type?: #."sync.SyncConfigType"
9458 }
9459
9460 #: "sync.DeleteSyncLimitResponse": {}
9461
9462 #: "sync.SyncConfigType": "CONFIGMAP" | "DATABASE"
9463
9464 #: "sync.SyncLimitResponse": {
9465 cmName?: string
9466 key?: string
9467 limit?: int
9468 namespace?: string
9469 type?: #."sync.SyncConfigType"
9470 }
9471
9472 #: "sync.UpdateSyncLimitRequest": {
9473 cmName?: string
9474 key?: string
9475 limit?: int
9476 namespace?: string
9477 type?: #."sync.SyncConfigType"
9478 }
9479}