cue.dev/x/argo/workflows@v0.9.0

schema.cue raw

   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}