cue.dev/x/argo/workflows@v0.7.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	#: {
 170		"github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueBindConfig": {
 171			// NowWait false and the queue could not be bound, the channel will be closed with an error
 172			// +optional
 173			"noWait"?: bool
 174		}
 175	}
 176
 177	// AMQPQueueDeclareConfig holds the configuration of a queue to hold messages
 178	// and deliver to consumers.
 179	// Declaring creates a queue if it doesn't already exist, or ensures that an existing queue matches
 180	// the same parameters
 181	// +k8s:openapi-gen=true
 182	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueDeclareConfig": {
 183		// Arguments of a queue (also known as "x-arguments") used for optional features and plugins
 184		// +optional
 185		"arguments"?: string
 186
 187		// AutoDelete removes the queue when no consumers are active
 188		// +optional
 189		"autoDelete"?: bool
 190
 191		// Durable keeps the queue also after the server restarts
 192		// +optional
 193		"durable"?: bool
 194
 195		// Exclusive sets the queues to be accessible only by the connection that declares them and will be
 196		// deleted wgen the connection closes
 197		// +optional
 198		"exclusive"?: bool
 199
 200		// Name of the queue. If empty the server auto-generates a unique name for this queue
 201		// +optional
 202		"name"?: string
 203
 204		// NowWait when true, the queue assumes to be declared on the server
 205		// +optional
 206		"noWait"?: bool
 207	}
 208
 209	// AWSLambdaTrigger refers to specification of the trigger to invoke an AWS Lambda function
 210	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AWSLambdaTrigger": {
 211		// AccessKey refers K8s secret containing aws access key
 212		// +optional
 213		"accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
 214
 215		// FunctionName refers to the name of the function to invoke.
 216		"functionName"?: string
 217
 218		// Choose from the following options.
 219		//
 220		// * RequestResponse (default) - Invoke the function synchronously. Keep
 221		// the connection open until the function returns a response or times out.
 222		// The API response includes the function response and additional data.
 223		//
 224		// * Event - Invoke the function asynchronously. Send events that fail multiple
 225		// times to the function's dead-letter queue (if it's configured). The API
 226		// response only includes a status code.
 227		//
 228		// * DryRun - Validate parameter values and verify that the user or role
 229		// has permission to invoke the function.
 230		// +optional
 231		"invocationType"?: string
 232
 233		// Parameters is the list of key-value extracted from event's payload that are applied to
 234		// the trigger resource.
 235		// +optional
 236		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 237
 238		// Payload is the list of key-value extracted from an event payload to construct
 239		// the request payload.
 240		"payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 241
 242		// Region is AWS region
 243		"region"?: string
 244
 245		// RoleARN is the Amazon Resource Name (ARN) of the role to assume.
 246		// +optional
 247		"roleARN"?: string
 248
 249		// SecretKey refers K8s secret containing aws secret key
 250		// +optional
 251		"secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
 252	}
 253
 254	// Amount represent a numeric amount.
 255	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount": "value"?: string
 256
 257	// ArgoWorkflowTrigger is the trigger for the Argo Workflow
 258	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArgoWorkflowTrigger": {
 259		// Args is the list of arguments to pass to the argo CLI
 260		"args"?: [...string]
 261
 262		// Operation refers to the type of operation performed on the argo workflow resource.
 263		// Default value is Submit.
 264		// +optional
 265		"operation"?: string
 266
 267		// Parameters is the list of parameters to pass to resolved Argo Workflow object
 268		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 269
 270		// Source of the K8s resource file(s)
 271		"source"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation"
 272	}
 273
 274	// ArtifactLocation describes the source location for an external artifact
 275	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation": {
 276		// Configmap that stores the artifact
 277		"configmap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
 278
 279		// File artifact is artifact stored in a file
 280		"file"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileArtifact"
 281
 282		// Git repository hosting the artifact
 283		"git"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitArtifact"
 284
 285		// Inline artifact is embedded in sensor spec as a string
 286		"inline"?: string
 287
 288		// Resource is generic template for K8s resource
 289		"resource"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResource"
 290
 291		// S3 compliant artifact
 292		"s3"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact"
 293
 294		// URL to fetch the artifact from
 295		"url"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.URLArtifact"
 296	}
 297
 298	// AzureEventHubsTrigger refers to specification of the Azure Event Hubs Trigger
 299	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventHubsTrigger": {
 300		// FQDN refers to the namespace dns of Azure Event Hubs to be used i.e.
 301		// <namespace>.servicebus.windows.net
 302		"fqdn"?: string
 303
 304		// HubName refers to the Azure Event Hub to send events to
 305		"hubName"?: string
 306
 307		// Parameters is the list of key-value extracted from event's payload that are applied to
 308		// the trigger resource.
 309		// +optional
 310		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 311
 312		// Payload is the list of key-value extracted from an event payload to construct
 313		// the request payload.
 314		"payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 315
 316		// SharedAccessKey refers to a K8s secret containing the primary key for the
 317		"sharedAccessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
 318
 319		// SharedAccessKeyName refers to the name of the Shared Access Key
 320		"sharedAccessKeyName"?: #."io.k8s.api.core.v1.SecretKeySelector"
 321	}
 322
 323	// AzureEventsHubEventSource describes the event source for azure events hub
 324	// More info at https://docs.microsoft.com/en-us/azure/event-hubs/
 325	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventsHubEventSource": {
 326		// Filter
 327		// +optional
 328		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 329
 330		// FQDN of the EventHubs namespace you created
 331		// More info at https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-get-connection-string
 332		"fqdn"?: string
 333
 334		// Event Hub path/name
 335		"hubName"?: string
 336
 337		// Metadata holds the user defined metadata which will passed along the event payload.
 338		// +optional
 339		"metadata"?: [string]: string
 340
 341		// SharedAccessKey is the generated value of the key. If both this field and
 342		// SharedAccessKeyName are not provided
 343		// it will try to access via Azure AD with DefaultAzureCredential, FQDN and HubName.
 344		// +optional
 345		"sharedAccessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
 346
 347		// SharedAccessKeyName is the name you chose for your application's SAS keys. If
 348		// both this field and SharedAccessKey are not provided
 349		// it will try to access via Azure AD with DefaultAzureCredential, FQDN and HubName.
 350		// +optional
 351		"sharedAccessKeyName"?: #."io.k8s.api.core.v1.SecretKeySelector"
 352	}
 353
 354	// AzureQueueStorageEventSource describes the event source for azure queue storage
 355	// more info at https://learn.microsoft.com/en-us/azure/storage/queues/
 356	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureQueueStorageEventSource": {
 357		// ConnectionString is the connection string to access Azure Queue Storage. If
 358		// this fields is not provided
 359		// it will try to access via Azure AD with StorageAccountName.
 360		// +optional
 361		"connectionString"?: #."io.k8s.api.core.v1.SecretKeySelector"
 362
 363		// DecodeMessage specifies if all the messages should be base64 decoded.
 364		// If set to true the decoding is done before the evaluation of JSONBody
 365		// +optional
 366		"decodeMessage"?: bool
 367
 368		// DLQ specifies if a dead-letter queue is configured for messages that can't be
 369		// processed successfully.
 370		// If set to true, messages with invalid payload won't be acknowledged to allow
 371		// to forward them farther to the dead-letter queue.
 372		// The default value is false.
 373		// +optional
 374		"dlq"?: bool
 375
 376		// Filter
 377		// +optional
 378		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 379
 380		// JSONBody specifies that all event body payload coming from this
 381		// source will be JSON
 382		// +optional
 383		"jsonBody"?: bool
 384
 385		// Metadata holds the user defined metadata which will passed along the event payload.
 386		// +optional
 387		"metadata"?: [string]: string
 388
 389		// QueueName is the name of the queue
 390		"queueName"?: string
 391
 392		// StorageAccountName is the name of the storage account where the queue is.
 393		// This field is necessary to
 394		// access via Azure AD (managed identity) and it is ignored if ConnectionString is set.
 395		// +optional
 396		"storageAccountName"?: string
 397
 398		// WaitTimeInSeconds is the duration (in seconds) for which the event source
 399		// waits between empty results from the queue.
 400		// The default value is 3 seconds.
 401		// +optional
 402		"waitTimeInSeconds"?: int
 403	}
 404
 405	// AzureServiceBusEventSource describes the event source for azure service bus
 406	// More info at https://docs.microsoft.com/en-us/azure/service-bus-messaging/
 407	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusEventSource": {
 408		// ConnectionString is the connection string for the Azure Service Bus. If this
 409		// fields is not provided
 410		// it will try to access via Azure AD with DefaultAzureCredential and FullyQualifiedNamespace.
 411		// +optional
 412		"connectionString"?: #."io.k8s.api.core.v1.SecretKeySelector"
 413
 414		// Filter
 415		// +optional
 416		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 417
 418		// FullyQualifiedNamespace is the Service Bus namespace name (ex:
 419		// myservicebus.servicebus.windows.net). This field is necessary to
 420		// access via Azure AD (managed identity) and it is ignored if ConnectionString is set.
 421		// +optional
 422		"fullyQualifiedNamespace"?: string
 423
 424		// JSONBody specifies that all event body payload coming from this
 425		// source will be JSON
 426		// +optional
 427		"jsonBody"?: bool
 428
 429		// Metadata holds the user defined metadata which will passed along the event payload.
 430		// +optional
 431		"metadata"?: [string]: string
 432
 433		// QueueName is the name of the Azure Service Bus Queue
 434		"queueName"?: string
 435
 436		// SubscriptionName is the name of the Azure Service Bus Topic Subscription
 437		"subscriptionName"?: string
 438
 439		// TLS configuration for the service bus client
 440		// +optional
 441		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
 442
 443		// TopicName is the name of the Azure Service Bus Topic
 444		"topicName"?: string
 445	}
 446
 447	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusTrigger": {
 448		// ConnectionString is the connection string for the Azure Service Bus
 449		"connectionString"?: #."io.k8s.api.core.v1.SecretKeySelector"
 450
 451		// Parameters is the list of key-value extracted from event's payload that are applied to
 452		// the trigger resource.
 453		// +optional
 454		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 455
 456		// Payload is the list of key-value extracted from an event payload to construct
 457		// the request payload.
 458		"payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 459
 460		// QueueName is the name of the Azure Service Bus Queue
 461		"queueName"?: string
 462
 463		// SubscriptionName is the name of the Azure Service Bus Topic Subscription
 464		"subscriptionName"?: string
 465
 466		// TLS configuration for the service bus client
 467		// +optional
 468		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
 469
 470		// TopicName is the name of the Azure Service Bus Topic
 471		"topicName"?: string
 472	}
 473
 474	// Backoff for an operation
 475	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff": {
 476		// The initial duration in nanoseconds or strings like "1s", "3m"
 477		// +optional
 478		"duration"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Int64OrString"
 479
 480		// Duration is multiplied by factor each iteration
 481		// +optional
 482		"factor"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount"
 483
 484		// The amount of jitter applied each iteration
 485		// +optional
 486		"jitter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount"
 487
 488		// Exit with error after this many steps
 489		// +optional
 490		"steps"?: int
 491	}
 492
 493	// BasicAuth contains the reference to K8s secrets that holds the username and password
 494	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth": {
 495		// Password refers to the Kubernetes secret that holds the password required for basic auth.
 496		"password"?: #."io.k8s.api.core.v1.SecretKeySelector"
 497
 498		// Username refers to the Kubernetes secret that holds the username required for basic auth.
 499		"username"?: #."io.k8s.api.core.v1.SecretKeySelector"
 500	}
 501
 502	// BitbucketAuth holds the different auth strategies for connecting to Bitbucket
 503	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketAuth": {
 504		// Basic is BasicAuth auth strategy.
 505		// +optional
 506		"basic"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketBasicAuth"
 507
 508		// OAuthToken refers to the K8s secret that holds the OAuth Bearer token.
 509		// +optional
 510		"oauthToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
 511	}
 512
 513	// BitbucketBasicAuth holds the information required to authenticate user via basic auth mechanism
 514	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketBasicAuth": {
 515		// Password refers to the K8s secret that holds the password.
 516		"password"?: #."io.k8s.api.core.v1.SecretKeySelector"
 517
 518		// Username refers to the K8s secret that holds the username.
 519		"username"?: #."io.k8s.api.core.v1.SecretKeySelector"
 520	}
 521
 522	// BitbucketEventSource describes the event source for Bitbucket
 523	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketEventSource": {
 524		// Auth information required to connect to Bitbucket.
 525		"auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketAuth"
 526
 527		// DeleteHookOnFinish determines whether to delete the defined Bitbucket hook
 528		// once the event source is stopped.
 529		// +optional
 530		"deleteHookOnFinish"?: bool
 531
 532		// Events this webhook is subscribed to.
 533		"events"?: [...string]
 534
 535		// Filter
 536		// +optional
 537		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 538
 539		// Metadata holds the user defined metadata which will be passed along the event payload.
 540		// +optional
 541		"metadata"?: [string]: string
 542
 543		// DeprecatedOwner is the owner of the repository.
 544		// Deprecated: use Repositories instead. Will be unsupported in v1.9
 545		// +optional
 546		"owner"?: string
 547
 548		// DeprecatedProjectKey is the key of the project to which the repository relates
 549		// Deprecated: use Repositories instead. Will be unsupported in v1.9
 550		// +optional
 551		"projectKey"?: string
 552
 553		// Repositories holds a list of repositories for which integration needs to set up
 554		// +optional
 555		"repositories"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketRepository"]
 556
 557		// DeprecatedRepositorySlug is a URL-friendly version of a repository name,
 558		// automatically generated by Bitbucket for use in the URL
 559		// Deprecated: use Repositories instead. Will be unsupported in v1.9
 560		// +optional
 561		"repositorySlug"?: string
 562
 563		// Webhook refers to the configuration required to run an http server
 564		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
 565	}
 566
 567	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketRepository": {
 568		// Owner is the owner of the repository
 569		"owner"?: string
 570
 571		// RepositorySlug is a URL-friendly version of a repository name, automatically
 572		// generated by Bitbucket for use in the URL
 573		"repositorySlug"?: string
 574	}
 575
 576	// BitbucketServerEventSource refers to event-source related to Bitbucket Server events
 577	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerEventSource": {
 578		// AccessToken is reference to K8s secret which holds the bitbucket api access information.
 579		// +optional
 580		"accessToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
 581
 582		// BitbucketServerBaseURL is the base URL for API requests to a custom endpoint.
 583		"bitbucketserverBaseURL"?: string
 584
 585		// CheckInterval is a duration in which to wait before checking that the
 586		// webhooks exist, e.g. 1s, 30m, 2h... (defaults to 1m)
 587		// +optional
 588		"checkInterval"?: string
 589
 590		// DeleteHookOnFinish determines whether to delete the Bitbucket Server hook for
 591		// the project once the event source is stopped.
 592		// +optional
 593		"deleteHookOnFinish"?: bool
 594
 595		// Events are bitbucket event to listen to.
 596		// Refer https://confluence.atlassian.com/bitbucketserver/event-payload-938025882.html
 597		// +optional
 598		"events"?: [...string]
 599
 600		// Filter
 601		// +optional
 602		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 603
 604		// Metadata holds the user defined metadata which will passed along the event payload.
 605		// +optional
 606		"metadata"?: [string]: string
 607
 608		// OneEventPerChange controls whether to process each change in a
 609		// repo:refs_changed webhook event as a separate io.argoproj.workflow.v1alpha1.
 610		// This setting is useful when multiple tags are
 611		// pushed simultaneously for the same commit, and each tag needs to
 612		// independently trigger an action, such as a distinct workflow in Argo
 613		// Workflows. When enabled, the
 614		// BitbucketServerEventSource publishes an individual BitbucketServerEventData
 615		// for each change, ensuring independent processing of each tag or reference
 616		// update in a
 617		// single webhook event.
 618		// +optional
 619		"oneEventPerChange"?: bool
 620
 621		// DeprecatedProjectKey is the key of project for which integration needs to set up.
 622		// Deprecated: use Repositories instead. Will be unsupported in v1.8.
 623		// +optional
 624		"projectKey"?: string
 625
 626		// Projects holds a list of projects for which integration needs to set up, this
 627		// will add the webhook to all repositories in the project.
 628		// +optional
 629		"projects"?: [...string]
 630
 631		// Repositories holds a list of repositories for which integration needs to set up.
 632		// +optional
 633		"repositories"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerRepository"]
 634
 635		// DeprecatedRepositorySlug is the slug of the repository for which integration needs to set up.
 636		// Deprecated: use Repositories instead. Will be unsupported in v1.8.
 637		// +optional
 638		"repositorySlug"?: string
 639
 640		// SkipBranchRefsChangedOnOpenPR bypasses the event repo:refs_changed for
 641		// branches whenever there's an associated open pull request.
 642		// This helps in optimizing the event handling process by avoiding unnecessary
 643		// triggers for branch reference changes that are already part of a pull
 644		// request under review.
 645		// +optional
 646		"skipBranchRefsChangedOnOpenPR"?: bool
 647
 648		// TLS configuration for the bitbucketserver client.
 649		// +optional
 650		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
 651
 652		// Webhook holds configuration to run a http server.
 653		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
 654
 655		// WebhookSecret is reference to K8s secret which holds the bitbucket webhook
 656		// secret (for HMAC validation).
 657		// +optional
 658		"webhookSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 659	}
 660
 661	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerRepository": {
 662		// ProjectKey is the key of project for which integration needs to set up.
 663		"projectKey"?: string
 664
 665		// RepositorySlug is the slug of the repository for which integration needs to set up.
 666		"repositorySlug"?: string
 667	}
 668
 669	// CalendarEventSource describes a time based dependency. One of the fields
 670	// (schedule, interval, or recurrence) must be passed.
 671	// Schedule takes precedence over interval; interval takes precedence over recurrence
 672	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CalendarEventSource": {
 673		// ExclusionDates defines the list of DATE-TIME exceptions for recurring events.
 674		"exclusionDates"?: [...string]
 675
 676		// Filter
 677		// +optional
 678		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 679
 680		// Interval is a string that describes an interval duration, e.g. 1s, 30m, 2h...
 681		// +optional
 682		"interval"?: string
 683
 684		// Metadata holds the user defined metadata which will passed along the event payload.
 685		// +optional
 686		"metadata"?: [string]: string
 687
 688		// Persistence hold the configuration for event persistence
 689		"persistence"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventPersistence"
 690
 691		// Schedule is a cron-like expression. For reference, see: https://en.wikipedia.org/wiki/Cron
 692		// +optional
 693		"schedule"?: string
 694
 695		// Timezone in which to run the schedule
 696		// +optional
 697		"timezone"?: string
 698	}
 699
 700	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CatchupConfiguration": {
 701		// Enabled enables to triggered the missed schedule when eventsource restarts
 702		"enabled"?: bool
 703
 704		// MaxDuration holds max catchup duration
 705		"maxDuration"?: string
 706	}
 707
 708	// Condition contains details about resource state
 709	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Condition": {
 710		// Last time the condition transitioned from one status to another.
 711		// +optional
 712		"lastTransitionTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
 713
 714		// Human-readable message indicating details about last transition.
 715		// +optional
 716		"message"?: string
 717
 718		// Unique, this should be a short, machine understandable string that gives the reason
 719		// for condition's last transition. For example, "ImageNotFound"
 720		// +optional
 721		"reason"?: string
 722
 723		// Condition status, True, False or Unknown.
 724		// +required
 725		"status"?: string
 726
 727		// Condition type.
 728		// +required
 729		"type"?: string
 730	}
 731
 732	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetByTime": {
 733		// Cron is a cron-like expression. For reference, see: https://en.wikipedia.org/wiki/Cron
 734		"cron"?: string
 735
 736		// +optional
 737		"timezone"?: string
 738	}
 739
 740	#: {
 741		"github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetCriteria": {
 742			// Schedule is a cron-like expression. For reference, see: https://en.wikipedia.org/wiki/Cron
 743			"byTime"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetByTime"
 744		}
 745	}
 746
 747	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConfigMapPersistence": {
 748		// CreateIfNotExist will create configmap if it doesn't exists
 749		"createIfNotExist"?: bool
 750
 751		// Name of the configmap
 752		"name"?: string
 753	}
 754
 755	// Container defines customized spec for a container
 756	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Container": {
 757		// +optional
 758		"env"?: [...#."io.k8s.api.core.v1.EnvVar"]
 759
 760		// +optional
 761		"envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
 762
 763		// +optional
 764		"imagePullPolicy"?: string
 765
 766		// +optional
 767		"resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
 768
 769		// +optional
 770		"securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
 771
 772		// +optional
 773		"volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
 774	}
 775
 776	// CustomTrigger refers to the specification of the custom trigger.
 777	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CustomTrigger": {
 778		// CertSecret refers to the secret that contains cert for secure connection
 779		// between sensor and custom trigger gRPC server.
 780		"certSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 781
 782		// Parameters is the list of parameters that is applied to resolved custom trigger trigger object.
 783		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 784
 785		// Payload is the list of key-value extracted from an event payload to construct
 786		// the request payload.
 787		"payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 788
 789		// Secure refers to type of the connection between sensor to custom trigger gRPC
 790		"secure"?: bool
 791
 792		// ServerNameOverride for the secure connection between sensor and custom trigger gRPC server.
 793		"serverNameOverride"?: string
 794
 795		// ServerURL is the url of the gRPC server that executes custom trigger
 796		"serverURL"?: string
 797
 798		// Spec is the custom trigger resource specification that custom trigger gRPC
 799		// server knows how to interpret.
 800		"spec"?: [string]: string
 801	}
 802
 803	// DataFilter describes constraints and filters for event data
 804	// Regular Expressions are purposefully not a feature as they are overkill for our uses here
 805	// See Rob Pike's Post:
 806	// https://commandcenter.blogspot.com/2011/08/regular-expressions-in-lexing-and.html
 807	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.DataFilter": {
 808		// Comparator compares the event data with a user given value.
 809		// Can be ">=", ">", "=", "!=", "<", or "<=".
 810		// Is optional, and if left blank treated as equality "=".
 811		"comparator"?: string
 812
 813		// Path is the JSONPath of the event's (JSON decoded) data key
 814		// Path is a series of keys separated by a dot. A key may contain wildcard characters '*' and '?'.
 815		// To access an array value use the index as the key. The dot and wildcard
 816		// characters can be escaped with '\\'.
 817		// See https://github.com/tidwall/gjson#path-syntax for more information on how to use this.
 818		"path"?: string
 819
 820		// Template is a go-template for extracting a string from the event's data.
 821		// A Template is evaluated with provided path, type and value.
 822		// The templating follows the standard go-template syntax as well as sprig's extra functions.
 823		// See https://pkg.go.dev/text/template and https://masterminds.github.io/sprig/
 824		"template"?: string
 825
 826		// Type contains the JSON type of the data
 827		"type"?: string
 828
 829		// Value is the allowed string values for this key
 830		// Booleans are passed using strconv.ParseBool()
 831		// Numbers are parsed using as float64 using strconv.ParseFloat()
 832		// Strings are taken as is
 833		// Nils this value is ignored
 834		"value"?: [...string]
 835	}
 836
 837	// EmailTrigger refers to the specification of the email notification trigger.
 838	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmailTrigger": {
 839		// Body refers to the body/content of the email send.
 840		// +optional
 841		"body"?: string
 842
 843		// From refers to the address from which the email is send from.
 844		// +optional
 845		"from"?: string
 846
 847		// Host refers to the smtp host url to which email is send.
 848		"host"?: string
 849
 850		// Parameters is the list of key-value extracted from event's payload that are applied to
 851		// the trigger resource.
 852		// +optional
 853		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 854
 855		// Port refers to the smtp server port to which email is send.
 856		// Defaults to 0.
 857		// +optional
 858		"port"?: int
 859
 860		// SMTPPassword refers to the Kubernetes secret that holds the smtp password
 861		// used to connect to smtp server.
 862		// +optional
 863		"smtpPassword"?: #."io.k8s.api.core.v1.SecretKeySelector"
 864
 865		// Subject refers to the subject line for the email send.
 866		// +optional
 867		"subject"?: string
 868
 869		// To refers to the email addresses to which the emails are send.
 870		// +optional
 871		"to"?: [...string]
 872
 873		// Username refers to the username used to connect to the smtp server.
 874		// +optional
 875		"username"?: string
 876	}
 877
 878	// EmitterEventSource describes the event source for emitter
 879	// More info at https://emitter.io/develop/getting-started/
 880	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmitterEventSource": {
 881		// Broker URI to connect to.
 882		"broker"?: string
 883
 884		// ChannelKey refers to the channel key
 885		"channelKey"?: string
 886
 887		// ChannelName refers to the channel name
 888		"channelName"?: string
 889
 890		// Backoff holds parameters applied to connection.
 891		// +optional
 892		"connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
 893
 894		// Filter
 895		// +optional
 896		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 897
 898		// JSONBody specifies that all event body payload coming from this
 899		// source will be JSON
 900		// +optional
 901		"jsonBody"?: bool
 902
 903		// Metadata holds the user defined metadata which will passed along the event payload.
 904		// +optional
 905		"metadata"?: [string]: string
 906
 907		// Password to use to connect to broker
 908		// +optional
 909		"password"?: #."io.k8s.api.core.v1.SecretKeySelector"
 910
 911		// TLS configuration for the emitter client.
 912		// +optional
 913		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
 914
 915		// Username to use to connect to broker
 916		// +optional
 917		"username"?: #."io.k8s.api.core.v1.SecretKeySelector"
 918	}
 919
 920	// EventContext holds the context of the cloudevent received from an event source.
 921	// +protobuf.options.(gogoproto.goproto_stringer)=false
 922	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventContext": {
 923		// DataContentType - A MIME (RFC2046) string describing the media type of `data`.
 924		"datacontenttype"?: string
 925
 926		// ID of the event; must be non-empty and unique within the scope of the producer.
 927		"id"?: string
 928
 929		// Source - A URI describing the event producer.
 930		"source"?: string
 931
 932		// SpecVersion - The version of the CloudEvents specification used by the
 933		// io.argoproj.workflow.v1alpha1.
 934		"specversion"?: string
 935
 936		// Subject - The subject of the event in the context of the event producer
 937		"subject"?: string
 938
 939		// Time - A Timestamp when the event happened.
 940		"time"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
 941
 942		// Type - The type of the occurrence which has happened.
 943		"type"?: string
 944	}
 945
 946	// EventDependency describes a dependency
 947	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependency": {
 948		// EventName is the name of the event
 949		"eventName"?: string
 950
 951		// EventSourceName is the name of EventSource that Sensor depends on
 952		"eventSourceName"?: string
 953
 954		// Filters and rules governing toleration of success and constraints on the
 955		// context and data of an event
 956		"filters"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyFilter"
 957
 958		// FiltersLogicalOperator defines how different filters are evaluated together.
 959		// Available values: and (&&), or (||)
 960		// Is optional and if left blank treated as and (&&).
 961		"filtersLogicalOperator"?: string
 962
 963		// Name is a unique name of this dependency
 964		"name"?: string
 965
 966		// Transform transforms the event data
 967		"transform"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyTransformer"
 968	}
 969
 970	// EventDependencyFilter defines filters and constraints for a io.argoproj.workflow.v1alpha1.
 971	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyFilter": {
 972		// Context filter constraints
 973		"context"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventContext"
 974
 975		// Data filter constraints with escalation
 976		"data"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.DataFilter"]
 977
 978		// DataLogicalOperator defines how multiple Data filters (if defined) are evaluated together.
 979		// Available values: and (&&), or (||)
 980		// Is optional and if left blank treated as and (&&).
 981		"dataLogicalOperator"?: string
 982
 983		// ExprLogicalOperator defines how multiple Exprs filters (if defined) are evaluated together.
 984		// Available values: and (&&), or (||)
 985		// Is optional and if left blank treated as and (&&).
 986		"exprLogicalOperator"?: string
 987
 988		// Exprs contains the list of expressions evaluated against the event payload.
 989		"exprs"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ExprFilter"]
 990
 991		// Script refers to a Lua script evaluated to determine the validity of an
 992		// io.argoproj.workflow.v1alpha1.
 993		"script"?: string
 994
 995		// Time filter on the event with escalation
 996		"time"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TimeFilter"
 997	}
 998
 999	// EventDependencyTransformer transforms the event
1000	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyTransformer": {
1001		// JQ holds the jq command applied for transformation
1002		// +optional
1003		"jq"?: string
1004
1005		// Script refers to a Lua script used to transform the event
1006		// +optional
1007		"script"?: string
1008	}
1009
1010	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventPersistence": {
1011		// Catchup enables to triggered the missed schedule when eventsource restarts
1012		"catchup"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CatchupConfiguration"
1013
1014		// ConfigMap holds configmap details for persistence
1015		"configMap"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConfigMapPersistence"
1016	}
1017
1018	// EventSource is the definition of a eventsource resource
1019	// +genclient
1020	// +kubebuilder:resource:shortName=es
1021	// +kubebuilder:subresource:status
1022	// +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
1023	// +k8s:openapi-gen=true
1024	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource": {
1025		"metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
1026		"spec"?:     #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceSpec"
1027
1028		// +optional
1029		"status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceStatus"
1030	}
1031
1032	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter": "expression"?: string
1033
1034	// EventSourceList is the list of eventsource resources
1035	// +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
1036	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceList": {
1037		"items"?:    [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"]
1038		"metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
1039	}
1040
1041	// EventSourceSpec refers to specification of event-source resource
1042	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceSpec": {
1043		// AMQP event sources
1044		"amqp"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPEventSource"
1045
1046		// AzureEventsHub event sources
1047		"azureEventsHub"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventsHubEventSource"
1048
1049		// AzureQueueStorage event source
1050		"azureQueueStorage"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureQueueStorageEventSource"
1051
1052		// Azure Service Bus event source
1053		"azureServiceBus"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusEventSource"
1054
1055		// Bitbucket event sources
1056		"bitbucket"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketEventSource"
1057
1058		// Bitbucket Server event sources
1059		"bitbucketserver"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerEventSource"
1060
1061		// Calendar event sources
1062		"calendar"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CalendarEventSource"
1063
1064		// Emitter event source
1065		"emitter"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmitterEventSource"
1066
1067		// EventBusName references to a EventBus name. By default the value is "default"
1068		"eventBusName"?: string
1069
1070		// File event sources
1071		"file"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileEventSource"
1072
1073		// Generic event source
1074		"generic"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GenericEventSource"
1075
1076		// Gerrit event source
1077		"gerrit"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GerritEventSource"
1078
1079		// Github event sources
1080		"github"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubEventSource"
1081
1082		// Gitlab event sources
1083		"gitlab"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitlabEventSource"
1084
1085		// HDFS event sources
1086		"hdfs"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HDFSEventSource"
1087
1088		// Kafka event sources
1089		"kafka"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaEventSource"
1090
1091		// Minio event sources
1092		"minio"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact"
1093
1094		// MQTT event sources
1095		"mqtt"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.MQTTEventSource"
1096
1097		// NATS event sources
1098		"nats"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSEventsSource"
1099
1100		// NSQ event source
1101		"nsq"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NSQEventSource"
1102
1103		// PubSub event sources
1104		"pubSub"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PubSubEventSource"
1105
1106		// Pulsar event source
1107		"pulsar"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarEventSource"
1108
1109		// Redis event source
1110		"redis"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisEventSource"
1111
1112		// Redis stream source
1113		"redisStream"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisStreamEventSource"
1114
1115		// Replicas is the event source deployment replicas
1116		"replicas"?: int
1117
1118		// Resource event sources
1119		"resource"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceEventSource"
1120
1121		// Service is the specifications of the service to expose the event source
1122		// +optional
1123		"service"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Service"
1124
1125		// SFTP event sources
1126		"sftp"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SFTPEventSource"
1127
1128		// Slack event sources
1129		"slack"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackEventSource"
1130
1131		// SNS event sources
1132		"sns"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SNSEventSource"
1133
1134		// SQS event sources
1135		"sqs"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SQSEventSource"
1136
1137		// StorageGrid event sources
1138		"storageGrid"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridEventSource"
1139
1140		// Stripe event sources
1141		"stripe"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StripeEventSource"
1142
1143		// Template is the pod specification for the event source
1144		// +optional
1145		"template"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template"
1146
1147		// Webhook event sources
1148		"webhook"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookEventSource"
1149	}
1150
1151	// EventSourceStatus holds the status of the event-source resource
1152	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceStatus": "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status"
1153
1154	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ExprFilter": {
1155		// Expr refers to the expression that determines the outcome of the filter.
1156		"expr"?: string
1157
1158		// Fields refers to set of keys that refer to the paths within event payload.
1159		"fields"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PayloadField"]
1160	}
1161
1162	// FileArtifact contains information about an artifact in a filesystem
1163	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileArtifact": "path"?: string
1164
1165	// FileEventSource describes an event-source for file related events.
1166	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileEventSource": {
1167		// Type of file operations to watch
1168		// Refer https://github.com/fsnotify/fsnotify/blob/master/fsnotify.go for more information
1169		"eventType"?: string
1170
1171		// Filter
1172		// +optional
1173		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1174
1175		// Metadata holds the user defined metadata which will passed along the event payload.
1176		// +optional
1177		"metadata"?: [string]: string
1178
1179		// Use polling instead of inotify
1180		"polling"?: bool
1181
1182		// WatchPathConfig contains configuration about the file path to watch
1183		"watchPathConfig"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig"
1184	}
1185
1186	// GenericEventSource refers to a generic event source. It can be used to
1187	// implement a custom event source.
1188	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GenericEventSource": {
1189		// AuthSecret holds a secret selector that contains a bearer token for authentication
1190		// +optional
1191		"authSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1192
1193		// Config is the event source configuration
1194		"config"?: string
1195
1196		// Filter
1197		// +optional
1198		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1199
1200		// Insecure determines the type of connection.
1201		"insecure"?: bool
1202
1203		// JSONBody specifies that all event body payload coming from this
1204		// source will be JSON
1205		// +optional
1206		"jsonBody"?: bool
1207
1208		// Metadata holds the user defined metadata which will passed along the event payload.
1209		// +optional
1210		"metadata"?: [string]: string
1211
1212		// URL of the gRPC server that implements the event source.
1213		"url"?: string
1214	}
1215
1216	// GerritEventSource refers to event-source related to gerrit events
1217	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GerritEventSource": {
1218		// Auth hosts secret selectors for username and password
1219		// +optional
1220		"auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
1221
1222		// DeleteHookOnFinish determines whether to delete the Gerrit hook for the
1223		// project once the event source is stopped.
1224		// +optional
1225		"deleteHookOnFinish"?: bool
1226
1227		// Events are gerrit event to listen to.
1228		// Refer https://gerrit-review.googlesource.com/Documentation/cmd-stream-events.html#events
1229		"events"?: [...string]
1230
1231		// Filter
1232		// +optional
1233		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1234
1235		// GerritBaseURL is the base URL for API requests to a custom endpoint
1236		"gerritBaseURL"?: string
1237
1238		// HookName is the name of the webhook
1239		"hookName"?: string
1240
1241		// Metadata holds the user defined metadata which will passed along the event payload.
1242		// +optional
1243		"metadata"?: [string]: string
1244
1245		// List of project namespace paths like "whynowy/test".
1246		"projects"?: [...string]
1247
1248		// SslVerify to enable ssl verification
1249		// +optional
1250		"sslVerify"?: bool
1251
1252		// Webhook holds configuration to run a http server
1253		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
1254	}
1255
1256	// GitArtifact contains information about an artifact stored in git
1257	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitArtifact": {
1258		// Branch to use to pull trigger resource
1259		// +optional
1260		"branch"?: string
1261
1262		// Directory to clone the repository. We clone complete directory because
1263		// GitArtifact is not limited to any specific Git service providers.
1264		// Hence we don't use any specific git provider client.
1265		"cloneDirectory"?: string
1266
1267		// Creds contain reference to git username and password
1268		// +optional
1269		"creds"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitCreds"
1270
1271		// Path to file that contains trigger resource definition
1272		"filePath"?: string
1273
1274		// Whether to ignore host key
1275		// +optional
1276		"insecureIgnoreHostKey"?: bool
1277
1278		// Ref to use to pull trigger resource. Will result in a shallow clone and
1279		// fetch.
1280		// +optional
1281		"ref"?: string
1282
1283		// Remote to manage set of tracked repositories. Defaults to "origin".
1284		// Refer https://git-scm.com/docs/git-remote
1285		// +optional
1286		"remote"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitRemoteConfig"
1287
1288		// SSHKeySecret refers to the secret that contains SSH key
1289		"sshKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1290
1291		// Tag to use to pull trigger resource
1292		// +optional
1293		"tag"?: string
1294
1295		// Git URL
1296		"url"?: string
1297	}
1298
1299	// GitCreds contain reference to git username and password
1300	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitCreds": {
1301		"password"?: #."io.k8s.api.core.v1.SecretKeySelector"
1302		"username"?: #."io.k8s.api.core.v1.SecretKeySelector"
1303	}
1304
1305	// GitRemoteConfig contains the configuration of a Git remote
1306	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitRemoteConfig": {
1307		// Name of the remote to fetch from.
1308		"name"?: string
1309
1310		// URLs the URLs of a remote repository. It must be non-empty. Fetch will
1311		// always use the first URL, while push will use all of them.
1312		"urls"?: [...string]
1313	}
1314
1315	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubAppCreds": {
1316		// AppID refers to the GitHub App ID for the application you created
1317		"appID"?: string
1318
1319		// InstallationID refers to the Installation ID of the GitHub app you created and installed
1320		"installationID"?: string
1321
1322		// PrivateKey refers to a K8s secret containing the GitHub app private key
1323		"privateKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
1324	}
1325
1326	// GithubEventSource refers to event-source for github related events
1327	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubEventSource": {
1328		// Active refers to status of the webhook for event deliveries.
1329		// https://developer.github.com/webhooks/creating/#active
1330		// +optional
1331		"active"?: bool
1332
1333		// APIToken refers to a K8s secret containing github api token
1334		// +optional
1335		"apiToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
1336
1337		// ContentType of the event delivery
1338		"contentType"?: string
1339
1340		// DeleteHookOnFinish determines whether to delete the GitHub hook for the
1341		// repository once the event source is stopped.
1342		// +optional
1343		"deleteHookOnFinish"?: bool
1344
1345		// Events refer to Github events to which the event source will subscribe
1346		"events"?: [...string]
1347
1348		// Filter
1349		// +optional
1350		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1351
1352		// GitHubApp holds the GitHub app credentials
1353		// +optional
1354		"githubApp"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubAppCreds"
1355
1356		// GitHub base URL (for GitHub Enterprise)
1357		// +optional
1358		"githubBaseURL"?: string
1359
1360		// GitHub upload URL (for GitHub Enterprise)
1361		// +optional
1362		"githubUploadURL"?: string
1363
1364		// Id is the webhook's id
1365		// Deprecated: This is not used at all, will be removed in v1.6
1366		// +optional
1367		"id"?: string
1368
1369		// Insecure tls verification
1370		"insecure"?: bool
1371
1372		// Metadata holds the user defined metadata which will passed along the event payload.
1373		// +optional
1374		"metadata"?: [string]: string
1375
1376		// Organizations holds the names of organizations (used for organization level
1377		// webhooks). Not required if Repositories is set.
1378		"organizations"?: [...string]
1379
1380		// DeprecatedOwner refers to GitHub owner name i.e. argoproj
1381		// Deprecated: use Repositories instead. Will be unsupported in v 1.6
1382		// +optional
1383		"owner"?: string
1384
1385		// Repositories holds the information of repositories, which uses repo owner as the key,
1386		// and list of repo names as the value. Not required if Organizations is set.
1387		"repositories"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OwnedRepositories"]
1388
1389		// DeprecatedRepository refers to GitHub repo name i.e. argo-events
1390		// Deprecated: use Repositories instead. Will be unsupported in v 1.6
1391		// +optional
1392		"repository"?: string
1393
1394		// Webhook refers to the configuration required to run a http server
1395		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
1396
1397		// WebhookSecret refers to K8s secret containing GitHub webhook secret
1398		// https://developer.github.com/webhooks/securing/
1399		// +optional
1400		"webhookSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1401	}
1402
1403	// GitlabEventSource refers to event-source related to Gitlab events
1404	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitlabEventSource": {
1405		// AccessToken references to k8 secret which holds the gitlab api access information
1406		"accessToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
1407
1408		// DeleteHookOnFinish determines whether to delete the GitLab hook for the
1409		// project once the event source is stopped.
1410		// +optional
1411		"deleteHookOnFinish"?: bool
1412
1413		// EnableSSLVerification to enable ssl verification
1414		// +optional
1415		"enableSSLVerification"?: bool
1416
1417		// Events are gitlab event to listen to.
1418		// Refer
1419		// https://github.com/xanzy/go-gitlab/blob/bf34eca5d13a9f4c3f501d8a97b8ac226d55e4d9/projects.go#L794.
1420		"events"?: [...string]
1421
1422		// Filter
1423		// +optional
1424		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1425
1426		// GitlabBaseURL is the base URL for API requests to a custom endpoint
1427		"gitlabBaseURL"?: string
1428
1429		// List of group IDs or group name like "test".
1430		// Group level hook available in Premium and Ultimate Gitlab.
1431		// +optional
1432		"groups"?: [...string]
1433
1434		// Metadata holds the user defined metadata which will passed along the event payload.
1435		// +optional
1436		"metadata"?: [string]: string
1437
1438		// DeprecatedProjectID is the id of project for which integration needs to setup
1439		// Deprecated: use Projects instead. Will be unsupported in v 1.7
1440		// +optional
1441		"projectID"?: string
1442
1443		// List of project IDs or project namespace paths like "whynowy/test".
1444		// If neither a project nor a group is defined, the EventSource will not manage webhooks.
1445		// +optional
1446		"projects"?: [...string]
1447
1448		// SecretToken references to k8 secret which holds the Secret Token used by webhook config
1449		"secretToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
1450
1451		// Webhook holds configuration to run a http server
1452		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
1453	}
1454
1455	// HDFSEventSource refers to event-source for HDFS related events
1456	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HDFSEventSource": {
1457		"addresses"?: [...string]
1458
1459		// CheckInterval is a string that describes an interval duration to check the
1460		// directory state, e.g. 1s, 30m, 2h... (defaults to 1m)
1461		"checkInterval"?: string
1462
1463		// Filter
1464		// +optional
1465		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1466
1467		// HDFSUser is the user to access HDFS file system.
1468		// It is ignored if either ccache or keytab is used.
1469		"hdfsUser"?: string
1470
1471		// KrbCCacheSecret is the secret selector for Kerberos ccache
1472		// Either ccache or keytab can be set to use Kerberos.
1473		"krbCCacheSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1474
1475		// KrbConfig is the configmap selector for Kerberos config as string
1476		// It must be set if either ccache or keytab is used.
1477		"krbConfigConfigMap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
1478
1479		// KrbKeytabSecret is the secret selector for Kerberos keytab
1480		// Either ccache or keytab can be set to use Kerberos.
1481		"krbKeytabSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1482
1483		// KrbRealm is the Kerberos realm used with Kerberos keytab
1484		// It must be set if keytab is used.
1485		"krbRealm"?: string
1486
1487		// KrbServicePrincipalName is the principal name of Kerberos service
1488		// It must be set if either ccache or keytab is used.
1489		"krbServicePrincipalName"?: string
1490
1491		// KrbUsername is the Kerberos username used with Kerberos keytab
1492		// It must be set if keytab is used.
1493		"krbUsername"?: string
1494
1495		// Metadata holds the user defined metadata which will passed along the event payload.
1496		// +optional
1497		"metadata"?: [string]: string
1498
1499		// Type of file operations to watch
1500		"type"?:            string
1501		"watchPathConfig"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig"
1502	}
1503
1504	// HTTPTrigger is the trigger for the HTTP request
1505	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HTTPTrigger": {
1506		// BasicAuth configuration for the http request.
1507		// +optional
1508		"basicAuth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
1509
1510		// Headers for the HTTP request.
1511		// +optional
1512		"headers"?: [string]: string
1513
1514		// Method refers to the type of the HTTP request.
1515		// Refer https://golang.org/src/net/http/method.go for more io.argoproj.workflow.v1alpha1.
1516		// Default value is POST.
1517		// +optional
1518		"method"?: string
1519
1520		// Parameters is the list of key-value extracted from event's payload that are applied to
1521		// the HTTP trigger resource.
1522		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1523		"payload"?:    [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1524
1525		// Secure Headers stored in Kubernetes Secrets for the HTTP requests.
1526		// +optional
1527		"secureHeaders"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader"]
1528
1529		// Timeout refers to the HTTP request timeout in seconds.
1530		// Default value is 60 seconds.
1531		// +optional
1532		"timeout"?: string
1533
1534		// TLS configuration for the HTTP client.
1535		// +optional
1536		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1537
1538		// URL refers to the URL to send HTTP request to.
1539		"url"?: string
1540	}
1541
1542	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Int64OrString": {
1543		"int64Val"?: string
1544		"strVal"?:   string
1545		"type"?:     string
1546	}
1547
1548	// K8SResource represent arbitrary structured data.
1549	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResource": "value"?: string
1550
1551	// K8SResourcePolicy refers to the policy used to check the state of K8s based triggers using labels
1552	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResourcePolicy": {
1553		// Backoff before checking resource state
1554		"backoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1555
1556		// ErrorOnBackoffTimeout determines whether sensor should transition to error
1557		// state if the trigger policy is unable to determine
1558		// the state of the resource
1559		"errorOnBackoffTimeout"?: bool
1560
1561		// Labels required to identify whether a resource is in success state
1562		"labels"?: [string]: string
1563	}
1564
1565	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaConsumerGroup": {
1566		// The name for the consumer group to use
1567		"groupName"?: string
1568
1569		// When starting up a new group do we want to start from the oldest event (true)
1570		// or the newest event (false), defaults to false
1571		// +optional
1572		"oldest"?: bool
1573
1574		// Rebalance strategy can be one of: sticky, roundrobin, range. Range is the default.
1575		// +optional
1576		"rebalanceStrategy"?: string
1577	}
1578
1579	// KafkaEventSource refers to event-source for Kafka related events
1580	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaEventSource": {
1581		// Yaml format Sarama config for Kafka connection.
1582		// It follows the struct of sarama.Config. See https://github.com/IBM/sarama/blob/main/config.go
1583		// e.g.
1584		//
1585		// consumer:
1586		// fetch:
1587		// min: 1
1588		// net:
1589		// MaxOpenRequests: 5
1590		//
1591		// +optional
1592		"config"?: string
1593
1594		// Backoff holds parameters applied to connection.
1595		"connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1596
1597		// Consumer group for kafka client
1598		// +optional
1599		"consumerGroup"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaConsumerGroup"
1600
1601		// Filter
1602		// +optional
1603		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1604
1605		// JSONBody specifies that all event body payload coming from this
1606		// source will be JSON
1607		// +optional
1608		"jsonBody"?: bool
1609
1610		// Sets a limit on how many events get read from kafka per second.
1611		// +optional
1612		"limitEventsPerSecond"?: string
1613
1614		// Metadata holds the user defined metadata which will passed along the event payload.
1615		// +optional
1616		"metadata"?: [string]: string
1617
1618		// Partition name
1619		// +optional
1620		"partition"?: string
1621
1622		// SASL configuration for the kafka client
1623		// +optional
1624		"sasl"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig"
1625
1626		// TLS configuration for the kafka client.
1627		// +optional
1628		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1629
1630		// Topic name
1631		"topic"?: string
1632
1633		// URL to kafka cluster, multiple URLs separated by comma
1634		"url"?: string
1635
1636		// Specify what kafka version is being connected to enables certain features in
1637		// sarama, defaults to 1.0.0
1638		// +optional
1639		"version"?: string
1640	}
1641
1642	// KafkaTrigger refers to the specification of the Kafka trigger.
1643	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaTrigger": {
1644		// Compress determines whether to compress message or not.
1645		// Defaults to false.
1646		// If set to true, compresses message using snappy compression.
1647		// +optional
1648		"compress"?: bool
1649
1650		// FlushFrequency refers to the frequency in milliseconds to flush batches.
1651		// Defaults to 500 milliseconds.
1652		// +optional
1653		"flushFrequency"?: int
1654
1655		// Headers for the Kafka Messages.
1656		// +optional
1657		"headers"?: [string]: string
1658
1659		// Parameters is the list of parameters that is applied to resolved Kafka trigger object.
1660		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1661
1662		// +optional
1663		// DEPRECATED
1664		"partition"?: int
1665
1666		// The partitioning key for the messages put on the Kafka topic.
1667		// +optional.
1668		"partitioningKey"?: string
1669
1670		// Payload is the list of key-value extracted from an event payload to construct
1671		// the request payload.
1672		"payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1673
1674		// RequiredAcks used in producer to tell the broker how many replica acknowledgements
1675		// Defaults to 1 (Only wait for the leader to ack).
1676		// +optional.
1677		"requiredAcks"?: int
1678
1679		// SASL configuration for the kafka client
1680		// +optional
1681		"sasl"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig"
1682
1683		// Schema Registry configuration to producer message with avro format
1684		// +optional
1685		"schemaRegistry"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SchemaRegistryConfig"
1686
1687		// Secure Headers stored in Kubernetes Secrets for the Kafka messages.
1688		// +optional
1689		"secureHeaders"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader"]
1690
1691		// TLS configuration for the Kafka producer.
1692		// +optional
1693		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1694
1695		// Name of the topic.
1696		// More info at https://kafka.apache.org/documentation/#intro_topics
1697		"topic"?: string
1698
1699		// URL of the Kafka broker, multiple URLs separated by comma.
1700		"url"?: string
1701
1702		// Specify what kafka version is being connected to enables certain features in
1703		// sarama, defaults to 1.0.0
1704		// +optional
1705		"version"?: string
1706	}
1707
1708	#: {
1709		"github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.LogTrigger": {
1710			// Only print messages every interval. Useful to prevent logging too much data for busy events.
1711			// +optional
1712			"intervalSeconds"?: string
1713		}
1714	}
1715
1716	// MQTTEventSource refers to event-source for MQTT related events
1717	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.MQTTEventSource": {
1718		// Auth hosts secret selectors for username and password
1719		// +optional
1720		"auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
1721
1722		// ClientID is the id of the client
1723		"clientId"?: string
1724
1725		// ConnectionBackoff holds backoff applied to connection.
1726		"connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1727
1728		// Filter
1729		// +optional
1730		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1731
1732		// JSONBody specifies that all event body payload coming from this
1733		// source will be JSON
1734		// +optional
1735		"jsonBody"?: bool
1736
1737		// Metadata holds the user defined metadata which will passed along the event payload.
1738		// +optional
1739		"metadata"?: [string]: string
1740
1741		// TLS configuration for the mqtt client.
1742		// +optional
1743		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1744
1745		// Topic name
1746		"topic"?: string
1747
1748		// URL to connect to broker
1749		"url"?: string
1750	}
1751
1752	// Metadata holds the annotations and labels of an event source pod
1753	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata": {
1754		"annotations"?: [string]: string
1755		"labels"?: [string]:      string
1756	}
1757
1758	// NATSAuth refers to the auth info for NATS EventSource
1759	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth": {
1760		// Baisc auth with username and password
1761		// +optional
1762		"basic"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
1763
1764		// credential used to connect
1765		// +optional
1766		"credential"?: #."io.k8s.api.core.v1.SecretKeySelector"
1767
1768		// NKey used to connect
1769		// +optional
1770		"nkey"?: #."io.k8s.api.core.v1.SecretKeySelector"
1771
1772		// Token used to connect
1773		// +optional
1774		"token"?: #."io.k8s.api.core.v1.SecretKeySelector"
1775	}
1776
1777	// NATSEventsSource refers to event-source for NATS related events
1778	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSEventsSource": {
1779		// Auth information
1780		// +optional
1781		"auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth"
1782
1783		// ConnectionBackoff holds backoff applied to connection.
1784		"connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1785
1786		// Filter
1787		// +optional
1788		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1789
1790		// JSONBody specifies that all event body payload coming from this
1791		// source will be JSON
1792		// +optional
1793		"jsonBody"?: bool
1794
1795		// Metadata holds the user defined metadata which will passed along the event payload.
1796		// +optional
1797		"metadata"?: [string]: string
1798
1799		// Queue is the name of the queue group to subscribe as if specified. Uses QueueSubscribe
1800		// logic to subscribe as queue group. If the queue is empty, uses default Subscribe logic.
1801		// +optional
1802		"queue"?: string
1803
1804		// Subject holds the name of the subject onto which messages are published
1805		"subject"?: string
1806
1807		// TLS configuration for the nats client.
1808		// +optional
1809		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1810
1811		// URL to connect to NATS cluster
1812		"url"?: string
1813	}
1814
1815	// NATSTrigger refers to the specification of the NATS trigger.
1816	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSTrigger": {
1817		// AuthInformation
1818		// +optional
1819		"auth"?:       #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth"
1820		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1821		"payload"?:    [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1822
1823		// Name of the subject to put message on.
1824		"subject"?: string
1825
1826		// TLS configuration for the NATS producer.
1827		// +optional
1828		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1829
1830		// URL of the NATS cluster.
1831		"url"?: string
1832	}
1833
1834	// NSQEventSource describes the event source for NSQ PubSub
1835	// More info at https://godoc.org/github.com/nsqio/go-nsq
1836	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NSQEventSource": {
1837		// Channel used for subscription
1838		"channel"?: string
1839
1840		// Backoff holds parameters applied to connection.
1841		// +optional
1842		"connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1843
1844		// Filter
1845		// +optional
1846		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1847
1848		// HostAddress is the address of the host for NSQ lookup
1849		"hostAddress"?: string
1850
1851		// JSONBody specifies that all event body payload coming from this
1852		// source will be JSON
1853		// +optional
1854		"jsonBody"?: bool
1855
1856		// Metadata holds the user defined metadata which will passed along the event payload.
1857		// +optional
1858		"metadata"?: [string]: string
1859
1860		// TLS configuration for the nsq client.
1861		// +optional
1862		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
1863
1864		// Topic to subscribe to.
1865		"topic"?: string
1866	}
1867
1868	// OpenWhiskTrigger refers to the specification of the OpenWhisk trigger.
1869	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OpenWhiskTrigger": {
1870		// Name of the action/function.
1871		"actionName"?: string
1872
1873		// AuthToken for authentication.
1874		// +optional
1875		"authToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
1876
1877		// Host URL of the OpenWhisk.
1878		"host"?: string
1879
1880		// Namespace for the action.
1881		// Defaults to "_".
1882		// +optional.
1883		"namespace"?: string
1884
1885		// Parameters is the list of key-value extracted from event's payload that are applied to
1886		// the trigger resource.
1887		// +optional
1888		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1889
1890		// Payload is the list of key-value extracted from an event payload to construct
1891		// the request payload.
1892		"payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
1893
1894		// Version for the API.
1895		// Defaults to v1.
1896		// +optional
1897		"version"?: string
1898	}
1899
1900	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OwnedRepositories": {
1901		// Repository names
1902		"names"?: [...string]
1903
1904		// Organization or user name
1905		"owner"?: string
1906	}
1907
1908	// PayloadField binds a value at path within the event payload against a name.
1909	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PayloadField": {
1910		// Name acts as key that holds the value at the path.
1911		"name"?: string
1912
1913		// Path is the JSONPath of the event's (JSON decoded) data key
1914		// Path is a series of keys separated by a dot. A key may contain wildcard characters '*' and '?'.
1915		// To access an array value use the index as the key. The dot and wildcard
1916		// characters can be escaped with '\\'.
1917		// See https://github.com/tidwall/gjson#path-syntax for more information on how to use this.
1918		"path"?: string
1919	}
1920
1921	// PubSubEventSource refers to event-source for GCP PubSub related events.
1922	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PubSubEventSource": {
1923		// CredentialSecret references to the secret that contains JSON credentials to access GCP.
1924		// If it is missing, it implicitly uses Workload Identity to access.
1925		// https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
1926		// +optional
1927		"credentialSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1928
1929		// DeleteSubscriptionOnFinish determines whether to delete the GCP PubSub
1930		// subscription once the event source is stopped.
1931		// +optional
1932		"deleteSubscriptionOnFinish"?: bool
1933
1934		// Filter
1935		// +optional
1936		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1937
1938		// JSONBody specifies that all event body payload coming from this
1939		// source will be JSON
1940		// +optional
1941		"jsonBody"?: bool
1942
1943		// Metadata holds the user defined metadata which will passed along the event payload.
1944		// +optional
1945		"metadata"?: [string]: string
1946
1947		// ProjectID is GCP project ID for the subscription.
1948		// Required if you run Argo Events outside of GKE/GCE.
1949		// (otherwise, the default value is its project)
1950		// +optional
1951		"projectID"?: string
1952
1953		// SubscriptionID is ID of subscription.
1954		// Required if you use existing subscription.
1955		// The default value will be auto generated hash based on this eventsource
1956		// setting, so the subscription
1957		// might be recreated every time you update the setting, which has a possibility of event loss.
1958		// +optional
1959		"subscriptionID"?: string
1960
1961		// Topic to which the subscription should belongs.
1962		// Required if you want the eventsource to create a new subscription.
1963		// If you specify this field along with an existing subscription,
1964		// it will be verified whether it actually belongs to the specified topic.
1965		// +optional
1966		"topic"?: string
1967
1968		// TopicProjectID is GCP project ID for the topic.
1969		// By default, it is same as ProjectID.
1970		// +optional
1971		"topicProjectID"?: string
1972	}
1973
1974	// PulsarEventSource describes the event source for Apache Pulsar
1975	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarEventSource": {
1976		// Authentication athenz parameters for the pulsar client.
1977		// Refer https://github.com/apache/pulsar-client-go/blob/master/pulsar/auth/athenz.go
1978		// Either token or athenz can be set to use auth.
1979		// +optional
1980		"authAthenzParams"?: [string]: string
1981
1982		// Authentication athenz privateKey secret for the pulsar client.
1983		// AuthAthenzSecret must be set if AuthAthenzParams is used.
1984		// +optional
1985		"authAthenzSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1986
1987		// Authentication token for the pulsar client.
1988		// Either token or athenz can be set to use auth.
1989		// +optional
1990		"authTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
1991
1992		// Backoff holds parameters applied to connection.
1993		// +optional
1994		"connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
1995
1996		// Filter
1997		// +optional
1998		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
1999
2000		// JSONBody specifies that all event body payload coming from this
2001		// source will be JSON
2002		// +optional
2003		"jsonBody"?: bool
2004
2005		// Metadata holds the user defined metadata which will passed along the event payload.
2006		// +optional
2007		"metadata"?: [string]: string
2008
2009		// TLS configuration for the pulsar client.
2010		// +optional
2011		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2012
2013		// Whether the Pulsar client accept untrusted TLS certificate from broker.
2014		// +optional
2015		"tlsAllowInsecureConnection"?: bool
2016
2017		// Trusted TLS certificate secret.
2018		// +optional
2019		"tlsTrustCertsSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2020
2021		// Whether the Pulsar client verify the validity of the host name from broker.
2022		// +optional
2023		"tlsValidateHostname"?: bool
2024
2025		// Name of the topics to subscribe to.
2026		// +required
2027		"topics"?: [...string]
2028
2029		// Type of the subscription.
2030		// Only "exclusive" and "shared" is supported.
2031		// Defaults to exclusive.
2032		// +optional
2033		"type"?: string
2034
2035		// Configure the service URL for the Pulsar service.
2036		// +required
2037		"url"?: string
2038	}
2039
2040	// PulsarTrigger refers to the specification of the Pulsar trigger.
2041	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarTrigger": {
2042		// Authentication athenz parameters for the pulsar client.
2043		// Refer https://github.com/apache/pulsar-client-go/blob/master/pulsar/auth/athenz.go
2044		// Either token or athenz can be set to use auth.
2045		// +optional
2046		"authAthenzParams"?: [string]: string
2047
2048		// Authentication athenz privateKey secret for the pulsar client.
2049		// AuthAthenzSecret must be set if AuthAthenzParams is used.
2050		// +optional
2051		"authAthenzSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2052
2053		// Authentication token for the pulsar client.
2054		// Either token or athenz can be set to use auth.
2055		// +optional
2056		"authTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2057
2058		// Backoff holds parameters applied to connection.
2059		// +optional
2060		"connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
2061
2062		// Parameters is the list of parameters that is applied to resolved Kafka trigger object.
2063		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2064
2065		// Payload is the list of key-value extracted from an event payload to construct
2066		// the request payload.
2067		"payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2068
2069		// TLS configuration for the pulsar client.
2070		// +optional
2071		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2072
2073		// Whether the Pulsar client accept untrusted TLS certificate from broker.
2074		// +optional
2075		"tlsAllowInsecureConnection"?: bool
2076
2077		// Trusted TLS certificate secret.
2078		// +optional
2079		"tlsTrustCertsSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2080
2081		// Whether the Pulsar client verify the validity of the host name from broker.
2082		// +optional
2083		"tlsValidateHostname"?: bool
2084
2085		// Name of the topic.
2086		// See https://pulsar.apache.org/docs/en/concepts-messaging/
2087		"topic"?: string
2088
2089		// Configure the service URL for the Pulsar service.
2090		// +required
2091		"url"?: string
2092	}
2093
2094	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RateLimit": {
2095		"requestsPerUnit"?: int
2096
2097		// Defaults to Second
2098		"unit"?: string
2099	}
2100
2101	// RedisEventSource describes an event source for the Redis PubSub.
2102	// More info at https://godoc.org/github.com/go-redis/redis#example-PubSub
2103	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisEventSource": {
2104		"channels"?: [...string]
2105
2106		// DB to use. If not specified, default DB 0 will be used.
2107		// +optional
2108		"db"?: int
2109
2110		// Filter
2111		// +optional
2112		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2113
2114		// HostAddress refers to the address of the Redis host/server
2115		"hostAddress"?: string
2116
2117		// JSONBody specifies that all event body payload coming from this
2118		// source will be JSON
2119		// +optional
2120		"jsonBody"?: bool
2121
2122		// Metadata holds the user defined metadata which will passed along the event payload.
2123		// +optional
2124		"metadata"?: [string]: string
2125
2126		// Namespace to use to retrieve the password from. It should only be specified
2127		// if password is declared
2128		// +optional
2129		"namespace"?: string
2130
2131		// Password required for authentication if any.
2132		// +optional
2133		"password"?: #."io.k8s.api.core.v1.SecretKeySelector"
2134
2135		// TLS configuration for the redis client.
2136		// +optional
2137		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2138
2139		// Username required for ACL style authentication if any.
2140		// +optional
2141		"username"?: string
2142	}
2143
2144	// RedisStreamEventSource describes an event source for
2145	// Redis streams (https://redis.io/topics/streams-intro)
2146	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisStreamEventSource": {
2147		// ConsumerGroup refers to the Redis stream consumer group that will be
2148		// created on all redis streams. Messages are read through this group. Defaults to 'argo-events-cg'
2149		// +optional
2150		"consumerGroup"?: string
2151
2152		// DB to use. If not specified, default DB 0 will be used.
2153		// +optional
2154		"db"?: int
2155
2156		// Filter
2157		// +optional
2158		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2159
2160		// HostAddress refers to the address of the Redis host/server (master instance)
2161		"hostAddress"?: string
2162
2163		// MaxMsgCountPerRead holds the maximum number of messages per stream that will
2164		// be read in each XREADGROUP of all streams
2165		// Example: if there are 2 streams and MaxMsgCountPerRead=10, then each
2166		// XREADGROUP may read upto a total of 20 messages.
2167		// Same as COUNT option in XREADGROUP(https://redis.io/topics/streams-intro). Defaults to 10
2168		// +optional
2169		"maxMsgCountPerRead"?: int
2170
2171		// Metadata holds the user defined metadata which will passed along the event payload.
2172		// +optional
2173		"metadata"?: [string]: string
2174
2175		// Password required for authentication if any.
2176		// +optional
2177		"password"?: #."io.k8s.api.core.v1.SecretKeySelector"
2178
2179		// Streams to look for entries. XREADGROUP is used on all streams using a single consumer group.
2180		"streams"?: [...string]
2181
2182		// TLS configuration for the redis client.
2183		// +optional
2184		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
2185
2186		// Username required for ACL style authentication if any.
2187		// +optional
2188		"username"?: string
2189	}
2190
2191	// ResourceEventSource refers to a event-source for K8s resource related events.
2192	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceEventSource": {
2193		// EventTypes is the list of event type to watch.
2194		// Possible values are - ADD, UPDATE and DELETE.
2195		"eventTypes"?: [...string]
2196
2197		// Filter is applied on the metadata of the resource
2198		// If you apply filter, then the internal event informer will only monitor
2199		// objects that pass the filter.
2200		// +optional
2201		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceFilter"
2202
2203		// Group of the resource
2204		"groupVersionResource"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource"
2205
2206		// Metadata holds the user defined metadata which will passed along the event payload.
2207		// +optional
2208		"metadata"?: [string]: string
2209
2210		// Namespace where resource is deployed
2211		"namespace"?: string
2212	}
2213
2214	// ResourceFilter contains K8s ObjectMeta information to further filter resource event objects
2215	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceFilter": {
2216		// If the resource is created after the start time then the event is treated as valid.
2217		// +optional
2218		"afterStart"?: bool
2219
2220		// If resource is created before the specified time then the event is treated as valid.
2221		// +optional
2222		"createdBy"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
2223
2224		// Fields provide field filters similar to K8s field selector
2225		// (see https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/).
2226		// Unlike K8s field selector, it supports arbitrary fileds like "spec.serviceAccountName",
2227		// and the value could be a string or a regex.
2228		// Same as K8s field selector, operator "=", "==" and "!=" are supported.
2229		// +optional
2230		"fields"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector"]
2231
2232		// Labels provide listing options to K8s API to watch resource/s.
2233		// Refer
2234		// https://kubernetes.io/docs/concepts/overview/working-with-objects/label-selectors/
2235		// for more io.argoproj.workflow.v1alpha1.
2236		// Unlike K8s field selector, multiple values are passed as comma separated
2237		// values instead of list of values.
2238		// Eg: value: value1,value2.
2239		// Same as K8s label selector, operator "=", "==", "!=", "exists", "!", "notin", "in", "gt" and "lt"
2240		// are supported
2241		// +optional
2242		"labels"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector"]
2243
2244		// Prefix filter is applied on the resource name.
2245		// +optional
2246		"prefix"?: string
2247	}
2248
2249	// S3Artifact contains information about an S3 connection and bucket
2250	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact": {
2251		"accessKey"?:     #."io.k8s.api.core.v1.SecretKeySelector"
2252		"bucket"?:        #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Bucket"
2253		"caCertificate"?: #."io.k8s.api.core.v1.SecretKeySelector"
2254		"endpoint"?:      string
2255		"events"?:        [...string]
2256		"filter"?:        #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Filter"
2257		"insecure"?:      bool
2258		"metadata"?: [string]: string
2259		"region"?:    string
2260		"secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2261	}
2262
2263	// S3Bucket contains information to describe an S3 Bucket
2264	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Bucket": {
2265		"key"?:  string
2266		"name"?: string
2267	}
2268
2269	// S3Filter represents filters to apply to bucket notifications for specifying
2270	// constraints on objects
2271	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Filter": {
2272		"prefix"?: string
2273		"suffix"?: string
2274	}
2275
2276	// SASLConfig refers to SASL configuration for a client
2277	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig": {
2278		// SASLMechanism is the name of the enabled SASL mechanism.
2279		// Possible values: OAUTHBEARER, PLAIN (defaults to PLAIN).
2280		// +optional
2281		"mechanism"?: string
2282
2283		// Password for SASL/PLAIN authentication
2284		"passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2285
2286		// User is the authentication identity (authcid) to present for
2287		// SASL/PLAIN or SASL/SCRAM authentication
2288		"userSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2289	}
2290
2291	// SFTPEventSource describes an event-source for sftp related events.
2292	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SFTPEventSource": {
2293		// Address sftp address.
2294		"address"?: #."io.k8s.api.core.v1.SecretKeySelector"
2295
2296		// Type of file operations to watch
2297		// Refer https://github.com/fsnotify/fsnotify/blob/master/fsnotify.go for more information
2298		"eventType"?: string
2299
2300		// Filter
2301		// +optional
2302		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2303
2304		// Metadata holds the user defined metadata which will passed along the event payload.
2305		// +optional
2306		"metadata"?: [string]: string
2307
2308		// Password required for authentication if any.
2309		"password"?: #."io.k8s.api.core.v1.SecretKeySelector"
2310
2311		// PollIntervalDuration the interval at which to poll the SFTP server
2312		// defaults to 10 seconds
2313		// +optional
2314		"pollIntervalDuration"?: string
2315
2316		// SSHKeySecret refers to the secret that contains SSH key. Key needs to contain
2317		// private key and public key.
2318		"sshKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2319
2320		// Username required for authentication if any.
2321		"username"?: #."io.k8s.api.core.v1.SecretKeySelector"
2322
2323		// WatchPathConfig contains configuration about the file path to watch
2324		"watchPathConfig"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig"
2325	}
2326
2327	// SNSEventSource refers to event-source for AWS SNS related events
2328	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SNSEventSource": {
2329		// AccessKey refers K8s secret containing aws access key
2330		"accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2331
2332		// Endpoint configures connection to a specific SNS endpoint instead of Amazons servers
2333		// +optional
2334		"endpoint"?: string
2335
2336		// Filter
2337		// +optional
2338		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2339
2340		// Metadata holds the user defined metadata which will passed along the event payload.
2341		// +optional
2342		"metadata"?: [string]: string
2343
2344		// Region is AWS region
2345		"region"?: string
2346
2347		// RoleARN is the Amazon Resource Name (ARN) of the role to assume.
2348		// +optional
2349		"roleARN"?: string
2350
2351		// SecretKey refers K8s secret containing aws secret key
2352		"secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2353
2354		// TopicArn
2355		"topicArn"?: string
2356
2357		// ValidateSignature is boolean that can be set to true for SNS signature verification
2358		// +optional
2359		"validateSignature"?: bool
2360
2361		// Webhook configuration for http server
2362		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
2363	}
2364
2365	// SQSEventSource refers to event-source for AWS SQS related events
2366	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SQSEventSource": {
2367		// AccessKey refers K8s secret containing aws access key
2368		"accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2369
2370		// DLQ specifies if a dead-letter queue is configured for messages that can't be
2371		// processed successfully.
2372		// If set to true, messages with invalid payload won't be acknowledged to allow
2373		// to forward them farther to the dead-letter queue.
2374		// The default value is false.
2375		// +optional
2376		"dlq"?: bool
2377
2378		// Endpoint configures connection to a specific SQS endpoint instead of Amazons servers
2379		// +optional
2380		"endpoint"?: string
2381
2382		// Filter
2383		// +optional
2384		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2385
2386		// JSONBody specifies that all event body payload coming from this
2387		// source will be JSON
2388		// +optional
2389		"jsonBody"?: bool
2390
2391		// Metadata holds the user defined metadata which will passed along the event payload.
2392		// +optional
2393		"metadata"?: [string]: string
2394
2395		// Queue is AWS SQS queue to listen to for messages
2396		"queue"?: string
2397
2398		// QueueAccountID is the ID of the account that created the queue to monitor
2399		// +optional
2400		"queueAccountId"?: string
2401
2402		// Region is AWS region
2403		"region"?: string
2404
2405		// RoleARN is the Amazon Resource Name (ARN) of the role to assume.
2406		// +optional
2407		"roleARN"?: string
2408
2409		// SecretKey refers K8s secret containing aws secret key
2410		"secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2411
2412		// SessionToken refers to K8s secret containing AWS temporary credentials(STS) session token
2413		// +optional
2414		"sessionToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
2415
2416		// WaitTimeSeconds is The duration (in seconds) for which the call waits for a message to arrive
2417		// in the queue before returning.
2418		"waitTimeSeconds"?: string
2419	}
2420
2421	// SchemaRegistryConfig refers to configuration for a client
2422	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SchemaRegistryConfig": {
2423		// +optional
2424		// SchemaRegistry - basic authentication
2425		"auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
2426
2427		// Schema ID
2428		"schemaId"?: int
2429
2430		// Schema Registry URL.
2431		"url"?: string
2432	}
2433
2434	// SecureHeader refers to HTTP Headers with auth tokens as values
2435	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader": {
2436		"name"?: string
2437
2438		// Values can be read from either secrets or configmaps
2439		"valueFrom"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ValueFromSource"
2440	}
2441
2442	// Selector represents conditional operation to select K8s objects.
2443	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector": {
2444		// Key name
2445		"key"?: string
2446
2447		// Supported operations like ==, != etc.
2448		// Defaults to ==.
2449		// Refer
2450		// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
2451		// for more io.argoproj.workflow.v1alpha1.
2452		// +optional
2453		"operation"?: string
2454
2455		// Value
2456		"value"?: string
2457	}
2458
2459	// Sensor is the definition of a sensor resource
2460	// +genclient
2461	// +genclient:noStatus
2462	// +kubebuilder:resource:shortName=sn
2463	// +kubebuilder:subresource:status
2464	// +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
2465	// +k8s:openapi-gen=true
2466	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor": {
2467		"metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
2468		"spec"?:     #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorSpec"
2469
2470		// +optional
2471		"status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorStatus"
2472	}
2473
2474	// SensorList is the list of Sensor resources
2475	// +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
2476	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorList": {
2477		"items"?:    [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"]
2478		"metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
2479	}
2480
2481	// SensorSpec represents desired sensor state
2482	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorSpec": {
2483		// Dependencies is a list of the events that this sensor is dependent on.
2484		"dependencies"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependency"]
2485
2486		// ErrorOnFailedRound if set to true, marks sensor state as `error` if the
2487		// previous trigger round fails.
2488		// Once sensor state is set to `error`, no further triggers will be processed.
2489		"errorOnFailedRound"?: bool
2490
2491		// EventBusName references to a EventBus name. By default the value is "default"
2492		"eventBusName"?: string
2493
2494		// LoggingFields add additional key-value pairs when logging happens
2495		// +optional
2496		"loggingFields"?: [string]: string
2497
2498		// Replicas is the sensor deployment replicas
2499		"replicas"?: int
2500
2501		// RevisionHistoryLimit specifies how many old deployment revisions to retain
2502		// +optional
2503		"revisionHistoryLimit"?: int
2504
2505		// Template is the pod specification for the sensor
2506		// +optional
2507		"template"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template"
2508
2509		// Triggers is a list of the things that this sensor evokes. These are the outputs from this sensor.
2510		"triggers"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger"]
2511	}
2512
2513	// SensorStatus contains information about the status of a sensor.
2514	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorStatus": "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status"
2515
2516	// Service holds the service information eventsource exposes
2517	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Service": {
2518		// clusterIP is the IP address of the service and is usually assigned
2519		// randomly by the master. If an address is specified manually and is not in
2520		// use by others, it will be allocated to the service; otherwise, creation
2521		// of the service will fail. This field can not be changed through updates.
2522		// Valid values are "None", empty string (""), or a valid IP address. "None"
2523		// can be specified for headless services when proxying is not required.
2524		// More info:
2525		// https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
2526		// +optional
2527		"clusterIP"?: string
2528
2529		// Metadata sets the pods's metadata, i.e. annotations and labels
2530		// default={annotations: {}, labels: {}}
2531		"metadata"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata"
2532
2533		// The list of ports that are exposed by this ClusterIP service.
2534		// +patchMergeKey=port
2535		// +patchStrategy=merge
2536		// +listType=map
2537		// +listMapKey=port
2538		// +listMapKey=protocol
2539		"ports"?: [...#."io.k8s.api.core.v1.ServicePort"]
2540	}
2541
2542	// SlackEventSource refers to event-source for Slack related events
2543	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackEventSource": {
2544		// Filter
2545		// +optional
2546		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
2547
2548		// Metadata holds the user defined metadata which will passed along the event payload.
2549		// +optional
2550		"metadata"?: [string]: string
2551
2552		// Slack App signing secret
2553		"signingSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2554
2555		// Token for URL verification handshake
2556		"token"?: #."io.k8s.api.core.v1.SecretKeySelector"
2557
2558		// Webhook holds configuration for a REST endpoint
2559		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
2560	}
2561
2562	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackSender": {
2563		// Icon is the Slack application's icon, e.g. :robot_face: or https://example.com/image.png
2564		// +optional
2565		"icon"?: string
2566
2567		// Username is the Slack application's username
2568		// +optional
2569		"username"?: string
2570	}
2571
2572	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackThread": {
2573		// BroadcastMessageToChannel allows to also broadcast the message from the thread to the channel
2574		// +optional
2575		"broadcastMessageToChannel"?: bool
2576
2577		// MessageAggregationKey allows to aggregate the messages to a thread by some key.
2578		// +optional
2579		"messageAggregationKey"?: string
2580	}
2581
2582	// SlackTrigger refers to the specification of the slack notification trigger.
2583	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackTrigger": {
2584		// Attachments is a JSON format string that represents an array of Slack
2585		// attachments according to the attachments API:
2586		// https://api.slack.com/reference/messaging/attachments .
2587		// +optional
2588		"attachments"?: string
2589
2590		// Blocks is a JSON format string that represents an array of Slack blocks
2591		// according to the blocks API:
2592		// https://api.slack.com/reference/block-kit/blocks .
2593		// +optional
2594		"blocks"?: string
2595
2596		// Channel refers to which Slack channel to send Slack message.
2597		// +optional
2598		"channel"?: string
2599
2600		// Message refers to the message to send to the Slack channel.
2601		// +optional
2602		"message"?: string
2603
2604		// Parameters is the list of key-value extracted from event's payload that are applied to
2605		// the trigger resource.
2606		// +optional
2607		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2608
2609		// Sender refers to additional configuration of the Slack application that sends the message.
2610		// +optional
2611		"sender"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackSender"
2612
2613		// SlackToken refers to the Kubernetes secret that holds the slack token required to send messages.
2614		"slackToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
2615
2616		// Thread refers to additional options for sending messages to a Slack thread.
2617		// +optional
2618		"thread"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackThread"
2619	}
2620
2621	// StandardK8STrigger is the standard Kubernetes resource trigger
2622	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StandardK8STrigger": {
2623		// LiveObject specifies whether the resource should be directly fetched from K8s instead
2624		// of being marshaled from the resource artifact. If set to true, the resource artifact
2625		// must contain the information required to uniquely identify the resource in the cluster,
2626		// that is, you must specify "apiVersion", "kind" as well as "name" and "namespace" meta
2627		// data.
2628		// Only valid for operation type `update`
2629		// +optional
2630		"liveObject"?: bool
2631
2632		// Operation refers to the type of operation performed on the k8s resource.
2633		// Default value is Create.
2634		// +optional
2635		"operation"?: string
2636
2637		// Parameters is the list of parameters that is applied to resolved K8s trigger object.
2638		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2639
2640		// PatchStrategy controls the K8s object patching strategy when the trigger
2641		// operation is specified as patch.
2642		// possible values:
2643		// "application/json-patch+json"
2644		// "application/merge-patch+json"
2645		// "application/strategic-merge-patch+json"
2646		// "application/apply-patch+yaml".
2647		// Defaults to "application/merge-patch+json"
2648		// +optional
2649		"patchStrategy"?: string
2650
2651		// Source of the K8s resource file(s)
2652		"source"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation"
2653	}
2654
2655	// Status is a common structure which can be used for Status field.
2656	#: {
2657		"github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status": {
2658			// Conditions are the latest available observations of a resource's current state.
2659			// +optional
2660			// +patchMergeKey=type
2661			// +patchStrategy=merge
2662			"conditions"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Condition"]
2663		}
2664	}
2665
2666	// StatusPolicy refers to the policy used to check the state of the trigger using response status
2667	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StatusPolicy": "allow"?: [...int]
2668
2669	// StorageGridEventSource refers to event-source for StorageGrid related events
2670	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridEventSource": {
2671		// APIURL is the url of the storagegrid api.
2672		"apiURL"?: string
2673
2674		// Auth token for storagegrid api
2675		"authToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
2676
2677		// Name of the bucket to register notifications for.
2678		"bucket"?: string
2679		"events"?: [...string]
2680
2681		// Filter on object key which caused the notification.
2682		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridFilter"
2683
2684		// Metadata holds the user defined metadata which will passed along the event payload.
2685		// +optional
2686		"metadata"?: [string]: string
2687
2688		// S3 region.
2689		// Defaults to us-east-1
2690		// +optional
2691		"region"?: string
2692
2693		// TopicArn
2694		"topicArn"?: string
2695
2696		// Webhook holds configuration for a REST endpoint
2697		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
2698	}
2699
2700	// StorageGridFilter represents filters to apply to bucket notifications for
2701	// specifying constraints on objects
2702	// +k8s:openapi-gen=true
2703	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridFilter": {
2704		"prefix"?: string
2705		"suffix"?: string
2706	}
2707
2708	// StripeEventSource describes the event source for stripe webhook notifications
2709	// More info at https://stripe.com/docs/webhooks
2710	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StripeEventSource": {
2711		// APIKey refers to K8s secret that holds Stripe API key. Used only if CreateWebhook is enabled.
2712		// +optional
2713		"apiKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
2714
2715		// CreateWebhook if specified creates a new webhook programmatically.
2716		// +optional
2717		"createWebhook"?: bool
2718
2719		// EventFilter describes the type of events to listen to. If not specified, all
2720		// types of events will be processed.
2721		// More info at https://stripe.com/docs/api/events/list
2722		// +optional
2723		"eventFilter"?: [...string]
2724
2725		// Metadata holds the user defined metadata which will passed along the event payload.
2726		// +optional
2727		"metadata"?: [string]: string
2728
2729		// Webhook holds configuration for a REST endpoint
2730		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
2731	}
2732
2733	// TLSConfig refers to TLS configuration for a client.
2734	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig": {
2735		// CACertSecret refers to the secret that contains the CA cert
2736		"caCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2737
2738		// ClientCertSecret refers to the secret that contains the client cert
2739		"clientCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2740
2741		// ClientKeySecret refers to the secret that contains the client key
2742		"clientKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
2743
2744		// If true, skips creation of TLSConfig with certs and creates an empty
2745		// TLSConfig. (Defaults to false)
2746		// +optional
2747		"insecureSkipVerify"?: bool
2748	}
2749
2750	// Template holds the information of a deployment template
2751	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template": {
2752		// If specified, the pod's scheduling constraints
2753		// +optional
2754		"affinity"?: #."io.k8s.api.core.v1.Affinity"
2755
2756		// Container is the main container image to run in the sensor pod
2757		// +optional
2758		"container"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Container"
2759
2760		// ImagePullSecrets is an optional list of references to secrets in the same
2761		// namespace to use for pulling any of the images used by this PodSpec.
2762		// If specified, these secrets will be passed to individual puller
2763		// implementations for them to use. For example,
2764		// in the case of docker, only DockerConfig type secrets are honored.
2765		// More info:
2766		// https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
2767		// +optional
2768		// +patchMergeKey=name
2769		// +patchStrategy=merge
2770		"imagePullSecrets"?: [...#."io.k8s.api.core.v1.LocalObjectReference"]
2771
2772		// Metadata sets the pods's metadata, i.e. annotations and labels
2773		"metadata"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata"
2774
2775		// NodeSelector is a selector which must be true for the pod to fit on a node.
2776		// Selector which must match a node's labels for the pod to be scheduled on that node.
2777		// More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
2778		// +optional
2779		"nodeSelector"?: [string]: string
2780
2781		// The priority value. Various system components use this field to find the
2782		// priority of the EventSource pod. When Priority Admission Controller is enabled,
2783		// it prevents users from setting this field. The admission controller populates
2784		// this field from PriorityClassName.
2785		// The higher the value, the higher the priority.
2786		// More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
2787		// +optional
2788		"priority"?: int
2789
2790		// If specified, indicates the EventSource pod's priority. "system-node-critical"
2791		// and "system-cluster-critical" are two special keywords which indicate the
2792		// highest priorities with the former being the highest priority. Any other
2793		// name must be defined by creating a PriorityClass object with that name.
2794		// If not specified, the pod priority will be default or zero if there is no
2795		// default.
2796		// More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
2797		// +optional
2798		"priorityClassName"?: string
2799
2800		// SecurityContext holds pod-level security attributes and common container settings.
2801		// Optional: Defaults to empty. See type description for default values of each field.
2802		// +optional
2803		"securityContext"?: #."io.k8s.api.core.v1.PodSecurityContext"
2804
2805		// ServiceAccountName is the name of the ServiceAccount to use to run sensor pod.
2806		// More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
2807		// +optional
2808		"serviceAccountName"?: string
2809
2810		// If specified, the pod's tolerations.
2811		// +optional
2812		"tolerations"?: [...#."io.k8s.api.core.v1.Toleration"]
2813
2814		// Volumes is a list of volumes that can be mounted by containers in a
2815		// io.argoproj.workflow.v1alpha1.
2816		// +patchStrategy=merge
2817		// +patchMergeKey=name
2818		// +optional
2819		"volumes"?: [...#."io.k8s.api.core.v1.Volume"]
2820	}
2821
2822	// TimeFilter describes a window in time.
2823	// It filters out events that occur outside the time limits.
2824	// In other words, only events that occur after Start and before Stop
2825	// will pass this filter.
2826	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TimeFilter": {
2827		// Start is the beginning of a time window in UTC.
2828		// Before this time, events for this dependency are ignored.
2829		// Format is hh:mm:ss.
2830		"start"?: string
2831
2832		// Stop is the end of a time window in UTC.
2833		// After or equal to this time, events for this dependency are ignored and
2834		// Format is hh:mm:ss.
2835		// If it is smaller than Start, it is treated as next day of Start
2836		// (e.g.: 22:00:00-01:00:00 means 22:00:00-25:00:00).
2837		"stop"?: string
2838	}
2839
2840	// Trigger is an action taken, output produced, an event created, a message sent
2841	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger": {
2842		// AtLeastOnce determines the trigger execution semantics.
2843		// Defaults to false. Trigger execution will use at-most-once semantics.
2844		// If set to true, Trigger execution will switch to at-least-once semantics.
2845		// +kubebuilder:default=false
2846		// +optional
2847		"atLeastOnce"?: bool
2848
2849		// If the trigger fails, it will retry up to the configured number of
2850		// retries. If the maximum retries are reached and the trigger is set to
2851		// execute atLeastOnce, the dead letter queue (DLQ) trigger will be invoked if
2852		// specified. Invoking the dead letter queue trigger helps prevent data
2853		// loss.
2854		// +optional
2855		"dlqTrigger"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger"
2856
2857		// Parameters is the list of parameters applied to the trigger template definition
2858		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
2859
2860		// Policy to configure backoff and execution criteria for the trigger
2861		// +optional
2862		"policy"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerPolicy"
2863
2864		// Rate limit, default unit is Second
2865		// +optional
2866		"rateLimit"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RateLimit"
2867
2868		// Retry strategy, defaults to no retry
2869		// +optional
2870		"retryStrategy"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
2871
2872		// Template describes the trigger specification.
2873		"template"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerTemplate"
2874	}
2875
2876	// TriggerParameter indicates a passed parameter to a service template
2877	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter": {
2878		// Dest is the JSONPath of a resource key.
2879		// A path is a series of keys separated by a dot. The colon character can be escaped with '.'
2880		// The -1 key can be used to append a value to an existing array.
2881		// See https://github.com/tidwall/sjson#path-syntax for more information about how this is used.
2882		"dest"?: string
2883
2884		// Operation is what to do with the existing value at Dest, whether to
2885		// 'prepend', 'overwrite', or 'append' it.
2886		"operation"?: string
2887
2888		// Src contains a source reference to the value of the parameter from a dependency
2889		"src"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameterSource"
2890	}
2891
2892	// TriggerParameterSource defines the source for a parameter from a event event
2893	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameterSource": {
2894		// ContextKey is the JSONPath of the event's (JSON decoded) context key
2895		// ContextKey is a series of keys separated by a dot. A key may contain wildcard
2896		// characters '*' and '?'.
2897		// To access an array value use the index as the key. The dot and wildcard
2898		// characters can be escaped with '\\'.
2899		// See https://github.com/tidwall/gjson#path-syntax for more information on how to use this.
2900		"contextKey"?: string
2901
2902		// ContextTemplate is a go-template for extracting a string from the event's context.
2903		// If a ContextTemplate is provided with a ContextKey, the template will be
2904		// evaluated first and fallback to the ContextKey.
2905		// The templating follows the standard go-template syntax as well as sprig's extra functions.
2906		// See https://pkg.go.dev/text/template and https://masterminds.github.io/sprig/
2907		"contextTemplate"?: string
2908
2909		// DataKey is the JSONPath of the event's (JSON decoded) data key
2910		// DataKey is a series of keys separated by a dot. A key may contain wildcard
2911		// characters '*' and '?'.
2912		// To access an array value use the index as the key. The dot and wildcard
2913		// characters can be escaped with '\\'.
2914		// See https://github.com/tidwall/gjson#path-syntax for more information on how to use this.
2915		"dataKey"?: string
2916
2917		// DataTemplate is a go-template for extracting a string from the event's data.
2918		// If a DataTemplate is provided with a DataKey, the template will be evaluated
2919		// first and fallback to the DataKey.
2920		// The templating follows the standard go-template syntax as well as sprig's extra functions.
2921		// See https://pkg.go.dev/text/template and https://masterminds.github.io/sprig/
2922		"dataTemplate"?: string
2923
2924		// DependencyName refers to the name of the dependency. The event which is
2925		// stored for this dependency is used as payload
2926		// for the parameterization. Make sure to refer to one of the dependencies you
2927		// have defined under Dependencies list.
2928		"dependencyName"?: string
2929
2930		// UseRawData indicates if the value in an event at data key should be used
2931		// without converting to string.
2932		// When true, a number, boolean, json or string parameter may be extracted. When
2933		// the field is unspecified, or explicitly
2934		// false, the behavior is to turn the extracted field into a string. (e.g. when
2935		// set to true, the parameter
2936		// 123 will resolve to the numerical type, but when false, or not provided, the
2937		// string "123" will be resolved)
2938		// +optional
2939		"useRawData"?: bool
2940
2941		// Value is the default literal value to use for this parameter source
2942		// This is only used if the DataKey is invalid.
2943		// If the DataKey is invalid and this is not defined, this param source will produce an error.
2944		"value"?: string
2945	}
2946
2947	// TriggerPolicy dictates the policy for the trigger retries
2948	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerPolicy": {
2949		// K8SResourcePolicy refers to the policy used to check the state of K8s based
2950		// triggers using using labels
2951		"k8s"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResourcePolicy"
2952
2953		// Status refers to the policy used to check the state of the trigger using response status
2954		"status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StatusPolicy"
2955	}
2956
2957	// TriggerTemplate is the template that describes trigger specification.
2958	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerTemplate": {
2959		// ArgoWorkflow refers to the trigger that can perform various operations on an
2960		// Argo io.argoproj.workflow.v1alpha1.
2961		// +optional
2962		"argoWorkflow"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArgoWorkflowTrigger"
2963
2964		// AWSLambda refers to the trigger designed to invoke AWS Lambda function with
2965		// with on-the-fly constructable payload.
2966		// +optional
2967		"awsLambda"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AWSLambdaTrigger"
2968
2969		// AzureEventHubs refers to the trigger send an event to an Azure Event Hub.
2970		// +optional
2971		"azureEventHubs"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventHubsTrigger"
2972
2973		// AzureServiceBus refers to the trigger designed to place messages on Azure Service Bus
2974		// +optional
2975		"azureServiceBus"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusTrigger"
2976
2977		// Conditions is the conditions to execute the trigger.
2978		// For example: "(dep01 || dep02) && dep04"
2979		// +optional
2980		"conditions"?: string
2981
2982		// Criteria to reset the conditons
2983		// +optional
2984		"conditionsReset"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetCriteria"]
2985
2986		// CustomTrigger refers to the trigger designed to connect to a gRPC trigger
2987		// server and execute a custom trigger.
2988		// +optional
2989		"custom"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CustomTrigger"
2990
2991		// Email refers to the trigger designed to send an email notification
2992		// +optional
2993		"email"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmailTrigger"
2994
2995		// HTTP refers to the trigger designed to dispatch a HTTP request with
2996		// on-the-fly constructable payload.
2997		// +optional
2998		"http"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HTTPTrigger"
2999
3000		// StandardK8STrigger refers to the trigger designed to create or update a
3001		// generic Kubernetes resource.
3002		// +optional
3003		"k8s"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StandardK8STrigger"
3004
3005		// Kafka refers to the trigger designed to place messages on Kafka topic.
3006		// +optional.
3007		"kafka"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaTrigger"
3008
3009		// Log refers to the trigger designed to invoke log the io.argoproj.workflow.v1alpha1.
3010		// +optional
3011		"log"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.LogTrigger"
3012
3013		// Name is a unique name of the action to take.
3014		"name"?: string
3015
3016		// NATS refers to the trigger designed to place message on NATS subject.
3017		// +optional.
3018		"nats"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSTrigger"
3019
3020		// OpenWhisk refers to the trigger designed to invoke OpenWhisk action.
3021		// +optional
3022		"openWhisk"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OpenWhiskTrigger"
3023
3024		// Pulsar refers to the trigger designed to place messages on Pulsar topic.
3025		// +optional
3026		"pulsar"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarTrigger"
3027
3028		// Slack refers to the trigger designed to send slack notification message.
3029		// +optional
3030		"slack"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackTrigger"
3031	}
3032
3033	// URLArtifact contains information about an artifact at an http endpoint.
3034	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.URLArtifact": {
3035		// Path is the complete URL
3036		"path"?: string
3037
3038		// VerifyCert decides whether the connection is secure or not
3039		"verifyCert"?: bool
3040	}
3041
3042	// ValueFromSource allows you to reference keys from either a Configmap or Secret
3043	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ValueFromSource": {
3044		"configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
3045		"secretKeyRef"?:    #."io.k8s.api.core.v1.SecretKeySelector"
3046	}
3047
3048	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig": {
3049		// Directory to watch for events
3050		"directory"?: string
3051
3052		// Path is relative path of object to watch with respect to the directory
3053		"path"?: string
3054
3055		// PathRegexp is regexp of relative path of object to watch with respect to the directory
3056		"pathRegexp"?: string
3057	}
3058
3059	// WebhookContext holds a general purpose REST API context
3060	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext": {
3061		// AuthSecret holds a secret selector that contains a bearer token for authentication
3062		// +optional
3063		"authSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3064
3065		// REST API endpoint
3066		"endpoint"?: string
3067
3068		// MaxPayloadSize is the maximum webhook payload size that the server will accept.
3069		// Requests exceeding that limit will be rejected with "request too large" response.
3070		// Default value: 1048576 (1MB).
3071		// +optional
3072		"maxPayloadSize"?: string
3073
3074		// Metadata holds the user defined metadata which will passed along the event payload.
3075		// +optional
3076		"metadata"?: [string]: string
3077
3078		// Method is HTTP request method that indicates the desired action to be
3079		// performed for a given resource.
3080		// See RFC7231 Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
3081		"method"?: string
3082
3083		// Port on which HTTP server is listening for incoming events.
3084		"port"?: string
3085
3086		// ServerCertPath refers the file that contains the cert.
3087		"serverCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3088
3089		// ServerKeyPath refers the file that contains private key
3090		"serverKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3091
3092		// URL is the url of the server.
3093		"url"?: string
3094	}
3095
3096	// CalendarEventSource describes an HTTP based EventSource
3097	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookEventSource": {
3098		// Filter
3099		// +optional
3100		"filter"?:         #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
3101		"webhookContext"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
3102	}
3103
3104	#: "google.protobuf.Any": {
3105		"type_url"?: string
3106		"value"?:    string
3107	}
3108
3109	#: "grpc.gateway.runtime.Error": {
3110		"code"?:    int
3111		"details"?: [...#."google.protobuf.Any"]
3112		"error"?:   string
3113		"message"?: string
3114	}
3115
3116	#: "grpc.gateway.runtime.StreamError": {
3117		"details"?:     [...#."google.protobuf.Any"]
3118		"grpc_code"?:   int
3119		"http_code"?:   int
3120		"http_status"?: string
3121		"message"?:     string
3122	}
3123
3124	// Amount represent a numeric amount.
3125	#: "io.argoproj.workflow.v1alpha1.Amount": number
3126
3127	// ArchiveStrategy describes how to archive files/directory when saving artifacts
3128	#: "io.argoproj.workflow.v1alpha1.ArchiveStrategy": {
3129		"none"?: #."io.argoproj.workflow.v1alpha1.NoneStrategy"
3130		"tar"?:  #."io.argoproj.workflow.v1alpha1.TarStrategy"
3131		"zip"?:  #."io.argoproj.workflow.v1alpha1.ZipStrategy"
3132	}
3133
3134	#: "io.argoproj.workflow.v1alpha1.ArchivedWorkflowDeletedResponse": {}
3135
3136	// Arguments to a template
3137	#: "io.argoproj.workflow.v1alpha1.Arguments": {
3138		// Artifacts is the list of artifacts to pass to the template or workflow
3139		"artifacts"?: [...#."io.argoproj.workflow.v1alpha1.Artifact"]
3140
3141		// Parameters is the list of parameters to pass to the template or workflow
3142		"parameters"?: [...#."io.argoproj.workflow.v1alpha1.Parameter"]
3143	}
3144
3145	// ArtGCStatus maintains state related to ArtifactGC
3146	#: "io.argoproj.workflow.v1alpha1.ArtGCStatus": {
3147		// if this is true, we already checked to see if we need to do it and we don't
3148		"notSpecified"?: bool
3149
3150		// have completed Pods been processed? (mapped by Pod name) used to prevent
3151		// re-processing the Status of a Pod more than once
3152		"podsRecouped"?: [string]: bool
3153
3154		// have Pods been started to perform this strategy? (enables us not to
3155		// re-process what we've already done)
3156		"strategiesProcessed"?: [string]: bool
3157	}
3158
3159	// Artifact indicates an artifact to place at a specified path
3160	#: "io.argoproj.workflow.v1alpha1.Artifact": {
3161		// Archive controls how the artifact will be saved to the artifact repository.
3162		"archive"?: #."io.argoproj.workflow.v1alpha1.ArchiveStrategy"
3163
3164		// ArchiveLogs indicates if the container logs should be archived
3165		"archiveLogs"?: bool
3166
3167		// ArtifactGC describes the strategy to use when to deleting an artifact from
3168		// completed or deleted workflows
3169		"artifactGC"?: #."io.argoproj.workflow.v1alpha1.ArtifactGC"
3170
3171		// Artifactory contains artifactory artifact location details
3172		"artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact"
3173
3174		// Azure contains Azure Storage artifact location details
3175		"azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifact"
3176
3177		// Has this been deleted?
3178		"deleted"?: bool
3179
3180		// From allows an artifact to reference an artifact from a previous step
3181		"from"?: string
3182
3183		// FromExpression, if defined, is evaluated to specify the value for the artifact
3184		"fromExpression"?: string
3185
3186		// GCS contains GCS artifact location details
3187		"gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifact"
3188
3189		// Git contains git artifact location details
3190		"git"?: #."io.argoproj.workflow.v1alpha1.GitArtifact"
3191
3192		// GlobalName exports an output artifact to the global scope, making it
3193		// available as io.argoproj.workflow.v1alpha1.outputs.artifacts.XXXX and in
3194		// workflow.status.outputs.artifacts
3195		"globalName"?: string
3196
3197		// HDFS contains HDFS artifact location details
3198		"hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact"
3199
3200		// HTTP contains HTTP artifact location details
3201		"http"?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact"
3202
3203		// mode bits to use on this file, must be a value between 0 and 0777. Set when
3204		// loading input artifacts. It is recommended to set the mode value to ensure
3205		// the artifact has the expected permissions in your container.
3206		"mode"?: int
3207
3208		// name of the artifact. must be unique within a template's inputs/outputs.
3209		"name"!: string
3210
3211		// Make Artifacts optional, if Artifacts doesn't generate or exist
3212		"optional"?: bool
3213
3214		// OSS contains OSS artifact location details
3215		"oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifact"
3216
3217		// Path is the container path to the artifact
3218		"path"?: string
3219
3220		// Plugin contains plugin artifact location details
3221		"plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifact"
3222
3223		// Raw contains raw artifact location details
3224		"raw"?: #."io.argoproj.workflow.v1alpha1.RawArtifact"
3225
3226		// If mode is set, apply the permission recursively into the artifact if it is a folder
3227		"recurseMode"?: bool
3228
3229		// S3 contains S3 artifact location details
3230		"s3"?: #."io.argoproj.workflow.v1alpha1.S3Artifact"
3231
3232		// SubPath allows an artifact to be sourced from a subpath within the specified source
3233		"subPath"?: string
3234	}
3235
3236	// ArtifactGC describes how to delete artifacts from completed Workflows - this
3237	// is embedded into the WorkflowLevelArtifactGC, and also used for individual
3238	// Artifacts to override that as needed
3239	#: "io.argoproj.workflow.v1alpha1.ArtifactGC": {
3240		// PodMetadata is an optional field for specifying the Labels and Annotations
3241		// that should be assigned to the Pod doing the deletion
3242		"podMetadata"?: #."io.argoproj.workflow.v1alpha1.Metadata"
3243
3244		// ServiceAccountName is an optional field for specifying the Service Account
3245		// that should be assigned to the Pod doing the deletion
3246		"serviceAccountName"?: string
3247
3248		// Strategy is the strategy to use.
3249		"strategy"?: string
3250	}
3251
3252	// ArtifactLocation describes a location for a single or multiple artifacts. It
3253	// is used as single artifact in the context of inputs/outputs (e.g.
3254	// outputs.artifacts.artname). It is also used to describe the location of
3255	// multiple artifacts such as the archive location of a single workflow step,
3256	// which the executor will use as a default location to store its files.
3257	#: "io.argoproj.workflow.v1alpha1.ArtifactLocation": {
3258		// ArchiveLogs indicates if the container logs should be archived
3259		"archiveLogs"?: bool
3260
3261		// Artifactory contains artifactory artifact location details
3262		"artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact"
3263
3264		// Azure contains Azure Storage artifact location details
3265		"azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifact"
3266
3267		// GCS contains GCS artifact location details
3268		"gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifact"
3269
3270		// Git contains git artifact location details
3271		"git"?: #."io.argoproj.workflow.v1alpha1.GitArtifact"
3272
3273		// HDFS contains HDFS artifact location details
3274		"hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact"
3275
3276		// HTTP contains HTTP artifact location details
3277		"http"?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact"
3278
3279		// OSS contains OSS artifact location details
3280		"oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifact"
3281
3282		// Plugin contains plugin artifact location details
3283		"plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifact"
3284
3285		// Raw contains raw artifact location details
3286		"raw"?: #."io.argoproj.workflow.v1alpha1.RawArtifact"
3287
3288		// S3 contains S3 artifact location details
3289		"s3"?: #."io.argoproj.workflow.v1alpha1.S3Artifact"
3290	}
3291
3292	// ArtifactPaths expands a step from a collection of artifacts
3293	#: "io.argoproj.workflow.v1alpha1.ArtifactPaths": {
3294		// Archive controls how the artifact will be saved to the artifact repository.
3295		"archive"?: #."io.argoproj.workflow.v1alpha1.ArchiveStrategy"
3296
3297		// ArchiveLogs indicates if the container logs should be archived
3298		"archiveLogs"?: bool
3299
3300		// ArtifactGC describes the strategy to use when to deleting an artifact from
3301		// completed or deleted workflows
3302		"artifactGC"?: #."io.argoproj.workflow.v1alpha1.ArtifactGC"
3303
3304		// Artifactory contains artifactory artifact location details
3305		"artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact"
3306
3307		// Azure contains Azure Storage artifact location details
3308		"azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifact"
3309
3310		// Has this been deleted?
3311		"deleted"?: bool
3312
3313		// From allows an artifact to reference an artifact from a previous step
3314		"from"?: string
3315
3316		// FromExpression, if defined, is evaluated to specify the value for the artifact
3317		"fromExpression"?: string
3318
3319		// GCS contains GCS artifact location details
3320		"gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifact"
3321
3322		// Git contains git artifact location details
3323		"git"?: #."io.argoproj.workflow.v1alpha1.GitArtifact"
3324
3325		// GlobalName exports an output artifact to the global scope, making it
3326		// available as io.argoproj.workflow.v1alpha1.outputs.artifacts.XXXX and in
3327		// workflow.status.outputs.artifacts
3328		"globalName"?: string
3329
3330		// HDFS contains HDFS artifact location details
3331		"hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact"
3332
3333		// HTTP contains HTTP artifact location details
3334		"http"?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact"
3335
3336		// mode bits to use on this file, must be a value between 0 and 0777. Set when
3337		// loading input artifacts. It is recommended to set the mode value to ensure
3338		// the artifact has the expected permissions in your container.
3339		"mode"?: int
3340
3341		// name of the artifact. must be unique within a template's inputs/outputs.
3342		"name"!: string
3343
3344		// Make Artifacts optional, if Artifacts doesn't generate or exist
3345		"optional"?: bool
3346
3347		// OSS contains OSS artifact location details
3348		"oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifact"
3349
3350		// Path is the container path to the artifact
3351		"path"?: string
3352
3353		// Plugin contains plugin artifact location details
3354		"plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifact"
3355
3356		// Raw contains raw artifact location details
3357		"raw"?: #."io.argoproj.workflow.v1alpha1.RawArtifact"
3358
3359		// If mode is set, apply the permission recursively into the artifact if it is a folder
3360		"recurseMode"?: bool
3361
3362		// S3 contains S3 artifact location details
3363		"s3"?: #."io.argoproj.workflow.v1alpha1.S3Artifact"
3364
3365		// SubPath allows an artifact to be sourced from a subpath within the specified source
3366		"subPath"?: string
3367	}
3368
3369	// ArtifactRepository represents an artifact repository in which a controller
3370	// will store its artifacts
3371	#: "io.argoproj.workflow.v1alpha1.ArtifactRepository": {
3372		// ArchiveLogs enables log archiving
3373		"archiveLogs"?: bool
3374
3375		// Artifactory stores artifacts to JFrog Artifactory
3376		"artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifactRepository"
3377
3378		// Azure stores artifact in an Azure Storage account
3379		"azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifactRepository"
3380
3381		// GCS stores artifact in a GCS object store
3382		"gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifactRepository"
3383
3384		// HDFS stores artifacts in HDFS
3385		"hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifactRepository"
3386
3387		// OSS stores artifact in a OSS-compliant object store
3388		"oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifactRepository"
3389
3390		// Plugin stores artifact in a plugin-specific artifact repository
3391		"plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifactRepository"
3392
3393		// S3 stores artifact in a S3-compliant object store
3394		"s3"?: #."io.argoproj.workflow.v1alpha1.S3ArtifactRepository"
3395	}
3396
3397	#: "io.argoproj.workflow.v1alpha1.ArtifactRepositoryRef": {
3398		// The name of the config map. Defaults to "artifact-repositories".
3399		"configMap"?: string
3400
3401		// The config map key. Defaults to the value of the
3402		// "workflows.argoproj.io/default-artifact-repository" annotation.
3403		"key"?: string
3404	}
3405
3406	#: "io.argoproj.workflow.v1alpha1.ArtifactRepositoryRefStatus": {
3407		// The repository the workflow will use. This maybe empty before v3.1.
3408		"artifactRepository"?: #."io.argoproj.workflow.v1alpha1.ArtifactRepository"
3409
3410		// The name of the config map. Defaults to "artifact-repositories".
3411		"configMap"?: string
3412
3413		// If this ref represents the default artifact repository, rather than a config map.
3414		"default"?: bool
3415
3416		// The config map key. Defaults to the value of the
3417		// "workflows.argoproj.io/default-artifact-repository" annotation.
3418		"key"?: string
3419
3420		// The namespace of the config map. Defaults to the workflow's namespace, or the
3421		// controller's namespace (if found).
3422		"namespace"?: string
3423	}
3424
3425	// ArtifactoryArtifact is the location of an artifactory artifact
3426	#: "io.argoproj.workflow.v1alpha1.ArtifactoryArtifact": {
3427		// PasswordSecret is the secret selector to the repository password
3428		"passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3429
3430		// URL of the artifact
3431		"url"!: string
3432
3433		// UsernameSecret is the secret selector to the repository username
3434		"usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3435	}
3436
3437	// ArtifactoryArtifactRepository defines the controller configuration for an
3438	// artifactory artifact repository
3439	#: "io.argoproj.workflow.v1alpha1.ArtifactoryArtifactRepository": {
3440		// KeyFormat defines the format of how to store keys and can reference workflow variables.
3441		"keyFormat"?: string
3442
3443		// PasswordSecret is the secret selector to the repository password
3444		"passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3445
3446		// RepoURL is the url for artifactory repo.
3447		"repoURL"?: string
3448
3449		// UsernameSecret is the secret selector to the repository username
3450		"usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3451	}
3452
3453	// AzureArtifact is the location of an Azure Storage artifact
3454	#: "io.argoproj.workflow.v1alpha1.AzureArtifact": {
3455		// AccountKeySecret is the secret selector to the Azure Blob Storage account access key
3456		"accountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3457
3458		// Blob is the blob name (i.e., path) in the container where the artifact resides
3459		"blob"!: string
3460
3461		// Container is the container where resources will be stored
3462		"container"!: string
3463
3464		// Endpoint is the service url associated with an account. It is most likely
3465		// "https://<ACCOUNT_NAME>.blob.core.windows.net"
3466		"endpoint"!: string
3467
3468		// UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
3469		"useSDKCreds"?: bool
3470	}
3471
3472	// AzureArtifactRepository defines the controller configuration for an Azure
3473	// Blob Storage artifact repository
3474	#: "io.argoproj.workflow.v1alpha1.AzureArtifactRepository": {
3475		// AccountKeySecret is the secret selector to the Azure Blob Storage account access key
3476		"accountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3477
3478		// BlobNameFormat is defines the format of how to store blob names. Can reference workflow variables
3479		"blobNameFormat"?: string
3480
3481		// Container is the container where resources will be stored
3482		"container"!: string
3483
3484		// Endpoint is the service url associated with an account. It is most likely
3485		// "https://<ACCOUNT_NAME>.blob.core.windows.net"
3486		"endpoint"!: string
3487
3488		// UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
3489		"useSDKCreds"?: bool
3490	}
3491
3492	// Backoff is a backoff strategy to use within retryStrategy
3493	#: "io.argoproj.workflow.v1alpha1.Backoff": {
3494		// Cap is a limit on revised values of the duration parameter. If a
3495		// multiplication by the factor parameter would make the duration exceed the
3496		// cap then the duration is set to the cap
3497		"cap"?: string
3498
3499		// Duration is the amount to back off. Default unit is seconds, but could also
3500		// be a duration (e.g. "2m", "1h")
3501		"duration"?: string
3502
3503		// Factor is a factor to multiply the base duration after each failed retry
3504		"factor"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
3505
3506		// MaxDuration is the maximum amount of time allowed for a workflow in the
3507		// backoff strategy. It is important to note that if the workflow template
3508		// includes activeDeadlineSeconds, the pod's deadline is initially set with
3509		// activeDeadlineSeconds. However, when the workflow fails, the pod's deadline
3510		// is then overridden by maxDuration. This ensures that the workflow does not
3511		// exceed the specified maximum duration when retries are involved.
3512		"maxDuration"?: string
3513	}
3514
3515	// BasicAuth describes the secret selectors required for basic authentication
3516	#: "io.argoproj.workflow.v1alpha1.BasicAuth": {
3517		// PasswordSecret is the secret selector to the repository password
3518		"passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3519
3520		// UsernameSecret is the secret selector to the repository username
3521		"usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3522	}
3523
3524	// Cache is the configuration for the type of cache to be used
3525	#: {
3526		"io.argoproj.workflow.v1alpha1.Cache": {
3527			// ConfigMap sets a ConfigMap-based cache
3528			"configMap"!: #."io.k8s.api.core.v1.LocalObjectReference"
3529		}
3530	}
3531
3532	// ClientCertAuth holds necessary information for client authentication via certificates
3533	#: "io.argoproj.workflow.v1alpha1.ClientCertAuth": {
3534		"clientCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
3535		"clientKeySecret"?:  #."io.k8s.api.core.v1.SecretKeySelector"
3536	}
3537
3538	// ClusterWorkflowTemplate is the definition of a workflow template resource in cluster scope
3539	#: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate": {
3540		// APIVersion defines the versioned schema of this representation of an object.
3541		// Servers should convert recognized schemas to the latest internal value, and
3542		// may reject unrecognized values. More info:
3543		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
3544		"apiVersion"?: "argoproj.io/v1alpha1"
3545
3546		// Kind is a string value representing the REST resource this object represents.
3547		// Servers may infer this from the endpoint the client submits requests to.
3548		// Cannot be updated. In CamelCase. More info:
3549		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
3550		"kind"?:     "ClusterWorkflowTemplate"
3551		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
3552		"spec"!:     #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
3553	}
3554
3555	#: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateCreateRequest": {
3556		"createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
3557		"template"?:      #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"
3558	}
3559
3560	#: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateDeleteResponse": {}
3561
3562	#: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateLintRequest": {
3563		"createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
3564		"template"?:      #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"
3565	}
3566
3567	// ClusterWorkflowTemplateList is list of ClusterWorkflowTemplate resources
3568	#: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateList": {
3569		// APIVersion defines the versioned schema of this representation of an object.
3570		// Servers should convert recognized schemas to the latest internal value, and
3571		// may reject unrecognized values. More info:
3572		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
3573		"apiVersion"?: string
3574		"items"!:      [...#."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"]
3575
3576		// Kind is a string value representing the REST resource this object represents.
3577		// Servers may infer this from the endpoint the client submits requests to.
3578		// Cannot be updated. In CamelCase. More info:
3579		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
3580		"kind"?:     string
3581		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
3582	}
3583
3584	#: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateUpdateRequest": {
3585		// DEPRECATED: This field is ignored.
3586		"name"?:     string
3587		"template"?: #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"
3588	}
3589
3590	#: "io.argoproj.workflow.v1alpha1.CollectEventRequest": "name"?: string
3591
3592	#: "io.argoproj.workflow.v1alpha1.CollectEventResponse": {}
3593
3594	// Column is a custom column that will be exposed in the Workflow List View.
3595	#: "io.argoproj.workflow.v1alpha1.Column": {
3596		// The key of the label or annotation, e.g., "workflows.argoproj.io/completed".
3597		"key"!: string
3598
3599		// The name of this column, e.g., "Workflow Completed".
3600		"name"!: string
3601
3602		// The type of this column, "label" or "annotation".
3603		"type"!: string
3604	}
3605
3606	#: "io.argoproj.workflow.v1alpha1.Condition": {
3607		// Message is the condition message
3608		"message"?: string
3609
3610		// Status is the status of the condition
3611		"status"?: string
3612
3613		// Type is the type of condition
3614		"type"?: string
3615	}
3616
3617	#: "io.argoproj.workflow.v1alpha1.ContainerNode": {
3618		// Arguments to the entrypoint. The container image's CMD is used if this is not
3619		// provided. Variable references $(VAR_NAME) are expanded using the container's
3620		// environment. If a variable cannot be resolved, the reference in the input
3621		// string will be unchanged. Double $$ are reduced to a single $, which allows
3622		// for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
3623		// string literal "$(VAR_NAME)". Escaped references will never be expanded,
3624		// regardless of whether the variable exists or not. Cannot be updated. More
3625		// info:
3626		// https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
3627		"args"?: [...string]
3628
3629		// Entrypoint array. Not executed within a shell. The container image's
3630		// ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME)
3631		// are expanded using the container's environment. If a variable cannot be
3632		// resolved, the reference in the input string will be unchanged. Double $$ are
3633		// reduced to a single $, which allows for escaping the $(VAR_NAME) syntax:
3634		// i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped
3635		// references will never be expanded, regardless of whether the variable exists
3636		// or not. Cannot be updated. More info:
3637		// https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
3638		"command"?:      [...string]
3639		"dependencies"?: [...string]
3640
3641		// List of environment variables to set in the container. Cannot be updated.
3642		"env"?: [...#."io.k8s.api.core.v1.EnvVar"]
3643
3644		// List of sources to populate environment variables in the container. The keys
3645		// defined within a source must be a C_IDENTIFIER. All invalid keys will be
3646		// reported as an event when the container is starting. When a key exists in
3647		// multiple sources, the value associated with the last source will take
3648		// precedence. Values defined by an Env with a duplicate key will take
3649		// precedence. Cannot be updated.
3650		"envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
3651
3652		// Container image name. More info:
3653		// https://kubernetes.io/docs/concepts/containers/images This field is optional
3654		// to allow higher level config management to default or override container
3655		// images in workload controllers like Deployments and StatefulSets.
3656		"image"?: string
3657
3658		// Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if
3659		// :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More
3660		// info: https://kubernetes.io/docs/concepts/containers/images#updating-images
3661		"imagePullPolicy"?: string
3662
3663		// Actions that the management system should take in response to container
3664		// lifecycle events. Cannot be updated.
3665		"lifecycle"?: #."io.k8s.api.core.v1.Lifecycle"
3666
3667		// Periodic probe of container liveness. Container will be restarted if the
3668		// probe fails. Cannot be updated. More info:
3669		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
3670		"livenessProbe"?: #."io.k8s.api.core.v1.Probe"
3671
3672		// Name of the container specified as a DNS_LABEL. Each container in a pod must
3673		// have a unique name (DNS_LABEL). Cannot be updated.
3674		"name"!: string
3675
3676		// List of ports to expose from the container. Not specifying a port here DOES
3677		// NOT prevent that port from being exposed. Any port which is listening on the
3678		// default "0.0.0.0" address inside a container will be accessible from the
3679		// network. Modifying this array with strategic merge patch may corrupt the
3680		// data. For more information See
3681		// https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.
3682		"ports"?: [...#."io.k8s.api.core.v1.ContainerPort"]
3683
3684		// Periodic probe of container service readiness. Container will be removed from
3685		// service endpoints if the probe fails. Cannot be updated. More info:
3686		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
3687		"readinessProbe"?: #."io.k8s.api.core.v1.Probe"
3688
3689		// Resources resize policy for the container.
3690		"resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
3691
3692		// Compute Resources required by this container. Cannot be updated. More info:
3693		// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
3694		"resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
3695
3696		// RestartPolicy defines the restart behavior of individual containers in a pod.
3697		// This field may only be set for init containers, and the only allowed value
3698		// is "Always". For non-init containers or when this field is not specified,
3699		// the restart behavior is defined by the Pod's restart policy and the
3700		// container type. Setting the RestartPolicy as "Always" for the init container
3701		// will have the following effect: this init container will be continually
3702		// restarted on exit until all regular containers have terminated. Once all
3703		// regular containers have completed, all init containers with restartPolicy
3704		// "Always" will be shut down. This lifecycle differs from normal init
3705		// containers and is often referred to as a "sidecar" container. Although this
3706		// init container still starts in the init container sequence, it does not wait
3707		// for the container to complete before proceeding to the next init container.
3708		// Instead, the next init container starts immediately after this init
3709		// container is started, or after any startupProbe has successfully completed.
3710		"restartPolicy"?: string
3711
3712		// SecurityContext defines the security options the container should be run
3713		// with. If set, the fields of SecurityContext override the equivalent fields
3714		// of PodSecurityContext. More info:
3715		// https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
3716		"securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
3717
3718		// StartupProbe indicates that the Pod has successfully initialized. If
3719		// specified, no other probes are executed until this completes successfully.
3720		// If this probe fails, the Pod will be restarted, just as if the livenessProbe
3721		// failed. This can be used to provide different probe parameters at the
3722		// beginning of a Pod's lifecycle, when it might take a long time to load data
3723		// or warm a cache, than during steady-state operation. This cannot be updated.
3724		// More info:
3725		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
3726		"startupProbe"?: #."io.k8s.api.core.v1.Probe"
3727
3728		// Whether this container should allocate a buffer for stdin in the container
3729		// runtime. If this is not set, reads from stdin in the container will always
3730		// result in EOF. Default is false.
3731		"stdin"?: bool
3732
3733		// Whether the container runtime should close the stdin channel after it has
3734		// been opened by a single attach. When stdin is true the stdin stream will
3735		// remain open across multiple attach sessions. If stdinOnce is set to true,
3736		// stdin is opened on container start, is empty until the first client attaches
3737		// to stdin, and then remains open and accepts data until the client
3738		// disconnects, at which time stdin is closed and remains closed until the
3739		// container is restarted. If this flag is false, a container processes that
3740		// reads from stdin will never receive an EOF. Default is false
3741		"stdinOnce"?: bool
3742
3743		// Optional: Path at which the file to which the container's termination message
3744		// will be written is mounted into the container's filesystem. Message written
3745		// is intended to be brief final status, such as an assertion failure message.
3746		// Will be truncated by the node if greater than 4096 bytes. The total message
3747		// length across all containers will be limited to 12kb. Defaults to
3748		// /dev/termination-log. Cannot be updated.
3749		"terminationMessagePath"?: string
3750
3751		// Indicate how the termination message should be populated. File will use the
3752		// contents of terminationMessagePath to populate the container status message
3753		// on both success and failure. FallbackToLogsOnError will use the last chunk
3754		// of container log output if the termination message file is empty and the
3755		// container exited with an error. The log output is limited to 2048 bytes or
3756		// 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
3757		"terminationMessagePolicy"?: string
3758
3759		// Whether this container should allocate a TTY for itself, also requires
3760		// 'stdin' to be true. Default is false.
3761		"tty"?: bool
3762
3763		// volumeDevices is the list of block devices to be used by the container.
3764		"volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"]
3765
3766		// Pod volumes to mount into the container's filesystem. Cannot be updated.
3767		"volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
3768
3769		// Container's working directory. If not specified, the container runtime's
3770		// default will be used, which might be configured in the container image.
3771		// Cannot be updated.
3772		"workingDir"?: string
3773	}
3774
3775	// ContainerSetRetryStrategy provides controls on how to retry a container set
3776	#: "io.argoproj.workflow.v1alpha1.ContainerSetRetryStrategy": {
3777		// Duration is the time between each retry, examples values are "300ms", "1s" or
3778		// "5m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
3779		"duration"?: string
3780
3781		// Retries is the maximum number of retry attempts for each container. It does
3782		// not include the first, original attempt; the maximum number of total
3783		// attempts will be `retries + 1`.
3784		"retries"!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
3785	}
3786
3787	#: "io.argoproj.workflow.v1alpha1.ContainerSetTemplate": {
3788		"containers"!: [...#."io.argoproj.workflow.v1alpha1.ContainerNode"]
3789
3790		// RetryStrategy describes how to retry container nodes if the container set
3791		// fails. Note that this works differently from the template-level
3792		// `retryStrategy` as it is a process-level retry that does not create new Pods
3793		// or containers.
3794		"retryStrategy"?: #."io.argoproj.workflow.v1alpha1.ContainerSetRetryStrategy"
3795		"volumeMounts"?:  [...#."io.k8s.api.core.v1.VolumeMount"]
3796	}
3797
3798	// ContinueOn defines if a workflow should continue even if a task or step
3799	// fails/errors. It can be specified if the workflow should continue when the
3800	// pod errors, fails or both.
3801	#: "io.argoproj.workflow.v1alpha1.ContinueOn": {
3802		"error"?:  bool
3803		"failed"?: bool
3804	}
3805
3806	// Counter is a Counter prometheus metric
3807	#: {
3808		"io.argoproj.workflow.v1alpha1.Counter": {
3809			// Value is the value of the metric
3810			"value"!: string
3811		}
3812	}
3813
3814	#: "io.argoproj.workflow.v1alpha1.CreateCronWorkflowRequest": {
3815		"createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
3816		"cronWorkflow"?:  #."io.argoproj.workflow.v1alpha1.CronWorkflow"
3817		"namespace"?:     string
3818	}
3819
3820	// CreateS3BucketOptions options used to determine automatic automatic bucket-creation process
3821	#: {
3822		"io.argoproj.workflow.v1alpha1.CreateS3BucketOptions": {
3823			// ObjectLocking Enable object locking
3824			"objectLocking"?: bool
3825		}
3826	}
3827
3828	// CronWorkflow is the definition of a scheduled workflow resource
3829	#: "io.argoproj.workflow.v1alpha1.CronWorkflow": {
3830		// APIVersion defines the versioned schema of this representation of an object.
3831		// Servers should convert recognized schemas to the latest internal value, and
3832		// may reject unrecognized values. More info:
3833		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
3834		"apiVersion"?: "argoproj.io/v1alpha1"
3835
3836		// Kind is a string value representing the REST resource this object represents.
3837		// Servers may infer this from the endpoint the client submits requests to.
3838		// Cannot be updated. In CamelCase. More info:
3839		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
3840		"kind"?:     "CronWorkflow"
3841		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
3842		"spec"!:     #."io.argoproj.workflow.v1alpha1.CronWorkflowSpec"
3843		"status"?:   #."io.argoproj.workflow.v1alpha1.CronWorkflowStatus"
3844	}
3845
3846	#: "io.argoproj.workflow.v1alpha1.CronWorkflowDeletedResponse": {}
3847
3848	// CronWorkflowList is list of CronWorkflow resources
3849	#: "io.argoproj.workflow.v1alpha1.CronWorkflowList": {
3850		// APIVersion defines the versioned schema of this representation of an object.
3851		// Servers should convert recognized schemas to the latest internal value, and
3852		// may reject unrecognized values. More info:
3853		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
3854		"apiVersion"?: string
3855		"items"!:      [...#."io.argoproj.workflow.v1alpha1.CronWorkflow"]
3856
3857		// Kind is a string value representing the REST resource this object represents.
3858		// Servers may infer this from the endpoint the client submits requests to.
3859		// Cannot be updated. In CamelCase. More info:
3860		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
3861		"kind"?:     string
3862		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
3863	}
3864
3865	#: "io.argoproj.workflow.v1alpha1.CronWorkflowResumeRequest": {
3866		"name"?:      string
3867		"namespace"?: string
3868	}
3869
3870	// CronWorkflowSpec is the specification of a CronWorkflow
3871	#: "io.argoproj.workflow.v1alpha1.CronWorkflowSpec": {
3872		// ConcurrencyPolicy is the K8s-style concurrency policy that will be used
3873		"concurrencyPolicy"?: string
3874
3875		// FailedJobsHistoryLimit is the number of failed jobs to be kept at a time
3876		"failedJobsHistoryLimit"?: int
3877
3878		// v3.6 and after: Schedules is a list of schedules to run the Workflow in Cron format
3879		"schedules"!: [...string]
3880
3881		// StartingDeadlineSeconds is the K8s-style deadline that will limit the time a
3882		// CronWorkflow will be run after its original scheduled time if it is missed.
3883		"startingDeadlineSeconds"?: int
3884
3885		// v3.6 and after: StopStrategy defines if the CronWorkflow should stop
3886		// scheduling based on a condition
3887		"stopStrategy"?: #."io.argoproj.workflow.v1alpha1.StopStrategy"
3888
3889		// SuccessfulJobsHistoryLimit is the number of successful jobs to be kept at a time
3890		"successfulJobsHistoryLimit"?: int
3891
3892		// Suspend is a flag that will stop new CronWorkflows from running if set to true
3893		"suspend"?: bool
3894
3895		// Timezone is the timezone against which the cron schedule will be calculated,
3896		// e.g. "Asia/Tokyo". Default is machine's local time.
3897		"timezone"?: string
3898
3899		// v3.6 and after: When is an expression that determines if a run should be scheduled.
3900		"when"?: string
3901
3902		// WorkflowMetadata contains some metadata of the workflow to be run
3903		"workflowMetadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
3904
3905		// WorkflowSpec is the spec of the workflow to be run
3906		"workflowSpec"!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
3907	}
3908
3909	// CronWorkflowStatus is the status of a CronWorkflow
3910	#: "io.argoproj.workflow.v1alpha1.CronWorkflowStatus": {
3911		// Active is a list of active workflows stemming from this CronWorkflow
3912		"active"?: [...#."io.k8s.api.core.v1.ObjectReference"]
3913
3914		// Conditions is a list of conditions the CronWorkflow may have
3915		"conditions"?: [...#."io.argoproj.workflow.v1alpha1.Condition"]
3916
3917		// v3.6 and after: Failed counts how many times child workflows failed
3918		"failed"?: int
3919
3920		// LastScheduleTime is the last time the CronWorkflow was scheduled
3921		"lastScheduledTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
3922
3923		// v3.6 and after: Phase is an enum of Active or Stopped. It changes to Stopped
3924		// when stopStrategy.expression is true
3925		"phase"?: string
3926
3927		// v3.6 and after: Succeeded counts how many times child workflows succeeded
3928		"succeeded"?: int
3929	}
3930
3931	#: "io.argoproj.workflow.v1alpha1.CronWorkflowSuspendRequest": {
3932		"name"?:      string
3933		"namespace"?: string
3934	}
3935
3936	// DAGTask represents a node in the graph during DAG execution Note: CEL
3937	// validation cannot check withItems (Schemaless) or inline
3938	// (PreserveUnknownFields) fields.
3939	#: "io.argoproj.workflow.v1alpha1.DAGTask": {
3940		// Arguments are the parameter and artifact arguments to the template
3941		"arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
3942
3943		// ContinueOn makes argo to proceed with the following step even if this step
3944		// fails. Errors and Failed states can be specified
3945		"continueOn"?: #."io.argoproj.workflow.v1alpha1.ContinueOn"
3946
3947		// Dependencies are name of other targets which this depends on
3948		"dependencies"?: [...string]
3949
3950		// Depends are name of other targets which this depends on
3951		"depends"?: string
3952
3953		// Hooks hold the lifecycle hook which is invoked at lifecycle of task,
3954		// irrespective of the success, failure, or error status of the primary task
3955		"hooks"?: [string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook"
3956
3957		// Inline is the template. Template must be empty if this is declared (and
3958		// vice-versa). Note: As mentioned in the corresponding definition in
3959		// WorkflowStep, this struct is defined recursively, so we need
3960		// "x-kubernetes-preserve-unknown-fields: true" in the validation schema.
3961		"inline"?: #."io.argoproj.workflow.v1alpha1.Template"
3962
3963		// Name is the name of the target
3964		"name"!: string
3965
3966		// OnExit is a template reference which is invoked at the end of the template,
3967		// irrespective of the success, failure, or error of the primary template.
3968		// DEPRECATED: Use Hooks[exit].Template instead.
3969		"onExit"?: string
3970
3971		// Name of template to execute
3972		"template"?: string
3973
3974		// TemplateRef is the reference to the template resource to execute.
3975		"templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
3976
3977		// When is an expression in which the task should conditionally execute
3978		"when"?: string
3979
3980		// WithItems expands a task into multiple parallel tasks from the items in the
3981		// list Note: The structure of WithItems is free-form, so we need
3982		// "x-kubernetes-preserve-unknown-fields: true" in the validation schema.
3983		"withItems"?: [...#."io.argoproj.workflow.v1alpha1.Item"]
3984
3985		// WithParam expands a task into multiple parallel tasks from the value in the
3986		// parameter, which is expected to be a JSON list.
3987		"withParam"?: string
3988
3989		// WithSequence expands a task into a numeric sequence
3990		"withSequence"?: #."io.argoproj.workflow.v1alpha1.Sequence"
3991	}
3992
3993	// DAGTemplate is a template subtype for directed acyclic graph templates
3994	#: "io.argoproj.workflow.v1alpha1.DAGTemplate": {
3995		// This flag is for DAG logic. The DAG logic has a built-in "fail fast" feature
3996		// to stop scheduling new steps, as soon as it detects that one of the DAG
3997		// nodes is failed. Then it waits until all DAG nodes are completed before
3998		// failing the DAG itself. The FailFast flag default is true, if set to false,
3999		// it will allow a DAG to run all branches of the DAG to completion (either
4000		// success or failure), regardless of the failed outcomes of branches in the
4001		// DAG. More info and example about this feature at
4002		// https://github.com/argoproj/argo-workflows/issues/1442
4003		"failFast"?: bool
4004
4005		// Target are one or more names of targets to execute in a DAG
4006		"target"?: string
4007
4008		// Tasks are a list of DAG tasks MaxItems is an artificial limit to limit CEL
4009		// validation costs - see note at top of file
4010		"tasks"!: [...#."io.argoproj.workflow.v1alpha1.DAGTask"]
4011	}
4012
4013	// Data is a data template
4014	#: "io.argoproj.workflow.v1alpha1.Data": {
4015		// Source sources external data into a data template
4016		"source"!: #."io.argoproj.workflow.v1alpha1.DataSource"
4017
4018		// Transformation applies a set of transformations
4019		"transformation"!: [...#."io.argoproj.workflow.v1alpha1.TransformationStep"]
4020	}
4021
4022	// DataSource sources external data into a data template
4023	#: {
4024		"io.argoproj.workflow.v1alpha1.DataSource": {
4025			// ArtifactPaths is a data transformation that collects a list of artifact paths
4026			"artifactPaths"?: #."io.argoproj.workflow.v1alpha1.ArtifactPaths"
4027		}
4028	}
4029
4030	#: {
4031		"io.argoproj.workflow.v1alpha1.Event": {
4032			// Selector (https://github.com/expr-lang/expr) that we must must match the
4033			// io.argoproj.workflow.v1alpha1. E.g. `payload.message == "test"`
4034			"selector"!: string
4035		}
4036	}
4037
4038	#: "io.argoproj.workflow.v1alpha1.EventResponse": {}
4039
4040	// ExecutorConfig holds configurations of an executor container.
4041	#: {
4042		"io.argoproj.workflow.v1alpha1.ExecutorConfig": {
4043			// ServiceAccountName specifies the service account name of the executor container.
4044			"serviceAccountName"?: string
4045		}
4046	}
4047
4048	// GCSArtifact is the location of a GCS artifact
4049	#: "io.argoproj.workflow.v1alpha1.GCSArtifact": {
4050		// Bucket is the name of the bucket
4051		"bucket"?: string
4052
4053		// Key is the path in the bucket where the artifact resides
4054		"key"!: string
4055
4056		// ServiceAccountKeySecret is the secret selector to the bucket's service account key
4057		"serviceAccountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4058	}
4059
4060	// GCSArtifactRepository defines the controller configuration for a GCS artifact repository
4061	#: "io.argoproj.workflow.v1alpha1.GCSArtifactRepository": {
4062		// Bucket is the name of the bucket
4063		"bucket"?: string
4064
4065		// KeyFormat defines the format of how to store keys and can reference workflow variables.
4066		"keyFormat"?: string
4067
4068		// ServiceAccountKeySecret is the secret selector to the bucket's service account key
4069		"serviceAccountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4070	}
4071
4072	// Gauge is a Gauge prometheus metric
4073	#: "io.argoproj.workflow.v1alpha1.Gauge": {
4074		// Operation defines the operation to apply with value and the metrics' current value
4075		"operation"?: string
4076
4077		// Realtime emits this metric in real time if applicable
4078		"realtime"!: bool
4079
4080		// Value is the value to be used in the operation with the metric's current
4081		// value. If no operation is set, value is the value of the metric MaxLength is
4082		// an artificial limit to limit CEL validation costs - see note at top of file
4083		"value"!: string
4084	}
4085
4086	#: "io.argoproj.workflow.v1alpha1.GetUserInfoResponse": {
4087		"email"?:                   string
4088		"emailVerified"?:           bool
4089		"groups"?:                  [...string]
4090		"issuer"?:                  string
4091		"name"?:                    string
4092		"serviceAccountName"?:      string
4093		"serviceAccountNamespace"?: string
4094		"subject"?:                 string
4095	}
4096
4097	// GitArtifact is the location of a git artifact
4098	#: "io.argoproj.workflow.v1alpha1.GitArtifact": {
4099		// Branch is the branch to fetch when `SingleBranch` is enabled
4100		"branch"?: string
4101
4102		// Depth specifies clones/fetches should be shallow and include the given number
4103		// of commits from the branch tip
4104		"depth"?: int
4105
4106		// DisableSubmodules disables submodules during git clone
4107		"disableSubmodules"?: bool
4108
4109		// Fetch specifies a number of refs that should be fetched before checkout
4110		"fetch"?: [...string]
4111
4112		// InsecureIgnoreHostKey disables SSH strict host key checking during git clone
4113		"insecureIgnoreHostKey"?: bool
4114
4115		// InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
4116		"insecureSkipTLS"?: bool
4117
4118		// PasswordSecret is the secret selector to the repository password
4119		"passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4120
4121		// Repo is the git repository
4122		"repo"!: string
4123
4124		// Revision is the git commit, tag, branch to checkout
4125		"revision"?: string
4126
4127		// SingleBranch enables single branch clone, using the `branch` parameter
4128		"singleBranch"?: bool
4129
4130		// SSHPrivateKeySecret is the secret selector to the repository ssh private key
4131		"sshPrivateKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4132
4133		// UsernameSecret is the secret selector to the repository username
4134		"usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4135	}
4136
4137	// HDFSArtifact is the location of an HDFS artifact
4138	#: "io.argoproj.workflow.v1alpha1.HDFSArtifact": {
4139		// Addresses is accessible addresses of HDFS name nodes
4140		"addresses"?: [...string]
4141
4142		// DataTransferProtection is the protection level for HDFS data transfer. It
4143		// corresponds to the dfs.data.transfer.protection configuration in HDFS.
4144		"dataTransferProtection"?: string
4145
4146		// Force copies a file forcibly even if it exists
4147		"force"?: bool
4148
4149		// HDFSUser is the user to access HDFS file system. It is ignored if either
4150		// ccache or keytab is used.
4151		"hdfsUser"?: string
4152
4153		// KrbCCacheSecret is the secret selector for Kerberos ccache Either ccache or
4154		// keytab can be set to use Kerberos.
4155		"krbCCacheSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4156
4157		// KrbConfig is the configmap selector for Kerberos config as string It must be
4158		// set if either ccache or keytab is used.
4159		"krbConfigConfigMap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
4160
4161		// KrbKeytabSecret is the secret selector for Kerberos keytab Either ccache or
4162		// keytab can be set to use Kerberos.
4163		"krbKeytabSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4164
4165		// KrbRealm is the Kerberos realm used with Kerberos keytab It must be set if keytab is used.
4166		"krbRealm"?: string
4167
4168		// KrbServicePrincipalName is the principal name of Kerberos service It must be
4169		// set if either ccache or keytab is used.
4170		"krbServicePrincipalName"?: string
4171
4172		// KrbUsername is the Kerberos username used with Kerberos keytab It must be set if keytab is used.
4173		"krbUsername"?: string
4174
4175		// Path is a file path in HDFS
4176		"path"!: string
4177	}
4178
4179	// HDFSArtifactRepository defines the controller configuration for an HDFS artifact repository
4180	#: "io.argoproj.workflow.v1alpha1.HDFSArtifactRepository": {
4181		// Addresses is accessible addresses of HDFS name nodes
4182		"addresses"?: [...string]
4183
4184		// DataTransferProtection is the protection level for HDFS data transfer. It
4185		// corresponds to the dfs.data.transfer.protection configuration in HDFS.
4186		"dataTransferProtection"?: string
4187
4188		// Force copies a file forcibly even if it exists
4189		"force"?: bool
4190
4191		// HDFSUser is the user to access HDFS file system. It is ignored if either
4192		// ccache or keytab is used.
4193		"hdfsUser"?: string
4194
4195		// KrbCCacheSecret is the secret selector for Kerberos ccache Either ccache or
4196		// keytab can be set to use Kerberos.
4197		"krbCCacheSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4198
4199		// KrbConfig is the configmap selector for Kerberos config as string It must be
4200		// set if either ccache or keytab is used.
4201		"krbConfigConfigMap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
4202
4203		// KrbKeytabSecret is the secret selector for Kerberos keytab Either ccache or
4204		// keytab can be set to use Kerberos.
4205		"krbKeytabSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4206
4207		// KrbRealm is the Kerberos realm used with Kerberos keytab It must be set if keytab is used.
4208		"krbRealm"?: string
4209
4210		// KrbServicePrincipalName is the principal name of Kerberos service It must be
4211		// set if either ccache or keytab is used.
4212		"krbServicePrincipalName"?: string
4213
4214		// KrbUsername is the Kerberos username used with Kerberos keytab It must be set if keytab is used.
4215		"krbUsername"?: string
4216
4217		// PathFormat is defines the format of path to store a file. Can reference workflow variables
4218		"pathFormat"?: string
4219	}
4220
4221	#: "io.argoproj.workflow.v1alpha1.HTTP": {
4222		// Body is content of the HTTP Request
4223		"body"?: string
4224
4225		// BodyFrom is content of the HTTP Request as Bytes
4226		"bodyFrom"?: #."io.argoproj.workflow.v1alpha1.HTTPBodySource"
4227
4228		// Headers are an optional list of headers to send with HTTP requests
4229		"headers"?: [...#."io.argoproj.workflow.v1alpha1.HTTPHeader"]
4230
4231		// InsecureSkipVerify is a bool when if set to true will skip TLS verification for the HTTP client
4232		"insecureSkipVerify"?: bool
4233
4234		// Method is HTTP methods for HTTP Request
4235		"method"?: string
4236
4237		// SuccessCondition is an expression if evaluated to true is considered successful
4238		"successCondition"?: string
4239
4240		// TimeoutSeconds is request timeout for HTTP Request. Default is 30 seconds
4241		"timeoutSeconds"?: int
4242
4243		// URL of the HTTP Request
4244		"url"!: string
4245	}
4246
4247	// HTTPArtifact allows a file served on HTTP to be placed as an input artifact in a container
4248	#: "io.argoproj.workflow.v1alpha1.HTTPArtifact": {
4249		// Auth contains information for client authentication
4250		"auth"?: #."io.argoproj.workflow.v1alpha1.HTTPAuth"
4251
4252		// Headers are an optional list of headers to send with HTTP requests for artifacts
4253		"headers"?: [...#."io.argoproj.workflow.v1alpha1.Header"]
4254
4255		// URL of the artifact
4256		"url"!: string
4257	}
4258
4259	#: "io.argoproj.workflow.v1alpha1.HTTPAuth": {
4260		"basicAuth"?:  #."io.argoproj.workflow.v1alpha1.BasicAuth"
4261		"clientCert"?: #."io.argoproj.workflow.v1alpha1.ClientCertAuth"
4262		"oauth2"?:     #."io.argoproj.workflow.v1alpha1.OAuth2Auth"
4263	}
4264
4265	// HTTPBodySource contains the source of the HTTP body.
4266	#: "io.argoproj.workflow.v1alpha1.HTTPBodySource": "bytes"?: string
4267
4268	#: "io.argoproj.workflow.v1alpha1.HTTPHeader": {
4269		"name"!:      string
4270		"value"?:     string
4271		"valueFrom"?: #."io.argoproj.workflow.v1alpha1.HTTPHeaderSource"
4272	}
4273
4274	#: "io.argoproj.workflow.v1alpha1.HTTPHeaderSource": "secretKeyRef"?: #."io.k8s.api.core.v1.SecretKeySelector"
4275
4276	// Header indicate a key-value request header to be used when fetching artifacts over HTTP
4277	#: "io.argoproj.workflow.v1alpha1.Header": {
4278		// Name is the header name
4279		"name"!: string
4280
4281		// Value is the literal value to use for the header
4282		"value"!: string
4283	}
4284
4285	// Histogram is a Histogram prometheus metric
4286	#: "io.argoproj.workflow.v1alpha1.Histogram": {
4287		// Buckets is a list of bucket divisors for the histogram
4288		"buckets"!: [...#."io.argoproj.workflow.v1alpha1.Amount"]
4289
4290		// Value is the value of the metric
4291		"value"!: string
4292	}
4293
4294	#: "io.argoproj.workflow.v1alpha1.InfoResponse": {
4295		"columns"?:          [...#."io.argoproj.workflow.v1alpha1.Column"]
4296		"links"?:            [...#."io.argoproj.workflow.v1alpha1.Link"]
4297		"managedNamespace"?: string
4298
4299		// which modals to show
4300		"modals"?: [string]: bool
4301		"navColor"?: string
4302	}
4303
4304	// Inputs are the mechanism for passing parameters, artifacts, volumes from one template to another
4305	#: "io.argoproj.workflow.v1alpha1.Inputs": {
4306		// Artifact are a list of artifacts passed as inputs
4307		"artifacts"?: [...#."io.argoproj.workflow.v1alpha1.Artifact"]
4308
4309		// Parameters are a list of parameters passed as inputs MaxItems is an
4310		// artificial limit to limit CEL validation costs - see note at top of file
4311		"parameters"?: [...#."io.argoproj.workflow.v1alpha1.Parameter"]
4312	}
4313
4314	// Item expands a single workflow step into multiple parallel steps The value of
4315	// Item can be a map, string, bool, or number
4316	#: "io.argoproj.workflow.v1alpha1.Item": _
4317
4318	// LabelKeys is list of keys
4319	#: "io.argoproj.workflow.v1alpha1.LabelKeys": "items"?: [...string]
4320
4321	#: "io.argoproj.workflow.v1alpha1.LabelValueFrom": "expression"!: string
4322
4323	// Labels is list of workflow labels
4324	#: "io.argoproj.workflow.v1alpha1.LabelValues": "items"?: [...string]
4325
4326	#: "io.argoproj.workflow.v1alpha1.LifecycleHook": {
4327		// Arguments hold arguments to the template
4328		"arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
4329
4330		// Expression is a condition expression for when a node will be retried. If it
4331		// evaluates to false, the node will not be retried and the retry strategy will
4332		// be ignored
4333		"expression"?: string
4334
4335		// Template is the name of the template to execute by the hook
4336		"template"?: string
4337
4338		// TemplateRef is the reference to the template resource to execute by the hook
4339		"templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
4340	}
4341
4342	// A link to another app.
4343	#: "io.argoproj.workflow.v1alpha1.Link": {
4344		// The name of the link, E.g. "Workflow Logs" or "Pod Logs"
4345		"name"!: string
4346
4347		// "workflow", "pod", "pod-logs", "event-source-logs", "sensor-logs", "workflow-list" or "chat"
4348		"scope"!: string
4349
4350		// Target attribute specifies where a linked document will be opened when a user
4351		// clicks on a link. E.g. "_blank", "_self". If the target is _blank, it will
4352		// open in a new tab.
4353		"target"!: string
4354
4355		// The URL. Can contain "${metadata.namespace}", "${metadata.name}",
4356		// "${status.startedAt}", "${status.finishedAt}" or any other element in
4357		// workflow yaml, e.g.
4358		// "${io.argoproj.workflow.v1alpha1.metadata.annotations.userDefinedKey}"
4359		"url"!: string
4360	}
4361
4362	#: "io.argoproj.workflow.v1alpha1.LintCronWorkflowRequest": {
4363		"cronWorkflow"?: #."io.argoproj.workflow.v1alpha1.CronWorkflow"
4364		"namespace"?:    string
4365	}
4366
4367	#: "io.argoproj.workflow.v1alpha1.LogEntry": {
4368		"content"?: string
4369		"podName"?: string
4370	}
4371
4372	#: {
4373		"io.argoproj.workflow.v1alpha1.ManifestFrom": {
4374			// Artifact contains the artifact to use
4375			"artifact"!: #."io.argoproj.workflow.v1alpha1.Artifact"
4376		}
4377	}
4378
4379	// MemoizationStatus is the status of this memoized node
4380	#: "io.argoproj.workflow.v1alpha1.MemoizationStatus": {
4381		// Cache is the name of the cache that was used
4382		"cacheName"!: string
4383
4384		// Hit indicates whether this node was created from a cache entry
4385		"hit"!: bool
4386
4387		// Key is the name of the key used for this node's cache
4388		"key"!: string
4389	}
4390
4391	// Memoization enables caching for the Outputs of the template
4392	#: "io.argoproj.workflow.v1alpha1.Memoize": {
4393		// Cache sets and configures the kind of cache
4394		"cache"!: #."io.argoproj.workflow.v1alpha1.Cache"
4395
4396		// Key is the key to use as the caching key
4397		"key"!: string
4398
4399		// MaxAge is the maximum age (e.g. "180s", "24h") of an entry that is still
4400		// considered valid. If an entry is older than the MaxAge, it will be ignored.
4401		"maxAge"!: string
4402	}
4403
4404	// Pod metadata
4405	#: "io.argoproj.workflow.v1alpha1.Metadata": {
4406		"annotations"?: [string]: string
4407		"labels"?: [string]:      string
4408	}
4409
4410	// MetricLabel is a single label for a prometheus metric
4411	#: "io.argoproj.workflow.v1alpha1.MetricLabel": {
4412		"key"!:   string
4413		"value"!: string
4414	}
4415
4416	// Metrics are a list of metrics emitted from a Workflow/Template
4417	#: {
4418		"io.argoproj.workflow.v1alpha1.Metrics": {
4419			// Prometheus is a list of prometheus metrics to be emitted MaxItems is an
4420			// artificial limit to limit CEL validation costs - see note at top of file
4421			"prometheus"!: [...#."io.argoproj.workflow.v1alpha1.Prometheus"]
4422		}
4423	}
4424
4425	// Mutex holds Mutex configuration
4426	#: "io.argoproj.workflow.v1alpha1.Mutex": {
4427		// Database specifies this is database controlled if this is set true
4428		"database"?: bool
4429
4430		// name of the mutex
4431		"name"?: string
4432
4433		// Namespace is the namespace of the mutex, default: [namespace of workflow]
4434		"namespace"?: string
4435	}
4436
4437	// MutexHolding describes the mutex and the object which is holding it.
4438	#: "io.argoproj.workflow.v1alpha1.MutexHolding": {
4439		// Holder is a reference to the object which holds the Mutex. Holding Scenario:
4440		// 1. Current workflow's NodeID which is holding the lock.
4441		// e.g: ${NodeID}
4442		// Waiting Scenario:
4443		// 1. Current workflow or other workflow NodeID which is holding the lock.
4444		// e.g: ${WorkflowName}/${NodeID}
4445		"holder"?: string
4446
4447		// Reference for the mutex e.g: ${namespace}/mutex/${mutexName}
4448		"mutex"?: string
4449	}
4450
4451	// MutexStatus contains which objects hold mutex locks, and which objects this
4452	// workflow is waiting on to release locks.
4453	#: "io.argoproj.workflow.v1alpha1.MutexStatus": {
4454		// Holding is a list of mutexes and their respective objects that are held by
4455		// mutex lock for this io.argoproj.workflow.v1alpha1.
4456		"holding"?: [...#."io.argoproj.workflow.v1alpha1.MutexHolding"]
4457
4458		// Waiting is a list of mutexes and their respective objects this workflow is waiting for.
4459		"waiting"?: [...#."io.argoproj.workflow.v1alpha1.MutexHolding"]
4460	}
4461
4462	#: "io.argoproj.workflow.v1alpha1.NodeFlag": {
4463		// Hooked tracks whether or not this node was triggered by hook or onExit
4464		"hooked"?: bool
4465
4466		// Retried tracks whether or not this node was retried by retryStrategy
4467		"retried"?: bool
4468	}
4469
4470	// NodeStatus contains status information about an individual node in the workflow
4471	#: "io.argoproj.workflow.v1alpha1.NodeStatus": {
4472		// BoundaryID indicates the node ID of the associated template root node in
4473		// which this node belongs to
4474		"boundaryID"?: string
4475
4476		// Children is a list of child node IDs
4477		"children"?: [...string]
4478
4479		// Daemoned tracks whether or not this node was daemoned and need to be terminated
4480		"daemoned"?: bool
4481
4482		// DisplayName is a human readable representation of the node. Unique within a template boundary
4483		"displayName"?: string
4484
4485		// EstimatedDuration in seconds.
4486		"estimatedDuration"?: int
4487
4488		// FailedPodRestarts tracks the number of times the pod for this node was
4489		// restarted due to infrastructure failures before the main container started.
4490		"failedPodRestarts"?: int
4491
4492		// Time at which this node completed
4493		"finishedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
4494
4495		// HostNodeName name of the Kubernetes node on which the Pod is running, if applicable
4496		"hostNodeName"?: string
4497
4498		// ID is a unique identifier of a node within the worklow It is implemented as a
4499		// hash of the node name, which makes the ID deterministic
4500		"id"!: string
4501
4502		// Inputs captures input parameter values and artifact locations supplied to
4503		// this template invocation
4504		"inputs"?: #."io.argoproj.workflow.v1alpha1.Inputs"
4505
4506		// MemoizationStatus holds information about cached nodes
4507		"memoizationStatus"?: #."io.argoproj.workflow.v1alpha1.MemoizationStatus"
4508
4509		// A human readable message indicating details about why the node is in this condition.
4510		"message"?: string
4511
4512		// Name is unique name in the node tree used to generate the node ID
4513		"name"!: string
4514
4515		// NodeFlag tracks some history of node. e.g.) hooked, retried, etc.
4516		"nodeFlag"?: #."io.argoproj.workflow.v1alpha1.NodeFlag"
4517
4518		// OutboundNodes tracks the node IDs which are considered "outbound" nodes to a
4519		// template invocation. For every invocation of a template, there are nodes
4520		// which we considered as "outbound". Essentially, these are last nodes in the
4521		// execution sequence to run, before the template is considered completed.
4522		// These nodes are then connected as parents to a following step.
4523		//
4524		// In the case of single pod steps (i.e. container, script, resource templates),
4525		// this list will be nil since the pod itself is already considered the
4526		// "outbound" node. In the case of DAGs, outbound nodes are the "target" tasks
4527		// (tasks with no children). In the case of steps, outbound nodes are all the
4528		// containers involved in the last step group. NOTE: since templates are
4529		// composable, the list of outbound nodes are carried upwards when a DAG/steps
4530		// template invokes another DAG/steps template. In other words, the outbound
4531		// nodes of a template, will be a superset of the outbound nodes of its last
4532		// children.
4533		"outboundNodes"?: [...string]
4534
4535		// Outputs captures output parameter values and artifact locations produced by
4536		// this template invocation
4537		"outputs"?: #."io.argoproj.workflow.v1alpha1.Outputs"
4538
4539		// Phase a simple, high-level summary of where the node is in its lifecycle. Can
4540		// be used as a state machine. Will be one of these values "Pending", "Running"
4541		// before the node is completed, or "Succeeded", "Skipped", "Failed", "Error",
4542		// or "Omitted" as a final state.
4543		"phase"?: string
4544
4545		// PodIP captures the IP of the pod for daemoned steps
4546		"podIP"?: string
4547
4548		// Progress to completion
4549		"progress"?: string
4550
4551		// ResourcesDuration is indicative, but not accurate, resource duration. This is
4552		// populated when the nodes completes.
4553		"resourcesDuration"?: [string]: int
4554
4555		// RestartingPodUID tracks the UID of the pod that is currently being restarted.
4556		// This prevents duplicate restart attempts when the controller processes the
4557		// same failed pod multiple times. Cleared when the replacement pod starts
4558		// running.
4559		"restartingPodUID"?: string
4560
4561		// Time at which this node started
4562		"startedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
4563
4564		// SynchronizationStatus is the synchronization status of the node
4565		"synchronizationStatus"?: #."io.argoproj.workflow.v1alpha1.NodeSynchronizationStatus"
4566
4567		// TaskResultSynced is used to determine if the node's output has been received
4568		"taskResultSynced"?: bool
4569
4570		// TemplateName is the template name which this node corresponds to. Not
4571		// applicable to virtual nodes (e.g. Retry, StepGroup)
4572		"templateName"?: string
4573
4574		// TemplateRef is the reference to the template resource which this node
4575		// corresponds to. Not applicable to virtual nodes (e.g. Retry, StepGroup)
4576		"templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
4577
4578		// TemplateScope is the template scope in which the template of this node was retrieved.
4579		"templateScope"?: string
4580
4581		// Type indicates type of node
4582		"type"!: string
4583	}
4584
4585	// NodeSynchronizationStatus stores the status of a node
4586	#: {
4587		"io.argoproj.workflow.v1alpha1.NodeSynchronizationStatus": {
4588			// Waiting is the name of the lock that this node is waiting for
4589			"waiting"?: string
4590		}
4591	}
4592
4593	// NoneStrategy indicates to skip tar process and upload the files or directory
4594	// tree as independent files. Note that if the artifact is a directory, the
4595	// artifact driver must support the ability to save/load the directory
4596	// appropriately.
4597	#: "io.argoproj.workflow.v1alpha1.NoneStrategy": {}
4598
4599	// OAuth2Auth holds all information for client authentication via OAuth2 tokens
4600	#: "io.argoproj.workflow.v1alpha1.OAuth2Auth": {
4601		"clientIDSecret"?:     #."io.k8s.api.core.v1.SecretKeySelector"
4602		"clientSecretSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4603		"endpointParams"?:     [...#."io.argoproj.workflow.v1alpha1.OAuth2EndpointParam"]
4604		"scopes"?:             [...string]
4605		"tokenURLSecret"?:     #."io.k8s.api.core.v1.SecretKeySelector"
4606	}
4607
4608	// EndpointParam is for requesting optional fields that should be sent in the oauth request
4609	#: "io.argoproj.workflow.v1alpha1.OAuth2EndpointParam": {
4610		// Name is the header name
4611		"key"!: string
4612
4613		// Value is the literal value to use for the header
4614		"value"?: string
4615	}
4616
4617	// OSSArtifact is the location of an Alibaba Cloud OSS artifact
4618	#: "io.argoproj.workflow.v1alpha1.OSSArtifact": {
4619		// AccessKeySecret is the secret selector to the bucket's access key
4620		"accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4621
4622		// Bucket is the name of the bucket
4623		"bucket"?: string
4624
4625		// CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket
4626		// for output artifacts, if it doesn't exist
4627		"createBucketIfNotPresent"?: bool
4628
4629		// Endpoint is the hostname of the bucket endpoint
4630		"endpoint"?: string
4631
4632		// Key is the path in the bucket where the artifact resides
4633		"key"!: string
4634
4635		// LifecycleRule specifies how to manage bucket's lifecycle
4636		"lifecycleRule"?: #."io.argoproj.workflow.v1alpha1.OSSLifecycleRule"
4637
4638		// SecretKeySecret is the secret selector to the bucket's secret key
4639		"secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4640
4641		// SecurityToken is the user's temporary security token. For more details, check
4642		// out: https://www.alibabacloud.com/help/doc-detail/100624.htm
4643		"securityToken"?: string
4644
4645		// UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
4646		"useSDKCreds"?: bool
4647	}
4648
4649	// OSSArtifactRepository defines the controller configuration for an OSS artifact repository
4650	#: "io.argoproj.workflow.v1alpha1.OSSArtifactRepository": {
4651		// AccessKeySecret is the secret selector to the bucket's access key
4652		"accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4653
4654		// Bucket is the name of the bucket
4655		"bucket"?: string
4656
4657		// CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket
4658		// for output artifacts, if it doesn't exist
4659		"createBucketIfNotPresent"?: bool
4660
4661		// Endpoint is the hostname of the bucket endpoint
4662		"endpoint"?: string
4663
4664		// KeyFormat defines the format of how to store keys and can reference workflow variables.
4665		"keyFormat"?: string
4666
4667		// LifecycleRule specifies how to manage bucket's lifecycle
4668		"lifecycleRule"?: #."io.argoproj.workflow.v1alpha1.OSSLifecycleRule"
4669
4670		// SecretKeySecret is the secret selector to the bucket's secret key
4671		"secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4672
4673		// SecurityToken is the user's temporary security token. For more details, check
4674		// out: https://www.alibabacloud.com/help/doc-detail/100624.htm
4675		"securityToken"?: string
4676
4677		// UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
4678		"useSDKCreds"?: bool
4679	}
4680
4681	// OSSLifecycleRule specifies how to manage bucket's lifecycle
4682	#: "io.argoproj.workflow.v1alpha1.OSSLifecycleRule": {
4683		// MarkDeletionAfterDays is the number of days before we delete objects in the bucket
4684		"markDeletionAfterDays"?: int
4685
4686		// MarkInfrequentAccessAfterDays is the number of days before we convert the
4687		// objects in the bucket to Infrequent Access (IA) storage type
4688		"markInfrequentAccessAfterDays"?: int
4689	}
4690
4691	// Outputs hold parameters, artifacts, and results from a step
4692	#: "io.argoproj.workflow.v1alpha1.Outputs": {
4693		// Artifacts holds the list of output artifacts produced by a step
4694		"artifacts"?: [...#."io.argoproj.workflow.v1alpha1.Artifact"]
4695
4696		// ExitCode holds the exit code of a script template
4697		"exitCode"?: string
4698
4699		// Parameters holds the list of output parameters produced by a step
4700		"parameters"?: [...#."io.argoproj.workflow.v1alpha1.Parameter"]
4701
4702		// Result holds the result (stdout) of a script or container template, or the
4703		// response body of an HTTP template
4704		"result"?: string
4705	}
4706
4707	#: "io.argoproj.workflow.v1alpha1.ParallelSteps": [...#."io.argoproj.workflow.v1alpha1.WorkflowStep"]
4708
4709	// Parameter indicate a passed string parameter to a service template with an optional default value
4710	#: "io.argoproj.workflow.v1alpha1.Parameter": {
4711		// Default is the default value to use for an input parameter if a value was not supplied
4712		"default"?: string
4713
4714		// Description is the parameter description
4715		"description"?: string
4716
4717		// Enum holds a list of string values to choose from, for the actual value of the parameter
4718		"enum"?: [...string]
4719
4720		// GlobalName exports an output parameter to the global scope, making it
4721		// available as io.argoproj.workflow.v1alpha1.outputs.parameters.XXXX and in
4722		// workflow.status.outputs.parameters
4723		"globalName"?: string
4724
4725		// Name is the parameter name
4726		"name"!: string
4727
4728		// Value is the literal value to use for the parameter. If specified in the
4729		// context of an input parameter, any passed values take precedence over the
4730		// specified value
4731		"value"?: string
4732
4733		// ValueFrom is the source for the output parameter's value
4734		"valueFrom"?: #."io.argoproj.workflow.v1alpha1.ValueFrom"
4735	}
4736
4737	// Plugin is an Object with exactly one key
4738	#: "io.argoproj.workflow.v1alpha1.Plugin": {}
4739
4740	// PluginArtifact is the location of a plugin artifact
4741	#: "io.argoproj.workflow.v1alpha1.PluginArtifact": {
4742		// Configuration is the plugin defined configuration for the artifact driver plugin
4743		"configuration"?: string
4744
4745		// ConnectionTimeoutSeconds is the timeout for the artifact driver connection,
4746		// overriding the driver's timeout
4747		"connectionTimeoutSeconds"?: int
4748
4749		// Key is the path in the artifact repository where the artifact resides
4750		"key"!: string
4751
4752		// Name is the name of the artifact driver plugin
4753		"name"?: string
4754	}
4755
4756	// PluginArtifactRepository defines the controller configuration for a plugin artifact repository
4757	#: "io.argoproj.workflow.v1alpha1.PluginArtifactRepository": {
4758		"configuration"!: string
4759		"keyFormat"?:     string
4760		"name"!:          string
4761	}
4762
4763	// PodGC describes how to delete completed pods as they complete
4764	#: "io.argoproj.workflow.v1alpha1.PodGC": {
4765		// DeleteDelayDuration specifies the duration before pods in the GC queue get deleted.
4766		"deleteDelayDuration"?: string
4767
4768		// LabelSelector is the label selector to check if the pods match the labels
4769		// before being added to the pod GC queue.
4770		"labelSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
4771
4772		// Strategy is the strategy to use. One of "OnPodCompletion", "OnPodSuccess",
4773		// "OnWorkflowCompletion", "OnWorkflowSuccess". If unset, does not delete Pods
4774		"strategy"?: string
4775	}
4776
4777	// Prometheus is a prometheus metric to be emitted
4778	#: "io.argoproj.workflow.v1alpha1.Prometheus": {
4779		// Counter is a counter metric
4780		"counter"?: #."io.argoproj.workflow.v1alpha1.Counter"
4781
4782		// Gauge is a gauge metric
4783		"gauge"?: #."io.argoproj.workflow.v1alpha1.Gauge"
4784
4785		// Help is a string that describes the metric
4786		"help"!: string
4787
4788		// Histogram is a histogram metric
4789		"histogram"?: #."io.argoproj.workflow.v1alpha1.Histogram"
4790
4791		// Labels is a list of metric labels
4792		"labels"?: [...#."io.argoproj.workflow.v1alpha1.MetricLabel"]
4793
4794		// Name is the name of the metric
4795		"name"!: string
4796
4797		// When is a conditional statement that decides when to emit the metric
4798		"when"?: string
4799	}
4800
4801	// RawArtifact allows raw string content to be placed as an artifact in a container
4802	#: {
4803		"io.argoproj.workflow.v1alpha1.RawArtifact": {
4804			// Data is the string contents of the artifact
4805			"data"!: string
4806		}
4807	}
4808
4809	// ResourceTemplate is a template subtype to manipulate kubernetes resources
4810	#: "io.argoproj.workflow.v1alpha1.ResourceTemplate": {
4811		// Action is the action to perform to the resource. Must be one of: get, create,
4812		// apply, delete, replace, patch
4813		"action"!: string
4814
4815		// FailureCondition is a label selector expression which describes the
4816		// conditions of the k8s resource in which the step was considered failed
4817		"failureCondition"?: string
4818
4819		// Flags is a set of additional options passed to kubectl before submitting a
4820		// resource I.e. to disable resource validation: flags: [
4821		// "--validate=false" # disable resource validation
4822		// ]
4823		"flags"?: [...string]
4824
4825		// Manifest contains the kubernetes manifest
4826		"manifest"?: string
4827
4828		// ManifestFrom is the source for a single kubernetes manifest
4829		"manifestFrom"?: #."io.argoproj.workflow.v1alpha1.ManifestFrom"
4830
4831		// MergeStrategy is the strategy used to merge a patch. It defaults to
4832		// "strategic" Must be one of: strategic, merge, json
4833		"mergeStrategy"?: string
4834
4835		// SetOwnerReference sets the reference to the workflow on the OwnerReference of generated resource.
4836		"setOwnerReference"?: bool
4837
4838		// SuccessCondition is a label selector expression which describes the
4839		// conditions of the k8s resource in which it is acceptable to proceed to the
4840		// following step
4841		"successCondition"?: string
4842	}
4843
4844	#: "io.argoproj.workflow.v1alpha1.ResubmitArchivedWorkflowRequest": {
4845		"memoized"?:   bool
4846		"name"?:       string
4847		"namespace"?:  string
4848		"parameters"?: [...string]
4849		"uid"?:        string
4850	}
4851
4852	// RetryAffinity prevents running steps on the same host.
4853	#: "io.argoproj.workflow.v1alpha1.RetryAffinity": "nodeAntiAffinity"?: #."io.argoproj.workflow.v1alpha1.RetryNodeAntiAffinity"
4854
4855	#: "io.argoproj.workflow.v1alpha1.RetryArchivedWorkflowRequest": {
4856		"name"?:              string
4857		"namespace"?:         string
4858		"nodeFieldSelector"?: string
4859		"parameters"?:        [...string]
4860		"restartSuccessful"?: bool
4861		"uid"?:               string
4862	}
4863
4864	// RetryNodeAntiAffinity is a placeholder for future expansion, only empty
4865	// nodeAntiAffinity is allowed. In order to prevent running steps on the same
4866	// host, it uses "kubernetes.io/hostname".
4867	#: "io.argoproj.workflow.v1alpha1.RetryNodeAntiAffinity": {}
4868
4869	// RetryStrategy provides controls on how to retry a workflow step
4870	#: "io.argoproj.workflow.v1alpha1.RetryStrategy": {
4871		// Affinity prevents running workflow's step on the same host
4872		"affinity"?: #."io.argoproj.workflow.v1alpha1.RetryAffinity"
4873
4874		// Backoff is a backoff strategy
4875		"backoff"?: #."io.argoproj.workflow.v1alpha1.Backoff"
4876
4877		// Expression is a condition expression for when a node will be retried. If it
4878		// evaluates to false, the node will not be retried and the retry strategy will
4879		// be ignored
4880		"expression"?: string
4881
4882		// Limit is the maximum number of retry attempts when retrying a container. It
4883		// does not include the original container; the maximum number of total
4884		// attempts will be `limit + 1`.
4885		"limit"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
4886
4887		// RetryPolicy is a policy of NodePhase statuses that will be retried
4888		"retryPolicy"?: string
4889	}
4890
4891	// S3Artifact is the location of an S3 artifact
4892	#: "io.argoproj.workflow.v1alpha1.S3Artifact": {
4893		// AccessKeySecret is the secret selector to the bucket's access key
4894		"accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4895
4896		// Bucket is the name of the bucket
4897		"bucket"?: string
4898
4899		// CASecret specifies the secret that contains the CA, used to verify the TLS connection
4900		"caSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4901
4902		// CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket
4903		// for output artifacts, if it doesn't exist. Setting Enabled Encryption will
4904		// apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it
4905		// is.
4906		"createBucketIfNotPresent"?: #."io.argoproj.workflow.v1alpha1.CreateS3BucketOptions"
4907		"encryptionOptions"?:        #."io.argoproj.workflow.v1alpha1.S3EncryptionOptions"
4908
4909		// Endpoint is the hostname of the bucket endpoint
4910		"endpoint"?: string
4911
4912		// Insecure will connect to the service with TLS
4913		"insecure"?: bool
4914
4915		// Key is the key in the bucket where the artifact resides
4916		"key"?: string
4917
4918		// Region contains the optional bucket region
4919		"region"?: string
4920
4921		// RoleARN is the Amazon Resource Name (ARN) of the role to assume.
4922		"roleARN"?: string
4923
4924		// SecretKeySecret is the secret selector to the bucket's secret key
4925		"secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4926
4927		// SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
4928		"sessionTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4929
4930		// UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
4931		"useSDKCreds"?: bool
4932	}
4933
4934	// S3ArtifactRepository defines the controller configuration for an S3 artifact repository
4935	#: "io.argoproj.workflow.v1alpha1.S3ArtifactRepository": {
4936		// AccessKeySecret is the secret selector to the bucket's access key
4937		"accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4938
4939		// Bucket is the name of the bucket
4940		"bucket"?: string
4941
4942		// CASecret specifies the secret that contains the CA, used to verify the TLS connection
4943		"caSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4944
4945		// CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket
4946		// for output artifacts, if it doesn't exist. Setting Enabled Encryption will
4947		// apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it
4948		// is.
4949		"createBucketIfNotPresent"?: #."io.argoproj.workflow.v1alpha1.CreateS3BucketOptions"
4950		"encryptionOptions"?:        #."io.argoproj.workflow.v1alpha1.S3EncryptionOptions"
4951
4952		// Endpoint is the hostname of the bucket endpoint
4953		"endpoint"?: string
4954
4955		// Insecure will connect to the service with TLS
4956		"insecure"?: bool
4957
4958		// KeyFormat defines the format of how to store keys and can reference workflow variables.
4959		"keyFormat"?: string
4960
4961		// KeyPrefix is prefix used as part of the bucket key in which the controller
4962		// will store artifacts. DEPRECATED. Use KeyFormat instead
4963		"keyPrefix"?: string
4964
4965		// Region contains the optional bucket region
4966		"region"?: string
4967
4968		// RoleARN is the Amazon Resource Name (ARN) of the role to assume.
4969		"roleARN"?: string
4970
4971		// SecretKeySecret is the secret selector to the bucket's secret key
4972		"secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4973
4974		// SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
4975		"sessionTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4976
4977		// UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
4978		"useSDKCreds"?: bool
4979	}
4980
4981	// S3EncryptionOptions used to determine encryption options during s3 operations
4982	#: "io.argoproj.workflow.v1alpha1.S3EncryptionOptions": {
4983		// EnableEncryption tells the driver to encrypt objects if set to true. If
4984		// kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
4985		"enableEncryption"?: bool
4986
4987		// KmsEncryptionContext is a json blob that contains an encryption context. See
4988		// https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
4989		// for more information
4990		"kmsEncryptionContext"?: string
4991
4992		// KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
4993		"kmsKeyId"?: string
4994
4995		// ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts
4996		// using SSE-C with the specified secret.
4997		"serverSideCustomerKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
4998	}
4999
5000	// ScriptTemplate is a template subtype to enable scripting through code steps
5001	#: "io.argoproj.workflow.v1alpha1.ScriptTemplate": {
5002		// Arguments to the entrypoint. The container image's CMD is used if this is not
5003		// provided. Variable references $(VAR_NAME) are expanded using the container's
5004		// environment. If a variable cannot be resolved, the reference in the input
5005		// string will be unchanged. Double $$ are reduced to a single $, which allows
5006		// for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
5007		// string literal "$(VAR_NAME)". Escaped references will never be expanded,
5008		// regardless of whether the variable exists or not. Cannot be updated. More
5009		// info:
5010		// https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
5011		"args"?: [...string]
5012
5013		// Entrypoint array. Not executed within a shell. The container image's
5014		// ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME)
5015		// are expanded using the container's environment. If a variable cannot be
5016		// resolved, the reference in the input string will be unchanged. Double $$ are
5017		// reduced to a single $, which allows for escaping the $(VAR_NAME) syntax:
5018		// i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped
5019		// references will never be expanded, regardless of whether the variable exists
5020		// or not. Cannot be updated. More info:
5021		// https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
5022		"command"?: [...string]
5023
5024		// List of environment variables to set in the container. Cannot be updated.
5025		"env"?: [...#."io.k8s.api.core.v1.EnvVar"]
5026
5027		// List of sources to populate environment variables in the container. The keys
5028		// defined within a source must be a C_IDENTIFIER. All invalid keys will be
5029		// reported as an event when the container is starting. When a key exists in
5030		// multiple sources, the value associated with the last source will take
5031		// precedence. Values defined by an Env with a duplicate key will take
5032		// precedence. Cannot be updated.
5033		"envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
5034
5035		// Container image name. More info:
5036		// https://kubernetes.io/docs/concepts/containers/images This field is optional
5037		// to allow higher level config management to default or override container
5038		// images in workload controllers like Deployments and StatefulSets.
5039		"image"!: string
5040
5041		// Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if
5042		// :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More
5043		// info: https://kubernetes.io/docs/concepts/containers/images#updating-images
5044		"imagePullPolicy"?: string
5045
5046		// Actions that the management system should take in response to container
5047		// lifecycle events. Cannot be updated.
5048		"lifecycle"?: #."io.k8s.api.core.v1.Lifecycle"
5049
5050		// Periodic probe of container liveness. Container will be restarted if the
5051		// probe fails. Cannot be updated. More info:
5052		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5053		"livenessProbe"?: #."io.k8s.api.core.v1.Probe"
5054
5055		// Name of the container specified as a DNS_LABEL. Each container in a pod must
5056		// have a unique name (DNS_LABEL). Cannot be updated.
5057		"name"?: string
5058
5059		// List of ports to expose from the container. Not specifying a port here DOES
5060		// NOT prevent that port from being exposed. Any port which is listening on the
5061		// default "0.0.0.0" address inside a container will be accessible from the
5062		// network. Modifying this array with strategic merge patch may corrupt the
5063		// data. For more information See
5064		// https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.
5065		"ports"?: [...#."io.k8s.api.core.v1.ContainerPort"]
5066
5067		// Periodic probe of container service readiness. Container will be removed from
5068		// service endpoints if the probe fails. Cannot be updated. More info:
5069		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5070		"readinessProbe"?: #."io.k8s.api.core.v1.Probe"
5071
5072		// Resources resize policy for the container.
5073		"resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
5074
5075		// Compute Resources required by this container. Cannot be updated. More info:
5076		// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
5077		"resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
5078
5079		// RestartPolicy defines the restart behavior of individual containers in a pod.
5080		// This field may only be set for init containers, and the only allowed value
5081		// is "Always". For non-init containers or when this field is not specified,
5082		// the restart behavior is defined by the Pod's restart policy and the
5083		// container type. Setting the RestartPolicy as "Always" for the init container
5084		// will have the following effect: this init container will be continually
5085		// restarted on exit until all regular containers have terminated. Once all
5086		// regular containers have completed, all init containers with restartPolicy
5087		// "Always" will be shut down. This lifecycle differs from normal init
5088		// containers and is often referred to as a "sidecar" container. Although this
5089		// init container still starts in the init container sequence, it does not wait
5090		// for the container to complete before proceeding to the next init container.
5091		// Instead, the next init container starts immediately after this init
5092		// container is started, or after any startupProbe has successfully completed.
5093		"restartPolicy"?: string
5094
5095		// SecurityContext defines the security options the container should be run
5096		// with. If set, the fields of SecurityContext override the equivalent fields
5097		// of PodSecurityContext. More info:
5098		// https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
5099		"securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
5100
5101		// Source contains the source code of the script to execute
5102		"source"!: string
5103
5104		// StartupProbe indicates that the Pod has successfully initialized. If
5105		// specified, no other probes are executed until this completes successfully.
5106		// If this probe fails, the Pod will be restarted, just as if the livenessProbe
5107		// failed. This can be used to provide different probe parameters at the
5108		// beginning of a Pod's lifecycle, when it might take a long time to load data
5109		// or warm a cache, than during steady-state operation. This cannot be updated.
5110		// More info:
5111		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5112		"startupProbe"?: #."io.k8s.api.core.v1.Probe"
5113
5114		// Whether this container should allocate a buffer for stdin in the container
5115		// runtime. If this is not set, reads from stdin in the container will always
5116		// result in EOF. Default is false.
5117		"stdin"?: bool
5118
5119		// Whether the container runtime should close the stdin channel after it has
5120		// been opened by a single attach. When stdin is true the stdin stream will
5121		// remain open across multiple attach sessions. If stdinOnce is set to true,
5122		// stdin is opened on container start, is empty until the first client attaches
5123		// to stdin, and then remains open and accepts data until the client
5124		// disconnects, at which time stdin is closed and remains closed until the
5125		// container is restarted. If this flag is false, a container processes that
5126		// reads from stdin will never receive an EOF. Default is false
5127		"stdinOnce"?: bool
5128
5129		// Optional: Path at which the file to which the container's termination message
5130		// will be written is mounted into the container's filesystem. Message written
5131		// is intended to be brief final status, such as an assertion failure message.
5132		// Will be truncated by the node if greater than 4096 bytes. The total message
5133		// length across all containers will be limited to 12kb. Defaults to
5134		// /dev/termination-log. Cannot be updated.
5135		"terminationMessagePath"?: string
5136
5137		// Indicate how the termination message should be populated. File will use the
5138		// contents of terminationMessagePath to populate the container status message
5139		// on both success and failure. FallbackToLogsOnError will use the last chunk
5140		// of container log output if the termination message file is empty and the
5141		// container exited with an error. The log output is limited to 2048 bytes or
5142		// 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
5143		"terminationMessagePolicy"?: string
5144
5145		// Whether this container should allocate a TTY for itself, also requires
5146		// 'stdin' to be true. Default is false.
5147		"tty"?: bool
5148
5149		// volumeDevices is the list of block devices to be used by the container.
5150		"volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"]
5151
5152		// Pod volumes to mount into the container's filesystem. Cannot be updated.
5153		"volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
5154
5155		// Container's working directory. If not specified, the container runtime's
5156		// default will be used, which might be configured in the container image.
5157		// Cannot be updated.
5158		"workingDir"?: string
5159	}
5160
5161	#: "io.argoproj.workflow.v1alpha1.SemaphoreHolding": {
5162		// Holders stores the list of current holder names in the io.argoproj.workflow.v1alpha1.
5163		"holders"?: [...string]
5164
5165		// Semaphore stores the semaphore name.
5166		"semaphore"?: string
5167	}
5168
5169	// SemaphoreRef is a reference of Semaphore
5170	#: "io.argoproj.workflow.v1alpha1.SemaphoreRef": {
5171		// ConfigMapKeyRef is a configmap selector for Semaphore configuration
5172		"configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
5173
5174		// SyncDatabaseRef is a database reference for Semaphore configuration
5175		"database"?: #."io.argoproj.workflow.v1alpha1.SyncDatabaseRef"
5176
5177		// Namespace is the namespace of the configmap, default: [namespace of workflow]
5178		"namespace"?: string
5179	}
5180
5181	#: "io.argoproj.workflow.v1alpha1.SemaphoreStatus": {
5182		// Holding stores the list of resource acquired synchronization lock for workflows.
5183		"holding"?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreHolding"]
5184
5185		// Waiting indicates the list of current synchronization lock holders.
5186		"waiting"?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreHolding"]
5187	}
5188
5189	// Sequence expands a workflow step into numeric range
5190	#: "io.argoproj.workflow.v1alpha1.Sequence": {
5191		// Count is number of elements in the sequence (default: 0). Not to be used with end
5192		"count"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
5193
5194		// Number at which to end the sequence (default: 0). Not to be used with Count
5195		"end"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
5196
5197		// Format is a printf format string to format the value in the sequence
5198		"format"?: string
5199
5200		// Number at which to start the sequence (default: 0)
5201		"start"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
5202	}
5203
5204	// StopStrategy defines if the CronWorkflow should stop scheduling based on an
5205	// expression. v3.6 and after
5206	#: {
5207		"io.argoproj.workflow.v1alpha1.StopStrategy": {
5208			// v3.6 and after: Expression is an expression that stops scheduling workflows
5209			// when true. Use the variables `cronworkflow`.`failed` or
5210			// `cronworkflow`.`succeeded` to access the number of failed or successful
5211			// child workflows.
5212			"expression"!: string
5213		}
5214	}
5215
5216	#: "io.argoproj.workflow.v1alpha1.Submit": {
5217		// Arguments extracted from the event and then set as arguments to the workflow created.
5218		"arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
5219
5220		// Metadata optional means to customize select fields of the workflow metadata
5221		"metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
5222
5223		// WorkflowTemplateRef the workflow template to submit
5224		"workflowTemplateRef"!: #."io.argoproj.workflow.v1alpha1.WorkflowTemplateRef"
5225	}
5226
5227	// SubmitOpts are workflow submission options
5228	#: "io.argoproj.workflow.v1alpha1.SubmitOpts": {
5229		// Annotations adds to metadata.labels
5230		"annotations"?: string
5231
5232		// DryRun validates the workflow on the client-side without creating it. This
5233		// option is not supported in API
5234		"dryRun"?: bool
5235
5236		// Entrypoint overrides spec.entrypoint
5237		"entryPoint"?: string
5238
5239		// GenerateName overrides metadata.generateName
5240		"generateName"?: string
5241
5242		// Labels adds to metadata.labels
5243		"labels"?: string
5244
5245		// Name overrides metadata.name
5246		"name"?: string
5247
5248		// OwnerReference creates a metadata.ownerReference
5249		"ownerReference"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference"
5250
5251		// Parameters passes input parameters to workflow
5252		"parameters"?: [...string]
5253
5254		// Set the podPriorityClassName of the workflow
5255		"podPriorityClassName"?: string
5256
5257		// Priority is used if controller is configured to process limited number of
5258		// workflows in parallel, higher priority workflows are processed first.
5259		"priority"?: int
5260
5261		// ServerDryRun validates the workflow on the server-side without creating it
5262		"serverDryRun"?: bool
5263
5264		// ServiceAccount runs all pods in the workflow using specified ServiceAccount.
5265		"serviceAccount"?: string
5266	}
5267
5268	// SuppliedValueFrom is a placeholder for a value to be filled in directly,
5269	// either through the CLI, API, etc.
5270	#: "io.argoproj.workflow.v1alpha1.SuppliedValueFrom": {}
5271
5272	// SuspendTemplate is a template subtype to suspend a workflow at a predetermined point in time
5273	#: {
5274		"io.argoproj.workflow.v1alpha1.SuspendTemplate": {
5275			// Duration is the seconds to wait before automatically resuming a template.
5276			// Must be a string. Default unit is seconds. Could also be a Duration, e.g.:
5277			// "2m", "6h"
5278			"duration"?: string
5279		}
5280	}
5281
5282	#: "io.argoproj.workflow.v1alpha1.SyncDatabaseRef": "key"!: string
5283
5284	// Synchronization holds synchronization lock configuration
5285	#: "io.argoproj.workflow.v1alpha1.Synchronization": {
5286		// v3.6 and after: Mutexes holds the list of Mutex lock details
5287		"mutexes"?: [...#."io.argoproj.workflow.v1alpha1.Mutex"]
5288
5289		// v3.6 and after: Semaphores holds the list of Semaphores configuration
5290		"semaphores"?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreRef"]
5291	}
5292
5293	// SynchronizationStatus stores the status of semaphore and mutex.
5294	#: "io.argoproj.workflow.v1alpha1.SynchronizationStatus": {
5295		// Mutex stores this workflow's mutex holder details
5296		"mutex"?: #."io.argoproj.workflow.v1alpha1.MutexStatus"
5297
5298		// Semaphore stores this workflow's Semaphore holder details
5299		"semaphore"?: #."io.argoproj.workflow.v1alpha1.SemaphoreStatus"
5300	}
5301
5302	// TTLStrategy is the strategy for the time to live depending on if the workflow succeeded or failed
5303	#: "io.argoproj.workflow.v1alpha1.TTLStrategy": {
5304		// SecondsAfterCompletion is the number of seconds to live after completion
5305		"secondsAfterCompletion"?: int
5306
5307		// SecondsAfterFailure is the number of seconds to live after failure
5308		"secondsAfterFailure"?: int
5309
5310		// SecondsAfterSuccess is the number of seconds to live after success
5311		"secondsAfterSuccess"?: int
5312	}
5313
5314	// TarStrategy will tar and gzip the file or directory when saving
5315	#: {
5316		"io.argoproj.workflow.v1alpha1.TarStrategy": {
5317			// CompressionLevel specifies the gzip compression level to use for the
5318			// artifact. Defaults to gzip.DefaultCompression.
5319			"compressionLevel"?: int
5320		}
5321	}
5322
5323	// Template is a reusable and composable unit of execution in a workflow
5324	#: "io.argoproj.workflow.v1alpha1.Template": {
5325		// Optional duration in seconds relative to the StartTime that the pod may be
5326		// active on a node before the system actively tries to terminate the pod;
5327		// value must be positive integer This field is only applicable to container
5328		// and script templates.
5329		"activeDeadlineSeconds"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
5330
5331		// Affinity sets the pod's scheduling constraints Overrides the affinity set at
5332		// the workflow level (if any)
5333		"affinity"?: #."io.k8s.api.core.v1.Affinity"
5334
5335		// Annotations is a list of annotations to add to the template at runtime
5336		"annotations"?: [string]: string
5337
5338		// Location in which all files related to the step will be stored (logs,
5339		// artifacts, etc...). Can be overridden by individual items in Outputs. If
5340		// omitted, will use the default artifact repository location configured in the
5341		// controller, appended with the <workflowname>/<nodename> in the key.
5342		"archiveLocation"?: #."io.argoproj.workflow.v1alpha1.ArtifactLocation"
5343
5344		// AutomountServiceAccountToken indicates whether a service account token should
5345		// be automatically mounted in pods. ServiceAccountName of ExecutorConfig must
5346		// be specified if this value is false.
5347		"automountServiceAccountToken"?: bool
5348
5349		// Container is the main container image to run in the pod
5350		"container"?: #."io.k8s.api.core.v1.Container"
5351
5352		// ContainerSet groups multiple containers within a single pod.
5353		"containerSet"?: #."io.argoproj.workflow.v1alpha1.ContainerSetTemplate"
5354
5355		// Daemon will allow a workflow to proceed to the next step so long as the
5356		// container reaches readiness
5357		"daemon"?: bool
5358
5359		// DAG template subtype which runs a DAG
5360		"dag"?: #."io.argoproj.workflow.v1alpha1.DAGTemplate"
5361
5362		// Data is a data template
5363		"data"?: #."io.argoproj.workflow.v1alpha1.Data"
5364
5365		// Executor holds configurations of the executor container.
5366		"executor"?: #."io.argoproj.workflow.v1alpha1.ExecutorConfig"
5367
5368		// FailFast, if specified, will fail this template if any of its child pods has
5369		// failed. This is useful for when this template is expanded with `withItems`,
5370		// etc.
5371		"failFast"?: bool
5372
5373		// HostAliases is an optional list of hosts and IPs that will be injected into the pod spec
5374		"hostAliases"?: [...#."io.k8s.api.core.v1.HostAlias"]
5375
5376		// HTTP makes a HTTP request
5377		"http"?: #."io.argoproj.workflow.v1alpha1.HTTP"
5378
5379		// InitContainers is a list of containers which run before the main container.
5380		"initContainers"?: [...#."io.argoproj.workflow.v1alpha1.UserContainer"]
5381
5382		// Inputs describe what inputs parameters and artifacts are supplied to this template
5383		"inputs"?: #."io.argoproj.workflow.v1alpha1.Inputs"
5384
5385		// Memoize allows templates to use outputs generated from already executed templates
5386		"memoize"?: #."io.argoproj.workflow.v1alpha1.Memoize"
5387
5388		// Metadata sets the pods's metadata, i.e. annotations and labels
5389		"metadata"?: #."io.argoproj.workflow.v1alpha1.Metadata"
5390
5391		// Metrics are a list of metrics emitted from this template
5392		"metrics"?: #."io.argoproj.workflow.v1alpha1.Metrics"
5393
5394		// Name is the name of the template
5395		"name"?: string
5396
5397		// NodeSelector is a selector to schedule this step of the workflow to be run on
5398		// the selected node(s). Overrides the selector set at the workflow level.
5399		"nodeSelector"?: [string]: string
5400
5401		// Outputs describe the parameters and artifacts that this template produces
5402		"outputs"?: #."io.argoproj.workflow.v1alpha1.Outputs"
5403
5404		// Parallelism limits the max total parallel pods that can execute at the same
5405		// time within the boundaries of this template invocation. If additional
5406		// steps/dag templates are invoked, the pods created by those templates will
5407		// not be counted towards this total.
5408		"parallelism"?: int
5409
5410		// Plugin is a plugin template Note: the structure of a plugin template is
5411		// free-form, so we need to have "x-kubernetes-preserve-unknown-fields: true"
5412		// in the validation schema.
5413		"plugin"?: #."io.argoproj.workflow.v1alpha1.Plugin"
5414
5415		// PodSpecPatch holds strategic merge patch to apply against the pod spec.
5416		// Allows parameterization of container fields which are not strings (e.g.
5417		// resource limits).
5418		"podSpecPatch"?: string
5419
5420		// PriorityClassName to apply to workflow pods.
5421		"priorityClassName"?: string
5422
5423		// Resource template subtype which can run k8s resources
5424		"resource"?: #."io.argoproj.workflow.v1alpha1.ResourceTemplate"
5425
5426		// RetryStrategy describes how to retry a template when it fails
5427		"retryStrategy"?: #."io.argoproj.workflow.v1alpha1.RetryStrategy"
5428
5429		// If specified, the pod will be dispatched by specified scheduler. Or it will
5430		// be dispatched by workflow scope scheduler if specified. If neither
5431		// specified, the pod will be dispatched by default scheduler.
5432		"schedulerName"?: string
5433
5434		// Script runs a portion of code against an interpreter
5435		"script"?: #."io.argoproj.workflow.v1alpha1.ScriptTemplate"
5436
5437		// SecurityContext holds pod-level security attributes and common container
5438		// settings. Optional: Defaults to empty. See type description for default
5439		// values of each field.
5440		"securityContext"?: #."io.k8s.api.core.v1.PodSecurityContext"
5441
5442		// ServiceAccountName to apply to workflow pods
5443		"serviceAccountName"?: string
5444
5445		// Sidecars is a list of containers which run alongside the main container
5446		// Sidecars are automatically killed when the main container completes
5447		"sidecars"?: [...#."io.argoproj.workflow.v1alpha1.UserContainer"]
5448
5449		// Steps define a series of sequential/parallel workflow steps
5450		"steps"?: [...#."io.argoproj.workflow.v1alpha1.ParallelSteps"]
5451
5452		// Suspend template subtype which can suspend a workflow when reaching the step
5453		"suspend"?: #."io.argoproj.workflow.v1alpha1.SuspendTemplate"
5454
5455		// Synchronization holds synchronization lock configuration for this template
5456		"synchronization"?: #."io.argoproj.workflow.v1alpha1.Synchronization"
5457
5458		// Timeout allows to set the total node execution timeout duration counting from
5459		// the node's start time. This duration also includes time in which the node
5460		// spends in Pending state. This duration may not be applied to Step or DAG
5461		// templates.
5462		"timeout"?: string
5463
5464		// Tolerations to apply to workflow pods.
5465		"tolerations"?: [...#."io.k8s.api.core.v1.Toleration"]
5466
5467		// Volumes is a list of volumes that can be mounted by containers in a template.
5468		"volumes"?: [...#."io.k8s.api.core.v1.Volume"]
5469	}
5470
5471	// TemplateRef is a reference of template resource.
5472	#: "io.argoproj.workflow.v1alpha1.TemplateRef": {
5473		// ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
5474		"clusterScope"?: bool
5475
5476		// Name is the resource name of the template.
5477		"name"?: string
5478
5479		// Template is the name of referred template in the resource.
5480		"template"?: string
5481	}
5482
5483	#: {
5484		"io.argoproj.workflow.v1alpha1.TransformationStep": {
5485			// Expression defines an expr expression to apply
5486			"expression"!: string
5487		}
5488	}
5489
5490	#: "io.argoproj.workflow.v1alpha1.UpdateCronWorkflowRequest": {
5491		"cronWorkflow"?: #."io.argoproj.workflow.v1alpha1.CronWorkflow"
5492
5493		// DEPRECATED: This field is ignored.
5494		"name"?:      string
5495		"namespace"?: string
5496	}
5497
5498	// UserContainer is a container specified by a user.
5499	#: "io.argoproj.workflow.v1alpha1.UserContainer": {
5500		// Arguments to the entrypoint. The container image's CMD is used if this is not
5501		// provided. Variable references $(VAR_NAME) are expanded using the container's
5502		// environment. If a variable cannot be resolved, the reference in the input
5503		// string will be unchanged. Double $$ are reduced to a single $, which allows
5504		// for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
5505		// string literal "$(VAR_NAME)". Escaped references will never be expanded,
5506		// regardless of whether the variable exists or not. Cannot be updated. More
5507		// info:
5508		// https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
5509		"args"?: [...string]
5510
5511		// Entrypoint array. Not executed within a shell. The container image's
5512		// ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME)
5513		// are expanded using the container's environment. If a variable cannot be
5514		// resolved, the reference in the input string will be unchanged. Double $$ are
5515		// reduced to a single $, which allows for escaping the $(VAR_NAME) syntax:
5516		// i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped
5517		// references will never be expanded, regardless of whether the variable exists
5518		// or not. Cannot be updated. More info:
5519		// https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
5520		"command"?: [...string]
5521
5522		// List of environment variables to set in the container. Cannot be updated.
5523		"env"?: [...#."io.k8s.api.core.v1.EnvVar"]
5524
5525		// List of sources to populate environment variables in the container. The keys
5526		// defined within a source must be a C_IDENTIFIER. All invalid keys will be
5527		// reported as an event when the container is starting. When a key exists in
5528		// multiple sources, the value associated with the last source will take
5529		// precedence. Values defined by an Env with a duplicate key will take
5530		// precedence. Cannot be updated.
5531		"envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
5532
5533		// Container image name. More info:
5534		// https://kubernetes.io/docs/concepts/containers/images This field is optional
5535		// to allow higher level config management to default or override container
5536		// images in workload controllers like Deployments and StatefulSets.
5537		"image"?: string
5538
5539		// Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if
5540		// :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More
5541		// info: https://kubernetes.io/docs/concepts/containers/images#updating-images
5542		"imagePullPolicy"?: string
5543
5544		// Actions that the management system should take in response to container
5545		// lifecycle events. Cannot be updated.
5546		"lifecycle"?: #."io.k8s.api.core.v1.Lifecycle"
5547
5548		// Periodic probe of container liveness. Container will be restarted if the
5549		// probe fails. Cannot be updated. More info:
5550		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5551		"livenessProbe"?: #."io.k8s.api.core.v1.Probe"
5552
5553		// MirrorVolumeMounts will mount the same volumes specified in the main
5554		// container to the container (including artifacts), at the same mountPaths.
5555		// This enables dind daemon to partially see the same filesystem as the main
5556		// container in order to use features such as docker volume binding
5557		"mirrorVolumeMounts"?: bool
5558
5559		// Name of the container specified as a DNS_LABEL. Each container in a pod must
5560		// have a unique name (DNS_LABEL). Cannot be updated.
5561		"name"!: string
5562
5563		// List of ports to expose from the container. Not specifying a port here DOES
5564		// NOT prevent that port from being exposed. Any port which is listening on the
5565		// default "0.0.0.0" address inside a container will be accessible from the
5566		// network. Modifying this array with strategic merge patch may corrupt the
5567		// data. For more information See
5568		// https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.
5569		"ports"?: [...#."io.k8s.api.core.v1.ContainerPort"]
5570
5571		// Periodic probe of container service readiness. Container will be removed from
5572		// service endpoints if the probe fails. Cannot be updated. More info:
5573		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5574		"readinessProbe"?: #."io.k8s.api.core.v1.Probe"
5575
5576		// Resources resize policy for the container.
5577		"resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
5578
5579		// Compute Resources required by this container. Cannot be updated. More info:
5580		// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
5581		"resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
5582
5583		// RestartPolicy defines the restart behavior of individual containers in a pod.
5584		// This field may only be set for init containers, and the only allowed value
5585		// is "Always". For non-init containers or when this field is not specified,
5586		// the restart behavior is defined by the Pod's restart policy and the
5587		// container type. Setting the RestartPolicy as "Always" for the init container
5588		// will have the following effect: this init container will be continually
5589		// restarted on exit until all regular containers have terminated. Once all
5590		// regular containers have completed, all init containers with restartPolicy
5591		// "Always" will be shut down. This lifecycle differs from normal init
5592		// containers and is often referred to as a "sidecar" container. Although this
5593		// init container still starts in the init container sequence, it does not wait
5594		// for the container to complete before proceeding to the next init container.
5595		// Instead, the next init container starts immediately after this init
5596		// container is started, or after any startupProbe has successfully completed.
5597		"restartPolicy"?: string
5598
5599		// SecurityContext defines the security options the container should be run
5600		// with. If set, the fields of SecurityContext override the equivalent fields
5601		// of PodSecurityContext. More info:
5602		// https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
5603		"securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
5604
5605		// StartupProbe indicates that the Pod has successfully initialized. If
5606		// specified, no other probes are executed until this completes successfully.
5607		// If this probe fails, the Pod will be restarted, just as if the livenessProbe
5608		// failed. This can be used to provide different probe parameters at the
5609		// beginning of a Pod's lifecycle, when it might take a long time to load data
5610		// or warm a cache, than during steady-state operation. This cannot be updated.
5611		// More info:
5612		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
5613		"startupProbe"?: #."io.k8s.api.core.v1.Probe"
5614
5615		// Whether this container should allocate a buffer for stdin in the container
5616		// runtime. If this is not set, reads from stdin in the container will always
5617		// result in EOF. Default is false.
5618		"stdin"?: bool
5619
5620		// Whether the container runtime should close the stdin channel after it has
5621		// been opened by a single attach. When stdin is true the stdin stream will
5622		// remain open across multiple attach sessions. If stdinOnce is set to true,
5623		// stdin is opened on container start, is empty until the first client attaches
5624		// to stdin, and then remains open and accepts data until the client
5625		// disconnects, at which time stdin is closed and remains closed until the
5626		// container is restarted. If this flag is false, a container processes that
5627		// reads from stdin will never receive an EOF. Default is false
5628		"stdinOnce"?: bool
5629
5630		// Optional: Path at which the file to which the container's termination message
5631		// will be written is mounted into the container's filesystem. Message written
5632		// is intended to be brief final status, such as an assertion failure message.
5633		// Will be truncated by the node if greater than 4096 bytes. The total message
5634		// length across all containers will be limited to 12kb. Defaults to
5635		// /dev/termination-log. Cannot be updated.
5636		"terminationMessagePath"?: string
5637
5638		// Indicate how the termination message should be populated. File will use the
5639		// contents of terminationMessagePath to populate the container status message
5640		// on both success and failure. FallbackToLogsOnError will use the last chunk
5641		// of container log output if the termination message file is empty and the
5642		// container exited with an error. The log output is limited to 2048 bytes or
5643		// 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
5644		"terminationMessagePolicy"?: string
5645
5646		// Whether this container should allocate a TTY for itself, also requires
5647		// 'stdin' to be true. Default is false.
5648		"tty"?: bool
5649
5650		// volumeDevices is the list of block devices to be used by the container.
5651		"volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"]
5652
5653		// Pod volumes to mount into the container's filesystem. Cannot be updated.
5654		"volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
5655
5656		// Container's working directory. If not specified, the container runtime's
5657		// default will be used, which might be configured in the container image.
5658		// Cannot be updated.
5659		"workingDir"?: string
5660	}
5661
5662	// ValueFrom describes a location in which to obtain the value to a parameter
5663	#: "io.argoproj.workflow.v1alpha1.ValueFrom": {
5664		// ConfigMapKeyRef is configmap selector for input parameter configuration
5665		"configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
5666
5667		// Default specifies a value to be used if retrieving the value from the specified source fails
5668		"default"?: string
5669
5670		// Selector (https://github.com/expr-lang/expr) that is evaluated against the
5671		// event to get the value of the parameter. E.g. `payload.message`
5672		"event"?: string
5673
5674		// Expression, if defined, is evaluated to specify the value for the parameter
5675		"expression"?: string
5676
5677		// JQFilter expression against the resource object in resource templates
5678		"jqFilter"?: string
5679
5680		// JSONPath of a resource to retrieve an output parameter value from in resource templates
5681		"jsonPath"?: string
5682
5683		// Parameter reference to a step or dag task in which to retrieve an output
5684		// parameter value from (e.g. steps.mystep.outputs.myparam)
5685		"parameter"?: string
5686
5687		// Path in the container to retrieve an output parameter value from in container templates
5688		"path"?: string
5689
5690		// Supplied value to be filled in directly, either through the CLI, API, etc.
5691		"supplied"?: #."io.argoproj.workflow.v1alpha1.SuppliedValueFrom"
5692	}
5693
5694	#: "io.argoproj.workflow.v1alpha1.Version": {
5695		"buildDate"!:    string
5696		"compiler"!:     string
5697		"gitCommit"!:    string
5698		"gitTag"!:       string
5699		"gitTreeState"!: string
5700		"goVersion"!:    string
5701		"platform"!:     string
5702		"version"!:      string
5703	}
5704
5705	// VolumeClaimGC describes how to delete volumes from completed Workflows
5706	#: {
5707		"io.argoproj.workflow.v1alpha1.VolumeClaimGC": {
5708			// Strategy is the strategy to use. One of "OnWorkflowCompletion",
5709			// "OnWorkflowSuccess". Defaults to "OnWorkflowSuccess"
5710			"strategy"?: string
5711		}
5712	}
5713
5714	// Workflow is the definition of a workflow resource
5715	#: "io.argoproj.workflow.v1alpha1.Workflow": {
5716		// APIVersion defines the versioned schema of this representation of an object.
5717		// Servers should convert recognized schemas to the latest internal value, and
5718		// may reject unrecognized values. More info:
5719		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
5720		"apiVersion"?: "argoproj.io/v1alpha1"
5721
5722		// Kind is a string value representing the REST resource this object represents.
5723		// Servers may infer this from the endpoint the client submits requests to.
5724		// Cannot be updated. In CamelCase. More info:
5725		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
5726		"kind"?:     "Workflow"
5727		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
5728		"spec"!:     #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
5729		"status"?:   #."io.argoproj.workflow.v1alpha1.WorkflowStatus"
5730	}
5731
5732	#: "io.argoproj.workflow.v1alpha1.WorkflowCreateRequest": {
5733		"createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
5734
5735		// This field is no longer used.
5736		"instanceID"?:   string
5737		"namespace"?:    string
5738		"serverDryRun"?: bool
5739		"workflow"?:     #."io.argoproj.workflow.v1alpha1.Workflow"
5740	}
5741
5742	#: "io.argoproj.workflow.v1alpha1.WorkflowDeleteResponse": {}
5743
5744	// WorkflowEventBinding is the definition of an event resource
5745	#: "io.argoproj.workflow.v1alpha1.WorkflowEventBinding": {
5746		// APIVersion defines the versioned schema of this representation of an object.
5747		// Servers should convert recognized schemas to the latest internal value, and
5748		// may reject unrecognized values. More info:
5749		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
5750		"apiVersion"?: "argoproj.io/v1alpha1"
5751
5752		// Kind is a string value representing the REST resource this object represents.
5753		// Servers may infer this from the endpoint the client submits requests to.
5754		// Cannot be updated. In CamelCase. More info:
5755		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
5756		"kind"?:     "WorkflowEventBinding"
5757		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
5758		"spec"!:     #."io.argoproj.workflow.v1alpha1.WorkflowEventBindingSpec"
5759	}
5760
5761	// WorkflowEventBindingList is list of event resources
5762	#: "io.argoproj.workflow.v1alpha1.WorkflowEventBindingList": {
5763		// APIVersion defines the versioned schema of this representation of an object.
5764		// Servers should convert recognized schemas to the latest internal value, and
5765		// may reject unrecognized values. More info:
5766		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
5767		"apiVersion"?: string
5768		"items"!:      [...#."io.argoproj.workflow.v1alpha1.WorkflowEventBinding"]
5769
5770		// Kind is a string value representing the REST resource this object represents.
5771		// Servers may infer this from the endpoint the client submits requests to.
5772		// Cannot be updated. In CamelCase. More info:
5773		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
5774		"kind"?:     string
5775		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
5776	}
5777
5778	#: "io.argoproj.workflow.v1alpha1.WorkflowEventBindingSpec": {
5779		// Event is the event to bind to
5780		"event"!: #."io.argoproj.workflow.v1alpha1.Event"
5781
5782		// Submit is the workflow template to submit
5783		"submit"?: #."io.argoproj.workflow.v1alpha1.Submit"
5784	}
5785
5786	// WorkflowLevelArtifactGC describes how to delete artifacts from completed
5787	// Workflows - this spec is used on the Workflow level
5788	#: "io.argoproj.workflow.v1alpha1.WorkflowLevelArtifactGC": {
5789		// ForceFinalizerRemoval: if set to true, the finalizer will be removed in the
5790		// case that Artifact GC fails
5791		"forceFinalizerRemoval"?: bool
5792
5793		// PodMetadata is an optional field for specifying the Labels and Annotations
5794		// that should be assigned to the Pod doing the deletion
5795		"podMetadata"?: #."io.argoproj.workflow.v1alpha1.Metadata"
5796
5797		// PodSpecPatch holds strategic merge patch to apply against the artgc pod spec.
5798		"podSpecPatch"?: string
5799
5800		// ServiceAccountName is an optional field for specifying the Service Account
5801		// that should be assigned to the Pod doing the deletion
5802		"serviceAccountName"?: string
5803
5804		// Strategy is the strategy to use.
5805		"strategy"?: string
5806	}
5807
5808	#: "io.argoproj.workflow.v1alpha1.WorkflowLintRequest": {
5809		"namespace"?: string
5810		"workflow"?:  #."io.argoproj.workflow.v1alpha1.Workflow"
5811	}
5812
5813	// WorkflowList is list of Workflow resources
5814	#: "io.argoproj.workflow.v1alpha1.WorkflowList": {
5815		// APIVersion defines the versioned schema of this representation of an object.
5816		// Servers should convert recognized schemas to the latest internal value, and
5817		// may reject unrecognized values. More info:
5818		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
5819		"apiVersion"?: string
5820		"items"!:      [...#."io.argoproj.workflow.v1alpha1.Workflow"]
5821
5822		// Kind is a string value representing the REST resource this object represents.
5823		// Servers may infer this from the endpoint the client submits requests to.
5824		// Cannot be updated. In CamelCase. More info:
5825		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
5826		"kind"?:     string
5827		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
5828	}
5829
5830	#: "io.argoproj.workflow.v1alpha1.WorkflowMetadata": {
5831		"annotations"?: [string]: string
5832		"labels"?: [string]:      string
5833		"labelsFrom"?: [string]:  #."io.argoproj.workflow.v1alpha1.LabelValueFrom"
5834	}
5835
5836	#: "io.argoproj.workflow.v1alpha1.WorkflowResubmitRequest": {
5837		"memoized"?:   bool
5838		"name"?:       string
5839		"namespace"?:  string
5840		"parameters"?: [...string]
5841	}
5842
5843	#: "io.argoproj.workflow.v1alpha1.WorkflowResumeRequest": {
5844		"name"?:              string
5845		"namespace"?:         string
5846		"nodeFieldSelector"?: string
5847	}
5848
5849	#: "io.argoproj.workflow.v1alpha1.WorkflowRetryRequest": {
5850		"name"?:              string
5851		"namespace"?:         string
5852		"nodeFieldSelector"?: string
5853		"parameters"?:        [...string]
5854		"restartSuccessful"?: bool
5855	}
5856
5857	#: "io.argoproj.workflow.v1alpha1.WorkflowSetRequest": {
5858		"message"?:           string
5859		"name"?:              string
5860		"namespace"?:         string
5861		"nodeFieldSelector"?: string
5862		"outputParameters"?:  string
5863		"phase"?:             string
5864	}
5865
5866	// WorkflowSpec is the specification of a Workflow.
5867	#: "io.argoproj.workflow.v1alpha1.WorkflowSpec": {
5868		// Optional duration in seconds relative to the workflow start time which the
5869		// workflow is allowed to run before the controller terminates the
5870		// io.argoproj.workflow.v1alpha1. A value of zero is used to terminate a
5871		// Running workflow
5872		"activeDeadlineSeconds"?: int
5873
5874		// Affinity sets the scheduling constraints for all pods in the
5875		// io.argoproj.workflow.v1alpha1. Can be overridden by an affinity specified in
5876		// the template
5877		"affinity"?: #."io.k8s.api.core.v1.Affinity"
5878
5879		// ArchiveLogs indicates if the container logs should be archived
5880		"archiveLogs"?: bool
5881
5882		// Arguments contain the parameters and artifacts sent to the workflow
5883		// entrypoint Parameters are referencable globally using the 'workflow'
5884		// variable prefix. e.g. io.argoproj.workflow.v1alpha1.parameters.myparam
5885		"arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
5886
5887		// ArtifactGC describes the strategy to use when deleting artifacts from
5888		// completed or deleted workflows (applies to all output Artifacts unless
5889		// Artifact.ArtifactGC is specified, which overrides this)
5890		"artifactGC"?: #."io.argoproj.workflow.v1alpha1.WorkflowLevelArtifactGC"
5891
5892		// ArtifactRepositoryRef specifies the configMap name and key containing the
5893		// artifact repository config.
5894		"artifactRepositoryRef"?: #."io.argoproj.workflow.v1alpha1.ArtifactRepositoryRef"
5895
5896		// AutomountServiceAccountToken indicates whether a service account token should
5897		// be automatically mounted in pods. ServiceAccountName of ExecutorConfig must
5898		// be specified if this value is false.
5899		"automountServiceAccountToken"?: bool
5900
5901		// PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.
5902		"dnsConfig"?: #."io.k8s.api.core.v1.PodDNSConfig"
5903
5904		// Set DNS policy for workflow pods. Defaults to "ClusterFirst". Valid values
5905		// are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS
5906		// parameters given in DNSConfig will be merged with the policy selected with
5907		// DNSPolicy. To have DNS options set along with hostNetwork, you have to
5908		// specify DNS policy explicitly to 'ClusterFirstWithHostNet'.
5909		"dnsPolicy"?: string
5910
5911		// Entrypoint is a template reference to the starting point of the io.argoproj.workflow.v1alpha1.
5912		"entrypoint"?: string
5913
5914		// Executor holds configurations of executor containers of the io.argoproj.workflow.v1alpha1.
5915		"executor"?: #."io.argoproj.workflow.v1alpha1.ExecutorConfig"
5916
5917		// Hooks holds the lifecycle hook which is invoked at lifecycle of step,
5918		// irrespective of the success, failure, or error status of the primary step
5919		"hooks"?: [string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook"
5920		"hostAliases"?: [...#."io.k8s.api.core.v1.HostAlias"]
5921
5922		// Host networking requested for this workflow pod. Default to false.
5923		"hostNetwork"?: bool
5924
5925		// ImagePullSecrets is a list of references to secrets in the same namespace to
5926		// use for pulling any images in pods that reference this ServiceAccount.
5927		// ImagePullSecrets are distinct from Secrets because Secrets can be mounted in
5928		// the pod, but ImagePullSecrets are only accessed by the kubelet. More info:
5929		// https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
5930		"imagePullSecrets"?: [...#."io.k8s.api.core.v1.LocalObjectReference"]
5931
5932		// Metrics are a list of metrics emitted from this Workflow
5933		"metrics"?: #."io.argoproj.workflow.v1alpha1.Metrics"
5934
5935		// NodeSelector is a selector which will result in all pods of the workflow to
5936		// be scheduled on the selected node(s). This is able to be overridden by a
5937		// nodeSelector specified in the template.
5938		"nodeSelector"?: [string]: string
5939
5940		// OnExit is a template reference which is invoked at the end of the workflow,
5941		// irrespective of the success, failure, or error of the primary
5942		// io.argoproj.workflow.v1alpha1.
5943		"onExit"?: string
5944
5945		// Parallelism limits the max total parallel pods that can execute at the same time in a workflow
5946		"parallelism"?: int
5947
5948		// PodDisruptionBudget holds the number of concurrent disruptions that you allow
5949		// for Workflow's Pods. Controller will automatically add the selector with
5950		// workflow name, if selector is empty. Optional: Defaults to empty.
5951		"podDisruptionBudget"?: #."io.k8s.api.policy.v1.PodDisruptionBudgetSpec"
5952
5953		// PodGC describes the strategy to use when deleting completed pods
5954		"podGC"?: #."io.argoproj.workflow.v1alpha1.PodGC"
5955
5956		// PodMetadata defines additional metadata that should be applied to workflow pods
5957		"podMetadata"?: #."io.argoproj.workflow.v1alpha1.Metadata"
5958
5959		// PriorityClassName to apply to workflow pods.
5960		"podPriorityClassName"?: string
5961
5962		// PodSpecPatch holds strategic merge patch to apply against the pod spec.
5963		// Allows parameterization of container fields which are not strings (e.g.
5964		// resource limits).
5965		"podSpecPatch"?: string
5966
5967		// Priority is used if controller is configured to process limited number of
5968		// workflows in parallel. Workflows with higher priority are processed first.
5969		"priority"?: int
5970
5971		// RetryStrategy for all templates in the io.argoproj.workflow.v1alpha1.
5972		"retryStrategy"?: #."io.argoproj.workflow.v1alpha1.RetryStrategy"
5973
5974		// Set scheduler name for all pods. Will be overridden if container/script
5975		// template's scheduler name is set. Default scheduler will be used if neither
5976		// specified.
5977		"schedulerName"?: string
5978
5979		// SecurityContext holds pod-level security attributes and common container
5980		// settings. Optional: Defaults to empty. See type description for default
5981		// values of each field.
5982		"securityContext"?: #."io.k8s.api.core.v1.PodSecurityContext"
5983
5984		// ServiceAccountName is the name of the ServiceAccount to run all pods of the workflow as.
5985		"serviceAccountName"?: string
5986
5987		// Shutdown will shutdown the workflow according to its ShutdownStrategy
5988		"shutdown"?: string
5989
5990		// Suspend will suspend the workflow and prevent execution of any future steps in the workflow
5991		"suspend"?: bool
5992
5993		// Synchronization holds synchronization lock configuration for this Workflow
5994		"synchronization"?: #."io.argoproj.workflow.v1alpha1.Synchronization"
5995
5996		// TemplateDefaults holds default template values that will apply to all
5997		// templates in the Workflow, unless overridden on the template-level
5998		"templateDefaults"?: #."io.argoproj.workflow.v1alpha1.Template"
5999
6000		// Templates is a list of workflow templates used in a workflow MaxItems is an
6001		// artificial limit to limit CEL validation costs - see note at top of file
6002		"templates"?: [...#."io.argoproj.workflow.v1alpha1.Template"]
6003
6004		// Tolerations to apply to workflow pods.
6005		"tolerations"?: [...#."io.k8s.api.core.v1.Toleration"]
6006
6007		// TTLStrategy limits the lifetime of a Workflow that has finished execution
6008		// depending on if it Succeeded or Failed. If this struct is set, once the
6009		// Workflow finishes, it will be deleted after the time to live expires. If
6010		// this field is unset, the controller config map will hold the default values.
6011		"ttlStrategy"?: #."io.argoproj.workflow.v1alpha1.TTLStrategy"
6012
6013		// VolumeClaimGC describes the strategy to use when deleting volumes from completed workflows
6014		"volumeClaimGC"?: #."io.argoproj.workflow.v1alpha1.VolumeClaimGC"
6015
6016		// VolumeClaimTemplates is a list of claims that containers are allowed to
6017		// reference. The Workflow controller will create the claims at the beginning
6018		// of the workflow and delete the claims upon completion of the workflow
6019		"volumeClaimTemplates"?: [...#."io.k8s.api.core.v1.PersistentVolumeClaim"]
6020
6021		// Volumes is a list of volumes that can be mounted by containers in a
6022		// io.argoproj.workflow.v1alpha1.
6023		"volumes"?: [...#."io.k8s.api.core.v1.Volume"]
6024
6025		// WorkflowMetadata contains some metadata of the workflow to refer to
6026		"workflowMetadata"?: #."io.argoproj.workflow.v1alpha1.WorkflowMetadata"
6027
6028		// WorkflowTemplateRef holds a reference to a WorkflowTemplate for execution
6029		"workflowTemplateRef"?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplateRef"
6030	}
6031
6032	// WorkflowStatus contains overall status information about a workflow
6033	#: "io.argoproj.workflow.v1alpha1.WorkflowStatus": {
6034		// ArtifactGCStatus maintains the status of Artifact Garbage Collection
6035		"artifactGCStatus"?: #."io.argoproj.workflow.v1alpha1.ArtGCStatus"
6036
6037		// ArtifactRepositoryRef is used to cache the repository to use so we do not
6038		// need to determine it everytime we reconcile.
6039		"artifactRepositoryRef"?: #."io.argoproj.workflow.v1alpha1.ArtifactRepositoryRefStatus"
6040
6041		// Compressed and base64 decoded Nodes map
6042		"compressedNodes"?: string
6043
6044		// Conditions is a list of conditions the Workflow may have
6045		"conditions"?: [...#."io.argoproj.workflow.v1alpha1.Condition"]
6046
6047		// EstimatedDuration in seconds.
6048		"estimatedDuration"?: int
6049
6050		// Time at which this workflow completed
6051		"finishedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
6052
6053		// A human readable message indicating details about why the workflow is in this condition.
6054		"message"?: string
6055
6056		// Nodes is a mapping between a node ID and the node's status.
6057		"nodes"?: [string]: #."io.argoproj.workflow.v1alpha1.NodeStatus"
6058
6059		// Whether on not node status has been offloaded to a database. If exists, then
6060		// Nodes and CompressedNodes will be empty. This will actually be populated
6061		// with a hash of the offloaded data.
6062		"offloadNodeStatusVersion"?: string
6063
6064		// Outputs captures output values and artifact locations produced by the workflow via global outputs
6065		"outputs"?: #."io.argoproj.workflow.v1alpha1.Outputs"
6066
6067		// PersistentVolumeClaims tracks all PVCs that were created as part of the
6068		// io.argoproj.workflow.v1alpha1. The contents of this list are drained at the
6069		// end of the workflow.
6070		"persistentVolumeClaims"?: [...#."io.k8s.api.core.v1.Volume"]
6071
6072		// Phase a simple, high-level summary of where the workflow is in its lifecycle.
6073		// Will be "" (Unknown), "Pending", or "Running" before the workflow is
6074		// completed, and "Succeeded", "Failed" or "Error" once the workflow has
6075		// completed.
6076		"phase"?: string
6077
6078		// Progress to completion
6079		"progress"?: string
6080
6081		// ResourcesDuration is the total for the workflow
6082		"resourcesDuration"?: [string]: int
6083
6084		// Time at which this workflow started
6085		"startedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
6086
6087		// StoredTemplates is a mapping between a template ref and the node's status.
6088		"storedTemplates"?: [string]: #."io.argoproj.workflow.v1alpha1.Template"
6089
6090		// StoredWorkflowSpec stores the WorkflowTemplate spec for future execution.
6091		"storedWorkflowTemplateSpec"?: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
6092
6093		// Synchronization stores the status of synchronization locks
6094		"synchronization"?: #."io.argoproj.workflow.v1alpha1.SynchronizationStatus"
6095
6096		// TaskResultsCompletionStatus tracks task result completion status (mapped by
6097		// node ID). Used to prevent premature archiving and garbage collection.
6098		"taskResultsCompletionStatus"?: [string]: bool
6099	}
6100
6101	// WorkflowStep is a reference to a template to execute in a series of step
6102	// Note: CEL validation cannot check withItems (Schemaless) or inline
6103	// (PreserveUnknownFields) fields.
6104	#: "io.argoproj.workflow.v1alpha1.WorkflowStep": {
6105		// Arguments hold arguments to the template
6106		"arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
6107
6108		// ContinueOn makes argo to proceed with the following step even if this step
6109		// fails. Errors and Failed states can be specified
6110		"continueOn"?: #."io.argoproj.workflow.v1alpha1.ContinueOn"
6111
6112		// Hooks holds the lifecycle hook which is invoked at lifecycle of step,
6113		// irrespective of the success, failure, or error status of the primary step
6114		"hooks"?: [string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook"
6115
6116		// Inline is the template. Template must be empty if this is declared (and
6117		// vice-versa). Note: This struct is defined recursively, since the inline
6118		// template can potentially contain steps/DAGs that also has an "inline" field.
6119		// Kubernetes doesn't allow recursive types, so we need
6120		// "x-kubernetes-preserve-unknown-fields: true" in the validation schema.
6121		"inline"?: #."io.argoproj.workflow.v1alpha1.Template"
6122
6123		// Name of the step
6124		"name"?: string
6125
6126		// OnExit is a template reference which is invoked at the end of the template,
6127		// irrespective of the success, failure, or error of the primary template.
6128		// DEPRECATED: Use Hooks[exit].Template instead.
6129		"onExit"?: string
6130
6131		// Template is the name of the template to execute as the step
6132		"template"?: string
6133
6134		// TemplateRef is the reference to the template resource to execute as the step.
6135		"templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
6136
6137		// When is an expression in which the step should conditionally execute
6138		"when"?: string
6139
6140		// WithItems expands a step into multiple parallel steps from the items in the
6141		// list Note: The structure of WithItems is free-form, so we need
6142		// "x-kubernetes-preserve-unknown-fields: true" in the validation schema.
6143		"withItems"?: [...#."io.argoproj.workflow.v1alpha1.Item"]
6144
6145		// WithParam expands a step into multiple parallel steps from the value in the
6146		// parameter, which is expected to be a JSON list.
6147		"withParam"?: string
6148
6149		// WithSequence expands a step into a numeric sequence
6150		"withSequence"?: #."io.argoproj.workflow.v1alpha1.Sequence"
6151	}
6152
6153	#: "io.argoproj.workflow.v1alpha1.WorkflowStopRequest": {
6154		"message"?:           string
6155		"name"?:              string
6156		"namespace"?:         string
6157		"nodeFieldSelector"?: string
6158	}
6159
6160	#: "io.argoproj.workflow.v1alpha1.WorkflowSubmitRequest": {
6161		"namespace"?:     string
6162		"resourceKind"?:  string
6163		"resourceName"?:  string
6164		"submitOptions"?: #."io.argoproj.workflow.v1alpha1.SubmitOpts"
6165	}
6166
6167	#: "io.argoproj.workflow.v1alpha1.WorkflowSuspendRequest": {
6168		"name"?:      string
6169		"namespace"?: string
6170	}
6171
6172	// WorkflowTemplate is the definition of a workflow template resource
6173	#: "io.argoproj.workflow.v1alpha1.WorkflowTemplate": {
6174		// APIVersion defines the versioned schema of this representation of an object.
6175		// Servers should convert recognized schemas to the latest internal value, and
6176		// may reject unrecognized values. More info:
6177		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
6178		"apiVersion"?: "argoproj.io/v1alpha1"
6179
6180		// Kind is a string value representing the REST resource this object represents.
6181		// Servers may infer this from the endpoint the client submits requests to.
6182		// Cannot be updated. In CamelCase. More info:
6183		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
6184		"kind"?:     "WorkflowTemplate"
6185		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
6186		"spec"!:     #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
6187	}
6188
6189	#: "io.argoproj.workflow.v1alpha1.WorkflowTemplateCreateRequest": {
6190		"createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
6191		"namespace"?:     string
6192		"template"?:      #."io.argoproj.workflow.v1alpha1.WorkflowTemplate"
6193	}
6194
6195	#: "io.argoproj.workflow.v1alpha1.WorkflowTemplateDeleteResponse": {}
6196
6197	#: "io.argoproj.workflow.v1alpha1.WorkflowTemplateLintRequest": {
6198		"createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
6199		"namespace"?:     string
6200		"template"?:      #."io.argoproj.workflow.v1alpha1.WorkflowTemplate"
6201	}
6202
6203	// WorkflowTemplateList is list of WorkflowTemplate resources
6204	#: "io.argoproj.workflow.v1alpha1.WorkflowTemplateList": {
6205		// APIVersion defines the versioned schema of this representation of an object.
6206		// Servers should convert recognized schemas to the latest internal value, and
6207		// may reject unrecognized values. More info:
6208		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
6209		"apiVersion"?: string
6210		"items"!:      [...#."io.argoproj.workflow.v1alpha1.WorkflowTemplate"]
6211
6212		// Kind is a string value representing the REST resource this object represents.
6213		// Servers may infer this from the endpoint the client submits requests to.
6214		// Cannot be updated. In CamelCase. More info:
6215		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
6216		"kind"?:     string
6217		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
6218	}
6219
6220	// WorkflowTemplateRef is a reference to a WorkflowTemplate resource.
6221	#: "io.argoproj.workflow.v1alpha1.WorkflowTemplateRef": {
6222		// ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
6223		"clusterScope"?: bool
6224
6225		// Name is the resource name of the workflow template.
6226		"name"?: string
6227	}
6228
6229	#: "io.argoproj.workflow.v1alpha1.WorkflowTemplateUpdateRequest": {
6230		// DEPRECATED: This field is ignored.
6231		"name"?:      string
6232		"namespace"?: string
6233		"template"?:  #."io.argoproj.workflow.v1alpha1.WorkflowTemplate"
6234	}
6235
6236	#: "io.argoproj.workflow.v1alpha1.WorkflowTerminateRequest": {
6237		"name"?:      string
6238		"namespace"?: string
6239	}
6240
6241	#: "io.argoproj.workflow.v1alpha1.WorkflowWatchEvent": {
6242		// the workflow
6243		"object"?: #."io.argoproj.workflow.v1alpha1.Workflow"
6244
6245		// the type of change
6246		"type"?: string
6247	}
6248
6249	// ZipStrategy will unzip zipped input artifacts
6250	#: "io.argoproj.workflow.v1alpha1.ZipStrategy": {}
6251
6252	// Represents a Persistent Disk resource in AWS.
6253	//
6254	// An AWS EBS disk must exist before mounting to a container. The disk must also
6255	// be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted
6256	// as read/write once. AWS EBS volumes support ownership management and SELinux
6257	// relabeling.
6258	#: "io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource": {
6259		// fsType is the filesystem type of the volume that you want to mount. Tip:
6260		// Ensure that the filesystem type is supported by the host operating system.
6261		// Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
6262		// unspecified. More info:
6263		// https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
6264		"fsType"?: string
6265
6266		// partition is the partition in the volume that you want to mount. If omitted,
6267		// the default is to mount by volume name. Examples: For volume /dev/sda1, you
6268		// specify the partition as "1". Similarly, the volume partition for /dev/sda
6269		// is "0" (or you can leave the property empty).
6270		"partition"?: int
6271
6272		// readOnly value true will force the readOnly setting in VolumeMounts. More
6273		// info:
6274		// https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
6275		"readOnly"?: bool
6276
6277		// volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS
6278		// volume). More info:
6279		// https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
6280		"volumeID"!: string
6281	}
6282
6283	// Affinity is a group of affinity scheduling rules.
6284	#: "io.k8s.api.core.v1.Affinity": {
6285		// Describes node affinity scheduling rules for the pod.
6286		"nodeAffinity"?: #."io.k8s.api.core.v1.NodeAffinity"
6287
6288		// Describes pod affinity scheduling rules (e.g. co-locate this pod in the same
6289		// node, zone, etc. as some other pod(s)).
6290		"podAffinity"?: #."io.k8s.api.core.v1.PodAffinity"
6291
6292		// Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in
6293		// the same node, zone, etc. as some other pod(s)).
6294		"podAntiAffinity"?: #."io.k8s.api.core.v1.PodAntiAffinity"
6295	}
6296
6297	// AppArmorProfile defines a pod or container's AppArmor settings.
6298	#: "io.k8s.api.core.v1.AppArmorProfile": {
6299		// localhostProfile indicates a profile loaded on the node that should be used.
6300		// The profile must be preconfigured on the node to work. Must match the loaded
6301		// name of the profile. Must be set if and only if type is "Localhost".
6302		"localhostProfile"?: string
6303
6304		// type indicates which kind of AppArmor profile will be applied. Valid options are:
6305		// Localhost - a profile pre-loaded on the node.
6306		// RuntimeDefault - the container runtime's default profile.
6307		// Unconfined - no AppArmor enforcement.
6308		"type"!: string
6309	}
6310
6311	// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
6312	#: "io.k8s.api.core.v1.AzureDiskVolumeSource": {
6313		// cachingMode is the Host Caching mode: None, Read Only, Read Write.
6314		"cachingMode"?: string
6315
6316		// diskName is the Name of the data disk in the blob storage
6317		"diskName"!: string
6318
6319		// diskURI is the URI of data disk in the blob storage
6320		"diskURI"!: string
6321
6322		// fsType is Filesystem type to mount. Must be a filesystem type supported by
6323		// the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to
6324		// be "ext4" if unspecified.
6325		"fsType"?: string
6326
6327		// kind expected values are Shared: multiple blob disks per storage account
6328		// Dedicated: single blob disk per storage account Managed: azure managed data
6329		// disk (only in managed availability set). defaults to shared
6330		"kind"?: string
6331
6332		// readOnly Defaults to false (read/write). ReadOnly here will force the
6333		// ReadOnly setting in VolumeMounts.
6334		"readOnly"?: bool
6335	}
6336
6337	// AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
6338	#: "io.k8s.api.core.v1.AzureFileVolumeSource": {
6339		// readOnly defaults to false (read/write). ReadOnly here will force the
6340		// ReadOnly setting in VolumeMounts.
6341		"readOnly"?: bool
6342
6343		// secretName is the name of secret that contains Azure Storage Account Name and Key
6344		"secretName"!: string
6345
6346		// shareName is the azure share Name
6347		"shareName"!: string
6348	}
6349
6350	// Represents a source location of a volume to mount, managed by an external CSI driver
6351	#: "io.k8s.api.core.v1.CSIVolumeSource": {
6352		// driver is the name of the CSI driver that handles this volume. Consult with
6353		// your admin for the correct name as registered in the cluster.
6354		"driver"!: string
6355
6356		// fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value
6357		// is passed to the associated CSI driver which will determine the default
6358		// filesystem to apply.
6359		"fsType"?: string
6360
6361		// nodePublishSecretRef is a reference to the secret object containing sensitive
6362		// information to pass to the CSI driver to complete the CSI NodePublishVolume
6363		// and NodeUnpublishVolume calls. This field is optional, and may be empty if
6364		// no secret is required. If the secret object contains more than one secret,
6365		// all secret references are passed.
6366		"nodePublishSecretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
6367
6368		// readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).
6369		"readOnly"?: bool
6370
6371		// volumeAttributes stores driver-specific properties that are passed to the CSI
6372		// driver. Consult your driver's documentation for supported values.
6373		"volumeAttributes"?: [string]: string
6374	}
6375
6376	// Adds and removes POSIX capabilities from running containers.
6377	#: "io.k8s.api.core.v1.Capabilities": {
6378		// Added capabilities
6379		"add"?: [...string]
6380
6381		// Removed capabilities
6382		"drop"?: [...string]
6383	}
6384
6385	// Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs
6386	// volumes do not support ownership management or SELinux relabeling.
6387	#: "io.k8s.api.core.v1.CephFSVolumeSource": {
6388		// monitors is Required: Monitors is a collection of Ceph monitors More info:
6389		// https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
6390		"monitors"!: [...string]
6391
6392		// path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /
6393		"path"?: string
6394
6395		// readOnly is Optional: Defaults to false (read/write). ReadOnly here will
6396		// force the ReadOnly setting in VolumeMounts. More info:
6397		// https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
6398		"readOnly"?: bool
6399
6400		// secretFile is Optional: SecretFile is the path to key ring for User, default
6401		// is /etc/ceph/user.secret More info:
6402		// https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
6403		"secretFile"?: string
6404
6405		// secretRef is Optional: SecretRef is reference to the authentication secret
6406		// for User, default is empty. More info:
6407		// https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
6408		"secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
6409
6410		// user is optional: User is the rados user name, default is admin More info:
6411		// https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
6412		"user"?: string
6413	}
6414
6415	// Represents a cinder volume resource in Openstack. A Cinder volume must exist
6416	// before mounting to a container. The volume must also be in the same region
6417	// as the kubelet. Cinder volumes support ownership management and SELinux
6418	// relabeling.
6419	#: "io.k8s.api.core.v1.CinderVolumeSource": {
6420		// fsType is the filesystem type to mount. Must be a filesystem type supported
6421		// by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly
6422		// inferred to be "ext4" if unspecified. More info:
6423		// https://examples.k8s.io/mysql-cinder-pd/README.md
6424		"fsType"?: string
6425
6426		// readOnly defaults to false (read/write). ReadOnly here will force the
6427		// ReadOnly setting in VolumeMounts. More info:
6428		// https://examples.k8s.io/mysql-cinder-pd/README.md
6429		"readOnly"?: bool
6430
6431		// secretRef is optional: points to a secret object containing parameters used
6432		// to connect to OpenStack.
6433		"secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
6434
6435		// volumeID used to identify the volume in cinder. More info:
6436		// https://examples.k8s.io/mysql-cinder-pd/README.md
6437		"volumeID"!: string
6438	}
6439
6440	// ClusterTrustBundleProjection describes how to select a set of
6441	// ClusterTrustBundle objects and project their contents into the pod
6442	// filesystem.
6443	#: "io.k8s.api.core.v1.ClusterTrustBundleProjection": {
6444		// Select all ClusterTrustBundles that match this label selector. Only has
6445		// effect if signerName is set. Mutually-exclusive with name. If unset,
6446		// interpreted as "match nothing". If set but empty, interpreted as "match
6447		// everything".
6448		"labelSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
6449
6450		// Select a single ClusterTrustBundle by object name. Mutually-exclusive with
6451		// signerName and labelSelector.
6452		"name"?: string
6453
6454		// If true, don't block pod startup if the referenced ClusterTrustBundle(s)
6455		// aren't available. If using name, then the named ClusterTrustBundle is
6456		// allowed not to exist. If using signerName, then the combination of
6457		// signerName and labelSelector is allowed to match zero ClusterTrustBundles.
6458		"optional"?: bool
6459
6460		// Relative path from the volume root to write the bundle.
6461		"path"!: string
6462
6463		// Select all ClusterTrustBundles that match this signer name.
6464		// Mutually-exclusive with name. The contents of all selected
6465		// ClusterTrustBundles will be unified and deduplicated.
6466		"signerName"?: string
6467	}
6468
6469	// ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.
6470	//
6471	// The contents of the target ConfigMap's Data field will represent the
6472	// key-value pairs as environment variables.
6473	#: "io.k8s.api.core.v1.ConfigMapEnvSource": {
6474		// Name of the referent. This field is effectively required, but due to
6475		// backwards compatibility is allowed to be empty. Instances of this type with
6476		// an empty value here are almost certainly wrong. More info:
6477		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6478		"name"?: string
6479
6480		// Specify whether the ConfigMap must be defined
6481		"optional"?: bool
6482	}
6483
6484	// Selects a key from a ConfigMap.
6485	#: "io.k8s.api.core.v1.ConfigMapKeySelector": {
6486		// The key to select.
6487		"key"!: string
6488
6489		// Name of the referent. This field is effectively required, but due to
6490		// backwards compatibility is allowed to be empty. Instances of this type with
6491		// an empty value here are almost certainly wrong. More info:
6492		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6493		"name"?: string
6494
6495		// Specify whether the ConfigMap or its key must be defined
6496		"optional"?: bool
6497	}
6498
6499	// Adapts a ConfigMap into a projected volume.
6500	//
6501	// The contents of the target ConfigMap's Data field will be presented in a
6502	// projected volume as files using the keys in the Data field as the file
6503	// names, unless the items element is populated with specific mappings of keys
6504	// to paths. Note that this is identical to a configmap volume source without
6505	// the default mode.
6506	#: "io.k8s.api.core.v1.ConfigMapProjection": {
6507		// items if unspecified, each key-value pair in the Data field of the referenced
6508		// ConfigMap will be projected into the volume as a file whose name is the key
6509		// and content is the value. If specified, the listed keys will be projected
6510		// into the specified paths, and unlisted keys will not be present. If a key is
6511		// specified which is not present in the ConfigMap, the volume setup will error
6512		// unless it is marked optional. Paths must be relative and may not contain the
6513		// '..' path or start with '..'.
6514		"items"?: [...#."io.k8s.api.core.v1.KeyToPath"]
6515
6516		// Name of the referent. This field is effectively required, but due to
6517		// backwards compatibility is allowed to be empty. Instances of this type with
6518		// an empty value here are almost certainly wrong. More info:
6519		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6520		"name"?: string
6521
6522		// optional specify whether the ConfigMap or its keys must be defined
6523		"optional"?: bool
6524	}
6525
6526	// Adapts a ConfigMap into a volume.
6527	//
6528	// The contents of the target ConfigMap's Data field will be presented in a
6529	// volume as files using the keys in the Data field as the file names, unless
6530	// the items element is populated with specific mappings of keys to paths.
6531	// ConfigMap volumes support ownership management and SELinux relabeling.
6532	#: "io.k8s.api.core.v1.ConfigMapVolumeSource": {
6533		// defaultMode is optional: mode bits used to set permissions on created files
6534		// by default. Must be an octal value between 0000 and 0777 or a decimal value
6535		// between 0 and 511. YAML accepts both octal and decimal values, JSON requires
6536		// decimal values for mode bits. Defaults to 0644. Directories within the path
6537		// are not affected by this setting. This might be in conflict with other
6538		// options that affect the file mode, like fsGroup, and the result can be other
6539		// mode bits set.
6540		"defaultMode"?: int
6541
6542		// items if unspecified, each key-value pair in the Data field of the referenced
6543		// ConfigMap will be projected into the volume as a file whose name is the key
6544		// and content is the value. If specified, the listed keys will be projected
6545		// into the specified paths, and unlisted keys will not be present. If a key is
6546		// specified which is not present in the ConfigMap, the volume setup will error
6547		// unless it is marked optional. Paths must be relative and may not contain the
6548		// '..' path or start with '..'.
6549		"items"?: [...#."io.k8s.api.core.v1.KeyToPath"]
6550
6551		// Name of the referent. This field is effectively required, but due to
6552		// backwards compatibility is allowed to be empty. Instances of this type with
6553		// an empty value here are almost certainly wrong. More info:
6554		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6555		"name"?: string
6556
6557		// optional specify whether the ConfigMap or its keys must be defined
6558		"optional"?: bool
6559	}
6560
6561	// A single application container that you want to run within a pod.
6562	#: "io.k8s.api.core.v1.Container": {
6563		// Arguments to the entrypoint. The container image's CMD is used if this is not
6564		// provided. Variable references $(VAR_NAME) are expanded using the container's
6565		// environment. If a variable cannot be resolved, the reference in the input
6566		// string will be unchanged. Double $$ are reduced to a single $, which allows
6567		// for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
6568		// string literal "$(VAR_NAME)". Escaped references will never be expanded,
6569		// regardless of whether the variable exists or not. Cannot be updated. More
6570		// info:
6571		// https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
6572		"args"?: [...string]
6573
6574		// Entrypoint array. Not executed within a shell. The container image's
6575		// ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME)
6576		// are expanded using the container's environment. If a variable cannot be
6577		// resolved, the reference in the input string will be unchanged. Double $$ are
6578		// reduced to a single $, which allows for escaping the $(VAR_NAME) syntax:
6579		// i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped
6580		// references will never be expanded, regardless of whether the variable exists
6581		// or not. Cannot be updated. More info:
6582		// https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
6583		"command"?: [...string]
6584
6585		// List of environment variables to set in the container. Cannot be updated.
6586		"env"?: [...#."io.k8s.api.core.v1.EnvVar"]
6587
6588		// List of sources to populate environment variables in the container. The keys
6589		// defined within a source must be a C_IDENTIFIER. All invalid keys will be
6590		// reported as an event when the container is starting. When a key exists in
6591		// multiple sources, the value associated with the last source will take
6592		// precedence. Values defined by an Env with a duplicate key will take
6593		// precedence. Cannot be updated.
6594		"envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
6595
6596		// Container image name. More info:
6597		// https://kubernetes.io/docs/concepts/containers/images This field is optional
6598		// to allow higher level config management to default or override container
6599		// images in workload controllers like Deployments and StatefulSets.
6600		"image"!: string
6601
6602		// Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if
6603		// :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More
6604		// info: https://kubernetes.io/docs/concepts/containers/images#updating-images
6605		"imagePullPolicy"?: string
6606
6607		// Actions that the management system should take in response to container
6608		// lifecycle events. Cannot be updated.
6609		"lifecycle"?: #."io.k8s.api.core.v1.Lifecycle"
6610
6611		// Periodic probe of container liveness. Container will be restarted if the
6612		// probe fails. Cannot be updated. More info:
6613		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
6614		"livenessProbe"?: #."io.k8s.api.core.v1.Probe"
6615
6616		// Name of the container specified as a DNS_LABEL. Each container in a pod must
6617		// have a unique name (DNS_LABEL). Cannot be updated.
6618		"name"?: string
6619
6620		// List of ports to expose from the container. Not specifying a port here DOES
6621		// NOT prevent that port from being exposed. Any port which is listening on the
6622		// default "0.0.0.0" address inside a container will be accessible from the
6623		// network. Modifying this array with strategic merge patch may corrupt the
6624		// data. For more information See
6625		// https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.
6626		"ports"?: [...#."io.k8s.api.core.v1.ContainerPort"]
6627
6628		// Periodic probe of container service readiness. Container will be removed from
6629		// service endpoints if the probe fails. Cannot be updated. More info:
6630		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
6631		"readinessProbe"?: #."io.k8s.api.core.v1.Probe"
6632
6633		// Resources resize policy for the container.
6634		"resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
6635
6636		// Compute Resources required by this container. Cannot be updated. More info:
6637		// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
6638		"resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
6639
6640		// RestartPolicy defines the restart behavior of individual containers in a pod.
6641		// This field may only be set for init containers, and the only allowed value
6642		// is "Always". For non-init containers or when this field is not specified,
6643		// the restart behavior is defined by the Pod's restart policy and the
6644		// container type. Setting the RestartPolicy as "Always" for the init container
6645		// will have the following effect: this init container will be continually
6646		// restarted on exit until all regular containers have terminated. Once all
6647		// regular containers have completed, all init containers with restartPolicy
6648		// "Always" will be shut down. This lifecycle differs from normal init
6649		// containers and is often referred to as a "sidecar" container. Although this
6650		// init container still starts in the init container sequence, it does not wait
6651		// for the container to complete before proceeding to the next init container.
6652		// Instead, the next init container starts immediately after this init
6653		// container is started, or after any startupProbe has successfully completed.
6654		"restartPolicy"?: string
6655
6656		// SecurityContext defines the security options the container should be run
6657		// with. If set, the fields of SecurityContext override the equivalent fields
6658		// of PodSecurityContext. More info:
6659		// https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
6660		"securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
6661
6662		// StartupProbe indicates that the Pod has successfully initialized. If
6663		// specified, no other probes are executed until this completes successfully.
6664		// If this probe fails, the Pod will be restarted, just as if the livenessProbe
6665		// failed. This can be used to provide different probe parameters at the
6666		// beginning of a Pod's lifecycle, when it might take a long time to load data
6667		// or warm a cache, than during steady-state operation. This cannot be updated.
6668		// More info:
6669		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
6670		"startupProbe"?: #."io.k8s.api.core.v1.Probe"
6671
6672		// Whether this container should allocate a buffer for stdin in the container
6673		// runtime. If this is not set, reads from stdin in the container will always
6674		// result in EOF. Default is false.
6675		"stdin"?: bool
6676
6677		// Whether the container runtime should close the stdin channel after it has
6678		// been opened by a single attach. When stdin is true the stdin stream will
6679		// remain open across multiple attach sessions. If stdinOnce is set to true,
6680		// stdin is opened on container start, is empty until the first client attaches
6681		// to stdin, and then remains open and accepts data until the client
6682		// disconnects, at which time stdin is closed and remains closed until the
6683		// container is restarted. If this flag is false, a container processes that
6684		// reads from stdin will never receive an EOF. Default is false
6685		"stdinOnce"?: bool
6686
6687		// Optional: Path at which the file to which the container's termination message
6688		// will be written is mounted into the container's filesystem. Message written
6689		// is intended to be brief final status, such as an assertion failure message.
6690		// Will be truncated by the node if greater than 4096 bytes. The total message
6691		// length across all containers will be limited to 12kb. Defaults to
6692		// /dev/termination-log. Cannot be updated.
6693		"terminationMessagePath"?: string
6694
6695		// Indicate how the termination message should be populated. File will use the
6696		// contents of terminationMessagePath to populate the container status message
6697		// on both success and failure. FallbackToLogsOnError will use the last chunk
6698		// of container log output if the termination message file is empty and the
6699		// container exited with an error. The log output is limited to 2048 bytes or
6700		// 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
6701		"terminationMessagePolicy"?: string
6702
6703		// Whether this container should allocate a TTY for itself, also requires
6704		// 'stdin' to be true. Default is false.
6705		"tty"?: bool
6706
6707		// volumeDevices is the list of block devices to be used by the container.
6708		"volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"]
6709
6710		// Pod volumes to mount into the container's filesystem. Cannot be updated.
6711		"volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
6712
6713		// Container's working directory. If not specified, the container runtime's
6714		// default will be used, which might be configured in the container image.
6715		// Cannot be updated.
6716		"workingDir"?: string
6717	}
6718
6719	// ContainerPort represents a network port in a single container.
6720	#: "io.k8s.api.core.v1.ContainerPort": {
6721		// Number of port to expose on the pod's IP address. This must be a valid port
6722		// number, 0 < x < 65536.
6723		"containerPort"!: int
6724
6725		// What host IP to bind the external port to.
6726		"hostIP"?: string
6727
6728		// Number of port to expose on the host. If specified, this must be a valid port
6729		// number, 0 < x < 65536. If HostNetwork is specified, this must match
6730		// ContainerPort. Most containers do not need this.
6731		"hostPort"?: int
6732
6733		// If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
6734		// named port in a pod must have a unique name. Name for the port that can be
6735		// referred to by services.
6736		"name"?: string
6737
6738		// Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP".
6739		"protocol"?: string
6740	}
6741
6742	// ContainerResizePolicy represents resource resize policy for the container.
6743	#: "io.k8s.api.core.v1.ContainerResizePolicy": {
6744		// Name of the resource to which this resource resize policy applies. Supported values: cpu, memory.
6745		"resourceName"!: string
6746
6747		// Restart policy to apply when specified resource is resized. If not specified,
6748		// it defaults to NotRequired.
6749		"restartPolicy"!: string
6750	}
6751
6752	// Represents downward API info for projecting into a projected volume. Note
6753	// that this is identical to a downwardAPI volume source without the default
6754	// mode.
6755	#: {
6756		"io.k8s.api.core.v1.DownwardAPIProjection": {
6757			// Items is a list of DownwardAPIVolume file
6758			"items"?: [...#."io.k8s.api.core.v1.DownwardAPIVolumeFile"]
6759		}
6760	}
6761
6762	// DownwardAPIVolumeFile represents information to create the file containing the pod field
6763	#: "io.k8s.api.core.v1.DownwardAPIVolumeFile": {
6764		// Required: Selects a field of the pod: only annotations, labels, name,
6765		// namespace and uid are supported.
6766		"fieldRef"?: #."io.k8s.api.core.v1.ObjectFieldSelector"
6767
6768		// Optional: mode bits used to set permissions on this file, must be an octal
6769		// value between 0000 and 0777 or a decimal value between 0 and 511. YAML
6770		// accepts both octal and decimal values, JSON requires decimal values for mode
6771		// bits. If not specified, the volume defaultMode will be used. This might be
6772		// in conflict with other options that affect the file mode, like fsGroup, and
6773		// the result can be other mode bits set.
6774		"mode"?: int
6775
6776		// Required: Path is the relative path name of the file to be created. Must not
6777		// be absolute or contain the '..' path. Must be utf-8 encoded. The first item
6778		// of the relative path must not start with '..'
6779		"path"!: string
6780
6781		// Selects a resource of the container: only resources limits and requests
6782		// (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently
6783		// supported.
6784		"resourceFieldRef"?: #."io.k8s.api.core.v1.ResourceFieldSelector"
6785	}
6786
6787	// DownwardAPIVolumeSource represents a volume containing downward API info.
6788	// Downward API volumes support ownership management and SELinux relabeling.
6789	#: "io.k8s.api.core.v1.DownwardAPIVolumeSource": {
6790		// Optional: mode bits to use on created files by default. Must be a Optional:
6791		// mode bits used to set permissions on created files by default. Must be an
6792		// octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML
6793		// accepts both octal and decimal values, JSON requires decimal values for mode
6794		// bits. Defaults to 0644. Directories within the path are not affected by this
6795		// setting. This might be in conflict with other options that affect the file
6796		// mode, like fsGroup, and the result can be other mode bits set.
6797		"defaultMode"?: int
6798
6799		// Items is a list of downward API volume file
6800		"items"?: [...#."io.k8s.api.core.v1.DownwardAPIVolumeFile"]
6801	}
6802
6803	// Represents an empty directory for a pod. Empty directory volumes support
6804	// ownership management and SELinux relabeling.
6805	#: "io.k8s.api.core.v1.EmptyDirVolumeSource": {
6806		// medium represents what type of storage medium should back this directory. The
6807		// default is "" which means to use the node's default medium. Must be an empty
6808		// string (default) or Memory. More info:
6809		// https://kubernetes.io/docs/concepts/storage/volumes#emptydir
6810		"medium"?: string
6811
6812		// sizeLimit is the total amount of local storage required for this EmptyDir
6813		// volume. The size limit is also applicable for memory medium. The maximum
6814		// usage on memory medium EmptyDir would be the minimum value between the
6815		// SizeLimit specified here and the sum of memory limits of all containers in a
6816		// pod. The default is nil which means that the limit is undefined. More info:
6817		// https://kubernetes.io/docs/concepts/storage/volumes#emptydir
6818		"sizeLimit"?: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
6819	}
6820
6821	// EnvFromSource represents the source of a set of ConfigMaps or Secrets
6822	#: "io.k8s.api.core.v1.EnvFromSource": {
6823		// The ConfigMap to select from
6824		"configMapRef"?: #."io.k8s.api.core.v1.ConfigMapEnvSource"
6825
6826		// Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
6827		"prefix"?: string
6828
6829		// The Secret to select from
6830		"secretRef"?: #."io.k8s.api.core.v1.SecretEnvSource"
6831	}
6832
6833	// EnvVar represents an environment variable present in a Container.
6834	#: "io.k8s.api.core.v1.EnvVar": {
6835		// Name of the environment variable. Must be a C_IDENTIFIER.
6836		"name"!: string
6837
6838		// Variable references $(VAR_NAME) are expanded using the previously defined
6839		// environment variables in the container and any service environment
6840		// variables. If a variable cannot be resolved, the reference in the input
6841		// string will be unchanged. Double $$ are reduced to a single $, which allows
6842		// for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
6843		// string literal "$(VAR_NAME)". Escaped references will never be expanded,
6844		// regardless of whether the variable exists or not. Defaults to "".
6845		"value"?: string
6846
6847		// Source for the environment variable's value. Cannot be used if value is not empty.
6848		"valueFrom"?: #."io.k8s.api.core.v1.EnvVarSource"
6849	}
6850
6851	// EnvVarSource represents a source for the value of an EnvVar.
6852	#: "io.k8s.api.core.v1.EnvVarSource": {
6853		// Selects a key of a ConfigMap.
6854		"configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
6855
6856		// Selects a field of the pod: supports metadata.name, metadata.namespace,
6857		// `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`, spec.nodeName,
6858		// spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
6859		"fieldRef"?: #."io.k8s.api.core.v1.ObjectFieldSelector"
6860
6861		// Selects a resource of the container: only resources limits and requests
6862		// (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu,
6863		// requests.memory and requests.ephemeral-storage) are currently supported.
6864		"resourceFieldRef"?: #."io.k8s.api.core.v1.ResourceFieldSelector"
6865
6866		// Selects a key of a secret in the pod's namespace
6867		"secretKeyRef"?: #."io.k8s.api.core.v1.SecretKeySelector"
6868	}
6869
6870	// Represents an ephemeral volume that is handled by a normal storage driver.
6871	#: {
6872		"io.k8s.api.core.v1.EphemeralVolumeSource": {
6873			// Will be used to create a stand-alone PVC to provision the volume. The pod in
6874			// which this EphemeralVolumeSource is embedded will be the owner of the PVC,
6875			// i.e. the PVC will be deleted together with the pod. The name of the PVC will
6876			// be `<pod name>-<volume name>` where `<volume name>` is the name from the
6877			// `PodSpec.Volumes` array entry. Pod validation will reject the pod if the
6878			// concatenated name is not valid for a PVC (for example, too long).
6879			//
6880			// An existing PVC with that name that is not owned by the pod will *not* be
6881			// used for the pod to avoid using an unrelated volume by mistake. Starting the
6882			// pod is then blocked until the unrelated PVC is removed. If such a
6883			// pre-created PVC is meant to be used by the pod, the PVC has to updated with
6884			// an owner reference to the pod once the pod exists. Normally this should not
6885			// be necessary, but it may be useful when manually reconstructing a broken
6886			// cluster.
6887			//
6888			// This field is read-only and no changes will be made by Kubernetes to the PVC
6889			// after it has been created.
6890			//
6891			// Required, must not be nil.
6892			"volumeClaimTemplate"?: #."io.k8s.api.core.v1.PersistentVolumeClaimTemplate"
6893		}
6894	}
6895
6896	// Event is a report of an event somewhere in the cluster. Events have a limited
6897	// retention time and triggers and messages may evolve with time. Event
6898	// consumers should not rely on the timing of an event with a given Reason
6899	// reflecting a consistent underlying trigger, or the continued existence of
6900	// events with that Reason. Events should be treated as informative,
6901	// best-effort, supplemental data.
6902	#: "io.k8s.api.core.v1.Event": {
6903		// What action was taken/failed regarding to the Regarding object.
6904		"action"?: string
6905
6906		// APIVersion defines the versioned schema of this representation of an object.
6907		// Servers should convert recognized schemas to the latest internal value, and
6908		// may reject unrecognized values. More info:
6909		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
6910		"apiVersion"?: string
6911
6912		// The number of times this event has occurred.
6913		"count"?: int
6914
6915		// Time when this Event was first observed.
6916		"eventTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime"
6917
6918		// The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
6919		"firstTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
6920
6921		// The object that this event is about.
6922		"involvedObject"!: #."io.k8s.api.core.v1.ObjectReference"
6923
6924		// Kind is a string value representing the REST resource this object represents.
6925		// Servers may infer this from the endpoint the client submits requests to.
6926		// Cannot be updated. In CamelCase. More info:
6927		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
6928		"kind"?: string
6929
6930		// The time at which the most recent occurrence of this event was recorded.
6931		"lastTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
6932
6933		// A human-readable description of the status of this operation.
6934		"message"?: string
6935
6936		// Standard object's metadata. More info:
6937		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
6938		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
6939
6940		// This should be a short, machine understandable string that gives the reason
6941		// for the transition into the object's current status.
6942		"reason"?: string
6943
6944		// Optional secondary object for more complex actions.
6945		"related"?: #."io.k8s.api.core.v1.ObjectReference"
6946
6947		// Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
6948		"reportingComponent"?: string
6949
6950		// ID of the controller instance, e.g. `kubelet-xyzf`.
6951		"reportingInstance"?: string
6952
6953		// Data about the Event series this event represents or nil if it's a singleton Event.
6954		"series"?: #."io.k8s.api.core.v1.EventSeries"
6955
6956		// The component reporting this event. Should be a short machine understandable string.
6957		"source"?: #."io.k8s.api.core.v1.EventSource"
6958
6959		// Type of this event (Normal, Warning), new types could be added in the future
6960		"type"?: string
6961	}
6962
6963	// EventSeries contain information on series of events, i.e. thing that was/is
6964	// happening continuously for some time.
6965	#: "io.k8s.api.core.v1.EventSeries": {
6966		// Number of occurrences in this series up to the last heartbeat time
6967		"count"?: int
6968
6969		// Time of the last occurrence observed
6970		"lastObservedTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime"
6971	}
6972
6973	// EventSource contains information for an event.
6974	#: "io.k8s.api.core.v1.EventSource": {
6975		// Component from which the event is generated.
6976		"component"?: string
6977
6978		// Node name on which the event is generated.
6979		"host"?: string
6980	}
6981
6982	// ExecAction describes a "run in container" action.
6983	#: {
6984		"io.k8s.api.core.v1.ExecAction": {
6985			// Command is the command line to execute inside the container, the working
6986			// directory for the command is root ('/') in the container's filesystem. The
6987			// command is simply exec'd, it is not run inside a shell, so traditional shell
6988			// instructions ('|', etc) won't work. To use a shell, you need to explicitly
6989			// call out to that shell. Exit status of 0 is treated as live/healthy and
6990			// non-zero is unhealthy.
6991			"command"?: [...string]
6992		}
6993	}
6994
6995	// Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted
6996	// as read/write once. Fibre Channel volumes support ownership management and
6997	// SELinux relabeling.
6998	#: "io.k8s.api.core.v1.FCVolumeSource": {
6999		// fsType is the filesystem type to mount. Must be a filesystem type supported
7000		// by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred
7001		// to be "ext4" if unspecified.
7002		"fsType"?: string
7003
7004		// lun is Optional: FC target lun number
7005		"lun"?: int
7006
7007		// readOnly is Optional: Defaults to false (read/write). ReadOnly here will
7008		// force the ReadOnly setting in VolumeMounts.
7009		"readOnly"?: bool
7010
7011		// targetWWNs is Optional: FC target worldwide names (WWNs)
7012		"targetWWNs"?: [...string]
7013
7014		// wwids Optional: FC volume world wide identifiers (wwids) Either wwids or
7015		// combination of targetWWNs and lun must be set, but not both simultaneously.
7016		"wwids"?: [...string]
7017	}
7018
7019	// FlexVolume represents a generic volume resource that is provisioned/attached
7020	// using an exec based plugin.
7021	#: "io.k8s.api.core.v1.FlexVolumeSource": {
7022		// driver is the name of the driver to use for this volume.
7023		"driver"!: string
7024
7025		// fsType is the filesystem type to mount. Must be a filesystem type supported
7026		// by the host operating system. Ex. "ext4", "xfs", "ntfs". The default
7027		// filesystem depends on FlexVolume script.
7028		"fsType"?: string
7029
7030		// options is Optional: this field holds extra command options if any.
7031		"options"?: [string]: string
7032
7033		// readOnly is Optional: defaults to false (read/write). ReadOnly here will
7034		// force the ReadOnly setting in VolumeMounts.
7035		"readOnly"?: bool
7036
7037		// secretRef is Optional: secretRef is reference to the secret object containing
7038		// sensitive information to pass to the plugin scripts. This may be empty if no
7039		// secret object is specified. If the secret object contains more than one
7040		// secret, all secrets are passed to the plugin scripts.
7041		"secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
7042	}
7043
7044	// Represents a Flocker volume mounted by the Flocker agent. One and only one of
7045	// datasetName and datasetUUID should be set. Flocker volumes do not support
7046	// ownership management or SELinux relabeling.
7047	#: "io.k8s.api.core.v1.FlockerVolumeSource": {
7048		// datasetName is Name of the dataset stored as metadata -> name on the dataset
7049		// for Flocker should be considered as deprecated
7050		"datasetName"?: string
7051
7052		// datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset
7053		"datasetUUID"?: string
7054	}
7055
7056	// Represents a Persistent Disk resource in Google Compute Engine.
7057	//
7058	// A GCE PD must exist before mounting to a container. The disk must also be in
7059	// the same GCE project and zone as the kubelet. A GCE PD can only be mounted
7060	// as read/write once or read-only many times. GCE PDs support ownership
7061	// management and SELinux relabeling.
7062	#: "io.k8s.api.core.v1.GCEPersistentDiskVolumeSource": {
7063		// fsType is filesystem type of the volume that you want to mount. Tip: Ensure
7064		// that the filesystem type is supported by the host operating system.
7065		// Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
7066		// unspecified. More info:
7067		// https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
7068		"fsType"?: string
7069
7070		// partition is the partition in the volume that you want to mount. If omitted,
7071		// the default is to mount by volume name. Examples: For volume /dev/sda1, you
7072		// specify the partition as "1". Similarly, the volume partition for /dev/sda
7073		// is "0" (or you can leave the property empty). More info:
7074		// https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
7075		"partition"?: int
7076
7077		// pdName is unique name of the PD resource in GCE. Used to identify the disk in
7078		// GCE. More info:
7079		// https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
7080		"pdName"!: string
7081
7082		// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to
7083		// false. More info:
7084		// https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
7085		"readOnly"?: bool
7086	}
7087
7088	// GRPCAction specifies an action involving a GRPC service.
7089	#: "io.k8s.api.core.v1.GRPCAction": {
7090		// Port number of the gRPC service. Number must be in the range 1 to 65535.
7091		"port"!: int
7092
7093		// Service is the name of the service to place in the gRPC HealthCheckRequest
7094		// (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
7095		//
7096		// If this is not specified, the default behavior is defined by gRPC.
7097		"service"?: string
7098	}
7099
7100	// Represents a volume that is populated with the contents of a git repository.
7101	// Git repo volumes do not support ownership management. Git repo volumes
7102	// support SELinux relabeling.
7103	//
7104	// DEPRECATED: GitRepo is deprecated. To provision a container with a git repo,
7105	// mount an EmptyDir into an InitContainer that clones the repo using git, then
7106	// mount the EmptyDir into the Pod's container.
7107	#: "io.k8s.api.core.v1.GitRepoVolumeSource": {
7108		// directory is the target directory name. Must not contain or start with '..'.
7109		// If '.' is supplied, the volume directory will be the git repository.
7110		// Otherwise, if specified, the volume will contain the git repository in the
7111		// subdirectory with the given name.
7112		"directory"?: string
7113
7114		// repository is the URL
7115		"repository"!: string
7116
7117		// revision is the commit hash for the specified revision.
7118		"revision"?: string
7119	}
7120
7121	// Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs
7122	// volumes do not support ownership management or SELinux relabeling.
7123	#: "io.k8s.api.core.v1.GlusterfsVolumeSource": {
7124		// endpoints is the endpoint name that details Glusterfs topology. More info:
7125		// https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
7126		"endpoints"!: string
7127
7128		// path is the Glusterfs volume path. More info:
7129		// https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
7130		"path"!: string
7131
7132		// readOnly here will force the Glusterfs volume to be mounted with read-only
7133		// permissions. Defaults to false. More info:
7134		// https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
7135		"readOnly"?: bool
7136	}
7137
7138	// HTTPGetAction describes an action based on HTTP Get requests.
7139	#: "io.k8s.api.core.v1.HTTPGetAction": {
7140		// Host name to connect to, defaults to the pod IP. You probably want to set
7141		// "Host" in httpHeaders instead.
7142		"host"?: string
7143
7144		// Custom headers to set in the request. HTTP allows repeated headers.
7145		"httpHeaders"?: [...#."io.k8s.api.core.v1.HTTPHeader"]
7146
7147		// Path to access on the HTTP server.
7148		"path"?: string
7149
7150		// Name or number of the port to access on the container. Number must be in the
7151		// range 1 to 65535. Name must be an IANA_SVC_NAME.
7152		"port"!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
7153
7154		// Scheme to use for connecting to the host. Defaults to HTTP.
7155		"scheme"?: string
7156	}
7157
7158	// HTTPHeader describes a custom header to be used in HTTP probes
7159	#: "io.k8s.api.core.v1.HTTPHeader": {
7160		// The header field name. This will be canonicalized upon output, so
7161		// case-variant names will be understood as the same header.
7162		"name"!: string
7163
7164		// The header field value
7165		"value"!: string
7166	}
7167
7168	// HostAlias holds the mapping between IP and hostnames that will be injected as
7169	// an entry in the pod's hosts file.
7170	#: "io.k8s.api.core.v1.HostAlias": {
7171		// Hostnames for the above IP address.
7172		"hostnames"?: [...string]
7173
7174		// IP address of the host file entry.
7175		"ip"!: string
7176	}
7177
7178	// Represents a host path mapped into a pod. Host path volumes do not support
7179	// ownership management or SELinux relabeling.
7180	#: "io.k8s.api.core.v1.HostPathVolumeSource": {
7181		// path of the directory on the host. If the path is a symlink, it will follow
7182		// the link to the real path. More info:
7183		// https://kubernetes.io/docs/concepts/storage/volumes#hostpath
7184		"path"!: string
7185
7186		// type for HostPath Volume Defaults to "" More info:
7187		// https://kubernetes.io/docs/concepts/storage/volumes#hostpath
7188		"type"?: string
7189	}
7190
7191	// Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write
7192	// once. ISCSI volumes support ownership management and SELinux relabeling.
7193	#: "io.k8s.api.core.v1.ISCSIVolumeSource": {
7194		// chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication
7195		"chapAuthDiscovery"?: bool
7196
7197		// chapAuthSession defines whether support iSCSI Session CHAP authentication
7198		"chapAuthSession"?: bool
7199
7200		// fsType is the filesystem type of the volume that you want to mount. Tip:
7201		// Ensure that the filesystem type is supported by the host operating system.
7202		// Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
7203		// unspecified. More info:
7204		// https://kubernetes.io/docs/concepts/storage/volumes#iscsi
7205		"fsType"?: string
7206
7207		// initiatorName is the custom iSCSI Initiator Name. If initiatorName is
7208		// specified with iscsiInterface simultaneously, new iSCSI interface <target
7209		// portal>:<volume name> will be created for the connection.
7210		"initiatorName"?: string
7211
7212		// iqn is the target iSCSI Qualified Name.
7213		"iqn"!: string
7214
7215		// iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).
7216		"iscsiInterface"?: string
7217
7218		// lun represents iSCSI Target Lun number.
7219		"lun"!: int
7220
7221		// portals is the iSCSI Target Portal List. The portal is either an IP or
7222		// ip_addr:port if the port is other than default (typically TCP ports 860 and
7223		// 3260).
7224		"portals"?: [...string]
7225
7226		// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.
7227		"readOnly"?: bool
7228
7229		// secretRef is the CHAP Secret for iSCSI target and initiator authentication
7230		"secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
7231
7232		// targetPortal is iSCSI Target Portal. The Portal is either an IP or
7233		// ip_addr:port if the port is other than default (typically TCP ports 860 and
7234		// 3260).
7235		"targetPortal"!: string
7236	}
7237
7238	// ImageVolumeSource represents a image volume resource.
7239	#: "io.k8s.api.core.v1.ImageVolumeSource": {
7240		// Policy for pulling OCI objects. Possible values are: Always: the kubelet
7241		// always attempts to pull the reference. Container creation will fail If the
7242		// pull fails. Never: the kubelet never pulls the reference and only uses a
7243		// local image or artifact. Container creation will fail if the reference isn't
7244		// present. IfNotPresent: the kubelet pulls if the reference isn't already
7245		// present on disk. Container creation will fail if the reference isn't present
7246		// and the pull fails. Defaults to Always if :latest tag is specified, or
7247		// IfNotPresent otherwise.
7248		"pullPolicy"?: string
7249
7250		// Required: Image or artifact reference to be used. Behaves in the same way as
7251		// pod.spec.containers[*].image. Pull secrets will be assembled in the same way
7252		// as for the container image by looking up node credentials, SA image pull
7253		// secrets, and pod spec image pull secrets. More info:
7254		// https://kubernetes.io/docs/concepts/containers/images This field is optional
7255		// to allow higher level config management to default or override container
7256		// images in workload controllers like Deployments and StatefulSets.
7257		"reference"?: string
7258	}
7259
7260	// Maps a string key to a path within a volume.
7261	#: "io.k8s.api.core.v1.KeyToPath": {
7262		// key is the key to project.
7263		"key"!: string
7264
7265		// mode is Optional: mode bits used to set permissions on this file. Must be an
7266		// octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML
7267		// accepts both octal and decimal values, JSON requires decimal values for mode
7268		// bits. If not specified, the volume defaultMode will be used. This might be
7269		// in conflict with other options that affect the file mode, like fsGroup, and
7270		// the result can be other mode bits set.
7271		"mode"?: int
7272
7273		// path is the relative path of the file to map the key to. May not be an
7274		// absolute path. May not contain the path element '..'. May not start with the
7275		// string '..'.
7276		"path"!: string
7277	}
7278
7279	// Lifecycle describes actions that the management system should take in
7280	// response to container lifecycle events. For the PostStart and PreStop
7281	// lifecycle handlers, management of the container blocks until the action is
7282	// complete, unless the container process fails, in which case the handler is
7283	// aborted.
7284	#: "io.k8s.api.core.v1.Lifecycle": {
7285		// PostStart is called immediately after a container is created. If the handler
7286		// fails, the container is terminated and restarted according to its restart
7287		// policy. Other management of the container blocks until the hook completes.
7288		// More info:
7289		// https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
7290		"postStart"?: #."io.k8s.api.core.v1.LifecycleHandler"
7291
7292		// PreStop is called immediately before a container is terminated due to an API
7293		// request or management event such as liveness/startup probe failure,
7294		// preemption, resource contention, etc. The handler is not called if the
7295		// container crashes or exits. The Pod's termination grace period countdown
7296		// begins before the PreStop hook is executed. Regardless of the outcome of the
7297		// handler, the container will eventually terminate within the Pod's
7298		// termination grace period (unless delayed by finalizers). Other management of
7299		// the container blocks until the hook completes or until the termination grace
7300		// period is reached. More info:
7301		// https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
7302		"preStop"?: #."io.k8s.api.core.v1.LifecycleHandler"
7303
7304		// StopSignal defines which signal will be sent to a container when it is being
7305		// stopped. If not specified, the default is defined by the container runtime
7306		// in use. StopSignal can only be set for Pods with a non-empty .spec.os.name
7307		"stopSignal"?: string
7308	}
7309
7310	// LifecycleHandler defines a specific action that should be taken in a
7311	// lifecycle hook. One and only one of the fields, except TCPSocket must be
7312	// specified.
7313	#: "io.k8s.api.core.v1.LifecycleHandler": {
7314		// Exec specifies a command to execute in the container.
7315		"exec"?: #."io.k8s.api.core.v1.ExecAction"
7316
7317		// HTTPGet specifies an HTTP GET request to perform.
7318		"httpGet"?: #."io.k8s.api.core.v1.HTTPGetAction"
7319
7320		// Sleep represents a duration that the container should sleep.
7321		"sleep"?: #."io.k8s.api.core.v1.SleepAction"
7322
7323		// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for
7324		// backward compatibility. There is no validation of this field and lifecycle
7325		// hooks will fail at runtime when it is specified.
7326		"tcpSocket"?: #."io.k8s.api.core.v1.TCPSocketAction"
7327	}
7328
7329	// LocalObjectReference contains enough information to let you locate the
7330	// referenced object inside the same namespace.
7331	#: {
7332		"io.k8s.api.core.v1.LocalObjectReference": {
7333			// Name of the referent. This field is effectively required, but due to
7334			// backwards compatibility is allowed to be empty. Instances of this type with
7335			// an empty value here are almost certainly wrong. More info:
7336			// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7337			"name"?: string
7338		}
7339	}
7340
7341	// ModifyVolumeStatus represents the status object of ControllerModifyVolume operation
7342	#: "io.k8s.api.core.v1.ModifyVolumeStatus": {
7343		// status is the status of the ControllerModifyVolume operation. It can be in
7344		// any of following states:
7345		// - Pending
7346		// Pending indicates that the PersistentVolumeClaim cannot be modified due to
7347		// unmet requirements, such as
7348		// the specified VolumeAttributesClass not existing.
7349		// - InProgress
7350		// InProgress indicates that the volume is being modified.
7351		// - Infeasible
7352		// Infeasible indicates that the request has been rejected as invalid by the CSI driver. To
7353		// resolve the error, a valid VolumeAttributesClass needs to be specified.
7354		// Note: New statuses can be added in the future. Consumers should check for
7355		// unknown statuses and fail appropriately.
7356		"status"!: string
7357
7358		// targetVolumeAttributesClassName is the name of the VolumeAttributesClass the
7359		// PVC currently being reconciled
7360		"targetVolumeAttributesClassName"?: string
7361	}
7362
7363	// Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not
7364	// support ownership management or SELinux relabeling.
7365	#: "io.k8s.api.core.v1.NFSVolumeSource": {
7366		// path that is exported by the NFS server. More info:
7367		// https://kubernetes.io/docs/concepts/storage/volumes#nfs
7368		"path"!: string
7369
7370		// readOnly here will force the NFS export to be mounted with read-only
7371		// permissions. Defaults to false. More info:
7372		// https://kubernetes.io/docs/concepts/storage/volumes#nfs
7373		"readOnly"?: bool
7374
7375		// server is the hostname or IP address of the NFS server. More info:
7376		// https://kubernetes.io/docs/concepts/storage/volumes#nfs
7377		"server"!: string
7378	}
7379
7380	// Node affinity is a group of node affinity scheduling rules.
7381	#: "io.k8s.api.core.v1.NodeAffinity": {
7382		// The scheduler will prefer to schedule pods to nodes that satisfy the affinity
7383		// expressions specified by this field, but it may choose a node that violates
7384		// one or more of the expressions. The node that is most preferred is the one
7385		// with the greatest sum of weights, i.e. for each node that meets all of the
7386		// scheduling requirements (resource request, requiredDuringScheduling affinity
7387		// expressions, etc.), compute a sum by iterating through the elements of this
7388		// field and adding "weight" to the sum if the node matches the corresponding
7389		// matchExpressions; the node(s) with the highest sum are the most preferred.
7390		"preferredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.PreferredSchedulingTerm"]
7391
7392		// If the affinity requirements specified by this field are not met at
7393		// scheduling time, the pod will not be scheduled onto the node. If the
7394		// affinity requirements specified by this field cease to be met at some point
7395		// during pod execution (e.g. due to an update), the system may or may not try
7396		// to eventually evict the pod from its node.
7397		"requiredDuringSchedulingIgnoredDuringExecution"?: #."io.k8s.api.core.v1.NodeSelector"
7398	}
7399
7400	// A node selector represents the union of the results of one or more label
7401	// queries over a set of nodes; that is, it represents the OR of the selectors
7402	// represented by the node selector terms.
7403	#: {
7404		"io.k8s.api.core.v1.NodeSelector": {
7405			// Required. A list of node selector terms. The terms are ORed.
7406			"nodeSelectorTerms"!: [...#."io.k8s.api.core.v1.NodeSelectorTerm"]
7407		}
7408	}
7409
7410	// A node selector requirement is a selector that contains values, a key, and an
7411	// operator that relates the key and values.
7412	#: "io.k8s.api.core.v1.NodeSelectorRequirement": {
7413		// The label key that the selector applies to.
7414		"key"!: string
7415
7416		// Represents a key's relationship to a set of values. Valid operators are In,
7417		// NotIn, Exists, DoesNotExist. Gt, and Lt.
7418		"operator"!: string
7419
7420		// An array of string values. If the operator is In or NotIn, the values array
7421		// must be non-empty. If the operator is Exists or DoesNotExist, the values
7422		// array must be empty. If the operator is Gt or Lt, the values array must have
7423		// a single element, which will be interpreted as an integer. This array is
7424		// replaced during a strategic merge patch.
7425		"values"?: [...string]
7426	}
7427
7428	// A null or empty node selector term matches no objects. The requirements of
7429	// them are ANDed. The TopologySelectorTerm type implements a subset of the
7430	// NodeSelectorTerm.
7431	#: "io.k8s.api.core.v1.NodeSelectorTerm": {
7432		// A list of node selector requirements by node's labels.
7433		"matchExpressions"?: [...#."io.k8s.api.core.v1.NodeSelectorRequirement"]
7434
7435		// A list of node selector requirements by node's fields.
7436		"matchFields"?: [...#."io.k8s.api.core.v1.NodeSelectorRequirement"]
7437	}
7438
7439	// ObjectFieldSelector selects an APIVersioned field of an object.
7440	#: "io.k8s.api.core.v1.ObjectFieldSelector": {
7441		// Version of the schema the FieldPath is written in terms of, defaults to "v1".
7442		"apiVersion"?: string
7443
7444		// Path of the field to select in the specified API version.
7445		"fieldPath"!: string
7446	}
7447
7448	// ObjectReference contains enough information to let you inspect or modify the referred object.
7449	#: "io.k8s.api.core.v1.ObjectReference": {
7450		// API version of the referent.
7451		"apiVersion"?: string
7452
7453		// If referring to a piece of an object instead of an entire object, this string
7454		// should contain a valid JSON/Go field access statement, such as
7455		// desiredState.manifest.containers[2]. For example, if the object reference is
7456		// to a container within a pod, this would take on a value like:
7457		// "spec.containers{name}" (where "name" refers to the name of the container
7458		// that triggered the event) or if no container name is specified
7459		// "spec.containers[2]" (container with index 2 in this pod). This syntax is
7460		// chosen only to have some well-defined way of referencing a part of an
7461		// object.
7462		"fieldPath"?: string
7463
7464		// Kind of the referent. More info:
7465		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
7466		"kind"?: string
7467
7468		// Name of the referent. More info:
7469		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7470		"name"?: string
7471
7472		// Namespace of the referent. More info:
7473		// https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
7474		"namespace"?: string
7475
7476		// Specific resourceVersion to which this reference is made, if any. More info:
7477		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
7478		"resourceVersion"?: string
7479
7480		// UID of the referent. More info:
7481		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
7482		"uid"?: string
7483	}
7484
7485	// PersistentVolumeClaim is a user's request for and claim to a persistent volume
7486	#: "io.k8s.api.core.v1.PersistentVolumeClaim": {
7487		// APIVersion defines the versioned schema of this representation of an object.
7488		// Servers should convert recognized schemas to the latest internal value, and
7489		// may reject unrecognized values. More info:
7490		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
7491		"apiVersion"?: string
7492
7493		// Kind is a string value representing the REST resource this object represents.
7494		// Servers may infer this from the endpoint the client submits requests to.
7495		// Cannot be updated. In CamelCase. More info:
7496		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
7497		"kind"?: string
7498
7499		// Standard object's metadata. More info:
7500		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
7501		"metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
7502
7503		// spec defines the desired characteristics of a volume requested by a pod
7504		// author. More info:
7505		// https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
7506		"spec"?: #."io.k8s.api.core.v1.PersistentVolumeClaimSpec"
7507
7508		// status represents the current information/status of a persistent volume
7509		// claim. Read-only. More info:
7510		// https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
7511		"status"?: #."io.k8s.api.core.v1.PersistentVolumeClaimStatus"
7512	}
7513
7514	// PersistentVolumeClaimCondition contains details about state of pvc
7515	#: "io.k8s.api.core.v1.PersistentVolumeClaimCondition": {
7516		// lastProbeTime is the time we probed the condition.
7517		"lastProbeTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
7518
7519		// lastTransitionTime is the time the condition transitioned from one status to another.
7520		"lastTransitionTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
7521
7522		// message is the human-readable message indicating details about last transition.
7523		"message"?: string
7524
7525		// reason is a unique, this should be a short, machine understandable string
7526		// that gives the reason for condition's last transition. If it reports
7527		// "Resizing" that means the underlying persistent volume is being resized.
7528		"reason"?: string
7529
7530		// Status is the status of the condition. Can be True, False, Unknown. More
7531		// info:
7532		// https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required
7533		"status"!: string
7534
7535		// Type is the type of the condition. More info:
7536		// https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about
7537		"type"!: string
7538	}
7539
7540	// PersistentVolumeClaimSpec describes the common attributes of storage devices
7541	// and allows a Source for provider-specific attributes
7542	#: "io.k8s.api.core.v1.PersistentVolumeClaimSpec": {
7543		// accessModes contains the desired access modes the volume should have. More
7544		// info:
7545		// https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
7546		"accessModes"?: [...string]
7547
7548		// dataSource field can be used to specify either: * An existing VolumeSnapshot
7549		// object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC
7550		// (PersistentVolumeClaim) If the provisioner or an external controller can
7551		// support the specified data source, it will create a new volume based on the
7552		// contents of the specified data source. When the AnyVolumeDataSource feature
7553		// gate is enabled, dataSource contents will be copied to dataSourceRef, and
7554		// dataSourceRef contents will be copied to dataSource when
7555		// dataSourceRef.namespace is not specified. If the namespace is specified,
7556		// then dataSourceRef will not be copied to dataSource.
7557		"dataSource"?: #."io.k8s.api.core.v1.TypedLocalObjectReference"
7558
7559		// dataSourceRef specifies the object from which to populate the volume with
7560		// data, if a non-empty volume is desired. This may be any object from a
7561		// non-empty API group (non core object) or a PersistentVolumeClaim object.
7562		// When this field is specified, volume binding will only succeed if the type
7563		// of the specified object matches some installed volume populator or dynamic
7564		// provisioner. This field will replace the functionality of the dataSource
7565		// field and as such if both fields are non-empty, they must have the same
7566		// value. For backwards compatibility, when namespace isn't specified in
7567		// dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the
7568		// same value automatically if one of them is empty and the other is non-empty.
7569		// When namespace is specified in dataSourceRef, dataSource isn't set to the
7570		// same value and must be empty. There are three important differences between
7571		// dataSource and dataSourceRef: * While dataSource only allows two specific
7572		// types of objects, dataSourceRef
7573		// allows any non-core object, as well as PersistentVolumeClaim objects.
7574		// * While dataSource ignores disallowed values (dropping them), dataSourceRef
7575		// preserves all values, and generates an error if a disallowed value is
7576		// specified.
7577		// * While dataSource only allows local objects, dataSourceRef allows objects
7578		// in any namespaces.
7579		// (Beta) Using this field requires the AnyVolumeDataSource feature gate to be
7580		// enabled. (Alpha) Using the namespace field of dataSourceRef requires the
7581		// CrossNamespaceVolumeDataSource feature gate to be enabled.
7582		"dataSourceRef"?: #."io.k8s.api.core.v1.TypedObjectReference"
7583
7584		// resources represents the minimum resources the volume should have. If
7585		// RecoverVolumeExpansionFailure feature is enabled users are allowed to
7586		// specify resource requirements that are lower than previous value but must
7587		// still be higher than capacity recorded in the status field of the claim.
7588		// More info:
7589		// https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
7590		"resources"?: #."io.k8s.api.core.v1.VolumeResourceRequirements"
7591
7592		// selector is a label query over volumes to consider for binding.
7593		"selector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
7594
7595		// storageClassName is the name of the StorageClass required by the claim. More
7596		// info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
7597		"storageClassName"?: string
7598
7599		// volumeAttributesClassName may be used to set the VolumeAttributesClass used
7600		// by this claim. If specified, the CSI driver will create or update the volume
7601		// with the attributes defined in the corresponding VolumeAttributesClass. This
7602		// has a different purpose than storageClassName, it can be changed after the
7603		// claim is created. An empty string value means that no VolumeAttributesClass
7604		// will be applied to the claim but it's not allowed to reset this field to
7605		// empty string once it is set. If unspecified and the PersistentVolumeClaim is
7606		// unbound, the default VolumeAttributesClass will be set by the
7607		// persistentvolume controller if it exists. If the resource referred to by
7608		// volumeAttributesClass does not exist, this PersistentVolumeClaim will be set
7609		// to a Pending state, as reflected by the modifyVolumeStatus field, until such
7610		// as a resource exists. More info:
7611		// https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
7612		// (Beta) Using this field requires the VolumeAttributesClass feature gate to
7613		// be enabled (off by default).
7614		"volumeAttributesClassName"?: string
7615
7616		// volumeMode defines what type of volume is required by the claim. Value of
7617		// Filesystem is implied when not included in claim spec.
7618		"volumeMode"?: string
7619
7620		// volumeName is the binding reference to the PersistentVolume backing this claim.
7621		"volumeName"?: string
7622	}
7623
7624	// PersistentVolumeClaimStatus is the current status of a persistent volume claim.
7625	#: "io.k8s.api.core.v1.PersistentVolumeClaimStatus": {
7626		// accessModes contains the actual access modes the volume backing the PVC has.
7627		// More info:
7628		// https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
7629		"accessModes"?: [...string]
7630
7631		// allocatedResourceStatuses stores status of resource being resized for the
7632		// given PVC. Key names follow standard Kubernetes label syntax. Valid values
7633		// are either:
7634		// * Un-prefixed keys:
7635		// - storage - the capacity of the volume.
7636		// * Custom resources must use implementation-defined prefixed names such as
7637		// "example.com/my-custom-resource"
7638		// Apart from above values - keys that are unprefixed or have kubernetes.io
7639		// prefix are considered reserved and hence may not be used.
7640		//
7641		// ClaimResourceStatus can be in any of following states:
7642		// - ControllerResizeInProgress:
7643		// State set when resize controller starts resizing the volume in control-plane.
7644		// - ControllerResizeFailed:
7645		// State set when resize has failed in resize controller with a terminal error.
7646		// - NodeResizePending:
7647		// State set when resize controller has finished resizing the volume but further resizing of
7648		// volume is needed on the node.
7649		// - NodeResizeInProgress:
7650		// State set when kubelet starts resizing the volume.
7651		// - NodeResizeFailed:
7652		// State set when resizing has failed in kubelet with a terminal error. Transient errors don't set
7653		// NodeResizeFailed.
7654		// For example: if expanding a PVC for more capacity - this field can be one of
7655		// the following states:
7656		// - pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeInProgress"
7657		// - pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeFailed"
7658		// - pvc.status.allocatedResourceStatus['storage'] = "NodeResizePending"
7659		// - pvc.status.allocatedResourceStatus['storage'] = "NodeResizeInProgress"
7660		// - pvc.status.allocatedResourceStatus['storage'] = "NodeResizeFailed"
7661		// When this field is not set, it means that no resize operation is in progress for the given PVC.
7662		//
7663		// A controller that receives PVC update with previously unknown resourceName or
7664		// ClaimResourceStatus should ignore the update for the purpose it was
7665		// designed. For example - a controller that only is responsible for resizing
7666		// capacity of the volume, should ignore PVC updates that change other valid
7667		// resources associated with PVC.
7668		//
7669		// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
7670		"allocatedResourceStatuses"?: [string]: string
7671
7672		// allocatedResources tracks the resources allocated to a PVC including its
7673		// capacity. Key names follow standard Kubernetes label syntax. Valid values
7674		// are either:
7675		// * Un-prefixed keys:
7676		// - storage - the capacity of the volume.
7677		// * Custom resources must use implementation-defined prefixed names such as
7678		// "example.com/my-custom-resource"
7679		// Apart from above values - keys that are unprefixed or have kubernetes.io
7680		// prefix are considered reserved and hence may not be used.
7681		//
7682		// Capacity reported here may be larger than the actual capacity when a volume
7683		// expansion operation is requested. For storage quota, the larger value from
7684		// allocatedResources and PVC.spec.resources is used. If allocatedResources is
7685		// not set, PVC.spec.resources alone is used for quota calculation. If a volume
7686		// expansion capacity request is lowered, allocatedResources is only lowered if
7687		// there are no expansion operations in progress and if the actual volume
7688		// capacity is equal or lower than the requested capacity.
7689		//
7690		// A controller that receives PVC update with previously unknown resourceName
7691		// should ignore the update for the purpose it was designed. For example - a
7692		// controller that only is responsible for resizing capacity of the volume,
7693		// should ignore PVC updates that change other valid resources associated with
7694		// PVC.
7695		//
7696		// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
7697		"allocatedResources"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
7698
7699		// capacity represents the actual resources of the underlying volume.
7700		"capacity"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
7701
7702		// conditions is the current Condition of persistent volume claim. If underlying
7703		// persistent volume is being resized then the Condition will be set to
7704		// 'Resizing'.
7705		"conditions"?: [...#."io.k8s.api.core.v1.PersistentVolumeClaimCondition"]
7706
7707		// currentVolumeAttributesClassName is the current name of the
7708		// VolumeAttributesClass the PVC is using. When unset, there is no
7709		// VolumeAttributeClass applied to this PersistentVolumeClaim This is a beta
7710		// field and requires enabling VolumeAttributesClass feature (off by default).
7711		"currentVolumeAttributesClassName"?: string
7712
7713		// ModifyVolumeStatus represents the status object of ControllerModifyVolume
7714		// operation. When this is unset, there is no ModifyVolume operation being
7715		// attempted. This is a beta field and requires enabling VolumeAttributesClass
7716		// feature (off by default).
7717		"modifyVolumeStatus"?: #."io.k8s.api.core.v1.ModifyVolumeStatus"
7718
7719		// phase represents the current phase of PersistentVolumeClaim.
7720		"phase"?: string
7721	}
7722
7723	// PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim
7724	// objects as part of an EphemeralVolumeSource.
7725	#: "io.k8s.api.core.v1.PersistentVolumeClaimTemplate": {
7726		// May contain labels and annotations that will be copied into the PVC when
7727		// creating it. No other fields are allowed and will be rejected during
7728		// validation.
7729		"metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
7730
7731		// The specification for the PersistentVolumeClaim. The entire content is copied
7732		// unchanged into the PVC that gets created from this template. The same fields
7733		// as in a PersistentVolumeClaim are also valid here.
7734		"spec"!: #."io.k8s.api.core.v1.PersistentVolumeClaimSpec"
7735	}
7736
7737	// PersistentVolumeClaimVolumeSource references the user's PVC in the same
7738	// namespace. This volume finds the bound PV and mounts that volume for the
7739	// pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around
7740	// another type of volume that is owned by someone else (the system).
7741	#: "io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource": {
7742		// claimName is the name of a PersistentVolumeClaim in the same namespace as the
7743		// pod using this volume. More info:
7744		// https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
7745		"claimName"!: string
7746
7747		// readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
7748		"readOnly"?: bool
7749	}
7750
7751	// Represents a Photon Controller persistent disk resource.
7752	#: "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": {
7753		// fsType is the filesystem type to mount. Must be a filesystem type supported
7754		// by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred
7755		// to be "ext4" if unspecified.
7756		"fsType"?: string
7757
7758		// pdID is the ID that identifies Photon Controller persistent disk
7759		"pdID"!: string
7760	}
7761
7762	// Pod affinity is a group of inter pod affinity scheduling rules.
7763	#: "io.k8s.api.core.v1.PodAffinity": {
7764		// The scheduler will prefer to schedule pods to nodes that satisfy the affinity
7765		// expressions specified by this field, but it may choose a node that violates
7766		// one or more of the expressions. The node that is most preferred is the one
7767		// with the greatest sum of weights, i.e. for each node that meets all of the
7768		// scheduling requirements (resource request, requiredDuringScheduling affinity
7769		// expressions, etc.), compute a sum by iterating through the elements of this
7770		// field and adding "weight" to the sum if the node has pods which matches the
7771		// corresponding podAffinityTerm; the node(s) with the highest sum are the most
7772		// preferred.
7773		"preferredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.WeightedPodAffinityTerm"]
7774
7775		// If the affinity requirements specified by this field are not met at
7776		// scheduling time, the pod will not be scheduled onto the node. If the
7777		// affinity requirements specified by this field cease to be met at some point
7778		// during pod execution (e.g. due to a pod label update), the system may or may
7779		// not try to eventually evict the pod from its node. When there are multiple
7780		// elements, the lists of nodes corresponding to each podAffinityTerm are
7781		// intersected, i.e. all terms must be satisfied.
7782		"requiredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.PodAffinityTerm"]
7783	}
7784
7785	// Defines a set of pods (namely those matching the labelSelector relative to
7786	// the given namespace(s)) that this pod should be co-located (affinity) or not
7787	// co-located (anti-affinity) with, where co-located is defined as running on a
7788	// node whose value of the label with key <topologyKey> matches that of any
7789	// node on which a pod of the set of pods is running
7790	#: "io.k8s.api.core.v1.PodAffinityTerm": {
7791		// A label query over a set of resources, in this case pods. If it's null, this
7792		// PodAffinityTerm matches with no Pods.
7793		"labelSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
7794
7795		// MatchLabelKeys is a set of pod label keys to select which pods will be taken
7796		// into consideration. The keys are used to lookup values from the incoming pod
7797		// labels, those key-value labels are merged with `labelSelector` as `key in
7798		// (value)` to select the group of existing pods which pods will be taken into
7799		// consideration for the incoming pod's pod (anti) affinity. Keys that don't
7800		// exist in the incoming pod labels will be ignored. The default value is
7801		// empty. The same key is forbidden to exist in both matchLabelKeys and
7802		// labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't
7803		// set.
7804		"matchLabelKeys"?: [...string]
7805
7806		// MismatchLabelKeys is a set of pod label keys to select which pods will be
7807		// taken into consideration. The keys are used to lookup values from the
7808		// incoming pod labels, those key-value labels are merged with `labelSelector`
7809		// as `key notin (value)` to select the group of existing pods which pods will
7810		// be taken into consideration for the incoming pod's pod (anti) affinity. Keys
7811		// that don't exist in the incoming pod labels will be ignored. The default
7812		// value is empty. The same key is forbidden to exist in both mismatchLabelKeys
7813		// and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector
7814		// isn't set.
7815		"mismatchLabelKeys"?: [...string]
7816
7817		// A label query over the set of namespaces that the term applies to. The term
7818		// is applied to the union of the namespaces selected by this field and the
7819		// ones listed in the namespaces field. null selector and null or empty
7820		// namespaces list means "this pod's namespace". An empty selector ({}) matches
7821		// all namespaces.
7822		"namespaceSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
7823
7824		// namespaces specifies a static list of namespace names that the term applies
7825		// to. The term is applied to the union of the namespaces listed in this field
7826		// and the ones selected by namespaceSelector. null or empty namespaces list
7827		// and null namespaceSelector means "this pod's namespace".
7828		"namespaces"?: [...string]
7829
7830		// This pod should be co-located (affinity) or not co-located (anti-affinity)
7831		// with the pods matching the labelSelector in the specified namespaces, where
7832		// co-located is defined as running on a node whose value of the label with key
7833		// topologyKey matches that of any node on which any of the selected pods is
7834		// running. Empty topologyKey is not allowed.
7835		"topologyKey"!: string
7836	}
7837
7838	// Pod anti affinity is a group of inter pod anti affinity scheduling rules.
7839	#: "io.k8s.api.core.v1.PodAntiAffinity": {
7840		// The scheduler will prefer to schedule pods to nodes that satisfy the
7841		// anti-affinity expressions specified by this field, but it may choose a node
7842		// that violates one or more of the expressions. The node that is most
7843		// preferred is the one with the greatest sum of weights, i.e. for each node
7844		// that meets all of the scheduling requirements (resource request,
7845		// requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by
7846		// iterating through the elements of this field and adding "weight" to the sum
7847		// if the node has pods which matches the corresponding podAffinityTerm; the
7848		// node(s) with the highest sum are the most preferred.
7849		"preferredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.WeightedPodAffinityTerm"]
7850
7851		// If the anti-affinity requirements specified by this field are not met at
7852		// scheduling time, the pod will not be scheduled onto the node. If the
7853		// anti-affinity requirements specified by this field cease to be met at some
7854		// point during pod execution (e.g. due to a pod label update), the system may
7855		// or may not try to eventually evict the pod from its node. When there are
7856		// multiple elements, the lists of nodes corresponding to each podAffinityTerm
7857		// are intersected, i.e. all terms must be satisfied.
7858		"requiredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.PodAffinityTerm"]
7859	}
7860
7861	// PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.
7862	#: "io.k8s.api.core.v1.PodDNSConfig": {
7863		// A list of DNS name server IP addresses. This will be appended to the base
7864		// nameservers generated from DNSPolicy. Duplicated nameservers will be
7865		// removed.
7866		"nameservers"?: [...string]
7867
7868		// A list of DNS resolver options. This will be merged with the base options
7869		// generated from DNSPolicy. Duplicated entries will be removed. Resolution
7870		// options given in Options will override those that appear in the base
7871		// DNSPolicy.
7872		"options"?: [...#."io.k8s.api.core.v1.PodDNSConfigOption"]
7873
7874		// A list of DNS search domains for host-name lookup. This will be appended to
7875		// the base search paths generated from DNSPolicy. Duplicated search paths will
7876		// be removed.
7877		"searches"?: [...string]
7878	}
7879
7880	// PodDNSConfigOption defines DNS resolver options of a pod.
7881	#: "io.k8s.api.core.v1.PodDNSConfigOption": {
7882		// Name is this DNS resolver option's name. Required.
7883		"name"?: string
7884
7885		// Value is this DNS resolver option's value.
7886		"value"?: string
7887	}
7888
7889	// PodSecurityContext holds pod-level security attributes and common container
7890	// settings. Some fields are also present in container.securityContext. Field
7891	// values of container.securityContext take precedence over field values of
7892	// PodSecurityContext.
7893	#: "io.k8s.api.core.v1.PodSecurityContext": {
7894		// appArmorProfile is the AppArmor options to use by the containers in this pod.
7895		// Note that this field cannot be set when spec.os.name is windows.
7896		"appArmorProfile"?: #."io.k8s.api.core.v1.AppArmorProfile"
7897
7898		// A special supplemental group that applies to all containers in a pod. Some
7899		// volume types allow the Kubelet to change the ownership of that volume to be
7900		// owned by the pod:
7901		//
7902		// 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files
7903		// created in the volume will be owned by FSGroup) 3. The permission bits are
7904		// OR'd with rw-rw----
7905		//
7906		// If unset, the Kubelet will not modify the ownership and permissions of any
7907		// volume. Note that this field cannot be set when spec.os.name is windows.
7908		"fsGroup"?: int
7909
7910		// fsGroupChangePolicy defines behavior of changing ownership and permission of
7911		// the volume before being exposed inside Pod. This field will only apply to
7912		// volume types which support fsGroup based ownership(and permissions). It will
7913		// have no effect on ephemeral volume types such as: secret, configmaps and
7914		// emptydir. Valid values are "OnRootMismatch" and "Always". If not specified,
7915		// "Always" is used. Note that this field cannot be set when spec.os.name is
7916		// windows.
7917		"fsGroupChangePolicy"?: string
7918
7919		// The GID to run the entrypoint of the container process. Uses runtime default
7920		// if unset. May also be set in SecurityContext. If set in both SecurityContext
7921		// and PodSecurityContext, the value specified in SecurityContext takes
7922		// precedence for that container. Note that this field cannot be set when
7923		// spec.os.name is windows.
7924		"runAsGroup"?: int
7925
7926		// Indicates that the container must run as a non-root user. If true, the
7927		// Kubelet will validate the image at runtime to ensure that it does not run as
7928		// UID 0 (root) and fail to start the container if it does. If unset or false,
7929		// no such validation will be performed. May also be set in SecurityContext. If
7930		// set in both SecurityContext and PodSecurityContext, the value specified in
7931		// SecurityContext takes precedence.
7932		"runAsNonRoot"?: bool
7933
7934		// The UID to run the entrypoint of the container process. Defaults to user
7935		// specified in image metadata if unspecified. May also be set in
7936		// SecurityContext. If set in both SecurityContext and PodSecurityContext, the
7937		// value specified in SecurityContext takes precedence for that container. Note
7938		// that this field cannot be set when spec.os.name is windows.
7939		"runAsUser"?: int
7940
7941		// seLinuxChangePolicy defines how the container's SELinux label is applied to
7942		// all volumes used by the Pod. It has no effect on nodes that do not support
7943		// SELinux or to volumes does not support SELinux. Valid values are
7944		// "MountOption" and "Recursive".
7945		//
7946		// "Recursive" means relabeling of all files on all Pod volumes by the container
7947		// runtime. This may be slow for large volumes, but allows mixing privileged
7948		// and unprivileged Pods sharing the same volume on the same node.
7949		//
7950		// "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
7951		// This requires all Pods that share the same volume to use the same SELinux
7952		// label. It is not possible to share the same volume among privileged and
7953		// unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI
7954		// volumes, and all CSI volumes whose CSI driver announces SELinux support by
7955		// setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes
7956		// are always re-labelled recursively. "MountOption" value is allowed only when
7957		// SELinuxMount feature gate is enabled.
7958		//
7959		// If not specified and SELinuxMount feature gate is enabled, "MountOption" is
7960		// used. If not specified and SELinuxMount feature gate is disabled,
7961		// "MountOption" is used for ReadWriteOncePod volumes and "Recursive" for all
7962		// other volumes.
7963		//
7964		// This field affects only Pods that have SELinux label set, either in
7965		// PodSecurityContext or in SecurityContext of all containers.
7966		//
7967		// All Pods that use the same volume should use the same seLinuxChangePolicy,
7968		// otherwise some pods can get stuck in ContainerCreating state. Note that this
7969		// field cannot be set when spec.os.name is windows.
7970		"seLinuxChangePolicy"?: string
7971
7972		// The SELinux context to be applied to all containers. If unspecified, the
7973		// container runtime will allocate a random SELinux context for each container.
7974		// May also be set in SecurityContext. If set in both SecurityContext and
7975		// PodSecurityContext, the value specified in SecurityContext takes precedence
7976		// for that container. Note that this field cannot be set when spec.os.name is
7977		// windows.
7978		"seLinuxOptions"?: #."io.k8s.api.core.v1.SELinuxOptions"
7979
7980		// The seccomp options to use by the containers in this pod. Note that this
7981		// field cannot be set when spec.os.name is windows.
7982		"seccompProfile"?: #."io.k8s.api.core.v1.SeccompProfile"
7983
7984		// A list of groups applied to the first process run in each container, in
7985		// addition to the container's primary GID and fsGroup (if specified). If the
7986		// SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy
7987		// field determines whether these are in addition to or instead of any group
7988		// memberships defined in the container image. If unspecified, no additional
7989		// groups are added, though group memberships defined in the container image
7990		// may still be used, depending on the supplementalGroupsPolicy field. Note
7991		// that this field cannot be set when spec.os.name is windows.
7992		"supplementalGroups"?: [...int]
7993
7994		// Defines how supplemental groups of the first container processes are
7995		// calculated. Valid values are "Merge" and "Strict". If not specified, "Merge"
7996		// is used. (Alpha) Using the field requires the SupplementalGroupsPolicy
7997		// feature gate to be enabled and the container runtime must implement support
7998		// for this feature. Note that this field cannot be set when spec.os.name is
7999		// windows.
8000		"supplementalGroupsPolicy"?: string
8001
8002		// Sysctls hold a list of namespaced sysctls used for the pod. Pods with
8003		// unsupported sysctls (by the container runtime) might fail to launch. Note
8004		// that this field cannot be set when spec.os.name is windows.
8005		"sysctls"?: [...#."io.k8s.api.core.v1.Sysctl"]
8006
8007		// The Windows specific settings applied to all containers. If unspecified, the
8008		// options within a container's SecurityContext will be used. If set in both
8009		// SecurityContext and PodSecurityContext, the value specified in
8010		// SecurityContext takes precedence. Note that this field cannot be set when
8011		// spec.os.name is linux.
8012		"windowsOptions"?: #."io.k8s.api.core.v1.WindowsSecurityContextOptions"
8013	}
8014
8015	// PortworxVolumeSource represents a Portworx volume resource.
8016	#: "io.k8s.api.core.v1.PortworxVolumeSource": {
8017		// fSType represents the filesystem type to mount Must be a filesystem type
8018		// supported by the host operating system. Ex. "ext4", "xfs". Implicitly
8019		// inferred to be "ext4" if unspecified.
8020		"fsType"?: string
8021
8022		// readOnly defaults to false (read/write). ReadOnly here will force the
8023		// ReadOnly setting in VolumeMounts.
8024		"readOnly"?: bool
8025
8026		// volumeID uniquely identifies a Portworx volume
8027		"volumeID"!: string
8028	}
8029
8030	// An empty preferred scheduling term matches all objects with implicit weight 0
8031	// (i.e. it's a no-op). A null preferred scheduling term matches no objects
8032	// (i.e. is also a no-op).
8033	#: "io.k8s.api.core.v1.PreferredSchedulingTerm": {
8034		// A node selector term, associated with the corresponding weight.
8035		"preference"!: #."io.k8s.api.core.v1.NodeSelectorTerm"
8036
8037		// Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
8038		"weight"!: int
8039	}
8040
8041	// Probe describes a health check to be performed against a container to
8042	// determine whether it is alive or ready to receive traffic.
8043	#: "io.k8s.api.core.v1.Probe": {
8044		// Exec specifies a command to execute in the container.
8045		"exec"?: #."io.k8s.api.core.v1.ExecAction"
8046
8047		// Minimum consecutive failures for the probe to be considered failed after
8048		// having succeeded. Defaults to 3. Minimum value is 1.
8049		"failureThreshold"?: int
8050
8051		// GRPC specifies a GRPC HealthCheckRequest.
8052		"grpc"?: #."io.k8s.api.core.v1.GRPCAction"
8053
8054		// HTTPGet specifies an HTTP GET request to perform.
8055		"httpGet"?: #."io.k8s.api.core.v1.HTTPGetAction"
8056
8057		// Number of seconds after the container has started before liveness probes are
8058		// initiated. More info:
8059		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
8060		"initialDelaySeconds"?: int
8061
8062		// How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
8063		"periodSeconds"?: int
8064
8065		// Minimum consecutive successes for the probe to be considered successful after
8066		// having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum
8067		// value is 1.
8068		"successThreshold"?: int
8069
8070		// TCPSocket specifies a connection to a TCP port.
8071		"tcpSocket"?: #."io.k8s.api.core.v1.TCPSocketAction"
8072
8073		// Optional duration in seconds the pod needs to terminate gracefully upon probe
8074		// failure. The grace period is the duration in seconds after the processes
8075		// running in the pod are sent a termination signal and the time when the
8076		// processes are forcibly halted with a kill signal. Set this value longer than
8077		// the expected cleanup time for your process. If this value is nil, the pod's
8078		// terminationGracePeriodSeconds will be used. Otherwise, this value overrides
8079		// the value provided by the pod spec. Value must be non-negative integer. The
8080		// value zero indicates stop immediately via the kill signal (no opportunity to
8081		// shut down). This is a beta field and requires enabling
8082		// ProbeTerminationGracePeriod feature gate. Minimum value is 1.
8083		// spec.terminationGracePeriodSeconds is used if unset.
8084		"terminationGracePeriodSeconds"?: int
8085
8086		// Number of seconds after which the probe times out. Defaults to 1 second.
8087		// Minimum value is 1. More info:
8088		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
8089		"timeoutSeconds"?: int
8090	}
8091
8092	// Represents a projected volume source
8093	#: "io.k8s.api.core.v1.ProjectedVolumeSource": {
8094		// defaultMode are the mode bits used to set permissions on created files by
8095		// default. Must be an octal value between 0000 and 0777 or a decimal value
8096		// between 0 and 511. YAML accepts both octal and decimal values, JSON requires
8097		// decimal values for mode bits. Directories within the path are not affected
8098		// by this setting. This might be in conflict with other options that affect
8099		// the file mode, like fsGroup, and the result can be other mode bits set.
8100		"defaultMode"?: int
8101
8102		// sources is the list of volume projections. Each entry in this list handles one source.
8103		"sources"?: [...#."io.k8s.api.core.v1.VolumeProjection"]
8104	}
8105
8106	// Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes
8107	// do not support ownership management or SELinux relabeling.
8108	#: "io.k8s.api.core.v1.QuobyteVolumeSource": {
8109		// group to map volume access to Default is no group
8110		"group"?: string
8111
8112		// readOnly here will force the Quobyte volume to be mounted with read-only
8113		// permissions. Defaults to false.
8114		"readOnly"?: bool
8115
8116		// registry represents a single or multiple Quobyte Registry services specified
8117		// as a string as host:port pair (multiple entries are separated with commas)
8118		// which acts as the central registry for volumes
8119		"registry"!: string
8120
8121		// tenant owning the given Quobyte volume in the Backend Used with dynamically
8122		// provisioned Quobyte volumes, value is set by the plugin
8123		"tenant"?: string
8124
8125		// user to map volume access to Defaults to serivceaccount user
8126		"user"?: string
8127
8128		// volume is a string that references an already created Quobyte volume by name.
8129		"volume"!: string
8130	}
8131
8132	// Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD
8133	// volumes support ownership management and SELinux relabeling.
8134	#: "io.k8s.api.core.v1.RBDVolumeSource": {
8135		// fsType is the filesystem type of the volume that you want to mount. Tip:
8136		// Ensure that the filesystem type is supported by the host operating system.
8137		// Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if
8138		// unspecified. More info:
8139		// https://kubernetes.io/docs/concepts/storage/volumes#rbd
8140		"fsType"?: string
8141
8142		// image is the rados image name. More info:
8143		// https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8144		"image"!: string
8145
8146		// keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring.
8147		// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8148		"keyring"?: string
8149
8150		// monitors is a collection of Ceph monitors. More info:
8151		// https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8152		"monitors"!: [...string]
8153
8154		// pool is the rados pool name. Default is rbd. More info:
8155		// https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8156		"pool"?: string
8157
8158		// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to
8159		// false. More info:
8160		// https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8161		"readOnly"?: bool
8162
8163		// secretRef is name of the authentication secret for RBDUser. If provided
8164		// overrides keyring. Default is nil. More info:
8165		// https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8166		"secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
8167
8168		// user is the rados user name. Default is admin. More info:
8169		// https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
8170		"user"?: string
8171	}
8172
8173	// ResourceClaim references one entry in PodSpec.ResourceClaims.
8174	#: "io.k8s.api.core.v1.ResourceClaim": {
8175		// Name must match the name of one entry in pod.spec.resourceClaims of the Pod
8176		// where this field is used. It makes that resource available inside a
8177		// container.
8178		"name"!: string
8179
8180		// Request is the name chosen for a request in the referenced claim. If empty,
8181		// everything from the claim is made available, otherwise only the result of
8182		// this request.
8183		"request"?: string
8184	}
8185
8186	// ResourceFieldSelector represents container resources (cpu, memory) and their output format
8187	#: "io.k8s.api.core.v1.ResourceFieldSelector": {
8188		// Container name: required for volumes, optional for env vars
8189		"containerName"?: string
8190
8191		// Specifies the output format of the exposed resources, defaults to "1"
8192		"divisor"?: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
8193
8194		// Required: resource to select
8195		"resource"!: string
8196	}
8197
8198	// ResourceRequirements describes the compute resource requirements.
8199	#: "io.k8s.api.core.v1.ResourceRequirements": {
8200		// Claims lists the names of resources, defined in spec.resourceClaims, that are
8201		// used by this container.
8202		//
8203		// This is an alpha field and requires enabling the DynamicResourceAllocation feature gate.
8204		//
8205		// This field is immutable. It can only be set for containers.
8206		"claims"?: [...#."io.k8s.api.core.v1.ResourceClaim"]
8207
8208		// Limits describes the maximum amount of compute resources allowed. More info:
8209		// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
8210		"limits"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
8211
8212		// Requests describes the minimum amount of compute resources required. If
8213		// Requests is omitted for a container, it defaults to Limits if that is
8214		// explicitly specified, otherwise to an implementation-defined value. Requests
8215		// cannot exceed Limits. More info:
8216		// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
8217		"requests"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
8218	}
8219
8220	// SELinuxOptions are the labels to be applied to the container
8221	#: "io.k8s.api.core.v1.SELinuxOptions": {
8222		// Level is SELinux level label that applies to the container.
8223		"level"?: string
8224
8225		// Role is a SELinux role label that applies to the container.
8226		"role"?: string
8227
8228		// Type is a SELinux type label that applies to the container.
8229		"type"?: string
8230
8231		// User is a SELinux user label that applies to the container.
8232		"user"?: string
8233	}
8234
8235	// ScaleIOVolumeSource represents a persistent ScaleIO volume
8236	#: "io.k8s.api.core.v1.ScaleIOVolumeSource": {
8237		// fsType is the filesystem type to mount. Must be a filesystem type supported
8238		// by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs".
8239		"fsType"?: string
8240
8241		// gateway is the host address of the ScaleIO API Gateway.
8242		"gateway"!: string
8243
8244		// protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.
8245		"protectionDomain"?: string
8246
8247		// readOnly Defaults to false (read/write). ReadOnly here will force the
8248		// ReadOnly setting in VolumeMounts.
8249		"readOnly"?: bool
8250
8251		// secretRef references to the secret for ScaleIO user and other sensitive
8252		// information. If this is not provided, Login operation will fail.
8253		"secretRef"!: #."io.k8s.api.core.v1.LocalObjectReference"
8254
8255		// sslEnabled Flag enable/disable SSL communication with Gateway, default false
8256		"sslEnabled"?: bool
8257
8258		// storageMode indicates whether the storage for a volume should be
8259		// ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.
8260		"storageMode"?: string
8261
8262		// storagePool is the ScaleIO Storage Pool associated with the protection domain.
8263		"storagePool"?: string
8264
8265		// system is the name of the storage system as configured in ScaleIO.
8266		"system"!: string
8267
8268		// volumeName is the name of a volume already created in the ScaleIO system that
8269		// is associated with this volume source.
8270		"volumeName"?: string
8271	}
8272
8273	// SeccompProfile defines a pod/container's seccomp profile settings. Only one
8274	// profile source may be set.
8275	#: "io.k8s.api.core.v1.SeccompProfile": {
8276		// localhostProfile indicates a profile defined in a file on the node should be
8277		// used. The profile must be preconfigured on the node to work. Must be a
8278		// descending path, relative to the kubelet's configured seccomp profile
8279		// location. Must be set if type is "Localhost". Must NOT be set for any other
8280		// type.
8281		"localhostProfile"?: string
8282
8283		// type indicates which kind of seccomp profile will be applied. Valid options are:
8284		//
8285		// Localhost - a profile defined in a file on the node should be used.
8286		// RuntimeDefault - the container runtime default profile should be used.
8287		// Unconfined - no profile should be applied.
8288		"type"!: string
8289	}
8290
8291	// SecretEnvSource selects a Secret to populate the environment variables with.
8292	//
8293	// The contents of the target Secret's Data field will represent the key-value
8294	// pairs as environment variables.
8295	#: "io.k8s.api.core.v1.SecretEnvSource": {
8296		// Name of the referent. This field is effectively required, but due to
8297		// backwards compatibility is allowed to be empty. Instances of this type with
8298		// an empty value here are almost certainly wrong. More info:
8299		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8300		"name"?: string
8301
8302		// Specify whether the Secret must be defined
8303		"optional"?: bool
8304	}
8305
8306	// SecretKeySelector selects a key of a Secret.
8307	#: "io.k8s.api.core.v1.SecretKeySelector": {
8308		// The key of the secret to select from. Must be a valid secret key.
8309		"key"!: string
8310
8311		// Name of the referent. This field is effectively required, but due to
8312		// backwards compatibility is allowed to be empty. Instances of this type with
8313		// an empty value here are almost certainly wrong. More info:
8314		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8315		"name"?: string
8316
8317		// Specify whether the Secret or its key must be defined
8318		"optional"?: bool
8319	}
8320
8321	// Adapts a secret into a projected volume.
8322	//
8323	// The contents of the target Secret's Data field will be presented in a
8324	// projected volume as files using the keys in the Data field as the file
8325	// names. Note that this is identical to a secret volume source without the
8326	// default mode.
8327	#: "io.k8s.api.core.v1.SecretProjection": {
8328		// items if unspecified, each key-value pair in the Data field of the referenced
8329		// Secret will be projected into the volume as a file whose name is the key and
8330		// content is the value. If specified, the listed keys will be projected into
8331		// the specified paths, and unlisted keys will not be present. If a key is
8332		// specified which is not present in the Secret, the volume setup will error
8333		// unless it is marked optional. Paths must be relative and may not contain the
8334		// '..' path or start with '..'.
8335		"items"?: [...#."io.k8s.api.core.v1.KeyToPath"]
8336
8337		// Name of the referent. This field is effectively required, but due to
8338		// backwards compatibility is allowed to be empty. Instances of this type with
8339		// an empty value here are almost certainly wrong. More info:
8340		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8341		"name"?: string
8342
8343		// optional field specify whether the Secret or its key must be defined
8344		"optional"?: bool
8345	}
8346
8347	// Adapts a Secret into a volume.
8348	//
8349	// The contents of the target Secret's Data field will be presented in a volume
8350	// as files using the keys in the Data field as the file names. Secret volumes
8351	// support ownership management and SELinux relabeling.
8352	#: "io.k8s.api.core.v1.SecretVolumeSource": {
8353		// defaultMode is Optional: mode bits used to set permissions on created files
8354		// by default. Must be an octal value between 0000 and 0777 or a decimal value
8355		// between 0 and 511. YAML accepts both octal and decimal values, JSON requires
8356		// decimal values for mode bits. Defaults to 0644. Directories within the path
8357		// are not affected by this setting. This might be in conflict with other
8358		// options that affect the file mode, like fsGroup, and the result can be other
8359		// mode bits set.
8360		"defaultMode"?: int
8361
8362		// items If unspecified, each key-value pair in the Data field of the referenced
8363		// Secret will be projected into the volume as a file whose name is the key and
8364		// content is the value. If specified, the listed keys will be projected into
8365		// the specified paths, and unlisted keys will not be present. If a key is
8366		// specified which is not present in the Secret, the volume setup will error
8367		// unless it is marked optional. Paths must be relative and may not contain the
8368		// '..' path or start with '..'.
8369		"items"?: [...#."io.k8s.api.core.v1.KeyToPath"]
8370
8371		// optional field specify whether the Secret or its keys must be defined
8372		"optional"?: bool
8373
8374		// secretName is the name of the secret in the pod's namespace to use. More
8375		// info: https://kubernetes.io/docs/concepts/storage/volumes#secret
8376		"secretName"?: string
8377	}
8378
8379	// SecurityContext holds security configuration that will be applied to a
8380	// container. Some fields are present in both SecurityContext and
8381	// PodSecurityContext. When both are set, the values in SecurityContext take
8382	// precedence.
8383	#: "io.k8s.api.core.v1.SecurityContext": {
8384		// AllowPrivilegeEscalation controls whether a process can gain more privileges
8385		// than its parent process. This bool directly controls if the no_new_privs
8386		// flag will be set on the container process. AllowPrivilegeEscalation is true
8387		// always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note
8388		// that this field cannot be set when spec.os.name is windows.
8389		"allowPrivilegeEscalation"?: bool
8390
8391		// appArmorProfile is the AppArmor options to use by this container. If set,
8392		// this profile overrides the pod's appArmorProfile. Note that this field
8393		// cannot be set when spec.os.name is windows.
8394		"appArmorProfile"?: #."io.k8s.api.core.v1.AppArmorProfile"
8395
8396		// The capabilities to add/drop when running containers. Defaults to the default
8397		// set of capabilities granted by the container runtime. Note that this field
8398		// cannot be set when spec.os.name is windows.
8399		"capabilities"?: #."io.k8s.api.core.v1.Capabilities"
8400
8401		// Run container in privileged mode. Processes in privileged containers are
8402		// essentially equivalent to root on the host. Defaults to false. Note that
8403		// this field cannot be set when spec.os.name is windows.
8404		"privileged"?: bool
8405
8406		// procMount denotes the type of proc mount to use for the containers. The
8407		// default value is Default which uses the container runtime defaults for
8408		// readonly paths and masked paths. This requires the ProcMountType feature
8409		// flag to be enabled. Note that this field cannot be set when spec.os.name is
8410		// windows.
8411		"procMount"?: string
8412
8413		// Whether this container has a read-only root filesystem. Default is false.
8414		// Note that this field cannot be set when spec.os.name is windows.
8415		"readOnlyRootFilesystem"?: bool
8416
8417		// The GID to run the entrypoint of the container process. Uses runtime default
8418		// if unset. May also be set in PodSecurityContext. If set in both
8419		// SecurityContext and PodSecurityContext, the value specified in
8420		// SecurityContext takes precedence. Note that this field cannot be set when
8421		// spec.os.name is windows.
8422		"runAsGroup"?: int
8423
8424		// Indicates that the container must run as a non-root user. If true, the
8425		// Kubelet will validate the image at runtime to ensure that it does not run as
8426		// UID 0 (root) and fail to start the container if it does. If unset or false,
8427		// no such validation will be performed. May also be set in PodSecurityContext.
8428		// If set in both SecurityContext and PodSecurityContext, the value specified
8429		// in SecurityContext takes precedence.
8430		"runAsNonRoot"?: bool
8431
8432		// The UID to run the entrypoint of the container process. Defaults to user
8433		// specified in image metadata if unspecified. May also be set in
8434		// PodSecurityContext. If set in both SecurityContext and PodSecurityContext,
8435		// the value specified in SecurityContext takes precedence. Note that this
8436		// field cannot be set when spec.os.name is windows.
8437		"runAsUser"?: int
8438
8439		// The SELinux context to be applied to the container. If unspecified, the
8440		// container runtime will allocate a random SELinux context for each container.
8441		// May also be set in PodSecurityContext. If set in both SecurityContext and
8442		// PodSecurityContext, the value specified in SecurityContext takes precedence.
8443		// Note that this field cannot be set when spec.os.name is windows.
8444		"seLinuxOptions"?: #."io.k8s.api.core.v1.SELinuxOptions"
8445
8446		// The seccomp options to use by this container. If seccomp options are provided
8447		// at both the pod & container level, the container options override the pod
8448		// options. Note that this field cannot be set when spec.os.name is windows.
8449		"seccompProfile"?: #."io.k8s.api.core.v1.SeccompProfile"
8450
8451		// The Windows specific settings applied to all containers. If unspecified, the
8452		// options from the PodSecurityContext will be used. If set in both
8453		// SecurityContext and PodSecurityContext, the value specified in
8454		// SecurityContext takes precedence. Note that this field cannot be set when
8455		// spec.os.name is linux.
8456		"windowsOptions"?: #."io.k8s.api.core.v1.WindowsSecurityContextOptions"
8457	}
8458
8459	// ServiceAccountTokenProjection represents a projected service account token
8460	// volume. This projection can be used to insert a service account token into
8461	// the pods runtime filesystem for use against APIs (Kubernetes API Server or
8462	// otherwise).
8463	#: "io.k8s.api.core.v1.ServiceAccountTokenProjection": {
8464		// audience is the intended audience of the token. A recipient of a token must
8465		// identify itself with an identifier specified in the audience of the token,
8466		// and otherwise should reject the token. The audience defaults to the
8467		// identifier of the apiserver.
8468		"audience"?: string
8469
8470		// expirationSeconds is the requested duration of validity of the service
8471		// account token. As the token approaches expiration, the kubelet volume plugin
8472		// will proactively rotate the service account token. The kubelet will start
8473		// trying to rotate the token if the token is older than 80 percent of its time
8474		// to live or if the token is older than 24 hours.Defaults to 1 hour and must
8475		// be at least 10 minutes.
8476		"expirationSeconds"?: int
8477
8478		// path is the path relative to the mount point of the file to project the token into.
8479		"path"!: string
8480	}
8481
8482	// ServicePort contains information on service's port.
8483	#: "io.k8s.api.core.v1.ServicePort": {
8484		// The application protocol for this port. This is used as a hint for
8485		// implementations to offer richer behavior for protocols that they understand.
8486		// This field follows standard Kubernetes label syntax. Valid values are
8487		// either:
8488		//
8489		// * Un-prefixed protocol names - reserved for IANA standard service names (as
8490		// per RFC-6335 and https://www.iana.org/assignments/service-names).
8491		//
8492		// * Kubernetes-defined prefixed names:
8493		// * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in
8494		// https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-
8495		// * 'kubernetes.io/ws' - WebSocket over cleartext as described in
8496		// https://www.rfc-editor.org/rfc/rfc6455
8497		// * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455
8498		//
8499		// * Other protocols should use implementation-defined prefixed names such as
8500		// mycompany.com/my-custom-protocol.
8501		"appProtocol"?: string
8502
8503		// The name of this port within the service. This must be a DNS_LABEL. All ports
8504		// within a ServiceSpec must have unique names. When considering the endpoints
8505		// for a Service, this must match the 'name' field in the EndpointPort.
8506		// Optional if only one ServicePort is defined on this service.
8507		"name"?: string
8508
8509		// The port on each node on which this service is exposed when type is NodePort
8510		// or LoadBalancer. Usually assigned by the system. If a value is specified,
8511		// in-range, and not in use it will be used, otherwise the operation will fail.
8512		// If not specified, a port will be allocated if this Service requires one. If
8513		// this field is specified when creating a Service which does not need it,
8514		// creation will fail. This field will be wiped when updating a Service to no
8515		// longer need it (e.g. changing type from NodePort to ClusterIP). More info:
8516		// https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
8517		"nodePort"?: int
8518
8519		// The port that will be exposed by this service.
8520		"port"!: int
8521
8522		// The IP protocol for this port. Supports "TCP", "UDP", and "SCTP". Default is TCP.
8523		"protocol"?: string
8524
8525		// Number or name of the port to access on the pods targeted by the service.
8526		// Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If
8527		// this is a string, it will be looked up as a named port in the target Pod's
8528		// container ports. If this is not specified, the value of the 'port' field is
8529		// used (an identity map). This field is ignored for services with
8530		// clusterIP=None, and should be omitted or set equal to the 'port' field. More
8531		// info:
8532		// https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
8533		"targetPort"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
8534	}
8535
8536	// SleepAction describes a "sleep" action.
8537	#: {
8538		"io.k8s.api.core.v1.SleepAction": {
8539			// Seconds is the number of seconds to sleep.
8540			"seconds"!: int
8541		}
8542	}
8543
8544	// Represents a StorageOS persistent volume resource.
8545	#: "io.k8s.api.core.v1.StorageOSVolumeSource": {
8546		// fsType is the filesystem type to mount. Must be a filesystem type supported
8547		// by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred
8548		// to be "ext4" if unspecified.
8549		"fsType"?: string
8550
8551		// readOnly defaults to false (read/write). ReadOnly here will force the
8552		// ReadOnly setting in VolumeMounts.
8553		"readOnly"?: bool
8554
8555		// secretRef specifies the secret to use for obtaining the StorageOS API
8556		// credentials. If not specified, default values will be attempted.
8557		"secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
8558
8559		// volumeName is the human-readable name of the StorageOS volume. Volume names
8560		// are only unique within a namespace.
8561		"volumeName"?: string
8562
8563		// volumeNamespace specifies the scope of the volume within StorageOS. If no
8564		// namespace is specified then the Pod's namespace will be used. This allows
8565		// the Kubernetes name scoping to be mirrored within StorageOS for tighter
8566		// integration. Set VolumeName to any name to override the default behaviour.
8567		// Set to "default" if you are not using namespaces within StorageOS.
8568		// Namespaces that do not pre-exist within StorageOS will be created.
8569		"volumeNamespace"?: string
8570	}
8571
8572	// Sysctl defines a kernel parameter to be set
8573	#: "io.k8s.api.core.v1.Sysctl": {
8574		// Name of a property to set
8575		"name"!: string
8576
8577		// Value of a property to set
8578		"value"!: string
8579	}
8580
8581	// TCPSocketAction describes an action based on opening a socket
8582	#: "io.k8s.api.core.v1.TCPSocketAction": {
8583		// Optional: Host name to connect to, defaults to the pod IP.
8584		"host"?: string
8585
8586		// Number or name of the port to access on the container. Number must be in the
8587		// range 1 to 65535. Name must be an IANA_SVC_NAME.
8588		"port"!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
8589	}
8590
8591	// The pod this Toleration is attached to tolerates any taint that matches the
8592	// triple <key,value,effect> using the matching operator <operator>.
8593	#: "io.k8s.api.core.v1.Toleration": {
8594		// Effect indicates the taint effect to match. Empty means match all taint
8595		// effects. When specified, allowed values are NoSchedule, PreferNoSchedule and
8596		// NoExecute.
8597		"effect"?: string
8598
8599		// Key is the taint key that the toleration applies to. Empty means match all
8600		// taint keys. If the key is empty, operator must be Exists; this combination
8601		// means to match all values and all keys.
8602		"key"?: string
8603
8604		// Operator represents a key's relationship to the value. Valid operators are
8605		// Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for
8606		// value, so that a pod can tolerate all taints of a particular category.
8607		"operator"?: string
8608
8609		// TolerationSeconds represents the period of time the toleration (which must be
8610		// of effect NoExecute, otherwise this field is ignored) tolerates the taint.
8611		// By default, it is not set, which means tolerate the taint forever (do not
8612		// evict). Zero and negative values will be treated as 0 (evict immediately) by
8613		// the system.
8614		"tolerationSeconds"?: int
8615
8616		// Value is the taint value the toleration matches to. If the operator is
8617		// Exists, the value should be empty, otherwise just a regular string.
8618		"value"?: string
8619	}
8620
8621	// TypedLocalObjectReference contains enough information to let you locate the
8622	// typed referenced object inside the same namespace.
8623	#: "io.k8s.api.core.v1.TypedLocalObjectReference": {
8624		// APIGroup is the group for the resource being referenced. If APIGroup is not
8625		// specified, the specified Kind must be in the core API group. For any other
8626		// third-party types, APIGroup is required.
8627		"apiGroup"?: string
8628
8629		// Kind is the type of resource being referenced
8630		"kind"!: string
8631
8632		// Name is the name of resource being referenced
8633		"name"!: string
8634	}
8635
8636	// TypedObjectReference contains enough information to let you locate the typed referenced object
8637	#: "io.k8s.api.core.v1.TypedObjectReference": {
8638		// APIGroup is the group for the resource being referenced. If APIGroup is not
8639		// specified, the specified Kind must be in the core API group. For any other
8640		// third-party types, APIGroup is required.
8641		"apiGroup"?: string
8642
8643		// Kind is the type of resource being referenced
8644		"kind"!: string
8645
8646		// Name is the name of resource being referenced
8647		"name"!: string
8648
8649		// Namespace is the namespace of resource being referenced Note that when a
8650		// namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is
8651		// required in the referent namespace to allow that namespace's owner to accept
8652		// the reference. See the ReferenceGrant documentation for details. (Alpha)
8653		// This field requires the CrossNamespaceVolumeDataSource feature gate to be
8654		// enabled.
8655		"namespace"?: string
8656	}
8657
8658	// Volume represents a named volume in a pod that may be accessed by any container in the pod.
8659	#: "io.k8s.api.core.v1.Volume": {
8660		// awsElasticBlockStore represents an AWS Disk resource that is attached to a
8661		// kubelet's host machine and then exposed to the pod. Deprecated:
8662		// AWSElasticBlockStore is deprecated. All operations for the in-tree
8663		// awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
8664		// More info:
8665		// https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
8666		"awsElasticBlockStore"?: #."io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource"
8667
8668		// azureDisk represents an Azure Data Disk mount on the host and bind mount to
8669		// the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree
8670		// azureDisk type are redirected to the disk.csi.azure.com CSI driver.
8671		"azureDisk"?: #."io.k8s.api.core.v1.AzureDiskVolumeSource"
8672
8673		// azureFile represents an Azure File Service mount on the host and bind mount
8674		// to the pod. Deprecated: AzureFile is deprecated. All operations for the
8675		// in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.
8676		"azureFile"?: #."io.k8s.api.core.v1.AzureFileVolumeSource"
8677
8678		// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
8679		// Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer
8680		// supported.
8681		"cephfs"?: #."io.k8s.api.core.v1.CephFSVolumeSource"
8682
8683		// cinder represents a cinder volume attached and mounted on kubelets host
8684		// machine. Deprecated: Cinder is deprecated. All operations for the in-tree
8685		// cinder type are redirected to the cinder.csi.openstack.org CSI driver. More
8686		// info: https://examples.k8s.io/mysql-cinder-pd/README.md
8687		"cinder"?: #."io.k8s.api.core.v1.CinderVolumeSource"
8688
8689		// configMap represents a configMap that should populate this volume
8690		"configMap"?: #."io.k8s.api.core.v1.ConfigMapVolumeSource"
8691
8692		// csi (Container Storage Interface) represents ephemeral storage that is
8693		// handled by certain external CSI drivers.
8694		"csi"?: #."io.k8s.api.core.v1.CSIVolumeSource"
8695
8696		// downwardAPI represents downward API about the pod that should populate this volume
8697		"downwardAPI"?: #."io.k8s.api.core.v1.DownwardAPIVolumeSource"
8698
8699		// emptyDir represents a temporary directory that shares a pod's lifetime. More
8700		// info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
8701		"emptyDir"?: #."io.k8s.api.core.v1.EmptyDirVolumeSource"
8702
8703		// ephemeral represents a volume that is handled by a cluster storage driver.
8704		// The volume's lifecycle is tied to the pod that defines it - it will be
8705		// created before the pod starts, and deleted when the pod is removed.
8706		//
8707		// Use this if: a) the volume is only needed while the pod runs, b) features of
8708		// normal volumes like restoring from snapshot or capacity
8709		// tracking are needed,
8710		// c) the storage driver is specified through a storage class, and d) the
8711		// storage driver supports dynamic volume provisioning through
8712		// a PersistentVolumeClaim (see EphemeralVolumeSource for more
8713		// information on the connection between this volume type
8714		// and PersistentVolumeClaim).
8715		//
8716		// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that
8717		// persist for longer than the lifecycle of an individual pod.
8718		//
8719		// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant
8720		// to be used that way - see the documentation of the driver for more
8721		// information.
8722		//
8723		// A pod can use both types of ephemeral volumes and persistent volumes at the same time.
8724		"ephemeral"?: #."io.k8s.api.core.v1.EphemeralVolumeSource"
8725
8726		// fc represents a Fibre Channel resource that is attached to a kubelet's host
8727		// machine and then exposed to the pod.
8728		"fc"?: #."io.k8s.api.core.v1.FCVolumeSource"
8729
8730		// flexVolume represents a generic volume resource that is provisioned/attached
8731		// using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider
8732		// using a CSIDriver instead.
8733		"flexVolume"?: #."io.k8s.api.core.v1.FlexVolumeSource"
8734
8735		// flocker represents a Flocker volume attached to a kubelet's host machine.
8736		// This depends on the Flocker control service being running. Deprecated:
8737		// Flocker is deprecated and the in-tree flocker type is no longer supported.
8738		"flocker"?: #."io.k8s.api.core.v1.FlockerVolumeSource"
8739
8740		// gcePersistentDisk represents a GCE Disk resource that is attached to a
8741		// kubelet's host machine and then exposed to the pod. Deprecated:
8742		// GCEPersistentDisk is deprecated. All operations for the in-tree
8743		// gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI
8744		// driver. More info:
8745		// https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
8746		"gcePersistentDisk"?: #."io.k8s.api.core.v1.GCEPersistentDiskVolumeSource"
8747
8748		// gitRepo represents a git repository at a particular revision. Deprecated:
8749		// GitRepo is deprecated. To provision a container with a git repo, mount an
8750		// EmptyDir into an InitContainer that clones the repo using git, then mount
8751		// the EmptyDir into the Pod's container.
8752		"gitRepo"?: #."io.k8s.api.core.v1.GitRepoVolumeSource"
8753
8754		// glusterfs represents a Glusterfs mount on the host that shares a pod's
8755		// lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type
8756		// is no longer supported. More info:
8757		// https://examples.k8s.io/volumes/glusterfs/README.md
8758		"glusterfs"?: #."io.k8s.api.core.v1.GlusterfsVolumeSource"
8759
8760		// hostPath represents a pre-existing file or directory on the host machine that
8761		// is directly exposed to the container. This is generally used for system
8762		// agents or other privileged things that are allowed to see the host machine.
8763		// Most containers will NOT need this. More info:
8764		// https://kubernetes.io/docs/concepts/storage/volumes#hostpath
8765		"hostPath"?: #."io.k8s.api.core.v1.HostPathVolumeSource"
8766
8767		// image represents an OCI object (a container image or artifact) pulled and
8768		// mounted on the kubelet's host machine. The volume is resolved at pod startup
8769		// depending on which PullPolicy value is provided:
8770		//
8771		// - Always: the kubelet always attempts to pull the reference. Container
8772		// creation will fail If the pull fails. - Never: the kubelet never pulls the
8773		// reference and only uses a local image or artifact. Container creation will
8774		// fail if the reference isn't present. - IfNotPresent: the kubelet pulls if
8775		// the reference isn't already present on disk. Container creation will fail if
8776		// the reference isn't present and the pull fails.
8777		//
8778		// The volume gets re-resolved if the pod gets deleted and recreated, which
8779		// means that new remote content will become available on pod recreation. A
8780		// failure to resolve or pull the image during pod startup will block
8781		// containers from starting and may add significant latency. Failures will be
8782		// retried using normal volume backoff and will be reported on the pod reason
8783		// and message. The types of objects that may be mounted by this volume are
8784		// defined by the container runtime implementation on a host machine and at
8785		// minimum must include all valid types supported by the container image field.
8786		// The OCI object gets mounted in a single directory
8787		// (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers
8788		// in the same way as for container images. The volume will be mounted
8789		// read-only (ro) and non-executable files (noexec). Sub path mounts for
8790		// containers are not supported (spec.containers[*].volumeMounts.subpath)
8791		// before 1.33. The field spec.securityContext.fsGroupChangePolicy has no
8792		// effect on this volume type.
8793		"image"?: #."io.k8s.api.core.v1.ImageVolumeSource"
8794
8795		// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host
8796		// machine and then exposed to the pod. More info:
8797		// https://examples.k8s.io/volumes/iscsi/README.md
8798		"iscsi"?: #."io.k8s.api.core.v1.ISCSIVolumeSource"
8799
8800		// name of the volume. Must be a DNS_LABEL and unique within the pod. More info:
8801		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8802		"name"!: string
8803
8804		// nfs represents an NFS mount on the host that shares a pod's lifetime More
8805		// info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
8806		"nfs"?: #."io.k8s.api.core.v1.NFSVolumeSource"
8807
8808		// persistentVolumeClaimVolumeSource represents a reference to a
8809		// PersistentVolumeClaim in the same namespace. More info:
8810		// https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
8811		"persistentVolumeClaim"?: #."io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource"
8812
8813		// photonPersistentDisk represents a PhotonController persistent disk attached
8814		// and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is
8815		// deprecated and the in-tree photonPersistentDisk type is no longer supported.
8816		"photonPersistentDisk"?: #."io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource"
8817
8818		// portworxVolume represents a portworx volume attached and mounted on kubelets
8819		// host machine. Deprecated: PortworxVolume is deprecated. All operations for
8820		// the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI
8821		// driver when the CSIMigrationPortworx feature-gate is on.
8822		"portworxVolume"?: #."io.k8s.api.core.v1.PortworxVolumeSource"
8823
8824		// projected items for all in one resources secrets, configmaps, and downward API
8825		"projected"?: #."io.k8s.api.core.v1.ProjectedVolumeSource"
8826
8827		// quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
8828		// Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer
8829		// supported.
8830		"quobyte"?: #."io.k8s.api.core.v1.QuobyteVolumeSource"
8831
8832		// rbd represents a Rados Block Device mount on the host that shares a pod's
8833		// lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no
8834		// longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md
8835		"rbd"?: #."io.k8s.api.core.v1.RBDVolumeSource"
8836
8837		// scaleIO represents a ScaleIO persistent volume attached and mounted on
8838		// Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO
8839		// type is no longer supported.
8840		"scaleIO"?: #."io.k8s.api.core.v1.ScaleIOVolumeSource"
8841
8842		// secret represents a secret that should populate this volume. More info:
8843		// https://kubernetes.io/docs/concepts/storage/volumes#secret
8844		"secret"?: #."io.k8s.api.core.v1.SecretVolumeSource"
8845
8846		// storageOS represents a StorageOS volume attached and mounted on Kubernetes
8847		// nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is
8848		// no longer supported.
8849		"storageos"?: #."io.k8s.api.core.v1.StorageOSVolumeSource"
8850
8851		// vsphereVolume represents a vSphere volume attached and mounted on kubelets
8852		// host machine. Deprecated: VsphereVolume is deprecated. All operations for
8853		// the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com
8854		// CSI driver.
8855		"vsphereVolume"?: #."io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource"
8856	}
8857
8858	// volumeDevice describes a mapping of a raw block device within a container.
8859	#: "io.k8s.api.core.v1.VolumeDevice": {
8860		// devicePath is the path inside of the container that the device will be mapped to.
8861		"devicePath"!: string
8862
8863		// name must match the name of a persistentVolumeClaim in the pod
8864		"name"!: string
8865	}
8866
8867	// VolumeMount describes a mounting of a Volume within a container.
8868	#: "io.k8s.api.core.v1.VolumeMount": {
8869		// Path within the container at which the volume should be mounted. Must not contain ':'.
8870		"mountPath"!: string
8871
8872		// mountPropagation determines how mounts are propagated from the host to
8873		// container and the other way around. When not set, MountPropagationNone is
8874		// used. This field is beta in 1.10. When RecursiveReadOnly is set to
8875		// IfPossible or to Enabled, MountPropagation must be None or unspecified
8876		// (which defaults to None).
8877		"mountPropagation"?: string
8878
8879		// This must match the Name of a Volume.
8880		"name"!: string
8881
8882		// Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.
8883		"readOnly"?: bool
8884
8885		// RecursiveReadOnly specifies whether read-only mounts should be handled recursively.
8886		//
8887		// If ReadOnly is false, this field has no meaning and must be unspecified.
8888		//
8889		// If ReadOnly is true, and this field is set to Disabled, the mount is not made
8890		// recursively read-only. If this field is set to IfPossible, the mount is made
8891		// recursively read-only, if it is supported by the container runtime. If this
8892		// field is set to Enabled, the mount is made recursively read-only if it is
8893		// supported by the container runtime, otherwise the pod will not be started
8894		// and an error will be generated to indicate the reason.
8895		//
8896		// If this field is set to IfPossible or Enabled, MountPropagation must be set
8897		// to None (or be unspecified, which defaults to None).
8898		//
8899		// If this field is not specified, it is treated as an equivalent of Disabled.
8900		"recursiveReadOnly"?: string
8901
8902		// Path within the volume from which the container's volume should be mounted.
8903		// Defaults to "" (volume's root).
8904		"subPath"?: string
8905
8906		// Expanded path within the volume from which the container's volume should be
8907		// mounted. Behaves similarly to SubPath but environment variable references
8908		// $(VAR_NAME) are expanded using the container's environment. Defaults to ""
8909		// (volume's root). SubPathExpr and SubPath are mutually exclusive.
8910		"subPathExpr"?: string
8911	}
8912
8913	// Projection that may be projected along with other supported volume types.
8914	// Exactly one of these fields must be set.
8915	#: "io.k8s.api.core.v1.VolumeProjection": {
8916		// ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of
8917		// ClusterTrustBundle objects in an auto-updating file.
8918		//
8919		// Alpha, gated by the ClusterTrustBundleProjection feature gate.
8920		//
8921		// ClusterTrustBundle objects can either be selected by name, or by the
8922		// combination of signer name and a label selector.
8923		//
8924		// Kubelet performs aggressive normalization of the PEM contents written into
8925		// the pod filesystem. Esoteric PEM features such as inter-block comments and
8926		// block headers are stripped. Certificates are deduplicated. The ordering of
8927		// certificates within the file is arbitrary, and Kubelet may change the order
8928		// over time.
8929		"clusterTrustBundle"?: #."io.k8s.api.core.v1.ClusterTrustBundleProjection"
8930
8931		// configMap information about the configMap data to project
8932		"configMap"?: #."io.k8s.api.core.v1.ConfigMapProjection"
8933
8934		// downwardAPI information about the downwardAPI data to project
8935		"downwardAPI"?: #."io.k8s.api.core.v1.DownwardAPIProjection"
8936
8937		// secret information about the secret data to project
8938		"secret"?: #."io.k8s.api.core.v1.SecretProjection"
8939
8940		// serviceAccountToken is information about the serviceAccountToken data to project
8941		"serviceAccountToken"?: #."io.k8s.api.core.v1.ServiceAccountTokenProjection"
8942	}
8943
8944	// VolumeResourceRequirements describes the storage resource requirements for a volume.
8945	#: "io.k8s.api.core.v1.VolumeResourceRequirements": {
8946		// Limits describes the maximum amount of compute resources allowed. More info:
8947		// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
8948		"limits"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
8949
8950		// Requests describes the minimum amount of compute resources required. If
8951		// Requests is omitted for a container, it defaults to Limits if that is
8952		// explicitly specified, otherwise to an implementation-defined value. Requests
8953		// cannot exceed Limits. More info:
8954		// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
8955		"requests"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
8956	}
8957
8958	// Represents a vSphere volume resource.
8959	#: "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": {
8960		// fsType is filesystem type to mount. Must be a filesystem type supported by
8961		// the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to
8962		// be "ext4" if unspecified.
8963		"fsType"?: string
8964
8965		// storagePolicyID is the storage Policy Based Management (SPBM) profile ID
8966		// associated with the StoragePolicyName.
8967		"storagePolicyID"?: string
8968
8969		// storagePolicyName is the storage Policy Based Management (SPBM) profile name.
8970		"storagePolicyName"?: string
8971
8972		// volumePath is the path that identifies vSphere volume vmdk
8973		"volumePath"!: string
8974	}
8975
8976	// The weights of all of the matched WeightedPodAffinityTerm fields are added
8977	// per-node to find the most preferred node(s)
8978	#: "io.k8s.api.core.v1.WeightedPodAffinityTerm": {
8979		// Required. A pod affinity term, associated with the corresponding weight.
8980		"podAffinityTerm"!: #."io.k8s.api.core.v1.PodAffinityTerm"
8981
8982		// weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
8983		"weight"!: int
8984	}
8985
8986	// WindowsSecurityContextOptions contain Windows-specific options and credentials.
8987	#: "io.k8s.api.core.v1.WindowsSecurityContextOptions": {
8988		// GMSACredentialSpec is where the GMSA admission webhook
8989		// (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of
8990		// the GMSA credential spec named by the GMSACredentialSpecName field.
8991		"gmsaCredentialSpec"?: string
8992
8993		// GMSACredentialSpecName is the name of the GMSA credential spec to use.
8994		"gmsaCredentialSpecName"?: string
8995
8996		// HostProcess determines if a container should be run as a 'Host Process'
8997		// container. All of a Pod's containers must have the same effective
8998		// HostProcess value (it is not allowed to have a mix of HostProcess containers
8999		// and non-HostProcess containers). In addition, if HostProcess is true then
9000		// HostNetwork must also be set to true.
9001		"hostProcess"?: bool
9002
9003		// The UserName in Windows to run the entrypoint of the container process.
9004		// Defaults to the user specified in image metadata if unspecified. May also be
9005		// set in PodSecurityContext. If set in both SecurityContext and
9006		// PodSecurityContext, the value specified in SecurityContext takes precedence.
9007		"runAsUserName"?: string
9008	}
9009
9010	// PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.
9011	#: "io.k8s.api.policy.v1.PodDisruptionBudgetSpec": {
9012		// An eviction is allowed if at most "maxUnavailable" pods selected by
9013		// "selector" are unavailable after the eviction, i.e. even in absence of the
9014		// evicted pod. For example, one can prevent all voluntary evictions by
9015		// specifying 0. This is a mutually exclusive setting with "minAvailable".
9016		"maxUnavailable"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
9017
9018		// An eviction is allowed if at least "minAvailable" pods selected by "selector"
9019		// will still be available after the eviction, i.e. even in the absence of the
9020		// evicted pod. So for example you can prevent all voluntary evictions by
9021		// specifying "100%".
9022		"minAvailable"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
9023
9024		// Label query over pods whose evictions are managed by the disruption budget. A
9025		// null selector will match no pods, while an empty ({}) selector will select
9026		// all pods within the namespace.
9027		"selector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
9028
9029		// UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods
9030		// should be considered for eviction. Current implementation considers healthy
9031		// pods, as pods that have status.conditions item with
9032		// type="Ready",status="True".
9033		//
9034		// Valid policies are IfHealthyBudget and AlwaysAllow. If no policy is
9035		// specified, the default behavior will be used, which corresponds to the
9036		// IfHealthyBudget policy.
9037		//
9038		// IfHealthyBudget policy means that running pods (status.phase="Running"), but
9039		// not yet healthy can be evicted only if the guarded application is not
9040		// disrupted (status.currentHealthy is at least equal to
9041		// status.desiredHealthy). Healthy pods will be subject to the PDB for
9042		// eviction.
9043		//
9044		// AlwaysAllow policy means that all running pods (status.phase="Running"), but
9045		// not yet healthy are considered disrupted and can be evicted regardless of
9046		// whether the criteria in a PDB is met. This means perspective running pods of
9047		// a disrupted application might not get a chance to become healthy. Healthy
9048		// pods will be subject to the PDB for eviction.
9049		//
9050		// Additional policies may be added in the future. Clients making eviction
9051		// decisions should disallow eviction of unhealthy pods if they encounter an
9052		// unrecognized policy in this field.
9053		"unhealthyPodEvictionPolicy"?: string
9054	}
9055
9056	// Quantity is a fixed-point representation of a number. It provides convenient
9057	// marshaling/unmarshaling in JSON and YAML, in addition to String() and
9058	// AsInt64() accessors.
9059	//
9060	// The serialization format is:
9061	//
9062	// ``` <quantity> ::= <signedNumber><suffix>
9063	//
9064	// (Note that <suffix> may be empty, from the "" case in <decimalSI>.)
9065	//
9066	// <digit> ::= 0 | 1 | ... | 9 <digits> ::= <digit> | <digit><digits> <number>
9067	// ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign> ::= "+" |
9068	// "-" <signedNumber> ::= <number> | <sign><number> <suffix> ::= <binarySI> |
9069	// <decimalExponent> | <decimalSI> <binarySI> ::= Ki | Mi | Gi | Ti | Pi | Ei
9070	//
9071	// (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
9072	//
9073	// <decimalSI> ::= m | "" | k | M | G | T | P | E
9074	//
9075	// (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
9076	//
9077	// <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber> ```
9078	//
9079	// No matter which of the three exponent forms is used, no quantity may
9080	// represent a number greater than 2^63-1 in magnitude, nor may it have more
9081	// than 3 decimal places. Numbers larger or more precise will be capped or
9082	// rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the
9083	// future if we require larger or smaller quantities.
9084	//
9085	// When a Quantity is parsed from a string, it will remember the type of suffix
9086	// it had, and will use the same type again when it is serialized.
9087	//
9088	// Before serializing, Quantity will be put in "canonical form". This means that
9089	// Exponent/suffix will be adjusted up or down (with a corresponding increase
9090	// or decrease in Mantissa) such that:
9091	//
9092	// - No precision is lost - No fractional digits will be emitted - The exponent
9093	// (or suffix) is as large as possible.
9094	//
9095	// The sign will be omitted unless the number is negative.
9096	//
9097	// Examples:
9098	//
9099	// - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized as "1536Mi"
9100	//
9101	// Note that the quantity will NEVER be internally represented by a floating
9102	// point number. That is the whole point of this exercise.
9103	//
9104	// Non-canonical values will still parse as long as they are well formed, but
9105	// will be re-emitted in their canonical form. (So always use canonical form,
9106	// or don't diff.)
9107	//
9108	// This format is intended to make it difficult to use these numbers without
9109	// writing some sort of special handling code in the hopes that that will cause
9110	// implementors to also use a fixed point implementation.
9111	#: "io.k8s.apimachinery.pkg.api.resource.Quantity": string
9112
9113	// CreateOptions may be provided when creating an API object.
9114	#: "io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions": {
9115		// When present, indicates that modifications should not be
9116		// persisted. An invalid or unrecognized dryRun directive will
9117		// result in an error response and no further processing of the
9118		// request. Valid values are:
9119		// - All: all dry run stages will be processed
9120		// +optional
9121		// +listType=atomic
9122		"dryRun"?: [...string]
9123
9124		// fieldManager is a name associated with the actor or entity
9125		// that is making these changes. The value must be less than or
9126		// 128 characters long, and only contain printable characters,
9127		// as defined by https://golang.org/pkg/unicode/#IsPrint.
9128		// +optional
9129		"fieldManager"?: string
9130
9131		// fieldValidation instructs the server on how to handle
9132		// objects in the request (POST/PUT/PATCH) containing unknown
9133		// or duplicate fields. Valid values are:
9134		// - Ignore: This will ignore any unknown fields that are silently
9135		// dropped from the object, and will ignore all but the last duplicate
9136		// field that the decoder encounters. This is the default behavior
9137		// prior to v1.23.
9138		// - Warn: This will send a warning via the standard warning response
9139		// header for each unknown field that is dropped from the object, and
9140		// for each duplicate field that is encountered. The request will
9141		// still succeed if there are no other errors, and will only persist
9142		// the last of any duplicate fields. This is the default in v1.23+
9143		// - Strict: This will fail the request with a BadRequest error if
9144		// any unknown fields would be dropped from the object, or if any
9145		// duplicate fields are present. The error returned from the server
9146		// will contain all unknown and duplicate fields encountered.
9147		// +optional
9148		"fieldValidation"?: string
9149	}
9150
9151	// FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.
9152	//
9153	// Each key is either a '.' representing the field itself, and will always map
9154	// to an empty set, or a string representing a sub-field or item. The string
9155	// will follow one of these four formats: 'f:<name>', where <name> is the name
9156	// of a field in a struct, or key in a map 'v:<value>', where <value> is the
9157	// exact json formatted value of a list item 'i:<index>', where <index> is
9158	// position of a item in a list 'k:<keys>', where <keys> is a map of a list
9159	// item's key fields to their unique values If a key maps to an empty Fields
9160	// value, the field that key represents is part of the set.
9161	//
9162	// The exact format is defined in sigs.k8s.io/structured-merge-diff
9163	#: "io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1": {}
9164
9165	// GroupVersionResource unambiguously identifies a resource. It doesn't
9166	// anonymously include GroupVersion
9167	// to avoid automatic coercion. It doesn't use a GroupVersion to avoid custom marshalling
9168	//
9169	// +protobuf.options.(gogoproto.goproto_stringer)=false
9170	#: "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource": {
9171		"group"?:    string
9172		"resource"?: string
9173		"version"?:  string
9174	}
9175
9176	// A label selector is a label query over a set of resources. The result of
9177	// matchLabels and matchExpressions are ANDed. An empty label selector matches
9178	// all objects. A null label selector matches no objects.
9179	#: "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector": {
9180		// matchExpressions is a list of label selector requirements. The requirements are ANDed.
9181		"matchExpressions"?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement"]
9182
9183		// matchLabels is a map of {key,value} pairs. A single {key,value} in the
9184		// matchLabels map is equivalent to an element of matchExpressions, whose key
9185		// field is "key", the operator is "In", and the values array contains only
9186		// "value". The requirements are ANDed.
9187		"matchLabels"?: [string]: string
9188	}
9189
9190	// A label selector requirement is a selector that contains values, a key, and
9191	// an operator that relates the key and values.
9192	#: "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": {
9193		// key is the label key that the selector applies to.
9194		"key"!: string
9195
9196		// operator represents a key's relationship to a set of values. Valid operators
9197		// are In, NotIn, Exists and DoesNotExist.
9198		"operator"!: string
9199
9200		// values is an array of string values. If the operator is In or NotIn, the
9201		// values array must be non-empty. If the operator is Exists or DoesNotExist,
9202		// the values array must be empty. This array is replaced during a strategic
9203		// merge patch.
9204		"values"?: [...string]
9205	}
9206
9207	// ListMeta describes metadata that synthetic resources must have, including
9208	// lists and various status objects. A resource may have only one of
9209	// {ObjectMeta, ListMeta}.
9210	#: "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta": {
9211		// continue may be set if the user set a limit on the number of items returned,
9212		// and indicates that the server has more data available. The value is opaque
9213		// and may be used to issue another request to the endpoint that served this
9214		// list to retrieve the next set of available objects. Continuing a consistent
9215		// list may not be possible if the server configuration has changed or more
9216		// than a few minutes have passed. The resourceVersion field returned when
9217		// using this continue value will be identical to the value in the first
9218		// response, unless you have received this token from an error message.
9219		"continue"?: string
9220
9221		// remainingItemCount is the number of subsequent items in the list which are
9222		// not included in this list response. If the list request contained label or
9223		// field selectors, then the number of remaining items is unknown and the field
9224		// will be left unset and omitted during serialization. If the list is complete
9225		// (either because it is not chunking or because this is the last chunk), then
9226		// there are no more remaining items and this field will be left unset and
9227		// omitted during serialization. Servers older than v1.15 do not set this
9228		// field. The intended use of the remainingItemCount is *estimating* the size
9229		// of a collection. Clients should not rely on the remainingItemCount to be set
9230		// or to be exact.
9231		"remainingItemCount"?: int
9232
9233		// String that identifies the server's internal version of this object that can
9234		// be used by clients to determine when objects have changed. Value must be
9235		// treated as opaque by clients and passed unmodified back to the server.
9236		// Populated by the system. Read-only. More info:
9237		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
9238		"resourceVersion"?: string
9239
9240		// Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.
9241		"selfLink"?: string
9242	}
9243
9244	// ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the
9245	// resource that the fieldset applies to.
9246	#: "io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry": {
9247		// APIVersion defines the version of this resource that this field set applies
9248		// to. The format is "group/version" just like the top-level APIVersion field.
9249		// It is necessary to track the version of a field set because it cannot be
9250		// automatically converted.
9251		"apiVersion"?: string
9252
9253		// FieldsType is the discriminator for the different fields format and version.
9254		// There is currently only one possible value: "FieldsV1"
9255		"fieldsType"?: string
9256
9257		// FieldsV1 holds the first JSON version format as described in the "FieldsV1" type.
9258		"fieldsV1"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1"
9259
9260		// Manager is an identifier of the workflow managing these fields.
9261		"manager"?: string
9262
9263		// Operation is the type of operation which lead to this ManagedFieldsEntry
9264		// being created. The only valid values for this field are 'Apply' and
9265		// 'Update'.
9266		"operation"?: string
9267
9268		// Subresource is the name of the subresource used to update that object, or
9269		// empty string if the object was updated through the main resource. The value
9270		// of this field is used to distinguish between managers, even if they share
9271		// the same name. For example, a status update will be distinct from a regular
9272		// update using the same manager name. Note that the APIVersion field is not
9273		// related to the Subresource field and it always corresponds to the version of
9274		// the main resource.
9275		"subresource"?: string
9276
9277		// Time is the timestamp of when the ManagedFields entry was added. The
9278		// timestamp will also be updated if a field is added, the manager changes any
9279		// of the owned fields value or removes a field. The timestamp does not update
9280		// when a field is removed from the entry because another manager took it over.
9281		"time"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
9282	}
9283
9284	// MicroTime is version of Time with microsecond level precision.
9285	#: "io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime": time.Time
9286
9287	// ObjectMeta is metadata that all persisted resources must have, which includes
9288	// all objects users must create.
9289	#: "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": {
9290		// Annotations is an unstructured key value map stored with a resource that may
9291		// be set by external tools to store and retrieve arbitrary metadata. They are
9292		// not queryable and should be preserved when modifying objects. More info:
9293		// https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations
9294		"annotations"?: [string]: string
9295
9296		// CreationTimestamp is a timestamp representing the server time when this
9297		// object was created. It is not guaranteed to be set in happens-before order
9298		// across separate operations. Clients may not set this value. It is
9299		// represented in RFC3339 form and is in UTC.
9300		//
9301		// Populated by the system. Read-only. Null for lists. More info:
9302		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
9303		"creationTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
9304
9305		// Number of seconds allowed for this object to gracefully terminate before it
9306		// will be removed from the system. Only set when deletionTimestamp is also
9307		// set. May only be shortened. Read-only.
9308		"deletionGracePeriodSeconds"?: int
9309
9310		// DeletionTimestamp is RFC 3339 date and time at which this resource will be
9311		// deleted. This field is set by the server when a graceful deletion is
9312		// requested by the user, and is not directly settable by a client. The
9313		// resource is expected to be deleted (no longer visible from resource lists,
9314		// and not reachable by name) after the time in this field, once the finalizers
9315		// list is empty. As long as the finalizers list contains items, deletion is
9316		// blocked. Once the deletionTimestamp is set, this value may not be unset or
9317		// be set further into the future, although it may be shortened or the resource
9318		// may be deleted prior to this time. For example, a user may request that a
9319		// pod is deleted in 30 seconds. The Kubelet will react by sending a graceful
9320		// termination signal to the containers in the pod. After that 30 seconds, the
9321		// Kubelet will send a hard termination signal (SIGKILL) to the container and
9322		// after cleanup, remove the pod from the API. In the presence of network
9323		// partitions, this object may still exist after this timestamp, until an
9324		// administrator or automated process can determine the resource is fully
9325		// terminated. If not set, graceful deletion of the object has not been
9326		// requested.
9327		//
9328		// Populated by the system when a graceful deletion is requested. Read-only.
9329		// More info:
9330		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
9331		"deletionTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
9332
9333		// Must be empty before the object is deleted from the registry. Each entry is
9334		// an identifier for the responsible component that will remove the entry from
9335		// the list. If the deletionTimestamp of the object is non-nil, entries in this
9336		// list can only be removed. Finalizers may be processed and removed in any
9337		// order. Order is NOT enforced because it introduces significant risk of stuck
9338		// finalizers. finalizers is a shared field, any actor with permission can
9339		// reorder it. If the finalizer list is processed in order, then this can lead
9340		// to a situation in which the component responsible for the first finalizer in
9341		// the list is waiting for a signal (field value, external system, or other)
9342		// produced by a component responsible for a finalizer later in the list,
9343		// resulting in a deadlock. Without enforced ordering finalizers are free to
9344		// order amongst themselves and are not vulnerable to ordering changes in the
9345		// list.
9346		"finalizers"?: [...string]
9347
9348		// GenerateName is an optional prefix, used by the server, to generate a unique
9349		// name ONLY IF the Name field has not been provided. If this field is used,
9350		// the name returned to the client will be different than the name passed. This
9351		// value will also be combined with a unique suffix. The provided value has the
9352		// same validation rules as the Name field, and may be truncated by the length
9353		// of the suffix required to make the value unique on the server.
9354		//
9355		// If this field is specified and the generated name exists, the server will return a 409.
9356		//
9357		// Applied only if Name is not specified. More info:
9358		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency
9359		"generateName"?: string
9360
9361		// A sequence number representing a specific generation of the desired state.
9362		// Populated by the system. Read-only.
9363		"generation"?: int
9364
9365		// Map of string keys and values that can be used to organize and categorize
9366		// (scope and select) objects. May match selectors of replication controllers
9367		// and services. More info:
9368		// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels
9369		"labels"?: [string]: string
9370
9371		// ManagedFields maps workflow-id and version to the set of fields that are
9372		// managed by that workflow. This is mostly for internal housekeeping, and
9373		// users typically shouldn't need to set or understand this field. A workflow
9374		// can be the user's name, a controller's name, or the name of a specific apply
9375		// path like "ci-cd". The set of fields is always in the version that the
9376		// workflow used when modifying the object.
9377		"managedFields"?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry"]
9378
9379		// Name must be unique within a namespace. Is required when creating resources,
9380		// although some resources may allow a client to request the generation of an
9381		// appropriate name automatically. Name is primarily intended for creation
9382		// idempotence and configuration definition. Cannot be updated. More info:
9383		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names
9384		"name"?: string
9385
9386		// Namespace defines the space within which each name must be unique. An empty
9387		// namespace is equivalent to the "default" namespace, but "default" is the
9388		// canonical representation. Not all objects are required to be scoped to a
9389		// namespace - the value of this field for those objects will be empty.
9390		//
9391		// Must be a DNS_LABEL. Cannot be updated. More info:
9392		// https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces
9393		"namespace"?: string
9394
9395		// List of objects depended by this object. If ALL objects in the list have been
9396		// deleted, this object will be garbage collected. If this object is managed by
9397		// a controller, then an entry in this list will point to this controller, with
9398		// the controller field set to true. There cannot be more than one managing
9399		// controller.
9400		"ownerReferences"?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference"]
9401
9402		// An opaque value that represents the internal version of this object that can
9403		// be used by clients to determine when objects have changed. May be used for
9404		// optimistic concurrency, change detection, and the watch operation on a
9405		// resource or set of resources. Clients must treat these values as opaque and
9406		// passed unmodified back to the server. They may only be valid for a
9407		// particular resource or set of resources.
9408		//
9409		// Populated by the system. Read-only. Value must be treated as opaque by
9410		// clients and . More info:
9411		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
9412		"resourceVersion"?: string
9413
9414		// Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.
9415		"selfLink"?: string
9416
9417		// UID is the unique in time and space value for this object. It is typically
9418		// generated by the server on successful creation of a resource and is not
9419		// allowed to change on PUT operations.
9420		//
9421		// Populated by the system. Read-only. More info:
9422		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids
9423		"uid"?: string
9424	}
9425
9426	// OwnerReference contains enough information to let you identify an owning
9427	// object. An owning object must be in the same namespace as the dependent, or
9428	// be cluster-scoped, so there is no namespace field.
9429	#: "io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference": {
9430		// API version of the referent.
9431		"apiVersion"!: string
9432
9433		// If true, AND if the owner has the "foregroundDeletion" finalizer, then the
9434		// owner cannot be deleted from the key-value store until this reference is
9435		// removed. See
9436		// https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion
9437		// for how the garbage collector interacts with this field and enforces the
9438		// foreground deletion. Defaults to false. To set this field, a user needs
9439		// "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will
9440		// be returned.
9441		"blockOwnerDeletion"?: bool
9442
9443		// If true, this reference points to the managing controller.
9444		"controller"?: bool
9445
9446		// Kind of the referent. More info:
9447		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
9448		"kind"!: string
9449
9450		// Name of the referent. More info:
9451		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names
9452		"name"!: string
9453
9454		// UID of the referent. More info:
9455		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids
9456		"uid"!: string
9457	}
9458
9459	// Time is a wrapper around time.Time which supports correct marshaling to YAML
9460	// and JSON. Wrappers are provided for many of the factory methods that the
9461	// time package offers.
9462	#: "io.k8s.apimachinery.pkg.apis.meta.v1.Time": time.Time
9463
9464	#: "io.k8s.apimachinery.pkg.util.intstr.IntOrString": string
9465
9466	#: "sensor.CreateSensorRequest": {
9467		"createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
9468		"namespace"?:     string
9469		"sensor"?:        #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"
9470	}
9471
9472	#: "sensor.DeleteSensorResponse": {}
9473
9474	// structured log entry
9475	#: "sensor.LogEntry": {
9476		// optional - trigger dependency name
9477		"dependencyName"?: string
9478
9479		// optional - Cloud Event context
9480		"eventContext"?: string
9481		"level"?:        string
9482		"msg"?:          string
9483		"namespace"?:    string
9484		"sensorName"?:   string
9485		"time"?:         #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
9486
9487		// optional - any trigger name
9488		"triggerName"?: string
9489	}
9490
9491	#: "sensor.SensorWatchEvent": {
9492		"object"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"
9493		"type"?:   string
9494	}
9495
9496	#: "sensor.UpdateSensorRequest": {
9497		"name"?:      string
9498		"namespace"?: string
9499		"sensor"?:    #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"
9500	}
9501
9502	#: "sync.CreateSyncLimitRequest": {
9503		"cmName"?:    string
9504		"key"?:       string
9505		"limit"?:     int
9506		"namespace"?: string
9507		"type"?:      #."sync.SyncConfigType"
9508	}
9509
9510	#: "sync.DeleteSyncLimitResponse": {}
9511
9512	#: "sync.SyncConfigType": "CONFIGMAP" | "DATABASE"
9513
9514	#: "sync.SyncLimitResponse": {
9515		"cmName"?:    string
9516		"key"?:       string
9517		"limit"?:     int
9518		"namespace"?: string
9519		"type"?:      #."sync.SyncConfigType"
9520	}
9521
9522	#: "sync.UpdateSyncLimitRequest": {
9523		"cmName"?:    string
9524		"key"?:       string
9525		"limit"?:     int
9526		"namespace"?: string
9527		"type"?:      #."sync.SyncConfigType"
9528	}
9529}