cue.dev/x/argo/workflows@v0.3.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, [#."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate" & {}, #."io.argoproj.workflow.v1alpha1.CronWorkflow" & {}, #."io.argoproj.workflow.v1alpha1.Workflow" & {}, #."io.argoproj.workflow.v1alpha1.WorkflowEventBinding" & {}, #."io.argoproj.workflow.v1alpha1.WorkflowTemplate" & {}])
    9
   10	#: "eventsource.CreateEventSourceRequest": {
   11		"eventSource"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"
   12		"namespace"?:   string
   13	}
   14
   15	#: "eventsource.EventSourceDeletedResponse": {}
   16
   17	#: "eventsource.EventSourceWatchEvent": {
   18		"object"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"
   19		"type"?:   string
   20	}
   21
   22	// structured log entry
   23	#: "eventsource.LogEntry": {
   24		// optional - the event name (e.g. `example`)
   25		"eventName"?:       string
   26		"eventSourceName"?: string
   27
   28		// optional - the event source type (e.g. `webhook`)
   29		"eventSourceType"?: string
   30		"level"?:           string
   31		"msg"?:             string
   32		"namespace"?:       string
   33		"time"?:            #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
   34	}
   35
   36	#: "eventsource.UpdateEventSourceRequest": {
   37		"eventSource"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"
   38		"name"?:        string
   39		"namespace"?:   string
   40	}
   41
   42	// AMQPConsumeConfig holds the configuration to immediately starts
   43	// delivering queued messages
   44	// +k8s:openapi-gen=true
   45	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPConsumeConfig": {
   46		// AutoAck when true, the server will acknowledge deliveries to
   47		// this consumer prior to writing
   48		// the delivery to the network
   49		// +optional
   50		"autoAck"?: bool
   51
   52		// ConsumerTag is the identity of the consumer included in every
   53		// delivery
   54		// +optional
   55		"consumerTag"?: string
   56
   57		// Exclusive when true, the server will ensure that this is the
   58		// sole consumer from this queue
   59		// +optional
   60		"exclusive"?: bool
   61
   62		// NoLocal flag is not supported by RabbitMQ
   63		// +optional
   64		"noLocal"?: bool
   65
   66		// NowWait when true, do not wait for the server to confirm the
   67		// request and immediately begin deliveries
   68		// +optional
   69		"noWait"?: bool
   70	}
   71
   72	// AMQPEventSource refers to an event-source for AMQP stream
   73	// events
   74	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPEventSource": {
   75		// Auth hosts secret selectors for username and password
   76		// +optional
   77		"auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
   78
   79		// Backoff holds parameters applied to connection.
   80		// +optional
   81		"connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
   82
   83		// Consume holds the configuration to immediately starts
   84		// delivering queued messages
   85		// For more information, visit
   86		// https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.Consume
   87		// +optional
   88		"consume"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPConsumeConfig"
   89
   90		// ExchangeDeclare holds the configuration for the exchange on the
   91		// server
   92		// For more information, visit
   93		// https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.ExchangeDeclare
   94		// +optional
   95		"exchangeDeclare"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPExchangeDeclareConfig"
   96
   97		// ExchangeName is the exchange name
   98		// For more information, visit
   99		// https://www.rabbitmq.com/tutorials/amqp-concepts.html
  100		"exchangeName"?: string
  101
  102		// ExchangeType is rabbitmq exchange type
  103		"exchangeType"?: string
  104
  105		// Filter
  106		// +optional
  107		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
  108
  109		// JSONBody specifies that all event body payload coming from this
  110		// source will be JSON
  111		// +optional
  112		"jsonBody"?: bool
  113
  114		// Metadata holds the user defined metadata which will passed
  115		// along the event payload.
  116		// +optional
  117		"metadata"?: {
  118			[string]: string
  119		}
  120
  121		// QueueBind holds the configuration that binds an exchange to a
  122		// queue so that publishings to the
  123		// exchange will be routed to the queue when the publishing
  124		// routing key matches the binding routing key
  125		// For more information, visit
  126		// https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.QueueBind
  127		// +optional
  128		"queueBind"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueBindConfig"
  129
  130		// QueueDeclare holds the configuration of a queue to hold
  131		// messages and deliver to consumers.
  132		// Declaring creates a queue if it doesn't already exist, or
  133		// ensures that an existing queue matches
  134		// the same parameters
  135		// For more information, visit
  136		// https://pkg.go.dev/github.com/rabbitmq/amqp091-go#Channel.QueueDeclare
  137		// +optional
  138		"queueDeclare"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueDeclareConfig"
  139
  140		// Routing key for bindings
  141		"routingKey"?: string
  142
  143		// TLS configuration for the amqp client.
  144		// +optional
  145		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
  146
  147		// URL for rabbitmq service
  148		"url"?: string
  149
  150		// URLSecret is secret reference for rabbitmq service URL
  151		"urlSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
  152	}
  153
  154	// AMQPExchangeDeclareConfig holds the configuration for the
  155	// exchange on the server
  156	// +k8s:openapi-gen=true
  157	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPExchangeDeclareConfig": {
  158		// AutoDelete removes the exchange when no bindings are active
  159		// +optional
  160		"autoDelete"?: bool
  161
  162		// Durable keeps the exchange also after the server restarts
  163		// +optional
  164		"durable"?: bool
  165
  166		// Internal when true does not accept publishings
  167		// +optional
  168		"internal"?: bool
  169
  170		// NowWait when true does not wait for a confirmation from the
  171		// server
  172		// +optional
  173		"noWait"?: bool
  174	}
  175
  176	// AMQPQueueBindConfig holds the configuration that binds an
  177	// exchange to a queue so that publishings to the
  178	// exchange will be routed to the queue when the publishing
  179	// routing key matches the binding routing key
  180	// +k8s:openapi-gen=true
  181	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueBindConfig": {
  182		// NowWait false and the queue could not be bound, the channel
  183		// will be closed with an error
  184		// +optional
  185		"noWait"?: bool
  186	}
  187
  188	// AMQPQueueDeclareConfig holds the configuration of a queue to
  189	// hold messages and deliver to consumers.
  190	// Declaring creates a queue if it doesn't already exist, or
  191	// ensures that an existing queue matches
  192	// the same parameters
  193	// +k8s:openapi-gen=true
  194	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPQueueDeclareConfig": {
  195		// Arguments of a queue (also known as "x-arguments") used for
  196		// optional features and plugins
  197		// +optional
  198		"arguments"?: string
  199
  200		// AutoDelete removes the queue when no consumers are active
  201		// +optional
  202		"autoDelete"?: bool
  203
  204		// Durable keeps the queue also after the server restarts
  205		// +optional
  206		"durable"?: bool
  207
  208		// Exclusive sets the queues to be accessible only by the
  209		// connection that declares them and will be
  210		// deleted wgen the connection closes
  211		// +optional
  212		"exclusive"?: bool
  213
  214		// Name of the queue. If empty the server auto-generates a unique
  215		// name for this queue
  216		// +optional
  217		"name"?: string
  218
  219		// NowWait when true, the queue assumes to be declared on the
  220		// server
  221		// +optional
  222		"noWait"?: bool
  223	}
  224
  225	// AWSLambdaTrigger refers to specification of the trigger to
  226	// invoke an AWS Lambda function
  227	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AWSLambdaTrigger": {
  228		// AccessKey refers K8s secret containing aws access key
  229		// +optional
  230		"accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
  231
  232		// FunctionName refers to the name of the function to invoke.
  233		"functionName"?: string
  234
  235		// Choose from the following options.
  236		//
  237		// * RequestResponse (default) - Invoke the function
  238		// synchronously. Keep
  239		// the connection open until the function returns a response or
  240		// times out.
  241		// The API response includes the function response and additional
  242		// data.
  243		//
  244		// * Event - Invoke the function asynchronously. Send events that
  245		// fail multiple
  246		// times to the function's dead-letter queue (if it's configured).
  247		// The API
  248		// response only includes a status code.
  249		//
  250		// * DryRun - Validate parameter values and verify that the user
  251		// or role
  252		// has permission to invoke the function.
  253		// +optional
  254		"invocationType"?: string
  255
  256		// Parameters is the list of key-value extracted from event's
  257		// payload that are applied to
  258		// the trigger resource.
  259		// +optional
  260		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
  261
  262		// Payload is the list of key-value extracted from an event
  263		// payload to construct the request payload.
  264		"payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
  265
  266		// Region is AWS region
  267		"region"?: string
  268
  269		// RoleARN is the Amazon Resource Name (ARN) of the role to
  270		// assume.
  271		// +optional
  272		"roleARN"?: string
  273
  274		// SecretKey refers K8s secret containing aws secret key
  275		// +optional
  276		"secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
  277	}
  278
  279	// Amount represent a numeric amount.
  280	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount": "value"?: string
  281
  282	// ArgoWorkflowTrigger is the trigger for the Argo Workflow
  283	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArgoWorkflowTrigger": {
  284		// Args is the list of arguments to pass to the argo CLI
  285		"args"?: [...string]
  286
  287		// Operation refers to the type of operation performed on the argo
  288		// workflow resource.
  289		// Default value is Submit.
  290		// +optional
  291		"operation"?: string
  292
  293		// Parameters is the list of parameters to pass to resolved Argo
  294		// Workflow object
  295		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
  296
  297		// Source of the K8s resource file(s)
  298		"source"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation"
  299	}
  300
  301	// ArtifactLocation describes the source location for an external
  302	// artifact
  303	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation": {
  304		// Configmap that stores the artifact
  305		"configmap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
  306
  307		// File artifact is artifact stored in a file
  308		"file"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileArtifact"
  309
  310		// Git repository hosting the artifact
  311		"git"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitArtifact"
  312
  313		// Inline artifact is embedded in sensor spec as a string
  314		"inline"?: string
  315
  316		// Resource is generic template for K8s resource
  317		"resource"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResource"
  318
  319		// S3 compliant artifact
  320		"s3"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact"
  321
  322		// URL to fetch the artifact from
  323		"url"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.URLArtifact"
  324	}
  325
  326	// AzureEventHubsTrigger refers to specification of the Azure
  327	// Event Hubs Trigger
  328	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventHubsTrigger": {
  329		// FQDN refers to the namespace dns of Azure Event Hubs to be used
  330		// i.e. <namespace>.servicebus.windows.net
  331		"fqdn"?: string
  332
  333		// HubName refers to the Azure Event Hub to send events to
  334		"hubName"?: string
  335
  336		// Parameters is the list of key-value extracted from event's
  337		// payload that are applied to
  338		// the trigger resource.
  339		// +optional
  340		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
  341
  342		// Payload is the list of key-value extracted from an event
  343		// payload to construct the request payload.
  344		"payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
  345
  346		// SharedAccessKey refers to a K8s secret containing the primary
  347		// key for the
  348		"sharedAccessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
  349
  350		// SharedAccessKeyName refers to the name of the Shared Access Key
  351		"sharedAccessKeyName"?: #."io.k8s.api.core.v1.SecretKeySelector"
  352	}
  353
  354	// AzureEventsHubEventSource describes the event source for azure
  355	// events hub
  356	// More info at https://docs.microsoft.com/en-us/azure/event-hubs/
  357	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventsHubEventSource": {
  358		// Filter
  359		// +optional
  360		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
  361
  362		// FQDN of the EventHubs namespace you created
  363		// More info at
  364		// https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-get-connection-string
  365		"fqdn"?: string
  366
  367		// Event Hub path/name
  368		"hubName"?: string
  369
  370		// Metadata holds the user defined metadata which will passed
  371		// along the event payload.
  372		// +optional
  373		"metadata"?: {
  374			[string]: string
  375		}
  376
  377		// SharedAccessKey is the generated value of the key. If both this
  378		// field and SharedAccessKeyName are not provided
  379		// it will try to access via Azure AD with DefaultAzureCredential,
  380		// FQDN and HubName.
  381		// +optional
  382		"sharedAccessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
  383
  384		// SharedAccessKeyName is the name you chose for your
  385		// application's SAS keys. If both this field and SharedAccessKey
  386		// are not provided
  387		// it will try to access via Azure AD with DefaultAzureCredential,
  388		// FQDN and HubName.
  389		// +optional
  390		"sharedAccessKeyName"?: #."io.k8s.api.core.v1.SecretKeySelector"
  391	}
  392
  393	// AzureQueueStorageEventSource describes the event source for
  394	// azure queue storage
  395	// more info at
  396	// https://learn.microsoft.com/en-us/azure/storage/queues/
  397	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureQueueStorageEventSource": {
  398		// ConnectionString is the connection string to access Azure Queue
  399		// Storage. If this fields is not provided
  400		// it will try to access via Azure AD with StorageAccountName.
  401		// +optional
  402		"connectionString"?: #."io.k8s.api.core.v1.SecretKeySelector"
  403
  404		// DecodeMessage specifies if all the messages should be base64
  405		// decoded.
  406		// If set to true the decoding is done before the evaluation of
  407		// JSONBody
  408		// +optional
  409		"decodeMessage"?: bool
  410
  411		// DLQ specifies if a dead-letter queue is configured for messages
  412		// that can't be processed successfully.
  413		// If set to true, messages with invalid payload won't be
  414		// acknowledged to allow to forward them farther to the
  415		// dead-letter queue.
  416		// The default value is false.
  417		// +optional
  418		"dlq"?: bool
  419
  420		// Filter
  421		// +optional
  422		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
  423
  424		// JSONBody specifies that all event body payload coming from this
  425		// source will be JSON
  426		// +optional
  427		"jsonBody"?: bool
  428
  429		// Metadata holds the user defined metadata which will passed
  430		// along the event payload.
  431		// +optional
  432		"metadata"?: {
  433			[string]: string
  434		}
  435
  436		// QueueName is the name of the queue
  437		"queueName"?: string
  438
  439		// StorageAccountName is the name of the storage account where the
  440		// queue is. This field is necessary to
  441		// access via Azure AD (managed identity) and it is ignored if
  442		// ConnectionString is set.
  443		// +optional
  444		"storageAccountName"?: string
  445
  446		// WaitTimeInSeconds is the duration (in seconds) for which the
  447		// event source waits between empty results from the queue.
  448		// The default value is 3 seconds.
  449		// +optional
  450		"waitTimeInSeconds"?: int
  451	}
  452
  453	// AzureServiceBusEventSource describes the event source for azure
  454	// service bus
  455	// More info at
  456	// https://docs.microsoft.com/en-us/azure/service-bus-messaging/
  457	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusEventSource": {
  458		// ConnectionString is the connection string for the Azure Service
  459		// Bus. If this fields is not provided
  460		// it will try to access via Azure AD with DefaultAzureCredential
  461		// and FullyQualifiedNamespace.
  462		// +optional
  463		"connectionString"?: #."io.k8s.api.core.v1.SecretKeySelector"
  464
  465		// Filter
  466		// +optional
  467		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
  468
  469		// FullyQualifiedNamespace is the Service Bus namespace name (ex:
  470		// myservicebus.servicebus.windows.net). This field is necessary
  471		// to
  472		// access via Azure AD (managed identity) and it is ignored if
  473		// ConnectionString is set.
  474		// +optional
  475		"fullyQualifiedNamespace"?: string
  476
  477		// JSONBody specifies that all event body payload coming from this
  478		// source will be JSON
  479		// +optional
  480		"jsonBody"?: bool
  481
  482		// Metadata holds the user defined metadata which will passed
  483		// along the event payload.
  484		// +optional
  485		"metadata"?: {
  486			[string]: string
  487		}
  488
  489		// QueueName is the name of the Azure Service Bus Queue
  490		"queueName"?: string
  491
  492		// SubscriptionName is the name of the Azure Service Bus Topic
  493		// Subscription
  494		"subscriptionName"?: string
  495
  496		// TLS configuration for the service bus client
  497		// +optional
  498		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
  499
  500		// TopicName is the name of the Azure Service Bus Topic
  501		"topicName"?: string
  502	}
  503
  504	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusTrigger": {
  505		// ConnectionString is the connection string for the Azure Service
  506		// Bus
  507		"connectionString"?: #."io.k8s.api.core.v1.SecretKeySelector"
  508
  509		// Parameters is the list of key-value extracted from event's
  510		// payload that are applied to
  511		// the trigger resource.
  512		// +optional
  513		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
  514
  515		// Payload is the list of key-value extracted from an event
  516		// payload to construct the request payload.
  517		"payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
  518
  519		// QueueName is the name of the Azure Service Bus Queue
  520		"queueName"?: string
  521
  522		// SubscriptionName is the name of the Azure Service Bus Topic
  523		// Subscription
  524		"subscriptionName"?: string
  525
  526		// TLS configuration for the service bus client
  527		// +optional
  528		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
  529
  530		// TopicName is the name of the Azure Service Bus Topic
  531		"topicName"?: string
  532	}
  533
  534	// Backoff for an operation
  535	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff": {
  536		// The initial duration in nanoseconds or strings like "1s", "3m"
  537		// +optional
  538		"duration"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Int64OrString"
  539
  540		// Duration is multiplied by factor each iteration
  541		// +optional
  542		"factor"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount"
  543
  544		// The amount of jitter applied each iteration
  545		// +optional
  546		"jitter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Amount"
  547
  548		// Exit with error after this many steps
  549		// +optional
  550		"steps"?: int
  551	}
  552
  553	// BasicAuth contains the reference to K8s secrets that holds the
  554	// username and password
  555	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth": {
  556		// Password refers to the Kubernetes secret that holds the
  557		// password required for basic auth.
  558		"password"?: #."io.k8s.api.core.v1.SecretKeySelector"
  559
  560		// Username refers to the Kubernetes secret that holds the
  561		// username required for basic auth.
  562		"username"?: #."io.k8s.api.core.v1.SecretKeySelector"
  563	}
  564
  565	// BitbucketAuth holds the different auth strategies for
  566	// connecting to Bitbucket
  567	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketAuth": {
  568		// Basic is BasicAuth auth strategy.
  569		// +optional
  570		"basic"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketBasicAuth"
  571
  572		// OAuthToken refers to the K8s secret that holds the OAuth Bearer
  573		// token.
  574		// +optional
  575		"oauthToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
  576	}
  577
  578	// BitbucketBasicAuth holds the information required to
  579	// authenticate user via basic auth mechanism
  580	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketBasicAuth": {
  581		// Password refers to the K8s secret that holds the password.
  582		"password"?: #."io.k8s.api.core.v1.SecretKeySelector"
  583
  584		// Username refers to the K8s secret that holds the username.
  585		"username"?: #."io.k8s.api.core.v1.SecretKeySelector"
  586	}
  587
  588	// BitbucketEventSource describes the event source for Bitbucket
  589	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketEventSource": {
  590		// Auth information required to connect to Bitbucket.
  591		"auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketAuth"
  592
  593		// DeleteHookOnFinish determines whether to delete the defined
  594		// Bitbucket hook once the event source is stopped.
  595		// +optional
  596		"deleteHookOnFinish"?: bool
  597
  598		// Events this webhook is subscribed to.
  599		"events"?: [...string]
  600
  601		// Filter
  602		// +optional
  603		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
  604
  605		// Metadata holds the user defined metadata which will be passed
  606		// along the event payload.
  607		// +optional
  608		"metadata"?: {
  609			[string]: string
  610		}
  611
  612		// DeprecatedOwner is the owner of the repository.
  613		// Deprecated: use Repositories instead. Will be unsupported in
  614		// v1.9
  615		// +optional
  616		"owner"?: string
  617
  618		// DeprecatedProjectKey is the key of the project to which the
  619		// repository relates
  620		// Deprecated: use Repositories instead. Will be unsupported in
  621		// v1.9
  622		// +optional
  623		"projectKey"?: string
  624
  625		// Repositories holds a list of repositories for which integration
  626		// needs to set up
  627		// +optional
  628		"repositories"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketRepository"]
  629
  630		// DeprecatedRepositorySlug is a URL-friendly version of a
  631		// repository name, automatically generated by Bitbucket for use
  632		// in the URL
  633		// Deprecated: use Repositories instead. Will be unsupported in
  634		// v1.9
  635		// +optional
  636		"repositorySlug"?: string
  637
  638		// Webhook refers to the configuration required to run an http
  639		// server
  640		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
  641	}
  642
  643	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketRepository": {
  644		// Owner is the owner of the repository
  645		"owner"?: string
  646
  647		// RepositorySlug is a URL-friendly version of a repository name,
  648		// automatically generated by Bitbucket for use in the URL
  649		"repositorySlug"?: string
  650	}
  651
  652	// BitbucketServerEventSource refers to event-source related to
  653	// Bitbucket Server events
  654	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerEventSource": {
  655		// AccessToken is reference to K8s secret which holds the
  656		// bitbucket api access information.
  657		// +optional
  658		"accessToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
  659
  660		// BitbucketServerBaseURL is the base URL for API requests to a
  661		// custom endpoint.
  662		"bitbucketserverBaseURL"?: string
  663
  664		// CheckInterval is a duration in which to wait before checking
  665		// that the webhooks exist, e.g. 1s, 30m, 2h... (defaults to 1m)
  666		// +optional
  667		"checkInterval"?: string
  668
  669		// DeleteHookOnFinish determines whether to delete the Bitbucket
  670		// Server hook for the project once the event source is stopped.
  671		// +optional
  672		"deleteHookOnFinish"?: bool
  673
  674		// Events are bitbucket event to listen to.
  675		// Refer
  676		// https://confluence.atlassian.com/bitbucketserver/event-payload-938025882.html
  677		// +optional
  678		"events"?: [...string]
  679
  680		// Filter
  681		// +optional
  682		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
  683
  684		// Metadata holds the user defined metadata which will passed
  685		// along the event payload.
  686		// +optional
  687		"metadata"?: {
  688			[string]: string
  689		}
  690
  691		// OneEventPerChange controls whether to process each change in a
  692		// repo:refs_changed webhook event as a separate
  693		// io.argoproj.workflow.v1alpha1. This setting is useful when
  694		// multiple tags are
  695		// pushed simultaneously for the same commit, and each tag needs
  696		// to independently trigger an action, such as a distinct
  697		// workflow in Argo Workflows. When enabled, the
  698		// BitbucketServerEventSource publishes an individual
  699		// BitbucketServerEventData for each change, ensuring independent
  700		// processing of each tag or reference update in a
  701		// single webhook event.
  702		// +optional
  703		"oneEventPerChange"?: bool
  704
  705		// DeprecatedProjectKey is the key of project for which
  706		// integration needs to set up.
  707		// Deprecated: use Repositories instead. Will be unsupported in
  708		// v1.8.
  709		// +optional
  710		"projectKey"?: string
  711
  712		// Projects holds a list of projects for which integration needs
  713		// to set up, this will add the webhook to all repositories in
  714		// the project.
  715		// +optional
  716		"projects"?: [...string]
  717
  718		// Repositories holds a list of repositories for which integration
  719		// needs to set up.
  720		// +optional
  721		"repositories"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerRepository"]
  722
  723		// DeprecatedRepositorySlug is the slug of the repository for
  724		// which integration needs to set up.
  725		// Deprecated: use Repositories instead. Will be unsupported in
  726		// v1.8.
  727		// +optional
  728		"repositorySlug"?: string
  729
  730		// SkipBranchRefsChangedOnOpenPR bypasses the event
  731		// repo:refs_changed for branches whenever there's an associated
  732		// open pull request.
  733		// This helps in optimizing the event handling process by avoiding
  734		// unnecessary triggers for branch reference changes that are
  735		// already part of a pull request under review.
  736		// +optional
  737		"skipBranchRefsChangedOnOpenPR"?: bool
  738
  739		// TLS configuration for the bitbucketserver client.
  740		// +optional
  741		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
  742
  743		// Webhook holds configuration to run a http server.
  744		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
  745
  746		// WebhookSecret is reference to K8s secret which holds the
  747		// bitbucket webhook secret (for HMAC validation).
  748		// +optional
  749		"webhookSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
  750	}
  751
  752	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerRepository": {
  753		// ProjectKey is the key of project for which integration needs to
  754		// set up.
  755		"projectKey"?: string
  756
  757		// RepositorySlug is the slug of the repository for which
  758		// integration needs to set up.
  759		"repositorySlug"?: string
  760	}
  761
  762	// CalendarEventSource describes a time based dependency. One of
  763	// the fields (schedule, interval, or recurrence) must be passed.
  764	// Schedule takes precedence over interval; interval takes
  765	// precedence over recurrence
  766	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CalendarEventSource": {
  767		// ExclusionDates defines the list of DATE-TIME exceptions for
  768		// recurring events.
  769		"exclusionDates"?: [...string]
  770
  771		// Filter
  772		// +optional
  773		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
  774
  775		// Interval is a string that describes an interval duration, e.g.
  776		// 1s, 30m, 2h...
  777		// +optional
  778		"interval"?: string
  779
  780		// Metadata holds the user defined metadata which will passed
  781		// along the event payload.
  782		// +optional
  783		"metadata"?: {
  784			[string]: string
  785		}
  786
  787		// Persistence hold the configuration for event persistence
  788		"persistence"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventPersistence"
  789
  790		// Schedule is a cron-like expression. For reference, see:
  791		// https://en.wikipedia.org/wiki/Cron
  792		// +optional
  793		"schedule"?: string
  794
  795		// Timezone in which to run the schedule
  796		// +optional
  797		"timezone"?: string
  798	}
  799
  800	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CatchupConfiguration": {
  801		// Enabled enables to triggered the missed schedule when
  802		// eventsource restarts
  803		"enabled"?: bool
  804
  805		// MaxDuration holds max catchup duration
  806		"maxDuration"?: string
  807	}
  808
  809	// Condition contains details about resource state
  810	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Condition": {
  811		// Last time the condition transitioned from one status to
  812		// another.
  813		// +optional
  814		"lastTransitionTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
  815
  816		// Human-readable message indicating details about last
  817		// transition.
  818		// +optional
  819		"message"?: string
  820
  821		// Unique, this should be a short, machine understandable string
  822		// that gives the reason
  823		// for condition's last transition. For example, "ImageNotFound"
  824		// +optional
  825		"reason"?: string
  826
  827		// Condition status, True, False or Unknown.
  828		// +required
  829		"status"?: string
  830
  831		// Condition type.
  832		// +required
  833		"type"?: string
  834	}
  835
  836	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetByTime": {
  837		// Cron is a cron-like expression. For reference, see:
  838		// https://en.wikipedia.org/wiki/Cron
  839		"cron"?: string
  840
  841		// +optional
  842		"timezone"?: string
  843	}
  844
  845	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetCriteria": {
  846		// Schedule is a cron-like expression. For reference, see:
  847		// https://en.wikipedia.org/wiki/Cron
  848		"byTime"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetByTime"
  849	}
  850
  851	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConfigMapPersistence": {
  852		// CreateIfNotExist will create configmap if it doesn't exists
  853		"createIfNotExist"?: bool
  854
  855		// Name of the configmap
  856		"name"?: string
  857	}
  858
  859	// Container defines customized spec for a container
  860	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Container": {
  861		// +optional
  862		"env"?: [...#."io.k8s.api.core.v1.EnvVar"]
  863
  864		// +optional
  865		"envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
  866
  867		// +optional
  868		"imagePullPolicy"?: string
  869
  870		// +optional
  871		"resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
  872
  873		// +optional
  874		"securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
  875
  876		// +optional
  877		"volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
  878	}
  879
  880	// CustomTrigger refers to the specification of the custom
  881	// trigger.
  882	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CustomTrigger": {
  883		// CertSecret refers to the secret that contains cert for secure
  884		// connection between sensor and custom trigger gRPC server.
  885		"certSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
  886
  887		// Parameters is the list of parameters that is applied to
  888		// resolved custom trigger trigger object.
  889		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
  890
  891		// Payload is the list of key-value extracted from an event
  892		// payload to construct the request payload.
  893		"payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
  894
  895		// Secure refers to type of the connection between sensor to
  896		// custom trigger gRPC
  897		"secure"?: bool
  898
  899		// ServerNameOverride for the secure connection between sensor and
  900		// custom trigger gRPC server.
  901		"serverNameOverride"?: string
  902
  903		// ServerURL is the url of the gRPC server that executes custom
  904		// trigger
  905		"serverURL"?: string
  906
  907		// Spec is the custom trigger resource specification that custom
  908		// trigger gRPC server knows how to interpret.
  909		"spec"?: {
  910			[string]: string
  911		}
  912	}
  913
  914	// DataFilter describes constraints and filters for event data
  915	// Regular Expressions are purposefully not a feature as they are
  916	// overkill for our uses here
  917	// See Rob Pike's Post:
  918	// https://commandcenter.blogspot.com/2011/08/regular-expressions-in-lexing-and.html
  919	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.DataFilter": {
  920		// Comparator compares the event data with a user given value.
  921		// Can be ">=", ">", "=", "!=", "<", or "<=".
  922		// Is optional, and if left blank treated as equality "=".
  923		"comparator"?: string
  924
  925		// Path is the JSONPath of the event's (JSON decoded) data key
  926		// Path is a series of keys separated by a dot. A key may contain
  927		// wildcard characters '*' and '?'.
  928		// To access an array value use the index as the key. The dot and
  929		// wildcard characters can be escaped with '\\'.
  930		// See https://github.com/tidwall/gjson#path-syntax for more
  931		// information on how to use this.
  932		"path"?: string
  933
  934		// Template is a go-template for extracting a string from the
  935		// event's data.
  936		// A Template is evaluated with provided path, type and value.
  937		// The templating follows the standard go-template syntax as well
  938		// as sprig's extra functions.
  939		// See https://pkg.go.dev/text/template and
  940		// https://masterminds.github.io/sprig/
  941		"template"?: string
  942
  943		// Type contains the JSON type of the data
  944		"type"?: string
  945
  946		// Value is the allowed string values for this key
  947		// Booleans are passed using strconv.ParseBool()
  948		// Numbers are parsed using as float64 using strconv.ParseFloat()
  949		// Strings are taken as is
  950		// Nils this value is ignored
  951		"value"?: [...string]
  952	}
  953
  954	// EmailTrigger refers to the specification of the email
  955	// notification trigger.
  956	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmailTrigger": {
  957		// Body refers to the body/content of the email send.
  958		// +optional
  959		"body"?: string
  960
  961		// From refers to the address from which the email is send from.
  962		// +optional
  963		"from"?: string
  964
  965		// Host refers to the smtp host url to which email is send.
  966		"host"?: string
  967
  968		// Parameters is the list of key-value extracted from event's
  969		// payload that are applied to
  970		// the trigger resource.
  971		// +optional
  972		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
  973
  974		// Port refers to the smtp server port to which email is send.
  975		// Defaults to 0.
  976		// +optional
  977		"port"?: int
  978
  979		// SMTPPassword refers to the Kubernetes secret that holds the
  980		// smtp password used to connect to smtp server.
  981		// +optional
  982		"smtpPassword"?: #."io.k8s.api.core.v1.SecretKeySelector"
  983
  984		// Subject refers to the subject line for the email send.
  985		// +optional
  986		"subject"?: string
  987
  988		// To refers to the email addresses to which the emails are send.
  989		// +optional
  990		"to"?: [...string]
  991
  992		// Username refers to the username used to connect to the smtp
  993		// server.
  994		// +optional
  995		"username"?: string
  996	}
  997
  998	// EmitterEventSource describes the event source for emitter
  999	// More info at https://emitter.io/develop/getting-started/
 1000	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmitterEventSource": {
 1001		// Broker URI to connect to.
 1002		"broker"?: string
 1003
 1004		// ChannelKey refers to the channel key
 1005		"channelKey"?: string
 1006
 1007		// ChannelName refers to the channel name
 1008		"channelName"?: string
 1009
 1010		// Backoff holds parameters applied to connection.
 1011		// +optional
 1012		"connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
 1013
 1014		// Filter
 1015		// +optional
 1016		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 1017
 1018		// JSONBody specifies that all event body payload coming from this
 1019		// source will be JSON
 1020		// +optional
 1021		"jsonBody"?: bool
 1022
 1023		// Metadata holds the user defined metadata which will passed
 1024		// along the event payload.
 1025		// +optional
 1026		"metadata"?: {
 1027			[string]: string
 1028		}
 1029
 1030		// Password to use to connect to broker
 1031		// +optional
 1032		"password"?: #."io.k8s.api.core.v1.SecretKeySelector"
 1033
 1034		// TLS configuration for the emitter client.
 1035		// +optional
 1036		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
 1037
 1038		// Username to use to connect to broker
 1039		// +optional
 1040		"username"?: #."io.k8s.api.core.v1.SecretKeySelector"
 1041	}
 1042
 1043	// EventContext holds the context of the cloudevent received from
 1044	// an event source.
 1045	// +protobuf.options.(gogoproto.goproto_stringer)=false
 1046	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventContext": {
 1047		// DataContentType - A MIME (RFC2046) string describing the media
 1048		// type of `data`.
 1049		"datacontenttype"?: string
 1050
 1051		// ID of the event; must be non-empty and unique within the scope
 1052		// of the producer.
 1053		"id"?: string
 1054
 1055		// Source - A URI describing the event producer.
 1056		"source"?: string
 1057
 1058		// SpecVersion - The version of the CloudEvents specification used
 1059		// by the io.argoproj.workflow.v1alpha1.
 1060		"specversion"?: string
 1061
 1062		// Subject - The subject of the event in the context of the event
 1063		// producer
 1064		"subject"?: string
 1065
 1066		// Time - A Timestamp when the event happened.
 1067		"time"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
 1068
 1069		// Type - The type of the occurrence which has happened.
 1070		"type"?: string
 1071	}
 1072
 1073	// EventDependency describes a dependency
 1074	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependency": {
 1075		// EventName is the name of the event
 1076		"eventName"?: string
 1077
 1078		// EventSourceName is the name of EventSource that Sensor depends
 1079		// on
 1080		"eventSourceName"?: string
 1081
 1082		// Filters and rules governing toleration of success and
 1083		// constraints on the context and data of an event
 1084		"filters"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyFilter"
 1085
 1086		// FiltersLogicalOperator defines how different filters are
 1087		// evaluated together.
 1088		// Available values: and (&&), or (||)
 1089		// Is optional and if left blank treated as and (&&).
 1090		"filtersLogicalOperator"?: string
 1091
 1092		// Name is a unique name of this dependency
 1093		"name"?: string
 1094
 1095		// Transform transforms the event data
 1096		"transform"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyTransformer"
 1097	}
 1098
 1099	// EventDependencyFilter defines filters and constraints for a
 1100	// io.argoproj.workflow.v1alpha1.
 1101	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyFilter": {
 1102		// Context filter constraints
 1103		"context"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventContext"
 1104
 1105		// Data filter constraints with escalation
 1106		"data"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.DataFilter"]
 1107
 1108		// DataLogicalOperator defines how multiple Data filters (if
 1109		// defined) are evaluated together.
 1110		// Available values: and (&&), or (||)
 1111		// Is optional and if left blank treated as and (&&).
 1112		"dataLogicalOperator"?: string
 1113
 1114		// ExprLogicalOperator defines how multiple Exprs filters (if
 1115		// defined) are evaluated together.
 1116		// Available values: and (&&), or (||)
 1117		// Is optional and if left blank treated as and (&&).
 1118		"exprLogicalOperator"?: string
 1119
 1120		// Exprs contains the list of expressions evaluated against the
 1121		// event payload.
 1122		"exprs"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ExprFilter"]
 1123
 1124		// Script refers to a Lua script evaluated to determine the
 1125		// validity of an io.argoproj.workflow.v1alpha1.
 1126		"script"?: string
 1127
 1128		// Time filter on the event with escalation
 1129		"time"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TimeFilter"
 1130	}
 1131
 1132	// EventDependencyTransformer transforms the event
 1133	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependencyTransformer": {
 1134		// JQ holds the jq command applied for transformation
 1135		// +optional
 1136		"jq"?: string
 1137
 1138		// Script refers to a Lua script used to transform the event
 1139		// +optional
 1140		"script"?: string
 1141	}
 1142
 1143	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventPersistence": {
 1144		// Catchup enables to triggered the missed schedule when
 1145		// eventsource restarts
 1146		"catchup"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CatchupConfiguration"
 1147
 1148		// ConfigMap holds configmap details for persistence
 1149		"configMap"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConfigMapPersistence"
 1150	}
 1151
 1152	// EventSource is the definition of a eventsource resource
 1153	// +genclient
 1154	// +kubebuilder:resource:shortName=es
 1155	// +kubebuilder:subresource:status
 1156	// +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
 1157	// +k8s:openapi-gen=true
 1158	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource": {
 1159		"metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
 1160		"spec"?:     #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceSpec"
 1161
 1162		// +optional
 1163		"status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceStatus"
 1164	}
 1165
 1166	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter": "expression"?: string
 1167
 1168	// EventSourceList is the list of eventsource resources
 1169	// +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
 1170	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceList": {
 1171		"items"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSource"]
 1172		"metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
 1173	}
 1174
 1175	// EventSourceSpec refers to specification of event-source
 1176	// resource
 1177	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceSpec": {
 1178		// AMQP event sources
 1179		"amqp"?: [string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AMQPEventSource"
 1180
 1181		// AzureEventsHub event sources
 1182		"azureEventsHub"?: {
 1183			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventsHubEventSource"
 1184		}
 1185
 1186		// AzureQueueStorage event source
 1187		"azureQueueStorage"?: {
 1188			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureQueueStorageEventSource"
 1189		}
 1190
 1191		// Azure Service Bus event source
 1192		"azureServiceBus"?: {
 1193			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusEventSource"
 1194		}
 1195
 1196		// Bitbucket event sources
 1197		"bitbucket"?: {
 1198			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketEventSource"
 1199		}
 1200
 1201		// Bitbucket Server event sources
 1202		"bitbucketserver"?: {
 1203			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BitbucketServerEventSource"
 1204		}
 1205
 1206		// Calendar event sources
 1207		"calendar"?: {
 1208			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CalendarEventSource"
 1209		}
 1210
 1211		// Emitter event source
 1212		"emitter"?: {
 1213			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmitterEventSource"
 1214		}
 1215
 1216		// EventBusName references to a EventBus name. By default the
 1217		// value is "default"
 1218		"eventBusName"?: string
 1219
 1220		// File event sources
 1221		"file"?: {
 1222			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileEventSource"
 1223		}
 1224
 1225		// Generic event source
 1226		"generic"?: {
 1227			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GenericEventSource"
 1228		}
 1229
 1230		// Gerrit event source
 1231		"gerrit"?: {
 1232			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GerritEventSource"
 1233		}
 1234
 1235		// Github event sources
 1236		"github"?: {
 1237			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubEventSource"
 1238		}
 1239
 1240		// Gitlab event sources
 1241		"gitlab"?: {
 1242			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitlabEventSource"
 1243		}
 1244
 1245		// HDFS event sources
 1246		"hdfs"?: {
 1247			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HDFSEventSource"
 1248		}
 1249
 1250		// Kafka event sources
 1251		"kafka"?: {
 1252			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaEventSource"
 1253		}
 1254
 1255		// Minio event sources
 1256		"minio"?: {
 1257			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact"
 1258		}
 1259
 1260		// MQTT event sources
 1261		"mqtt"?: {
 1262			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.MQTTEventSource"
 1263		}
 1264
 1265		// NATS event sources
 1266		"nats"?: {
 1267			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSEventsSource"
 1268		}
 1269
 1270		// NSQ event source
 1271		"nsq"?: {
 1272			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NSQEventSource"
 1273		}
 1274
 1275		// PubSub event sources
 1276		"pubSub"?: {
 1277			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PubSubEventSource"
 1278		}
 1279
 1280		// Pulsar event source
 1281		"pulsar"?: {
 1282			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarEventSource"
 1283		}
 1284
 1285		// Redis event source
 1286		"redis"?: {
 1287			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisEventSource"
 1288		}
 1289
 1290		// Redis stream source
 1291		"redisStream"?: {
 1292			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisStreamEventSource"
 1293		}
 1294
 1295		// Replicas is the event source deployment replicas
 1296		"replicas"?: int
 1297
 1298		// Resource event sources
 1299		"resource"?: {
 1300			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceEventSource"
 1301		}
 1302
 1303		// Service is the specifications of the service to expose the
 1304		// event source
 1305		// +optional
 1306		"service"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Service"
 1307
 1308		// SFTP event sources
 1309		"sftp"?: {
 1310			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SFTPEventSource"
 1311		}
 1312
 1313		// Slack event sources
 1314		"slack"?: {
 1315			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackEventSource"
 1316		}
 1317
 1318		// SNS event sources
 1319		"sns"?: {
 1320			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SNSEventSource"
 1321		}
 1322
 1323		// SQS event sources
 1324		"sqs"?: {
 1325			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SQSEventSource"
 1326		}
 1327
 1328		// StorageGrid event sources
 1329		"storageGrid"?: {
 1330			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridEventSource"
 1331		}
 1332
 1333		// Stripe event sources
 1334		"stripe"?: {
 1335			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StripeEventSource"
 1336		}
 1337
 1338		// Template is the pod specification for the event source
 1339		// +optional
 1340		"template"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template"
 1341
 1342		// Webhook event sources
 1343		"webhook"?: {
 1344			[string]: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookEventSource"
 1345		}
 1346	}
 1347
 1348	// EventSourceStatus holds the status of the event-source resource
 1349	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceStatus": "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status"
 1350
 1351	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ExprFilter": {
 1352		// Expr refers to the expression that determines the outcome of
 1353		// the filter.
 1354		"expr"?: string
 1355
 1356		// Fields refers to set of keys that refer to the paths within
 1357		// event payload.
 1358		"fields"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PayloadField"]
 1359	}
 1360
 1361	// FileArtifact contains information about an artifact in a
 1362	// filesystem
 1363	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileArtifact": "path"?: string
 1364
 1365	// FileEventSource describes an event-source for file related
 1366	// events.
 1367	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.FileEventSource": {
 1368		// Type of file operations to watch
 1369		// Refer
 1370		// https://github.com/fsnotify/fsnotify/blob/master/fsnotify.go
 1371		// for more information
 1372		"eventType"?: string
 1373
 1374		// Filter
 1375		// +optional
 1376		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 1377
 1378		// Metadata holds the user defined metadata which will passed
 1379		// along the event payload.
 1380		// +optional
 1381		"metadata"?: {
 1382			[string]: string
 1383		}
 1384
 1385		// Use polling instead of inotify
 1386		"polling"?: bool
 1387
 1388		// WatchPathConfig contains configuration about the file path to
 1389		// watch
 1390		"watchPathConfig"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig"
 1391	}
 1392
 1393	// GenericEventSource refers to a generic event source. It can be
 1394	// used to implement a custom event source.
 1395	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GenericEventSource": {
 1396		// AuthSecret holds a secret selector that contains a bearer token
 1397		// for authentication
 1398		// +optional
 1399		"authSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 1400
 1401		// Config is the event source configuration
 1402		"config"?: string
 1403
 1404		// Filter
 1405		// +optional
 1406		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 1407
 1408		// Insecure determines the type of connection.
 1409		"insecure"?: bool
 1410
 1411		// JSONBody specifies that all event body payload coming from this
 1412		// source will be JSON
 1413		// +optional
 1414		"jsonBody"?: bool
 1415
 1416		// Metadata holds the user defined metadata which will passed
 1417		// along the event payload.
 1418		// +optional
 1419		"metadata"?: {
 1420			[string]: string
 1421		}
 1422
 1423		// URL of the gRPC server that implements the event source.
 1424		"url"?: string
 1425	}
 1426
 1427	// GerritEventSource refers to event-source related to gerrit
 1428	// events
 1429	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GerritEventSource": {
 1430		// Auth hosts secret selectors for username and password
 1431		// +optional
 1432		"auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
 1433
 1434		// DeleteHookOnFinish determines whether to delete the Gerrit hook
 1435		// for the project once the event source is stopped.
 1436		// +optional
 1437		"deleteHookOnFinish"?: bool
 1438
 1439		// Events are gerrit event to listen to.
 1440		// Refer
 1441		// https://gerrit-review.googlesource.com/Documentation/cmd-stream-events.html#events
 1442		"events"?: [...string]
 1443
 1444		// Filter
 1445		// +optional
 1446		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 1447
 1448		// GerritBaseURL is the base URL for API requests to a custom
 1449		// endpoint
 1450		"gerritBaseURL"?: string
 1451
 1452		// HookName is the name of the webhook
 1453		"hookName"?: string
 1454
 1455		// Metadata holds the user defined metadata which will passed
 1456		// along the event payload.
 1457		// +optional
 1458		"metadata"?: {
 1459			[string]: string
 1460		}
 1461
 1462		// List of project namespace paths like "whynowy/test".
 1463		"projects"?: [...string]
 1464
 1465		// SslVerify to enable ssl verification
 1466		// +optional
 1467		"sslVerify"?: bool
 1468
 1469		// Webhook holds configuration to run a http server
 1470		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
 1471	}
 1472
 1473	// GitArtifact contains information about an artifact stored in
 1474	// git
 1475	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitArtifact": {
 1476		// Branch to use to pull trigger resource
 1477		// +optional
 1478		"branch"?: string
 1479
 1480		// Directory to clone the repository. We clone complete directory
 1481		// because GitArtifact is not limited to any specific Git service
 1482		// providers.
 1483		// Hence we don't use any specific git provider client.
 1484		"cloneDirectory"?: string
 1485
 1486		// Creds contain reference to git username and password
 1487		// +optional
 1488		"creds"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitCreds"
 1489
 1490		// Path to file that contains trigger resource definition
 1491		"filePath"?: string
 1492
 1493		// Whether to ignore host key
 1494		// +optional
 1495		"insecureIgnoreHostKey"?: bool
 1496
 1497		// Ref to use to pull trigger resource. Will result in a shallow
 1498		// clone and
 1499		// fetch.
 1500		// +optional
 1501		"ref"?: string
 1502
 1503		// Remote to manage set of tracked repositories. Defaults to
 1504		// "origin".
 1505		// Refer https://git-scm.com/docs/git-remote
 1506		// +optional
 1507		"remote"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitRemoteConfig"
 1508
 1509		// SSHKeySecret refers to the secret that contains SSH key
 1510		"sshKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 1511
 1512		// Tag to use to pull trigger resource
 1513		// +optional
 1514		"tag"?: string
 1515
 1516		// Git URL
 1517		"url"?: string
 1518	}
 1519
 1520	// GitCreds contain reference to git username and password
 1521	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitCreds": {
 1522		"password"?: #."io.k8s.api.core.v1.SecretKeySelector"
 1523		"username"?: #."io.k8s.api.core.v1.SecretKeySelector"
 1524	}
 1525
 1526	// GitRemoteConfig contains the configuration of a Git remote
 1527	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitRemoteConfig": {
 1528		// Name of the remote to fetch from.
 1529		"name"?: string
 1530
 1531		// URLs the URLs of a remote repository. It must be non-empty.
 1532		// Fetch will
 1533		// always use the first URL, while push will use all of them.
 1534		"urls"?: [...string]
 1535	}
 1536
 1537	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubAppCreds": {
 1538		// AppID refers to the GitHub App ID for the application you
 1539		// created
 1540		"appID"?: string
 1541
 1542		// InstallationID refers to the Installation ID of the GitHub app
 1543		// you created and installed
 1544		"installationID"?: string
 1545
 1546		// PrivateKey refers to a K8s secret containing the GitHub app
 1547		// private key
 1548		"privateKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
 1549	}
 1550
 1551	// GithubEventSource refers to event-source for github related
 1552	// events
 1553	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubEventSource": {
 1554		// Active refers to status of the webhook for event deliveries.
 1555		// https://developer.github.com/webhooks/creating/#active
 1556		// +optional
 1557		"active"?: bool
 1558
 1559		// APIToken refers to a K8s secret containing github api token
 1560		// +optional
 1561		"apiToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
 1562
 1563		// ContentType of the event delivery
 1564		"contentType"?: string
 1565
 1566		// DeleteHookOnFinish determines whether to delete the GitHub hook
 1567		// for the repository once the event source is stopped.
 1568		// +optional
 1569		"deleteHookOnFinish"?: bool
 1570
 1571		// Events refer to Github events to which the event source will
 1572		// subscribe
 1573		"events"?: [...string]
 1574
 1575		// Filter
 1576		// +optional
 1577		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 1578
 1579		// GitHubApp holds the GitHub app credentials
 1580		// +optional
 1581		"githubApp"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GithubAppCreds"
 1582
 1583		// GitHub base URL (for GitHub Enterprise)
 1584		// +optional
 1585		"githubBaseURL"?: string
 1586
 1587		// GitHub upload URL (for GitHub Enterprise)
 1588		// +optional
 1589		"githubUploadURL"?: string
 1590
 1591		// Id is the webhook's id
 1592		// Deprecated: This is not used at all, will be removed in v1.6
 1593		// +optional
 1594		"id"?: string
 1595
 1596		// Insecure tls verification
 1597		"insecure"?: bool
 1598
 1599		// Metadata holds the user defined metadata which will passed
 1600		// along the event payload.
 1601		// +optional
 1602		"metadata"?: {
 1603			[string]: string
 1604		}
 1605
 1606		// Organizations holds the names of organizations (used for
 1607		// organization level webhooks). Not required if Repositories is
 1608		// set.
 1609		"organizations"?: [...string]
 1610
 1611		// DeprecatedOwner refers to GitHub owner name i.e. argoproj
 1612		// Deprecated: use Repositories instead. Will be unsupported in v
 1613		// 1.6
 1614		// +optional
 1615		"owner"?: string
 1616
 1617		// Repositories holds the information of repositories, which uses
 1618		// repo owner as the key,
 1619		// and list of repo names as the value. Not required if
 1620		// Organizations is set.
 1621		"repositories"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OwnedRepositories"]
 1622
 1623		// DeprecatedRepository refers to GitHub repo name i.e.
 1624		// argo-events
 1625		// Deprecated: use Repositories instead. Will be unsupported in v
 1626		// 1.6
 1627		// +optional
 1628		"repository"?: string
 1629
 1630		// Webhook refers to the configuration required to run a http
 1631		// server
 1632		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
 1633
 1634		// WebhookSecret refers to K8s secret containing GitHub webhook
 1635		// secret
 1636		// https://developer.github.com/webhooks/securing/
 1637		// +optional
 1638		"webhookSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 1639	}
 1640
 1641	// GitlabEventSource refers to event-source related to Gitlab
 1642	// events
 1643	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.GitlabEventSource": {
 1644		// AccessToken references to k8 secret which holds the gitlab api
 1645		// access information
 1646		"accessToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
 1647
 1648		// DeleteHookOnFinish determines whether to delete the GitLab hook
 1649		// for the project once the event source is stopped.
 1650		// +optional
 1651		"deleteHookOnFinish"?: bool
 1652
 1653		// EnableSSLVerification to enable ssl verification
 1654		// +optional
 1655		"enableSSLVerification"?: bool
 1656
 1657		// Events are gitlab event to listen to.
 1658		// Refer
 1659		// https://github.com/xanzy/go-gitlab/blob/bf34eca5d13a9f4c3f501d8a97b8ac226d55e4d9/projects.go#L794.
 1660		"events"?: [...string]
 1661
 1662		// Filter
 1663		// +optional
 1664		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 1665
 1666		// GitlabBaseURL is the base URL for API requests to a custom
 1667		// endpoint
 1668		"gitlabBaseURL"?: string
 1669
 1670		// List of group IDs or group name like "test".
 1671		// Group level hook available in Premium and Ultimate Gitlab.
 1672		// +optional
 1673		"groups"?: [...string]
 1674
 1675		// Metadata holds the user defined metadata which will passed
 1676		// along the event payload.
 1677		// +optional
 1678		"metadata"?: {
 1679			[string]: string
 1680		}
 1681
 1682		// DeprecatedProjectID is the id of project for which integration
 1683		// needs to setup
 1684		// Deprecated: use Projects instead. Will be unsupported in v 1.7
 1685		// +optional
 1686		"projectID"?: string
 1687
 1688		// List of project IDs or project namespace paths like
 1689		// "whynowy/test".
 1690		// If neither a project nor a group is defined, the EventSource
 1691		// will not manage webhooks.
 1692		// +optional
 1693		"projects"?: [...string]
 1694
 1695		// SecretToken references to k8 secret which holds the Secret
 1696		// Token used by webhook config
 1697		"secretToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
 1698
 1699		// Webhook holds configuration to run a http server
 1700		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
 1701	}
 1702
 1703	// HDFSEventSource refers to event-source for HDFS related events
 1704	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HDFSEventSource": {
 1705		"addresses"?: [...string]
 1706
 1707		// CheckInterval is a string that describes an interval duration
 1708		// to check the directory state, e.g. 1s, 30m, 2h... (defaults to
 1709		// 1m)
 1710		"checkInterval"?: string
 1711
 1712		// Filter
 1713		// +optional
 1714		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 1715
 1716		// HDFSUser is the user to access HDFS file system.
 1717		// It is ignored if either ccache or keytab is used.
 1718		"hdfsUser"?: string
 1719
 1720		// KrbCCacheSecret is the secret selector for Kerberos ccache
 1721		// Either ccache or keytab can be set to use Kerberos.
 1722		"krbCCacheSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 1723
 1724		// KrbConfig is the configmap selector for Kerberos config as
 1725		// string
 1726		// It must be set if either ccache or keytab is used.
 1727		"krbConfigConfigMap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
 1728
 1729		// KrbKeytabSecret is the secret selector for Kerberos keytab
 1730		// Either ccache or keytab can be set to use Kerberos.
 1731		"krbKeytabSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 1732
 1733		// KrbRealm is the Kerberos realm used with Kerberos keytab
 1734		// It must be set if keytab is used.
 1735		"krbRealm"?: string
 1736
 1737		// KrbServicePrincipalName is the principal name of Kerberos
 1738		// service
 1739		// It must be set if either ccache or keytab is used.
 1740		"krbServicePrincipalName"?: string
 1741
 1742		// KrbUsername is the Kerberos username used with Kerberos keytab
 1743		// It must be set if keytab is used.
 1744		"krbUsername"?: string
 1745
 1746		// Metadata holds the user defined metadata which will passed
 1747		// along the event payload.
 1748		// +optional
 1749		"metadata"?: {
 1750			[string]: string
 1751		}
 1752
 1753		// Type of file operations to watch
 1754		"type"?:            string
 1755		"watchPathConfig"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig"
 1756	}
 1757
 1758	// HTTPTrigger is the trigger for the HTTP request
 1759	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HTTPTrigger": {
 1760		// BasicAuth configuration for the http request.
 1761		// +optional
 1762		"basicAuth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
 1763
 1764		// Headers for the HTTP request.
 1765		// +optional
 1766		"headers"?: {
 1767			[string]: string
 1768		}
 1769
 1770		// Method refers to the type of the HTTP request.
 1771		// Refer https://golang.org/src/net/http/method.go for more
 1772		// io.argoproj.workflow.v1alpha1.
 1773		// Default value is POST.
 1774		// +optional
 1775		"method"?: string
 1776
 1777		// Parameters is the list of key-value extracted from event's
 1778		// payload that are applied to
 1779		// the HTTP trigger resource.
 1780		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 1781		"payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 1782
 1783		// Secure Headers stored in Kubernetes Secrets for the HTTP
 1784		// requests.
 1785		// +optional
 1786		"secureHeaders"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader"]
 1787
 1788		// Timeout refers to the HTTP request timeout in seconds.
 1789		// Default value is 60 seconds.
 1790		// +optional
 1791		"timeout"?: string
 1792
 1793		// TLS configuration for the HTTP client.
 1794		// +optional
 1795		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
 1796
 1797		// URL refers to the URL to send HTTP request to.
 1798		"url"?: string
 1799	}
 1800
 1801	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Int64OrString": {
 1802		"int64Val"?: string
 1803		"strVal"?:   string
 1804		"type"?:     string
 1805	}
 1806
 1807	// K8SResource represent arbitrary structured data.
 1808	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResource": "value"?: string
 1809
 1810	// K8SResourcePolicy refers to the policy used to check the state
 1811	// of K8s based triggers using labels
 1812	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResourcePolicy": {
 1813		// Backoff before checking resource state
 1814		"backoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
 1815
 1816		// ErrorOnBackoffTimeout determines whether sensor should
 1817		// transition to error state if the trigger policy is unable to
 1818		// determine
 1819		// the state of the resource
 1820		"errorOnBackoffTimeout"?: bool
 1821
 1822		// Labels required to identify whether a resource is in success
 1823		// state
 1824		"labels"?: {
 1825			[string]: string
 1826		}
 1827	}
 1828
 1829	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaConsumerGroup": {
 1830		// The name for the consumer group to use
 1831		"groupName"?: string
 1832
 1833		// When starting up a new group do we want to start from the
 1834		// oldest event (true) or the newest event (false), defaults to
 1835		// false
 1836		// +optional
 1837		"oldest"?: bool
 1838
 1839		// Rebalance strategy can be one of: sticky, roundrobin, range.
 1840		// Range is the default.
 1841		// +optional
 1842		"rebalanceStrategy"?: string
 1843	}
 1844
 1845	// KafkaEventSource refers to event-source for Kafka related
 1846	// events
 1847	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaEventSource": {
 1848		// Yaml format Sarama config for Kafka connection.
 1849		// It follows the struct of sarama.Config. See
 1850		// https://github.com/IBM/sarama/blob/main/config.go
 1851		// e.g.
 1852		//
 1853		// consumer:
 1854		// fetch:
 1855		// min: 1
 1856		// net:
 1857		// MaxOpenRequests: 5
 1858		//
 1859		// +optional
 1860		"config"?: string
 1861
 1862		// Backoff holds parameters applied to connection.
 1863		"connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
 1864
 1865		// Consumer group for kafka client
 1866		// +optional
 1867		"consumerGroup"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaConsumerGroup"
 1868
 1869		// Filter
 1870		// +optional
 1871		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 1872
 1873		// JSONBody specifies that all event body payload coming from this
 1874		// source will be JSON
 1875		// +optional
 1876		"jsonBody"?: bool
 1877
 1878		// Sets a limit on how many events get read from kafka per second.
 1879		// +optional
 1880		"limitEventsPerSecond"?: string
 1881
 1882		// Metadata holds the user defined metadata which will passed
 1883		// along the event payload.
 1884		// +optional
 1885		"metadata"?: {
 1886			[string]: string
 1887		}
 1888
 1889		// Partition name
 1890		// +optional
 1891		"partition"?: string
 1892
 1893		// SASL configuration for the kafka client
 1894		// +optional
 1895		"sasl"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig"
 1896
 1897		// TLS configuration for the kafka client.
 1898		// +optional
 1899		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
 1900
 1901		// Topic name
 1902		"topic"?: string
 1903
 1904		// URL to kafka cluster, multiple URLs separated by comma
 1905		"url"?: string
 1906
 1907		// Specify what kafka version is being connected to enables
 1908		// certain features in sarama, defaults to 1.0.0
 1909		// +optional
 1910		"version"?: string
 1911	}
 1912
 1913	// KafkaTrigger refers to the specification of the Kafka trigger.
 1914	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaTrigger": {
 1915		// Compress determines whether to compress message or not.
 1916		// Defaults to false.
 1917		// If set to true, compresses message using snappy compression.
 1918		// +optional
 1919		"compress"?: bool
 1920
 1921		// FlushFrequency refers to the frequency in milliseconds to flush
 1922		// batches.
 1923		// Defaults to 500 milliseconds.
 1924		// +optional
 1925		"flushFrequency"?: int
 1926
 1927		// Headers for the Kafka Messages.
 1928		// +optional
 1929		"headers"?: {
 1930			[string]: string
 1931		}
 1932
 1933		// Parameters is the list of parameters that is applied to
 1934		// resolved Kafka trigger object.
 1935		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 1936
 1937		// +optional
 1938		// DEPRECATED
 1939		"partition"?: int
 1940
 1941		// The partitioning key for the messages put on the Kafka topic.
 1942		// +optional.
 1943		"partitioningKey"?: string
 1944
 1945		// Payload is the list of key-value extracted from an event
 1946		// payload to construct the request payload.
 1947		"payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 1948
 1949		// RequiredAcks used in producer to tell the broker how many
 1950		// replica acknowledgements
 1951		// Defaults to 1 (Only wait for the leader to ack).
 1952		// +optional.
 1953		"requiredAcks"?: int
 1954
 1955		// SASL configuration for the kafka client
 1956		// +optional
 1957		"sasl"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig"
 1958
 1959		// Schema Registry configuration to producer message with avro
 1960		// format
 1961		// +optional
 1962		"schemaRegistry"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SchemaRegistryConfig"
 1963
 1964		// Secure Headers stored in Kubernetes Secrets for the Kafka
 1965		// messages.
 1966		// +optional
 1967		"secureHeaders"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader"]
 1968
 1969		// TLS configuration for the Kafka producer.
 1970		// +optional
 1971		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
 1972
 1973		// Name of the topic.
 1974		// More info at
 1975		// https://kafka.apache.org/documentation/#intro_topics
 1976		"topic"?: string
 1977
 1978		// URL of the Kafka broker, multiple URLs separated by comma.
 1979		"url"?: string
 1980
 1981		// Specify what kafka version is being connected to enables
 1982		// certain features in sarama, defaults to 1.0.0
 1983		// +optional
 1984		"version"?: string
 1985	}
 1986
 1987	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.LogTrigger": {
 1988		// Only print messages every interval. Useful to prevent logging
 1989		// too much data for busy events.
 1990		// +optional
 1991		"intervalSeconds"?: string
 1992	}
 1993
 1994	// MQTTEventSource refers to event-source for MQTT related events
 1995	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.MQTTEventSource": {
 1996		// Auth hosts secret selectors for username and password
 1997		// +optional
 1998		"auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
 1999
 2000		// ClientID is the id of the client
 2001		"clientId"?: string
 2002
 2003		// ConnectionBackoff holds backoff applied to connection.
 2004		"connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
 2005
 2006		// Filter
 2007		// +optional
 2008		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 2009
 2010		// JSONBody specifies that all event body payload coming from this
 2011		// source will be JSON
 2012		// +optional
 2013		"jsonBody"?: bool
 2014
 2015		// Metadata holds the user defined metadata which will passed
 2016		// along the event payload.
 2017		// +optional
 2018		"metadata"?: {
 2019			[string]: string
 2020		}
 2021
 2022		// TLS configuration for the mqtt client.
 2023		// +optional
 2024		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
 2025
 2026		// Topic name
 2027		"topic"?: string
 2028
 2029		// URL to connect to broker
 2030		"url"?: string
 2031	}
 2032
 2033	// Metadata holds the annotations and labels of an event source
 2034	// pod
 2035	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata": {
 2036		"annotations"?: [string]: string
 2037		"labels"?: {
 2038			[string]: string
 2039		}
 2040	}
 2041
 2042	// NATSAuth refers to the auth info for NATS EventSource
 2043	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth": {
 2044		// Baisc auth with username and password
 2045		// +optional
 2046		"basic"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
 2047
 2048		// credential used to connect
 2049		// +optional
 2050		"credential"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2051
 2052		// NKey used to connect
 2053		// +optional
 2054		"nkey"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2055
 2056		// Token used to connect
 2057		// +optional
 2058		"token"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2059	}
 2060
 2061	// NATSEventsSource refers to event-source for NATS related events
 2062	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSEventsSource": {
 2063		// Auth information
 2064		// +optional
 2065		"auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth"
 2066
 2067		// ConnectionBackoff holds backoff applied to connection.
 2068		"connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
 2069
 2070		// Filter
 2071		// +optional
 2072		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 2073
 2074		// JSONBody specifies that all event body payload coming from this
 2075		// source will be JSON
 2076		// +optional
 2077		"jsonBody"?: bool
 2078
 2079		// Metadata holds the user defined metadata which will passed
 2080		// along the event payload.
 2081		// +optional
 2082		"metadata"?: {
 2083			[string]: string
 2084		}
 2085
 2086		// Queue is the name of the queue group to subscribe as if
 2087		// specified. Uses QueueSubscribe
 2088		// logic to subscribe as queue group. If the queue is empty, uses
 2089		// default Subscribe logic.
 2090		// +optional
 2091		"queue"?: string
 2092
 2093		// Subject holds the name of the subject onto which messages are
 2094		// published
 2095		"subject"?: string
 2096
 2097		// TLS configuration for the nats client.
 2098		// +optional
 2099		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
 2100
 2101		// URL to connect to NATS cluster
 2102		"url"?: string
 2103	}
 2104
 2105	// NATSTrigger refers to the specification of the NATS trigger.
 2106	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSTrigger": {
 2107		// AuthInformation
 2108		// +optional
 2109		"auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSAuth"
 2110		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 2111		"payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 2112
 2113		// Name of the subject to put message on.
 2114		"subject"?: string
 2115
 2116		// TLS configuration for the NATS producer.
 2117		// +optional
 2118		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
 2119
 2120		// URL of the NATS cluster.
 2121		"url"?: string
 2122	}
 2123
 2124	// NSQEventSource describes the event source for NSQ PubSub
 2125	// More info at https://godoc.org/github.com/nsqio/go-nsq
 2126	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NSQEventSource": {
 2127		// Channel used for subscription
 2128		"channel"?: string
 2129
 2130		// Backoff holds parameters applied to connection.
 2131		// +optional
 2132		"connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
 2133
 2134		// Filter
 2135		// +optional
 2136		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 2137
 2138		// HostAddress is the address of the host for NSQ lookup
 2139		"hostAddress"?: string
 2140
 2141		// JSONBody specifies that all event body payload coming from this
 2142		// source will be JSON
 2143		// +optional
 2144		"jsonBody"?: bool
 2145
 2146		// Metadata holds the user defined metadata which will passed
 2147		// along the event payload.
 2148		// +optional
 2149		"metadata"?: {
 2150			[string]: string
 2151		}
 2152
 2153		// TLS configuration for the nsq client.
 2154		// +optional
 2155		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
 2156
 2157		// Topic to subscribe to.
 2158		"topic"?: string
 2159	}
 2160
 2161	// OpenWhiskTrigger refers to the specification of the OpenWhisk
 2162	// trigger.
 2163	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OpenWhiskTrigger": {
 2164		// Name of the action/function.
 2165		"actionName"?: string
 2166
 2167		// AuthToken for authentication.
 2168		// +optional
 2169		"authToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2170
 2171		// Host URL of the OpenWhisk.
 2172		"host"?: string
 2173
 2174		// Namespace for the action.
 2175		// Defaults to "_".
 2176		// +optional.
 2177		"namespace"?: string
 2178
 2179		// Parameters is the list of key-value extracted from event's
 2180		// payload that are applied to
 2181		// the trigger resource.
 2182		// +optional
 2183		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 2184
 2185		// Payload is the list of key-value extracted from an event
 2186		// payload to construct the request payload.
 2187		"payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 2188
 2189		// Version for the API.
 2190		// Defaults to v1.
 2191		// +optional
 2192		"version"?: string
 2193	}
 2194
 2195	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OwnedRepositories": {
 2196		// Repository names
 2197		"names"?: [...string]
 2198
 2199		// Organization or user name
 2200		"owner"?: string
 2201	}
 2202
 2203	// PayloadField binds a value at path within the event payload
 2204	// against a name.
 2205	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PayloadField": {
 2206		// Name acts as key that holds the value at the path.
 2207		"name"?: string
 2208
 2209		// Path is the JSONPath of the event's (JSON decoded) data key
 2210		// Path is a series of keys separated by a dot. A key may contain
 2211		// wildcard characters '*' and '?'.
 2212		// To access an array value use the index as the key. The dot and
 2213		// wildcard characters can be escaped with '\\'.
 2214		// See https://github.com/tidwall/gjson#path-syntax for more
 2215		// information on how to use this.
 2216		"path"?: string
 2217	}
 2218
 2219	// PubSubEventSource refers to event-source for GCP PubSub related
 2220	// events.
 2221	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PubSubEventSource": {
 2222		// CredentialSecret references to the secret that contains JSON
 2223		// credentials to access GCP.
 2224		// If it is missing, it implicitly uses Workload Identity to
 2225		// access.
 2226		// https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
 2227		// +optional
 2228		"credentialSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2229
 2230		// DeleteSubscriptionOnFinish determines whether to delete the GCP
 2231		// PubSub subscription once the event source is stopped.
 2232		// +optional
 2233		"deleteSubscriptionOnFinish"?: bool
 2234
 2235		// Filter
 2236		// +optional
 2237		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 2238
 2239		// JSONBody specifies that all event body payload coming from this
 2240		// source will be JSON
 2241		// +optional
 2242		"jsonBody"?: bool
 2243
 2244		// Metadata holds the user defined metadata which will passed
 2245		// along the event payload.
 2246		// +optional
 2247		"metadata"?: {
 2248			[string]: string
 2249		}
 2250
 2251		// ProjectID is GCP project ID for the subscription.
 2252		// Required if you run Argo Events outside of GKE/GCE.
 2253		// (otherwise, the default value is its project)
 2254		// +optional
 2255		"projectID"?: string
 2256
 2257		// SubscriptionID is ID of subscription.
 2258		// Required if you use existing subscription.
 2259		// The default value will be auto generated hash based on this
 2260		// eventsource setting, so the subscription
 2261		// might be recreated every time you update the setting, which has
 2262		// a possibility of event loss.
 2263		// +optional
 2264		"subscriptionID"?: string
 2265
 2266		// Topic to which the subscription should belongs.
 2267		// Required if you want the eventsource to create a new
 2268		// subscription.
 2269		// If you specify this field along with an existing subscription,
 2270		// it will be verified whether it actually belongs to the
 2271		// specified topic.
 2272		// +optional
 2273		"topic"?: string
 2274
 2275		// TopicProjectID is GCP project ID for the topic.
 2276		// By default, it is same as ProjectID.
 2277		// +optional
 2278		"topicProjectID"?: string
 2279	}
 2280
 2281	// PulsarEventSource describes the event source for Apache Pulsar
 2282	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarEventSource": {
 2283		// Authentication athenz parameters for the pulsar client.
 2284		// Refer
 2285		// https://github.com/apache/pulsar-client-go/blob/master/pulsar/auth/athenz.go
 2286		// Either token or athenz can be set to use auth.
 2287		// +optional
 2288		"authAthenzParams"?: [string]: string
 2289
 2290		// Authentication athenz privateKey secret for the pulsar client.
 2291		// AuthAthenzSecret must be set if AuthAthenzParams is used.
 2292		// +optional
 2293		"authAthenzSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2294
 2295		// Authentication token for the pulsar client.
 2296		// Either token or athenz can be set to use auth.
 2297		// +optional
 2298		"authTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2299
 2300		// Backoff holds parameters applied to connection.
 2301		// +optional
 2302		"connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
 2303
 2304		// Filter
 2305		// +optional
 2306		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 2307
 2308		// JSONBody specifies that all event body payload coming from this
 2309		// source will be JSON
 2310		// +optional
 2311		"jsonBody"?: bool
 2312
 2313		// Metadata holds the user defined metadata which will passed
 2314		// along the event payload.
 2315		// +optional
 2316		"metadata"?: {
 2317			[string]: string
 2318		}
 2319
 2320		// TLS configuration for the pulsar client.
 2321		// +optional
 2322		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
 2323
 2324		// Whether the Pulsar client accept untrusted TLS certificate from
 2325		// broker.
 2326		// +optional
 2327		"tlsAllowInsecureConnection"?: bool
 2328
 2329		// Trusted TLS certificate secret.
 2330		// +optional
 2331		"tlsTrustCertsSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2332
 2333		// Whether the Pulsar client verify the validity of the host name
 2334		// from broker.
 2335		// +optional
 2336		"tlsValidateHostname"?: bool
 2337
 2338		// Name of the topics to subscribe to.
 2339		// +required
 2340		"topics"?: [...string]
 2341
 2342		// Type of the subscription.
 2343		// Only "exclusive" and "shared" is supported.
 2344		// Defaults to exclusive.
 2345		// +optional
 2346		"type"?: string
 2347
 2348		// Configure the service URL for the Pulsar service.
 2349		// +required
 2350		"url"?: string
 2351	}
 2352
 2353	// PulsarTrigger refers to the specification of the Pulsar
 2354	// trigger.
 2355	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarTrigger": {
 2356		// Authentication athenz parameters for the pulsar client.
 2357		// Refer
 2358		// https://github.com/apache/pulsar-client-go/blob/master/pulsar/auth/athenz.go
 2359		// Either token or athenz can be set to use auth.
 2360		// +optional
 2361		"authAthenzParams"?: [string]: string
 2362
 2363		// Authentication athenz privateKey secret for the pulsar client.
 2364		// AuthAthenzSecret must be set if AuthAthenzParams is used.
 2365		// +optional
 2366		"authAthenzSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2367
 2368		// Authentication token for the pulsar client.
 2369		// Either token or athenz can be set to use auth.
 2370		// +optional
 2371		"authTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2372
 2373		// Backoff holds parameters applied to connection.
 2374		// +optional
 2375		"connectionBackoff"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
 2376
 2377		// Parameters is the list of parameters that is applied to
 2378		// resolved Kafka trigger object.
 2379		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 2380
 2381		// Payload is the list of key-value extracted from an event
 2382		// payload to construct the request payload.
 2383		"payload"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 2384
 2385		// TLS configuration for the pulsar client.
 2386		// +optional
 2387		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
 2388
 2389		// Whether the Pulsar client accept untrusted TLS certificate from
 2390		// broker.
 2391		// +optional
 2392		"tlsAllowInsecureConnection"?: bool
 2393
 2394		// Trusted TLS certificate secret.
 2395		// +optional
 2396		"tlsTrustCertsSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2397
 2398		// Whether the Pulsar client verify the validity of the host name
 2399		// from broker.
 2400		// +optional
 2401		"tlsValidateHostname"?: bool
 2402
 2403		// Name of the topic.
 2404		// See https://pulsar.apache.org/docs/en/concepts-messaging/
 2405		"topic"?: string
 2406
 2407		// Configure the service URL for the Pulsar service.
 2408		// +required
 2409		"url"?: string
 2410	}
 2411
 2412	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RateLimit": {
 2413		"requestsPerUnit"?: int
 2414
 2415		// Defaults to Second
 2416		"unit"?: string
 2417	}
 2418
 2419	// RedisEventSource describes an event source for the Redis
 2420	// PubSub.
 2421	// More info at
 2422	// https://godoc.org/github.com/go-redis/redis#example-PubSub
 2423	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisEventSource": {
 2424		"channels"?: [...string]
 2425
 2426		// DB to use. If not specified, default DB 0 will be used.
 2427		// +optional
 2428		"db"?: int
 2429
 2430		// Filter
 2431		// +optional
 2432		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 2433
 2434		// HostAddress refers to the address of the Redis host/server
 2435		"hostAddress"?: string
 2436
 2437		// JSONBody specifies that all event body payload coming from this
 2438		// source will be JSON
 2439		// +optional
 2440		"jsonBody"?: bool
 2441
 2442		// Metadata holds the user defined metadata which will passed
 2443		// along the event payload.
 2444		// +optional
 2445		"metadata"?: {
 2446			[string]: string
 2447		}
 2448
 2449		// Namespace to use to retrieve the password from. It should only
 2450		// be specified if password is declared
 2451		// +optional
 2452		"namespace"?: string
 2453
 2454		// Password required for authentication if any.
 2455		// +optional
 2456		"password"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2457
 2458		// TLS configuration for the redis client.
 2459		// +optional
 2460		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
 2461
 2462		// Username required for ACL style authentication if any.
 2463		// +optional
 2464		"username"?: string
 2465	}
 2466
 2467	// RedisStreamEventSource describes an event source for
 2468	// Redis streams (https://redis.io/topics/streams-intro)
 2469	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RedisStreamEventSource": {
 2470		// ConsumerGroup refers to the Redis stream consumer group that
 2471		// will be
 2472		// created on all redis streams. Messages are read through this
 2473		// group. Defaults to 'argo-events-cg'
 2474		// +optional
 2475		"consumerGroup"?: string
 2476
 2477		// DB to use. If not specified, default DB 0 will be used.
 2478		// +optional
 2479		"db"?: int
 2480
 2481		// Filter
 2482		// +optional
 2483		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 2484
 2485		// HostAddress refers to the address of the Redis host/server
 2486		// (master instance)
 2487		"hostAddress"?: string
 2488
 2489		// MaxMsgCountPerRead holds the maximum number of messages per
 2490		// stream that will be read in each XREADGROUP of all streams
 2491		// Example: if there are 2 streams and MaxMsgCountPerRead=10, then
 2492		// each XREADGROUP may read upto a total of 20 messages.
 2493		// Same as COUNT option in
 2494		// XREADGROUP(https://redis.io/topics/streams-intro). Defaults to
 2495		// 10
 2496		// +optional
 2497		"maxMsgCountPerRead"?: int
 2498
 2499		// Metadata holds the user defined metadata which will passed
 2500		// along the event payload.
 2501		// +optional
 2502		"metadata"?: {
 2503			[string]: string
 2504		}
 2505
 2506		// Password required for authentication if any.
 2507		// +optional
 2508		"password"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2509
 2510		// Streams to look for entries. XREADGROUP is used on all streams
 2511		// using a single consumer group.
 2512		"streams"?: [...string]
 2513
 2514		// TLS configuration for the redis client.
 2515		// +optional
 2516		"tls"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig"
 2517
 2518		// Username required for ACL style authentication if any.
 2519		// +optional
 2520		"username"?: string
 2521	}
 2522
 2523	// ResourceEventSource refers to a event-source for K8s resource
 2524	// related events.
 2525	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceEventSource": {
 2526		// EventTypes is the list of event type to watch.
 2527		// Possible values are - ADD, UPDATE and DELETE.
 2528		"eventTypes"?: [...string]
 2529
 2530		// Filter is applied on the metadata of the resource
 2531		// If you apply filter, then the internal event informer will only
 2532		// monitor objects that pass the filter.
 2533		// +optional
 2534		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceFilter"
 2535
 2536		// Group of the resource
 2537		"groupVersionResource"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource"
 2538
 2539		// Metadata holds the user defined metadata which will passed
 2540		// along the event payload.
 2541		// +optional
 2542		"metadata"?: {
 2543			[string]: string
 2544		}
 2545
 2546		// Namespace where resource is deployed
 2547		"namespace"?: string
 2548	}
 2549
 2550	// ResourceFilter contains K8s ObjectMeta information to further
 2551	// filter resource event objects
 2552	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ResourceFilter": {
 2553		// If the resource is created after the start time then the event
 2554		// is treated as valid.
 2555		// +optional
 2556		"afterStart"?: bool
 2557
 2558		// If resource is created before the specified time then the event
 2559		// is treated as valid.
 2560		// +optional
 2561		"createdBy"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
 2562
 2563		// Fields provide field filters similar to K8s field selector
 2564		// (see
 2565		// https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/).
 2566		// Unlike K8s field selector, it supports arbitrary fileds like
 2567		// "spec.serviceAccountName",
 2568		// and the value could be a string or a regex.
 2569		// Same as K8s field selector, operator "=", "==" and "!=" are
 2570		// supported.
 2571		// +optional
 2572		"fields"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector"]
 2573
 2574		// Labels provide listing options to K8s API to watch resource/s.
 2575		// Refer
 2576		// https://kubernetes.io/docs/concepts/overview/working-with-objects/label-selectors/
 2577		// for more io.argoproj.workflow.v1alpha1.
 2578		// Unlike K8s field selector, multiple values are passed as comma
 2579		// separated values instead of list of values.
 2580		// Eg: value: value1,value2.
 2581		// Same as K8s label selector, operator "=", "==", "!=", "exists",
 2582		// "!", "notin", "in", "gt" and "lt"
 2583		// are supported
 2584		// +optional
 2585		"labels"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector"]
 2586
 2587		// Prefix filter is applied on the resource name.
 2588		// +optional
 2589		"prefix"?: string
 2590	}
 2591
 2592	// S3Artifact contains information about an S3 connection and
 2593	// bucket
 2594	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Artifact": {
 2595		"accessKey"?:     #."io.k8s.api.core.v1.SecretKeySelector"
 2596		"bucket"?:        #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Bucket"
 2597		"caCertificate"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2598		"endpoint"?:      string
 2599		"events"?: [...string]
 2600		"filter"?:   #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Filter"
 2601		"insecure"?: bool
 2602		"metadata"?: {
 2603			[string]: string
 2604		}
 2605		"region"?:    string
 2606		"secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2607	}
 2608
 2609	// S3Bucket contains information to describe an S3 Bucket
 2610	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Bucket": {
 2611		"key"?:  string
 2612		"name"?: string
 2613	}
 2614
 2615	// S3Filter represents filters to apply to bucket notifications
 2616	// for specifying constraints on objects
 2617	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.S3Filter": {
 2618		"prefix"?: string
 2619		"suffix"?: string
 2620	}
 2621
 2622	// SASLConfig refers to SASL configuration for a client
 2623	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SASLConfig": {
 2624		// SASLMechanism is the name of the enabled SASL mechanism.
 2625		// Possible values: OAUTHBEARER, PLAIN (defaults to PLAIN).
 2626		// +optional
 2627		"mechanism"?: string
 2628
 2629		// Password for SASL/PLAIN authentication
 2630		"passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2631
 2632		// User is the authentication identity (authcid) to present for
 2633		// SASL/PLAIN or SASL/SCRAM authentication
 2634		"userSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2635	}
 2636
 2637	// SFTPEventSource describes an event-source for sftp related
 2638	// events.
 2639	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SFTPEventSource": {
 2640		// Address sftp address.
 2641		"address"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2642
 2643		// Type of file operations to watch
 2644		// Refer
 2645		// https://github.com/fsnotify/fsnotify/blob/master/fsnotify.go
 2646		// for more information
 2647		"eventType"?: string
 2648
 2649		// Filter
 2650		// +optional
 2651		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 2652
 2653		// Metadata holds the user defined metadata which will passed
 2654		// along the event payload.
 2655		// +optional
 2656		"metadata"?: {
 2657			[string]: string
 2658		}
 2659
 2660		// Password required for authentication if any.
 2661		"password"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2662
 2663		// PollIntervalDuration the interval at which to poll the SFTP
 2664		// server
 2665		// defaults to 10 seconds
 2666		// +optional
 2667		"pollIntervalDuration"?: string
 2668
 2669		// SSHKeySecret refers to the secret that contains SSH key. Key
 2670		// needs to contain private key and public key.
 2671		"sshKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2672
 2673		// Username required for authentication if any.
 2674		"username"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2675
 2676		// WatchPathConfig contains configuration about the file path to
 2677		// watch
 2678		"watchPathConfig"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig"
 2679	}
 2680
 2681	// SNSEventSource refers to event-source for AWS SNS related
 2682	// events
 2683	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SNSEventSource": {
 2684		// AccessKey refers K8s secret containing aws access key
 2685		"accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2686
 2687		// Endpoint configures connection to a specific SNS endpoint
 2688		// instead of Amazons servers
 2689		// +optional
 2690		"endpoint"?: string
 2691
 2692		// Filter
 2693		// +optional
 2694		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 2695
 2696		// Metadata holds the user defined metadata which will passed
 2697		// along the event payload.
 2698		// +optional
 2699		"metadata"?: {
 2700			[string]: string
 2701		}
 2702
 2703		// Region is AWS region
 2704		"region"?: string
 2705
 2706		// RoleARN is the Amazon Resource Name (ARN) of the role to
 2707		// assume.
 2708		// +optional
 2709		"roleARN"?: string
 2710
 2711		// SecretKey refers K8s secret containing aws secret key
 2712		"secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2713
 2714		// TopicArn
 2715		"topicArn"?: string
 2716
 2717		// ValidateSignature is boolean that can be set to true for SNS
 2718		// signature verification
 2719		// +optional
 2720		"validateSignature"?: bool
 2721
 2722		// Webhook configuration for http server
 2723		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
 2724	}
 2725
 2726	// SQSEventSource refers to event-source for AWS SQS related
 2727	// events
 2728	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SQSEventSource": {
 2729		// AccessKey refers K8s secret containing aws access key
 2730		"accessKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2731
 2732		// DLQ specifies if a dead-letter queue is configured for messages
 2733		// that can't be processed successfully.
 2734		// If set to true, messages with invalid payload won't be
 2735		// acknowledged to allow to forward them farther to the
 2736		// dead-letter queue.
 2737		// The default value is false.
 2738		// +optional
 2739		"dlq"?: bool
 2740
 2741		// Endpoint configures connection to a specific SQS endpoint
 2742		// instead of Amazons servers
 2743		// +optional
 2744		"endpoint"?: string
 2745
 2746		// Filter
 2747		// +optional
 2748		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 2749
 2750		// JSONBody specifies that all event body payload coming from this
 2751		// source will be JSON
 2752		// +optional
 2753		"jsonBody"?: bool
 2754
 2755		// Metadata holds the user defined metadata which will passed
 2756		// along the event payload.
 2757		// +optional
 2758		"metadata"?: {
 2759			[string]: string
 2760		}
 2761
 2762		// Queue is AWS SQS queue to listen to for messages
 2763		"queue"?: string
 2764
 2765		// QueueAccountID is the ID of the account that created the queue
 2766		// to monitor
 2767		// +optional
 2768		"queueAccountId"?: string
 2769
 2770		// Region is AWS region
 2771		"region"?: string
 2772
 2773		// RoleARN is the Amazon Resource Name (ARN) of the role to
 2774		// assume.
 2775		// +optional
 2776		"roleARN"?: string
 2777
 2778		// SecretKey refers K8s secret containing aws secret key
 2779		"secretKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2780
 2781		// SessionToken refers to K8s secret containing AWS temporary
 2782		// credentials(STS) session token
 2783		// +optional
 2784		"sessionToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2785
 2786		// WaitTimeSeconds is The duration (in seconds) for which the call
 2787		// waits for a message to arrive
 2788		// in the queue before returning.
 2789		"waitTimeSeconds"?: string
 2790	}
 2791
 2792	// SchemaRegistryConfig refers to configuration for a client
 2793	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SchemaRegistryConfig": {
 2794		// +optional
 2795		// SchemaRegistry - basic authentication
 2796		"auth"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.BasicAuth"
 2797
 2798		// Schema ID
 2799		"schemaId"?: int
 2800
 2801		// Schema Registry URL.
 2802		"url"?: string
 2803	}
 2804
 2805	// SecureHeader refers to HTTP Headers with auth tokens as values
 2806	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SecureHeader": {
 2807		"name"?: string
 2808
 2809		// Values can be read from either secrets or configmaps
 2810		"valueFrom"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ValueFromSource"
 2811	}
 2812
 2813	// Selector represents conditional operation to select K8s
 2814	// objects.
 2815	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Selector": {
 2816		// Key name
 2817		"key"?: string
 2818
 2819		// Supported operations like ==, != etc.
 2820		// Defaults to ==.
 2821		// Refer
 2822		// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
 2823		// for more io.argoproj.workflow.v1alpha1.
 2824		// +optional
 2825		"operation"?: string
 2826
 2827		// Value
 2828		"value"?: string
 2829	}
 2830
 2831	// Sensor is the definition of a sensor resource
 2832	// +genclient
 2833	// +genclient:noStatus
 2834	// +kubebuilder:resource:shortName=sn
 2835	// +kubebuilder:subresource:status
 2836	// +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
 2837	// +k8s:openapi-gen=true
 2838	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor": {
 2839		"metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
 2840		"spec"?:     #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorSpec"
 2841
 2842		// +optional
 2843		"status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorStatus"
 2844	}
 2845
 2846	// SensorList is the list of Sensor resources
 2847	// +k8s:deepcopy-gen:interfaces=io.k8s.apimachinery/pkg/runtime.Object
 2848	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorList": {
 2849		"items"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"]
 2850		"metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
 2851	}
 2852
 2853	// SensorSpec represents desired sensor state
 2854	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorSpec": {
 2855		// Dependencies is a list of the events that this sensor is
 2856		// dependent on.
 2857		"dependencies"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventDependency"]
 2858
 2859		// ErrorOnFailedRound if set to true, marks sensor state as
 2860		// `error` if the previous trigger round fails.
 2861		// Once sensor state is set to `error`, no further triggers will
 2862		// be processed.
 2863		"errorOnFailedRound"?: bool
 2864
 2865		// EventBusName references to a EventBus name. By default the
 2866		// value is "default"
 2867		"eventBusName"?: string
 2868
 2869		// LoggingFields add additional key-value pairs when logging
 2870		// happens
 2871		// +optional
 2872		"loggingFields"?: {
 2873			[string]: string
 2874		}
 2875
 2876		// Replicas is the sensor deployment replicas
 2877		"replicas"?: int
 2878
 2879		// RevisionHistoryLimit specifies how many old deployment
 2880		// revisions to retain
 2881		// +optional
 2882		"revisionHistoryLimit"?: int
 2883
 2884		// Template is the pod specification for the sensor
 2885		// +optional
 2886		"template"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template"
 2887
 2888		// Triggers is a list of the things that this sensor evokes. These
 2889		// are the outputs from this sensor.
 2890		"triggers"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger"]
 2891	}
 2892
 2893	// SensorStatus contains information about the status of a sensor.
 2894	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SensorStatus": "status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status"
 2895
 2896	// Service holds the service information eventsource exposes
 2897	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Service": {
 2898		// clusterIP is the IP address of the service and is usually
 2899		// assigned
 2900		// randomly by the master. If an address is specified manually and
 2901		// is not in
 2902		// use by others, it will be allocated to the service; otherwise,
 2903		// creation
 2904		// of the service will fail. This field can not be changed through
 2905		// updates.
 2906		// Valid values are "None", empty string (""), or a valid IP
 2907		// address. "None"
 2908		// can be specified for headless services when proxying is not
 2909		// required.
 2910		// More info:
 2911		// https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
 2912		// +optional
 2913		"clusterIP"?: string
 2914
 2915		// Metadata sets the pods's metadata, i.e. annotations and labels
 2916		// default={annotations: {}, labels: {}}
 2917		"metadata"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata"
 2918
 2919		// The list of ports that are exposed by this ClusterIP service.
 2920		// +patchMergeKey=port
 2921		// +patchStrategy=merge
 2922		// +listType=map
 2923		// +listMapKey=port
 2924		// +listMapKey=protocol
 2925		"ports"?: [...#."io.k8s.api.core.v1.ServicePort"]
 2926	}
 2927
 2928	// SlackEventSource refers to event-source for Slack related
 2929	// events
 2930	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackEventSource": {
 2931		// Filter
 2932		// +optional
 2933		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 2934
 2935		// Metadata holds the user defined metadata which will passed
 2936		// along the event payload.
 2937		// +optional
 2938		"metadata"?: {
 2939			[string]: string
 2940		}
 2941
 2942		// Slack App signing secret
 2943		"signingSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2944
 2945		// Token for URL verification handshake
 2946		"token"?: #."io.k8s.api.core.v1.SecretKeySelector"
 2947
 2948		// Webhook holds configuration for a REST endpoint
 2949		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
 2950	}
 2951
 2952	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackSender": {
 2953		// Icon is the Slack application's icon, e.g. :robot_face: or
 2954		// https://example.com/image.png
 2955		// +optional
 2956		"icon"?: string
 2957
 2958		// Username is the Slack application's username
 2959		// +optional
 2960		"username"?: string
 2961	}
 2962
 2963	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackThread": {
 2964		// BroadcastMessageToChannel allows to also broadcast the message
 2965		// from the thread to the channel
 2966		// +optional
 2967		"broadcastMessageToChannel"?: bool
 2968
 2969		// MessageAggregationKey allows to aggregate the messages to a
 2970		// thread by some key.
 2971		// +optional
 2972		"messageAggregationKey"?: string
 2973	}
 2974
 2975	// SlackTrigger refers to the specification of the slack
 2976	// notification trigger.
 2977	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackTrigger": {
 2978		// Attachments is a JSON format string that represents an array of
 2979		// Slack attachments according to the attachments API:
 2980		// https://api.slack.com/reference/messaging/attachments .
 2981		// +optional
 2982		"attachments"?: string
 2983
 2984		// Blocks is a JSON format string that represents an array of
 2985		// Slack blocks according to the blocks API:
 2986		// https://api.slack.com/reference/block-kit/blocks .
 2987		// +optional
 2988		"blocks"?: string
 2989
 2990		// Channel refers to which Slack channel to send Slack message.
 2991		// +optional
 2992		"channel"?: string
 2993
 2994		// Message refers to the message to send to the Slack channel.
 2995		// +optional
 2996		"message"?: string
 2997
 2998		// Parameters is the list of key-value extracted from event's
 2999		// payload that are applied to
 3000		// the trigger resource.
 3001		// +optional
 3002		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 3003
 3004		// Sender refers to additional configuration of the Slack
 3005		// application that sends the message.
 3006		// +optional
 3007		"sender"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackSender"
 3008
 3009		// SlackToken refers to the Kubernetes secret that holds the slack
 3010		// token required to send messages.
 3011		"slackToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
 3012
 3013		// Thread refers to additional options for sending messages to a
 3014		// Slack thread.
 3015		// +optional
 3016		"thread"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackThread"
 3017	}
 3018
 3019	// StandardK8STrigger is the standard Kubernetes resource trigger
 3020	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StandardK8STrigger": {
 3021		// LiveObject specifies whether the resource should be directly
 3022		// fetched from K8s instead
 3023		// of being marshaled from the resource artifact. If set to true,
 3024		// the resource artifact
 3025		// must contain the information required to uniquely identify the
 3026		// resource in the cluster,
 3027		// that is, you must specify "apiVersion", "kind" as well as
 3028		// "name" and "namespace" meta
 3029		// data.
 3030		// Only valid for operation type `update`
 3031		// +optional
 3032		"liveObject"?: bool
 3033
 3034		// Operation refers to the type of operation performed on the k8s
 3035		// resource.
 3036		// Default value is Create.
 3037		// +optional
 3038		"operation"?: string
 3039
 3040		// Parameters is the list of parameters that is applied to
 3041		// resolved K8s trigger object.
 3042		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 3043
 3044		// PatchStrategy controls the K8s object patching strategy when
 3045		// the trigger operation is specified as patch.
 3046		// possible values:
 3047		// "application/json-patch+json"
 3048		// "application/merge-patch+json"
 3049		// "application/strategic-merge-patch+json"
 3050		// "application/apply-patch+yaml".
 3051		// Defaults to "application/merge-patch+json"
 3052		// +optional
 3053		"patchStrategy"?: string
 3054
 3055		// Source of the K8s resource file(s)
 3056		"source"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArtifactLocation"
 3057	}
 3058
 3059	// Status is a common structure which can be used for Status
 3060	// field.
 3061	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Status": {
 3062		// Conditions are the latest available observations of a
 3063		// resource's current state.
 3064		// +optional
 3065		// +patchMergeKey=type
 3066		// +patchStrategy=merge
 3067		"conditions"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Condition"]
 3068	}
 3069
 3070	// StatusPolicy refers to the policy used to check the state of
 3071	// the trigger using response status
 3072	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StatusPolicy": "allow"?: [...int]
 3073
 3074	// StorageGridEventSource refers to event-source for StorageGrid
 3075	// related events
 3076	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridEventSource": {
 3077		// APIURL is the url of the storagegrid api.
 3078		"apiURL"?: string
 3079
 3080		// Auth token for storagegrid api
 3081		"authToken"?: #."io.k8s.api.core.v1.SecretKeySelector"
 3082
 3083		// Name of the bucket to register notifications for.
 3084		"bucket"?: string
 3085		"events"?: [...string]
 3086
 3087		// Filter on object key which caused the notification.
 3088		"filter"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridFilter"
 3089
 3090		// Metadata holds the user defined metadata which will passed
 3091		// along the event payload.
 3092		// +optional
 3093		"metadata"?: {
 3094			[string]: string
 3095		}
 3096
 3097		// S3 region.
 3098		// Defaults to us-east-1
 3099		// +optional
 3100		"region"?: string
 3101
 3102		// TopicArn
 3103		"topicArn"?: string
 3104
 3105		// Webhook holds configuration for a REST endpoint
 3106		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
 3107	}
 3108
 3109	// StorageGridFilter represents filters to apply to bucket
 3110	// notifications for specifying constraints on objects
 3111	// +k8s:openapi-gen=true
 3112	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StorageGridFilter": {
 3113		"prefix"?: string
 3114		"suffix"?: string
 3115	}
 3116
 3117	// StripeEventSource describes the event source for stripe webhook
 3118	// notifications
 3119	// More info at https://stripe.com/docs/webhooks
 3120	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StripeEventSource": {
 3121		// APIKey refers to K8s secret that holds Stripe API key. Used
 3122		// only if CreateWebhook is enabled.
 3123		// +optional
 3124		"apiKey"?: #."io.k8s.api.core.v1.SecretKeySelector"
 3125
 3126		// CreateWebhook if specified creates a new webhook
 3127		// programmatically.
 3128		// +optional
 3129		"createWebhook"?: bool
 3130
 3131		// EventFilter describes the type of events to listen to. If not
 3132		// specified, all types of events will be processed.
 3133		// More info at https://stripe.com/docs/api/events/list
 3134		// +optional
 3135		"eventFilter"?: [...string]
 3136
 3137		// Metadata holds the user defined metadata which will passed
 3138		// along the event payload.
 3139		// +optional
 3140		"metadata"?: {
 3141			[string]: string
 3142		}
 3143
 3144		// Webhook holds configuration for a REST endpoint
 3145		"webhook"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
 3146	}
 3147
 3148	// TLSConfig refers to TLS configuration for a client.
 3149	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TLSConfig": {
 3150		// CACertSecret refers to the secret that contains the CA cert
 3151		"caCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 3152
 3153		// ClientCertSecret refers to the secret that contains the client
 3154		// cert
 3155		"clientCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 3156
 3157		// ClientKeySecret refers to the secret that contains the client
 3158		// key
 3159		"clientKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 3160
 3161		// If true, skips creation of TLSConfig with certs and creates an
 3162		// empty TLSConfig. (Defaults to false)
 3163		// +optional
 3164		"insecureSkipVerify"?: bool
 3165	}
 3166
 3167	// Template holds the information of a deployment template
 3168	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Template": {
 3169		// If specified, the pod's scheduling constraints
 3170		// +optional
 3171		"affinity"?: #."io.k8s.api.core.v1.Affinity"
 3172
 3173		// Container is the main container image to run in the sensor pod
 3174		// +optional
 3175		"container"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Container"
 3176
 3177		// ImagePullSecrets is an optional list of references to secrets
 3178		// in the same namespace to use for pulling any of the images
 3179		// used by this PodSpec.
 3180		// If specified, these secrets will be passed to individual puller
 3181		// implementations for them to use. For example,
 3182		// in the case of docker, only DockerConfig type secrets are
 3183		// honored.
 3184		// More info:
 3185		// https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
 3186		// +optional
 3187		// +patchMergeKey=name
 3188		// +patchStrategy=merge
 3189		"imagePullSecrets"?: [...#."io.k8s.api.core.v1.LocalObjectReference"]
 3190
 3191		// Metadata sets the pods's metadata, i.e. annotations and labels
 3192		"metadata"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Metadata"
 3193
 3194		// NodeSelector is a selector which must be true for the pod to
 3195		// fit on a node.
 3196		// Selector which must match a node's labels for the pod to be
 3197		// scheduled on that node.
 3198		// More info:
 3199		// https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
 3200		// +optional
 3201		"nodeSelector"?: {
 3202			[string]: string
 3203		}
 3204
 3205		// The priority value. Various system components use this field to
 3206		// find the
 3207		// priority of the EventSource pod. When Priority Admission
 3208		// Controller is enabled,
 3209		// it prevents users from setting this field. The admission
 3210		// controller populates
 3211		// this field from PriorityClassName.
 3212		// The higher the value, the higher the priority.
 3213		// More info:
 3214		// https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
 3215		// +optional
 3216		"priority"?: int
 3217
 3218		// If specified, indicates the EventSource pod's priority.
 3219		// "system-node-critical"
 3220		// and "system-cluster-critical" are two special keywords which
 3221		// indicate the
 3222		// highest priorities with the former being the highest priority.
 3223		// Any other
 3224		// name must be defined by creating a PriorityClass object with
 3225		// that name.
 3226		// If not specified, the pod priority will be default or zero if
 3227		// there is no
 3228		// default.
 3229		// More info:
 3230		// https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
 3231		// +optional
 3232		"priorityClassName"?: string
 3233
 3234		// SecurityContext holds pod-level security attributes and common
 3235		// container settings.
 3236		// Optional: Defaults to empty. See type description for default
 3237		// values of each field.
 3238		// +optional
 3239		"securityContext"?: #."io.k8s.api.core.v1.PodSecurityContext"
 3240
 3241		// ServiceAccountName is the name of the ServiceAccount to use to
 3242		// run sensor pod.
 3243		// More info:
 3244		// https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
 3245		// +optional
 3246		"serviceAccountName"?: string
 3247
 3248		// If specified, the pod's tolerations.
 3249		// +optional
 3250		"tolerations"?: [...#."io.k8s.api.core.v1.Toleration"]
 3251
 3252		// Volumes is a list of volumes that can be mounted by containers
 3253		// in a io.argoproj.workflow.v1alpha1.
 3254		// +patchStrategy=merge
 3255		// +patchMergeKey=name
 3256		// +optional
 3257		"volumes"?: [...#."io.k8s.api.core.v1.Volume"]
 3258	}
 3259
 3260	// TimeFilter describes a window in time.
 3261	// It filters out events that occur outside the time limits.
 3262	// In other words, only events that occur after Start and before
 3263	// Stop
 3264	// will pass this filter.
 3265	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TimeFilter": {
 3266		// Start is the beginning of a time window in UTC.
 3267		// Before this time, events for this dependency are ignored.
 3268		// Format is hh:mm:ss.
 3269		"start"?: string
 3270
 3271		// Stop is the end of a time window in UTC.
 3272		// After or equal to this time, events for this dependency are
 3273		// ignored and
 3274		// Format is hh:mm:ss.
 3275		// If it is smaller than Start, it is treated as next day of Start
 3276		// (e.g.: 22:00:00-01:00:00 means 22:00:00-25:00:00).
 3277		"stop"?: string
 3278	}
 3279
 3280	// Trigger is an action taken, output produced, an event created,
 3281	// a message sent
 3282	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger": {
 3283		// AtLeastOnce determines the trigger execution semantics.
 3284		// Defaults to false. Trigger execution will use at-most-once
 3285		// semantics.
 3286		// If set to true, Trigger execution will switch to at-least-once
 3287		// semantics.
 3288		// +kubebuilder:default=false
 3289		// +optional
 3290		"atLeastOnce"?: bool
 3291
 3292		// If the trigger fails, it will retry up to the configured number
 3293		// of
 3294		// retries. If the maximum retries are reached and the trigger is
 3295		// set to
 3296		// execute atLeastOnce, the dead letter queue (DLQ) trigger will
 3297		// be invoked if
 3298		// specified. Invoking the dead letter queue trigger helps prevent
 3299		// data
 3300		// loss.
 3301		// +optional
 3302		"dlqTrigger"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Trigger"
 3303
 3304		// Parameters is the list of parameters applied to the trigger
 3305		// template definition
 3306		"parameters"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter"]
 3307
 3308		// Policy to configure backoff and execution criteria for the
 3309		// trigger
 3310		// +optional
 3311		"policy"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerPolicy"
 3312
 3313		// Rate limit, default unit is Second
 3314		// +optional
 3315		"rateLimit"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.RateLimit"
 3316
 3317		// Retry strategy, defaults to no retry
 3318		// +optional
 3319		"retryStrategy"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Backoff"
 3320
 3321		// Template describes the trigger specification.
 3322		"template"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerTemplate"
 3323	}
 3324
 3325	// TriggerParameter indicates a passed parameter to a service
 3326	// template
 3327	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameter": {
 3328		// Dest is the JSONPath of a resource key.
 3329		// A path is a series of keys separated by a dot. The colon
 3330		// character can be escaped with '.'
 3331		// The -1 key can be used to append a value to an existing array.
 3332		// See https://github.com/tidwall/sjson#path-syntax for more
 3333		// information about how this is used.
 3334		"dest"?: string
 3335
 3336		// Operation is what to do with the existing value at Dest,
 3337		// whether to
 3338		// 'prepend', 'overwrite', or 'append' it.
 3339		"operation"?: string
 3340
 3341		// Src contains a source reference to the value of the parameter
 3342		// from a dependency
 3343		"src"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameterSource"
 3344	}
 3345
 3346	// TriggerParameterSource defines the source for a parameter from
 3347	// a event event
 3348	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerParameterSource": {
 3349		// ContextKey is the JSONPath of the event's (JSON decoded)
 3350		// context key
 3351		// ContextKey is a series of keys separated by a dot. A key may
 3352		// contain wildcard characters '*' and '?'.
 3353		// To access an array value use the index as the key. The dot and
 3354		// wildcard characters can be escaped with '\\'.
 3355		// See https://github.com/tidwall/gjson#path-syntax for more
 3356		// information on how to use this.
 3357		"contextKey"?: string
 3358
 3359		// ContextTemplate is a go-template for extracting a string from
 3360		// the event's context.
 3361		// If a ContextTemplate is provided with a ContextKey, the
 3362		// template will be evaluated first and fallback to the
 3363		// ContextKey.
 3364		// The templating follows the standard go-template syntax as well
 3365		// as sprig's extra functions.
 3366		// See https://pkg.go.dev/text/template and
 3367		// https://masterminds.github.io/sprig/
 3368		"contextTemplate"?: string
 3369
 3370		// DataKey is the JSONPath of the event's (JSON decoded) data key
 3371		// DataKey is a series of keys separated by a dot. A key may
 3372		// contain wildcard characters '*' and '?'.
 3373		// To access an array value use the index as the key. The dot and
 3374		// wildcard characters can be escaped with '\\'.
 3375		// See https://github.com/tidwall/gjson#path-syntax for more
 3376		// information on how to use this.
 3377		"dataKey"?: string
 3378
 3379		// DataTemplate is a go-template for extracting a string from the
 3380		// event's data.
 3381		// If a DataTemplate is provided with a DataKey, the template will
 3382		// be evaluated first and fallback to the DataKey.
 3383		// The templating follows the standard go-template syntax as well
 3384		// as sprig's extra functions.
 3385		// See https://pkg.go.dev/text/template and
 3386		// https://masterminds.github.io/sprig/
 3387		"dataTemplate"?: string
 3388
 3389		// DependencyName refers to the name of the dependency. The event
 3390		// which is stored for this dependency is used as payload
 3391		// for the parameterization. Make sure to refer to one of the
 3392		// dependencies you have defined under Dependencies list.
 3393		"dependencyName"?: string
 3394
 3395		// UseRawData indicates if the value in an event at data key
 3396		// should be used without converting to string.
 3397		// When true, a number, boolean, json or string parameter may be
 3398		// extracted. When the field is unspecified, or explicitly
 3399		// false, the behavior is to turn the extracted field into a
 3400		// string. (e.g. when set to true, the parameter
 3401		// 123 will resolve to the numerical type, but when false, or not
 3402		// provided, the string "123" will be resolved)
 3403		// +optional
 3404		"useRawData"?: bool
 3405
 3406		// Value is the default literal value to use for this parameter
 3407		// source
 3408		// This is only used if the DataKey is invalid.
 3409		// If the DataKey is invalid and this is not defined, this param
 3410		// source will produce an error.
 3411		"value"?: string
 3412	}
 3413
 3414	// TriggerPolicy dictates the policy for the trigger retries
 3415	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerPolicy": {
 3416		// K8SResourcePolicy refers to the policy used to check the state
 3417		// of K8s based triggers using using labels
 3418		"k8s"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.K8SResourcePolicy"
 3419
 3420		// Status refers to the policy used to check the state of the
 3421		// trigger using response status
 3422		"status"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StatusPolicy"
 3423	}
 3424
 3425	// TriggerTemplate is the template that describes trigger
 3426	// specification.
 3427	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.TriggerTemplate": {
 3428		// ArgoWorkflow refers to the trigger that can perform various
 3429		// operations on an Argo io.argoproj.workflow.v1alpha1.
 3430		// +optional
 3431		"argoWorkflow"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ArgoWorkflowTrigger"
 3432
 3433		// AWSLambda refers to the trigger designed to invoke AWS Lambda
 3434		// function with with on-the-fly constructable payload.
 3435		// +optional
 3436		"awsLambda"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AWSLambdaTrigger"
 3437
 3438		// AzureEventHubs refers to the trigger send an event to an Azure
 3439		// Event Hub.
 3440		// +optional
 3441		"azureEventHubs"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureEventHubsTrigger"
 3442
 3443		// AzureServiceBus refers to the trigger designed to place
 3444		// messages on Azure Service Bus
 3445		// +optional
 3446		"azureServiceBus"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.AzureServiceBusTrigger"
 3447
 3448		// Conditions is the conditions to execute the trigger.
 3449		// For example: "(dep01 || dep02) && dep04"
 3450		// +optional
 3451		"conditions"?: string
 3452
 3453		// Criteria to reset the conditons
 3454		// +optional
 3455		"conditionsReset"?: [...#."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ConditionsResetCriteria"]
 3456
 3457		// CustomTrigger refers to the trigger designed to connect to a
 3458		// gRPC trigger server and execute a custom trigger.
 3459		// +optional
 3460		"custom"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.CustomTrigger"
 3461
 3462		// Email refers to the trigger designed to send an email
 3463		// notification
 3464		// +optional
 3465		"email"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EmailTrigger"
 3466
 3467		// HTTP refers to the trigger designed to dispatch a HTTP request
 3468		// with on-the-fly constructable payload.
 3469		// +optional
 3470		"http"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.HTTPTrigger"
 3471
 3472		// StandardK8STrigger refers to the trigger designed to create or
 3473		// update a generic Kubernetes resource.
 3474		// +optional
 3475		"k8s"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.StandardK8STrigger"
 3476
 3477		// Kafka refers to the trigger designed to place messages on Kafka
 3478		// topic.
 3479		// +optional.
 3480		"kafka"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.KafkaTrigger"
 3481
 3482		// Log refers to the trigger designed to invoke log the
 3483		// io.argoproj.workflow.v1alpha1.
 3484		// +optional
 3485		"log"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.LogTrigger"
 3486
 3487		// Name is a unique name of the action to take.
 3488		"name"?: string
 3489
 3490		// NATS refers to the trigger designed to place message on NATS
 3491		// subject.
 3492		// +optional.
 3493		"nats"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.NATSTrigger"
 3494
 3495		// OpenWhisk refers to the trigger designed to invoke OpenWhisk
 3496		// action.
 3497		// +optional
 3498		"openWhisk"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.OpenWhiskTrigger"
 3499
 3500		// Pulsar refers to the trigger designed to place messages on
 3501		// Pulsar topic.
 3502		// +optional
 3503		"pulsar"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.PulsarTrigger"
 3504
 3505		// Slack refers to the trigger designed to send slack notification
 3506		// message.
 3507		// +optional
 3508		"slack"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.SlackTrigger"
 3509	}
 3510
 3511	// URLArtifact contains information about an artifact at an http
 3512	// endpoint.
 3513	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.URLArtifact": {
 3514		// Path is the complete URL
 3515		"path"?: string
 3516
 3517		// VerifyCert decides whether the connection is secure or not
 3518		"verifyCert"?: bool
 3519	}
 3520
 3521	// ValueFromSource allows you to reference keys from either a
 3522	// Configmap or Secret
 3523	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.ValueFromSource": {
 3524		"configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
 3525		"secretKeyRef"?:    #."io.k8s.api.core.v1.SecretKeySelector"
 3526	}
 3527
 3528	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WatchPathConfig": {
 3529		// Directory to watch for events
 3530		"directory"?: string
 3531
 3532		// Path is relative path of object to watch with respect to the
 3533		// directory
 3534		"path"?: string
 3535
 3536		// PathRegexp is regexp of relative path of object to watch with
 3537		// respect to the directory
 3538		"pathRegexp"?: string
 3539	}
 3540
 3541	// WebhookContext holds a general purpose REST API context
 3542	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext": {
 3543		// AuthSecret holds a secret selector that contains a bearer token
 3544		// for authentication
 3545		// +optional
 3546		"authSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 3547
 3548		// REST API endpoint
 3549		"endpoint"?: string
 3550
 3551		// MaxPayloadSize is the maximum webhook payload size that the
 3552		// server will accept.
 3553		// Requests exceeding that limit will be rejected with "request
 3554		// too large" response.
 3555		// Default value: 1048576 (1MB).
 3556		// +optional
 3557		"maxPayloadSize"?: string
 3558
 3559		// Metadata holds the user defined metadata which will passed
 3560		// along the event payload.
 3561		// +optional
 3562		"metadata"?: {
 3563			[string]: string
 3564		}
 3565
 3566		// Method is HTTP request method that indicates the desired action
 3567		// to be performed for a given resource.
 3568		// See RFC7231 Hypertext Transfer Protocol (HTTP/1.1): Semantics
 3569		// and Content
 3570		"method"?: string
 3571
 3572		// Port on which HTTP server is listening for incoming events.
 3573		"port"?: string
 3574
 3575		// ServerCertPath refers the file that contains the cert.
 3576		"serverCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 3577
 3578		// ServerKeyPath refers the file that contains private key
 3579		"serverKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 3580
 3581		// URL is the url of the server.
 3582		"url"?: string
 3583	}
 3584
 3585	// CalendarEventSource describes an HTTP based EventSource
 3586	#: "github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookEventSource": {
 3587		// Filter
 3588		// +optional
 3589		"filter"?:         #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.EventSourceFilter"
 3590		"webhookContext"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.WebhookContext"
 3591	}
 3592
 3593	#: "google.protobuf.Any": {
 3594		"type_url"?: string
 3595		"value"?:    string
 3596	}
 3597
 3598	#: "grpc.gateway.runtime.Error": {
 3599		"code"?: int
 3600		"details"?: [...#."google.protobuf.Any"]
 3601		"error"?:   string
 3602		"message"?: string
 3603	}
 3604
 3605	#: "grpc.gateway.runtime.StreamError": {
 3606		"details"?: [...#."google.protobuf.Any"]
 3607		"grpc_code"?:   int
 3608		"http_code"?:   int
 3609		"http_status"?: string
 3610		"message"?:     string
 3611	}
 3612
 3613	// Amount represent a numeric amount.
 3614	#: "io.argoproj.workflow.v1alpha1.Amount": number
 3615
 3616	// ArchiveStrategy describes how to archive files/directory when
 3617	// saving artifacts
 3618	#: "io.argoproj.workflow.v1alpha1.ArchiveStrategy": {
 3619		"none"?: #."io.argoproj.workflow.v1alpha1.NoneStrategy"
 3620		"tar"?:  #."io.argoproj.workflow.v1alpha1.TarStrategy"
 3621		"zip"?:  #."io.argoproj.workflow.v1alpha1.ZipStrategy"
 3622	}
 3623
 3624	#: "io.argoproj.workflow.v1alpha1.ArchivedWorkflowDeletedResponse": {}
 3625
 3626	// Arguments to a template
 3627	#: "io.argoproj.workflow.v1alpha1.Arguments": {
 3628		// Artifacts is the list of artifacts to pass to the template or
 3629		// workflow
 3630		"artifacts"?: [...#."io.argoproj.workflow.v1alpha1.Artifact"]
 3631
 3632		// Parameters is the list of parameters to pass to the template or
 3633		// workflow
 3634		"parameters"?: [...#."io.argoproj.workflow.v1alpha1.Parameter"]
 3635	}
 3636
 3637	// ArtGCStatus maintains state related to ArtifactGC
 3638	#: "io.argoproj.workflow.v1alpha1.ArtGCStatus": {
 3639		// if this is true, we already checked to see if we need to do it
 3640		// and we don't
 3641		"notSpecified"?: bool
 3642
 3643		// have completed Pods been processed? (mapped by Pod name) used
 3644		// to prevent re-processing the Status of a Pod more than once
 3645		"podsRecouped"?: {
 3646			[string]: bool
 3647		}
 3648
 3649		// have Pods been started to perform this strategy? (enables us
 3650		// not to re-process what we've already done)
 3651		"strategiesProcessed"?: {
 3652			[string]: bool
 3653		}
 3654	}
 3655
 3656	// Artifact indicates an artifact to place at a specified path
 3657	#: "io.argoproj.workflow.v1alpha1.Artifact": {
 3658		// Archive controls how the artifact will be saved to the artifact
 3659		// repository.
 3660		"archive"?: #."io.argoproj.workflow.v1alpha1.ArchiveStrategy"
 3661
 3662		// ArchiveLogs indicates if the container logs should be archived
 3663		"archiveLogs"?: bool
 3664
 3665		// ArtifactGC describes the strategy to use when to deleting an
 3666		// artifact from completed or deleted workflows
 3667		"artifactGC"?: #."io.argoproj.workflow.v1alpha1.ArtifactGC"
 3668
 3669		// Artifactory contains artifactory artifact location details
 3670		"artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact"
 3671
 3672		// Azure contains Azure Storage artifact location details
 3673		"azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifact"
 3674
 3675		// Has this been deleted?
 3676		"deleted"?: bool
 3677
 3678		// From allows an artifact to reference an artifact from a
 3679		// previous step
 3680		"from"?: string
 3681
 3682		// FromExpression, if defined, is evaluated to specify the value
 3683		// for the artifact
 3684		"fromExpression"?: string
 3685
 3686		// GCS contains GCS artifact location details
 3687		"gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifact"
 3688
 3689		// Git contains git artifact location details
 3690		"git"?: #."io.argoproj.workflow.v1alpha1.GitArtifact"
 3691
 3692		// GlobalName exports an output artifact to the global scope,
 3693		// making it available as
 3694		// '{{io.argoproj.workflow.v1alpha1.outputs.artifacts.XXXX}} and
 3695		// in workflow.status.outputs.artifacts
 3696		"globalName"?: string
 3697
 3698		// HDFS contains HDFS artifact location details
 3699		"hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact"
 3700
 3701		// HTTP contains HTTP artifact location details
 3702		"http"?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact"
 3703
 3704		// mode bits to use on this file, must be a value between 0 and
 3705		// 0777. Set when loading input artifacts. It is recommended to
 3706		// set the mode value to ensure the artifact has the expected
 3707		// permissions in your container.
 3708		"mode"?: int
 3709
 3710		// name of the artifact. must be unique within a template's
 3711		// inputs/outputs.
 3712		"name"!: string
 3713
 3714		// Make Artifacts optional, if Artifacts doesn't generate or exist
 3715		"optional"?: bool
 3716
 3717		// OSS contains OSS artifact location details
 3718		"oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifact"
 3719
 3720		// Path is the container path to the artifact
 3721		"path"?: string
 3722
 3723		// Plugin contains plugin artifact location details
 3724		"plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifact"
 3725
 3726		// Raw contains raw artifact location details
 3727		"raw"?: #."io.argoproj.workflow.v1alpha1.RawArtifact"
 3728
 3729		// If mode is set, apply the permission recursively into the
 3730		// artifact if it is a folder
 3731		"recurseMode"?: bool
 3732
 3733		// S3 contains S3 artifact location details
 3734		"s3"?: #."io.argoproj.workflow.v1alpha1.S3Artifact"
 3735
 3736		// SubPath allows an artifact to be sourced from a subpath within
 3737		// the specified source
 3738		"subPath"?: string
 3739	}
 3740
 3741	// ArtifactGC describes how to delete artifacts from completed
 3742	// Workflows - this is embedded into the WorkflowLevelArtifactGC,
 3743	// and also used for individual Artifacts to override that as
 3744	// needed
 3745	#: "io.argoproj.workflow.v1alpha1.ArtifactGC": {
 3746		// PodMetadata is an optional field for specifying the Labels and
 3747		// Annotations that should be assigned to the Pod doing the
 3748		// deletion
 3749		"podMetadata"?: #."io.argoproj.workflow.v1alpha1.Metadata"
 3750
 3751		// ServiceAccountName is an optional field for specifying the
 3752		// Service Account that should be assigned to the Pod doing the
 3753		// deletion
 3754		"serviceAccountName"?: string
 3755
 3756		// Strategy is the strategy to use.
 3757		"strategy"?: string
 3758	}
 3759
 3760	// ArtifactLocation describes a location for a single or multiple
 3761	// artifacts. It is used as single artifact in the context of
 3762	// inputs/outputs (e.g. outputs.artifacts.artname). It is also
 3763	// used to describe the location of multiple artifacts such as
 3764	// the archive location of a single workflow step, which the
 3765	// executor will use as a default location to store its files.
 3766	#: "io.argoproj.workflow.v1alpha1.ArtifactLocation": {
 3767		// ArchiveLogs indicates if the container logs should be archived
 3768		"archiveLogs"?: bool
 3769
 3770		// Artifactory contains artifactory artifact location details
 3771		"artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact"
 3772
 3773		// Azure contains Azure Storage artifact location details
 3774		"azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifact"
 3775
 3776		// GCS contains GCS artifact location details
 3777		"gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifact"
 3778
 3779		// Git contains git artifact location details
 3780		"git"?: #."io.argoproj.workflow.v1alpha1.GitArtifact"
 3781
 3782		// HDFS contains HDFS artifact location details
 3783		"hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact"
 3784
 3785		// HTTP contains HTTP artifact location details
 3786		"http"?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact"
 3787
 3788		// OSS contains OSS artifact location details
 3789		"oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifact"
 3790
 3791		// Plugin contains plugin artifact location details
 3792		"plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifact"
 3793
 3794		// Raw contains raw artifact location details
 3795		"raw"?: #."io.argoproj.workflow.v1alpha1.RawArtifact"
 3796
 3797		// S3 contains S3 artifact location details
 3798		"s3"?: #."io.argoproj.workflow.v1alpha1.S3Artifact"
 3799	}
 3800
 3801	// ArtifactPaths expands a step from a collection of artifacts
 3802	#: "io.argoproj.workflow.v1alpha1.ArtifactPaths": {
 3803		// Archive controls how the artifact will be saved to the artifact
 3804		// repository.
 3805		"archive"?: #."io.argoproj.workflow.v1alpha1.ArchiveStrategy"
 3806
 3807		// ArchiveLogs indicates if the container logs should be archived
 3808		"archiveLogs"?: bool
 3809
 3810		// ArtifactGC describes the strategy to use when to deleting an
 3811		// artifact from completed or deleted workflows
 3812		"artifactGC"?: #."io.argoproj.workflow.v1alpha1.ArtifactGC"
 3813
 3814		// Artifactory contains artifactory artifact location details
 3815		"artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifact"
 3816
 3817		// Azure contains Azure Storage artifact location details
 3818		"azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifact"
 3819
 3820		// Has this been deleted?
 3821		"deleted"?: bool
 3822
 3823		// From allows an artifact to reference an artifact from a
 3824		// previous step
 3825		"from"?: string
 3826
 3827		// FromExpression, if defined, is evaluated to specify the value
 3828		// for the artifact
 3829		"fromExpression"?: string
 3830
 3831		// GCS contains GCS artifact location details
 3832		"gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifact"
 3833
 3834		// Git contains git artifact location details
 3835		"git"?: #."io.argoproj.workflow.v1alpha1.GitArtifact"
 3836
 3837		// GlobalName exports an output artifact to the global scope,
 3838		// making it available as
 3839		// '{{io.argoproj.workflow.v1alpha1.outputs.artifacts.XXXX}} and
 3840		// in workflow.status.outputs.artifacts
 3841		"globalName"?: string
 3842
 3843		// HDFS contains HDFS artifact location details
 3844		"hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifact"
 3845
 3846		// HTTP contains HTTP artifact location details
 3847		"http"?: #."io.argoproj.workflow.v1alpha1.HTTPArtifact"
 3848
 3849		// mode bits to use on this file, must be a value between 0 and
 3850		// 0777. Set when loading input artifacts. It is recommended to
 3851		// set the mode value to ensure the artifact has the expected
 3852		// permissions in your container.
 3853		"mode"?: int
 3854
 3855		// name of the artifact. must be unique within a template's
 3856		// inputs/outputs.
 3857		"name"!: string
 3858
 3859		// Make Artifacts optional, if Artifacts doesn't generate or exist
 3860		"optional"?: bool
 3861
 3862		// OSS contains OSS artifact location details
 3863		"oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifact"
 3864
 3865		// Path is the container path to the artifact
 3866		"path"?: string
 3867
 3868		// Plugin contains plugin artifact location details
 3869		"plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifact"
 3870
 3871		// Raw contains raw artifact location details
 3872		"raw"?: #."io.argoproj.workflow.v1alpha1.RawArtifact"
 3873
 3874		// If mode is set, apply the permission recursively into the
 3875		// artifact if it is a folder
 3876		"recurseMode"?: bool
 3877
 3878		// S3 contains S3 artifact location details
 3879		"s3"?: #."io.argoproj.workflow.v1alpha1.S3Artifact"
 3880
 3881		// SubPath allows an artifact to be sourced from a subpath within
 3882		// the specified source
 3883		"subPath"?: string
 3884	}
 3885
 3886	// ArtifactRepository represents an artifact repository in which a
 3887	// controller will store its artifacts
 3888	#: "io.argoproj.workflow.v1alpha1.ArtifactRepository": {
 3889		// ArchiveLogs enables log archiving
 3890		"archiveLogs"?: bool
 3891
 3892		// Artifactory stores artifacts to JFrog Artifactory
 3893		"artifactory"?: #."io.argoproj.workflow.v1alpha1.ArtifactoryArtifactRepository"
 3894
 3895		// Azure stores artifact in an Azure Storage account
 3896		"azure"?: #."io.argoproj.workflow.v1alpha1.AzureArtifactRepository"
 3897
 3898		// GCS stores artifact in a GCS object store
 3899		"gcs"?: #."io.argoproj.workflow.v1alpha1.GCSArtifactRepository"
 3900
 3901		// HDFS stores artifacts in HDFS
 3902		"hdfs"?: #."io.argoproj.workflow.v1alpha1.HDFSArtifactRepository"
 3903
 3904		// OSS stores artifact in a OSS-compliant object store
 3905		"oss"?: #."io.argoproj.workflow.v1alpha1.OSSArtifactRepository"
 3906
 3907		// Plugin stores artifact in a plugin-specific artifact repository
 3908		"plugin"?: #."io.argoproj.workflow.v1alpha1.PluginArtifactRepository"
 3909
 3910		// S3 stores artifact in a S3-compliant object store
 3911		"s3"?: #."io.argoproj.workflow.v1alpha1.S3ArtifactRepository"
 3912	}
 3913
 3914	#: "io.argoproj.workflow.v1alpha1.ArtifactRepositoryRef": {
 3915		// The name of the config map. Defaults to
 3916		// "artifact-repositories".
 3917		"configMap"?: string
 3918
 3919		// The config map key. Defaults to the value of the
 3920		// "workflows.argoproj.io/default-artifact-repository"
 3921		// annotation.
 3922		"key"?: string
 3923	}
 3924
 3925	#: "io.argoproj.workflow.v1alpha1.ArtifactRepositoryRefStatus": {
 3926		// The repository the workflow will use. This maybe empty before
 3927		// v3.1.
 3928		"artifactRepository"?: #."io.argoproj.workflow.v1alpha1.ArtifactRepository"
 3929
 3930		// The name of the config map. Defaults to
 3931		// "artifact-repositories".
 3932		"configMap"?: string
 3933
 3934		// If this ref represents the default artifact repository, rather
 3935		// than a config map.
 3936		"default"?: bool
 3937
 3938		// The config map key. Defaults to the value of the
 3939		// "workflows.argoproj.io/default-artifact-repository"
 3940		// annotation.
 3941		"key"?: string
 3942
 3943		// The namespace of the config map. Defaults to the workflow's
 3944		// namespace, or the controller's namespace (if found).
 3945		"namespace"?: string
 3946	}
 3947
 3948	// ArtifactoryArtifact is the location of an artifactory artifact
 3949	#: "io.argoproj.workflow.v1alpha1.ArtifactoryArtifact": {
 3950		// PasswordSecret is the secret selector to the repository
 3951		// password
 3952		"passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 3953
 3954		// URL of the artifact
 3955		"url"!: string
 3956
 3957		// UsernameSecret is the secret selector to the repository
 3958		// username
 3959		"usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 3960	}
 3961
 3962	// ArtifactoryArtifactRepository defines the controller
 3963	// configuration for an artifactory artifact repository
 3964	#: "io.argoproj.workflow.v1alpha1.ArtifactoryArtifactRepository": {
 3965		// KeyFormat defines the format of how to store keys and can
 3966		// reference workflow variables.
 3967		"keyFormat"?: string
 3968
 3969		// PasswordSecret is the secret selector to the repository
 3970		// password
 3971		"passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 3972
 3973		// RepoURL is the url for artifactory repo.
 3974		"repoURL"?: string
 3975
 3976		// UsernameSecret is the secret selector to the repository
 3977		// username
 3978		"usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 3979	}
 3980
 3981	// AzureArtifact is the location of an Azure Storage artifact
 3982	#: "io.argoproj.workflow.v1alpha1.AzureArtifact": {
 3983		// AccountKeySecret is the secret selector to the Azure Blob
 3984		// Storage account access key
 3985		"accountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 3986
 3987		// Blob is the blob name (i.e., path) in the container where the
 3988		// artifact resides
 3989		"blob"!: string
 3990
 3991		// Container is the container where resources will be stored
 3992		"container"!: string
 3993
 3994		// Endpoint is the service url associated with an account. It is
 3995		// most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
 3996		"endpoint"!: string
 3997
 3998		// UseSDKCreds tells the driver to figure out credentials based on
 3999		// sdk defaults.
 4000		"useSDKCreds"?: bool
 4001	}
 4002
 4003	// AzureArtifactRepository defines the controller configuration
 4004	// for an Azure Blob Storage artifact repository
 4005	#: "io.argoproj.workflow.v1alpha1.AzureArtifactRepository": {
 4006		// AccountKeySecret is the secret selector to the Azure Blob
 4007		// Storage account access key
 4008		"accountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 4009
 4010		// BlobNameFormat is defines the format of how to store blob
 4011		// names. Can reference workflow variables
 4012		"blobNameFormat"?: string
 4013
 4014		// Container is the container where resources will be stored
 4015		"container"!: string
 4016
 4017		// Endpoint is the service url associated with an account. It is
 4018		// most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
 4019		"endpoint"!: string
 4020
 4021		// UseSDKCreds tells the driver to figure out credentials based on
 4022		// sdk defaults.
 4023		"useSDKCreds"?: bool
 4024	}
 4025
 4026	// Backoff is a backoff strategy to use within retryStrategy
 4027	#: "io.argoproj.workflow.v1alpha1.Backoff": {
 4028		// Cap is a limit on revised values of the duration parameter. If
 4029		// a multiplication by the factor parameter would make the
 4030		// duration exceed the cap then the duration is set to the cap
 4031		"cap"?: string
 4032
 4033		// Duration is the amount to back off. Default unit is seconds,
 4034		// but could also be a duration (e.g. "2m", "1h")
 4035		"duration"?: string
 4036
 4037		// Factor is a factor to multiply the base duration after each
 4038		// failed retry
 4039		"factor"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
 4040
 4041		// MaxDuration is the maximum amount of time allowed for a
 4042		// workflow in the backoff strategy. It is important to note that
 4043		// if the workflow template includes activeDeadlineSeconds, the
 4044		// pod's deadline is initially set with activeDeadlineSeconds.
 4045		// However, when the workflow fails, the pod's deadline is then
 4046		// overridden by maxDuration. This ensures that the workflow does
 4047		// not exceed the specified maximum duration when retries are
 4048		// involved.
 4049		"maxDuration"?: string
 4050	}
 4051
 4052	// BasicAuth describes the secret selectors required for basic
 4053	// authentication
 4054	#: "io.argoproj.workflow.v1alpha1.BasicAuth": {
 4055		// PasswordSecret is the secret selector to the repository
 4056		// password
 4057		"passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 4058
 4059		// UsernameSecret is the secret selector to the repository
 4060		// username
 4061		"usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 4062	}
 4063
 4064	// Cache is the configuration for the type of cache to be used
 4065	#: "io.argoproj.workflow.v1alpha1.Cache": {
 4066		// ConfigMap sets a ConfigMap-based cache
 4067		"configMap"!: #."io.k8s.api.core.v1.LocalObjectReference"
 4068	}
 4069
 4070	// ClientCertAuth holds necessary information for client
 4071	// authentication via certificates
 4072	#: "io.argoproj.workflow.v1alpha1.ClientCertAuth": {
 4073		"clientCertSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 4074		"clientKeySecret"?:  #."io.k8s.api.core.v1.SecretKeySelector"
 4075	}
 4076
 4077	// ClusterWorkflowTemplate is the definition of a workflow
 4078	// template resource in cluster scope
 4079	#: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate": {
 4080		// APIVersion defines the versioned schema of this representation
 4081		// of an object. Servers should convert recognized schemas to the
 4082		// latest internal value, and may reject unrecognized values.
 4083		// More info:
 4084		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
 4085		"apiVersion"?: "argoproj.io/v1alpha1"
 4086
 4087		// Kind is a string value representing the REST resource this
 4088		// object represents. Servers may infer this from the endpoint
 4089		// the client submits requests to. Cannot be updated. In
 4090		// CamelCase. More info:
 4091		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 4092		"kind"?:     "ClusterWorkflowTemplate"
 4093		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
 4094		"spec"!:     #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
 4095	}
 4096
 4097	#: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateCreateRequest": {
 4098		"createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
 4099		"template"?:      #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"
 4100	}
 4101
 4102	#: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateDeleteResponse": {}
 4103
 4104	#: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateLintRequest": {
 4105		"createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
 4106		"template"?:      #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"
 4107	}
 4108
 4109	// ClusterWorkflowTemplateList is list of ClusterWorkflowTemplate
 4110	// resources
 4111	#: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateList": {
 4112		// APIVersion defines the versioned schema of this representation
 4113		// of an object. Servers should convert recognized schemas to the
 4114		// latest internal value, and may reject unrecognized values.
 4115		// More info:
 4116		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
 4117		"apiVersion"?: string
 4118		"items"!: [...#."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"]
 4119
 4120		// Kind is a string value representing the REST resource this
 4121		// object represents. Servers may infer this from the endpoint
 4122		// the client submits requests to. Cannot be updated. In
 4123		// CamelCase. More info:
 4124		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 4125		"kind"?:     string
 4126		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
 4127	}
 4128
 4129	#: "io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplateUpdateRequest": {
 4130		// DEPRECATED: This field is ignored.
 4131		"name"?:     string
 4132		"template"?: #."io.argoproj.workflow.v1alpha1.ClusterWorkflowTemplate"
 4133	}
 4134
 4135	#: "io.argoproj.workflow.v1alpha1.CollectEventRequest": "name"?: string
 4136
 4137	#: "io.argoproj.workflow.v1alpha1.CollectEventResponse": {}
 4138
 4139	// Column is a custom column that will be exposed in the Workflow
 4140	// List View.
 4141	#: "io.argoproj.workflow.v1alpha1.Column": {
 4142		// The key of the label or annotation, e.g.,
 4143		// "workflows.argoproj.io/completed".
 4144		"key"!: string
 4145
 4146		// The name of this column, e.g., "Workflow Completed".
 4147		"name"!: string
 4148
 4149		// The type of this column, "label" or "annotation".
 4150		"type"!: string
 4151	}
 4152
 4153	#: "io.argoproj.workflow.v1alpha1.Condition": {
 4154		// Message is the condition message
 4155		"message"?: string
 4156
 4157		// Status is the status of the condition
 4158		"status"?: string
 4159
 4160		// Type is the type of condition
 4161		"type"?: string
 4162	}
 4163
 4164	#: "io.argoproj.workflow.v1alpha1.ContainerNode": {
 4165		// Arguments to the entrypoint. The container image's CMD is used
 4166		// if this is not provided. Variable references $(VAR_NAME) are
 4167		// expanded using the container's environment. If a variable
 4168		// cannot be resolved, the reference in the input string will be
 4169		// unchanged. Double $$ are reduced to a single $, which allows
 4170		// for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
 4171		// produce the string literal "$(VAR_NAME)". Escaped references
 4172		// will never be expanded, regardless of whether the variable
 4173		// exists or not. Cannot be updated. More info:
 4174		// https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
 4175		"args"?: [...string]
 4176
 4177		// Entrypoint array. Not executed within a shell. The container
 4178		// image's ENTRYPOINT is used if this is not provided. Variable
 4179		// references $(VAR_NAME) are expanded using the container's
 4180		// environment. If a variable cannot be resolved, the reference
 4181		// in the input string will be unchanged. Double $$ are reduced
 4182		// to a single $, which allows for escaping the $(VAR_NAME)
 4183		// syntax: i.e. "$$(VAR_NAME)" will produce the string literal
 4184		// "$(VAR_NAME)". Escaped references will never be expanded,
 4185		// regardless of whether the variable exists or not. Cannot be
 4186		// updated. More info:
 4187		// https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
 4188		"command"?: [...string]
 4189		"dependencies"?: [...string]
 4190
 4191		// List of environment variables to set in the container. Cannot
 4192		// be updated.
 4193		"env"?: [...#."io.k8s.api.core.v1.EnvVar"]
 4194
 4195		// List of sources to populate environment variables in the
 4196		// container. The keys defined within a source must be a
 4197		// C_IDENTIFIER. All invalid keys will be reported as an event
 4198		// when the container is starting. When a key exists in multiple
 4199		// sources, the value associated with the last source will take
 4200		// precedence. Values defined by an Env with a duplicate key will
 4201		// take precedence. Cannot be updated.
 4202		"envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
 4203
 4204		// Container image name. More info:
 4205		// https://kubernetes.io/docs/concepts/containers/images This
 4206		// field is optional to allow higher level config management to
 4207		// default or override container images in workload controllers
 4208		// like Deployments and StatefulSets.
 4209		"image"?: string
 4210
 4211		// Image pull policy. One of Always, Never, IfNotPresent. Defaults
 4212		// to Always if :latest tag is specified, or IfNotPresent
 4213		// otherwise. Cannot be updated. More info:
 4214		// https://kubernetes.io/docs/concepts/containers/images#updating-images
 4215		"imagePullPolicy"?: string
 4216
 4217		// Actions that the management system should take in response to
 4218		// container lifecycle events. Cannot be updated.
 4219		"lifecycle"?: #."io.k8s.api.core.v1.Lifecycle"
 4220
 4221		// Periodic probe of container liveness. Container will be
 4222		// restarted if the probe fails. Cannot be updated. More info:
 4223		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
 4224		"livenessProbe"?: #."io.k8s.api.core.v1.Probe"
 4225
 4226		// Name of the container specified as a DNS_LABEL. Each container
 4227		// in a pod must have a unique name (DNS_LABEL). Cannot be
 4228		// updated.
 4229		"name"!: string
 4230
 4231		// List of ports to expose from the container. Not specifying a
 4232		// port here DOES NOT prevent that port from being exposed. Any
 4233		// port which is listening on the default "0.0.0.0" address
 4234		// inside a container will be accessible from the network.
 4235		// Modifying this array with strategic merge patch may corrupt
 4236		// the data. For more information See
 4237		// https://github.com/kubernetes/kubernetes/issues/108255. Cannot
 4238		// be updated.
 4239		"ports"?: [...#."io.k8s.api.core.v1.ContainerPort"]
 4240
 4241		// Periodic probe of container service readiness. Container will
 4242		// be removed from service endpoints if the probe fails. Cannot
 4243		// be updated. More info:
 4244		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
 4245		"readinessProbe"?: #."io.k8s.api.core.v1.Probe"
 4246
 4247		// Resources resize policy for the container.
 4248		"resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
 4249
 4250		// Compute Resources required by this container. Cannot be
 4251		// updated. More info:
 4252		// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
 4253		"resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
 4254
 4255		// RestartPolicy defines the restart behavior of individual
 4256		// containers in a pod. This field may only be set for init
 4257		// containers, and the only allowed value is "Always". For
 4258		// non-init containers or when this field is not specified, the
 4259		// restart behavior is defined by the Pod's restart policy and
 4260		// the container type. Setting the RestartPolicy as "Always" for
 4261		// the init container will have the following effect: this init
 4262		// container will be continually restarted on exit until all
 4263		// regular containers have terminated. Once all regular
 4264		// containers have completed, all init containers with
 4265		// restartPolicy "Always" will be shut down. This lifecycle
 4266		// differs from normal init containers and is often referred to
 4267		// as a "sidecar" container. Although this init container still
 4268		// starts in the init container sequence, it does not wait for
 4269		// the container to complete before proceeding to the next init
 4270		// container. Instead, the next init container starts immediately
 4271		// after this init container is started, or after any
 4272		// startupProbe has successfully completed.
 4273		"restartPolicy"?: string
 4274
 4275		// SecurityContext defines the security options the container
 4276		// should be run with. If set, the fields of SecurityContext
 4277		// override the equivalent fields of PodSecurityContext. More
 4278		// info:
 4279		// https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
 4280		"securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
 4281
 4282		// StartupProbe indicates that the Pod has successfully
 4283		// initialized. If specified, no other probes are executed until
 4284		// this completes successfully. If this probe fails, the Pod will
 4285		// be restarted, just as if the livenessProbe failed. This can be
 4286		// used to provide different probe parameters at the beginning of
 4287		// a Pod's lifecycle, when it might take a long time to load data
 4288		// or warm a cache, than during steady-state operation. This
 4289		// cannot be updated. More info:
 4290		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
 4291		"startupProbe"?: #."io.k8s.api.core.v1.Probe"
 4292
 4293		// Whether this container should allocate a buffer for stdin in
 4294		// the container runtime. If this is not set, reads from stdin in
 4295		// the container will always result in EOF. Default is false.
 4296		"stdin"?: bool
 4297
 4298		// Whether the container runtime should close the stdin channel
 4299		// after it has been opened by a single attach. When stdin is
 4300		// true the stdin stream will remain open across multiple attach
 4301		// sessions. If stdinOnce is set to true, stdin is opened on
 4302		// container start, is empty until the first client attaches to
 4303		// stdin, and then remains open and accepts data until the client
 4304		// disconnects, at which time stdin is closed and remains closed
 4305		// until the container is restarted. If this flag is false, a
 4306		// container processes that reads from stdin will never receive
 4307		// an EOF. Default is false
 4308		"stdinOnce"?: bool
 4309
 4310		// Optional: Path at which the file to which the container's
 4311		// termination message will be written is mounted into the
 4312		// container's filesystem. Message written is intended to be
 4313		// brief final status, such as an assertion failure message. Will
 4314		// be truncated by the node if greater than 4096 bytes. The total
 4315		// message length across all containers will be limited to 12kb.
 4316		// Defaults to /dev/termination-log. Cannot be updated.
 4317		"terminationMessagePath"?: string
 4318
 4319		// Indicate how the termination message should be populated. File
 4320		// will use the contents of terminationMessagePath to populate
 4321		// the container status message on both success and failure.
 4322		// FallbackToLogsOnError will use the last chunk of container log
 4323		// output if the termination message file is empty and the
 4324		// container exited with an error. The log output is limited to
 4325		// 2048 bytes or 80 lines, whichever is smaller. Defaults to
 4326		// File. Cannot be updated.
 4327		"terminationMessagePolicy"?: string
 4328
 4329		// Whether this container should allocate a TTY for itself, also
 4330		// requires 'stdin' to be true. Default is false.
 4331		"tty"?: bool
 4332
 4333		// volumeDevices is the list of block devices to be used by the
 4334		// container.
 4335		"volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"]
 4336
 4337		// Pod volumes to mount into the container's filesystem. Cannot be
 4338		// updated.
 4339		"volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
 4340
 4341		// Container's working directory. If not specified, the container
 4342		// runtime's default will be used, which might be configured in
 4343		// the container image. Cannot be updated.
 4344		"workingDir"?: string
 4345	}
 4346
 4347	// ContainerSetRetryStrategy provides controls on how to retry a
 4348	// container set
 4349	#: "io.argoproj.workflow.v1alpha1.ContainerSetRetryStrategy": {
 4350		// Duration is the time between each retry, examples values are
 4351		// "300ms", "1s" or "5m". Valid time units are "ns", "us" (or
 4352		// "µs"), "ms", "s", "m", "h".
 4353		"duration"?: string
 4354
 4355		// Retries is the maximum number of retry attempts for each
 4356		// container. It does not include the first, original attempt;
 4357		// the maximum number of total attempts will be `retries + 1`.
 4358		"retries"!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
 4359	}
 4360
 4361	#: "io.argoproj.workflow.v1alpha1.ContainerSetTemplate": {
 4362		"containers"!: [...#."io.argoproj.workflow.v1alpha1.ContainerNode"]
 4363
 4364		// RetryStrategy describes how to retry container nodes if the
 4365		// container set fails. Note that this works differently from the
 4366		// template-level `retryStrategy` as it is a process-level retry
 4367		// that does not create new Pods or containers.
 4368		"retryStrategy"?: #."io.argoproj.workflow.v1alpha1.ContainerSetRetryStrategy"
 4369		"volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
 4370	}
 4371
 4372	// ContinueOn defines if a workflow should continue even if a task
 4373	// or step fails/errors. It can be specified if the workflow
 4374	// should continue when the pod errors, fails or both.
 4375	#: "io.argoproj.workflow.v1alpha1.ContinueOn": {
 4376		"error"?:  bool
 4377		"failed"?: bool
 4378	}
 4379
 4380	// Counter is a Counter prometheus metric
 4381	#: "io.argoproj.workflow.v1alpha1.Counter": {
 4382		// Value is the value of the metric
 4383		"value"!: string
 4384	}
 4385
 4386	#: "io.argoproj.workflow.v1alpha1.CreateCronWorkflowRequest": {
 4387		"createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
 4388		"cronWorkflow"?:  #."io.argoproj.workflow.v1alpha1.CronWorkflow"
 4389		"namespace"?:     string
 4390	}
 4391
 4392	// CreateS3BucketOptions options used to determine automatic
 4393	// automatic bucket-creation process
 4394	#: "io.argoproj.workflow.v1alpha1.CreateS3BucketOptions": {
 4395		// ObjectLocking Enable object locking
 4396		"objectLocking"?: bool
 4397	}
 4398
 4399	// CronWorkflow is the definition of a scheduled workflow resource
 4400	#: "io.argoproj.workflow.v1alpha1.CronWorkflow": {
 4401		// APIVersion defines the versioned schema of this representation
 4402		// of an object. Servers should convert recognized schemas to the
 4403		// latest internal value, and may reject unrecognized values.
 4404		// More info:
 4405		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
 4406		"apiVersion"?: "argoproj.io/v1alpha1"
 4407
 4408		// Kind is a string value representing the REST resource this
 4409		// object represents. Servers may infer this from the endpoint
 4410		// the client submits requests to. Cannot be updated. In
 4411		// CamelCase. More info:
 4412		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 4413		"kind"?:     "CronWorkflow"
 4414		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
 4415		"spec"!:     #."io.argoproj.workflow.v1alpha1.CronWorkflowSpec"
 4416		"status"?:   #."io.argoproj.workflow.v1alpha1.CronWorkflowStatus"
 4417	}
 4418
 4419	#: "io.argoproj.workflow.v1alpha1.CronWorkflowDeletedResponse": {}
 4420
 4421	// CronWorkflowList is list of CronWorkflow resources
 4422	#: "io.argoproj.workflow.v1alpha1.CronWorkflowList": {
 4423		// APIVersion defines the versioned schema of this representation
 4424		// of an object. Servers should convert recognized schemas to the
 4425		// latest internal value, and may reject unrecognized values.
 4426		// More info:
 4427		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
 4428		"apiVersion"?: string
 4429		"items"!: [...#."io.argoproj.workflow.v1alpha1.CronWorkflow"]
 4430
 4431		// Kind is a string value representing the REST resource this
 4432		// object represents. Servers may infer this from the endpoint
 4433		// the client submits requests to. Cannot be updated. In
 4434		// CamelCase. More info:
 4435		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 4436		"kind"?:     string
 4437		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
 4438	}
 4439
 4440	#: "io.argoproj.workflow.v1alpha1.CronWorkflowResumeRequest": {
 4441		"name"?:      string
 4442		"namespace"?: string
 4443	}
 4444
 4445	// CronWorkflowSpec is the specification of a CronWorkflow
 4446	#: "io.argoproj.workflow.v1alpha1.CronWorkflowSpec": {
 4447		// ConcurrencyPolicy is the K8s-style concurrency policy that will
 4448		// be used
 4449		"concurrencyPolicy"?: string
 4450
 4451		// FailedJobsHistoryLimit is the number of failed jobs to be kept
 4452		// at a time
 4453		"failedJobsHistoryLimit"?: int
 4454
 4455		// v3.6 and after: Schedules is a list of schedules to run the
 4456		// Workflow in Cron format
 4457		"schedules"!: [...string]
 4458
 4459		// StartingDeadlineSeconds is the K8s-style deadline that will
 4460		// limit the time a CronWorkflow will be run after its original
 4461		// scheduled time if it is missed.
 4462		"startingDeadlineSeconds"?: int
 4463
 4464		// v3.6 and after: StopStrategy defines if the CronWorkflow should
 4465		// stop scheduling based on a condition
 4466		"stopStrategy"?: #."io.argoproj.workflow.v1alpha1.StopStrategy"
 4467
 4468		// SuccessfulJobsHistoryLimit is the number of successful jobs to
 4469		// be kept at a time
 4470		"successfulJobsHistoryLimit"?: int
 4471
 4472		// Suspend is a flag that will stop new CronWorkflows from running
 4473		// if set to true
 4474		"suspend"?: bool
 4475
 4476		// Timezone is the timezone against which the cron schedule will
 4477		// be calculated, e.g. "Asia/Tokyo". Default is machine's local
 4478		// time.
 4479		"timezone"?: string
 4480
 4481		// v3.6 and after: When is an expression that determines if a run
 4482		// should be scheduled.
 4483		"when"?: string
 4484
 4485		// WorkflowMetadata contains some metadata of the workflow to be
 4486		// run
 4487		"workflowMetadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
 4488
 4489		// WorkflowSpec is the spec of the workflow to be run
 4490		"workflowSpec"!: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
 4491	}
 4492
 4493	// CronWorkflowStatus is the status of a CronWorkflow
 4494	#: "io.argoproj.workflow.v1alpha1.CronWorkflowStatus": {
 4495		// Active is a list of active workflows stemming from this
 4496		// CronWorkflow
 4497		"active"?: [...#."io.k8s.api.core.v1.ObjectReference"]
 4498
 4499		// Conditions is a list of conditions the CronWorkflow may have
 4500		"conditions"?: [...#."io.argoproj.workflow.v1alpha1.Condition"]
 4501
 4502		// v3.6 and after: Failed counts how many times child workflows
 4503		// failed
 4504		"failed"?: int
 4505
 4506		// LastScheduleTime is the last time the CronWorkflow was
 4507		// scheduled
 4508		"lastScheduledTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
 4509
 4510		// v3.6 and after: Phase is an enum of Active or Stopped. It
 4511		// changes to Stopped when stopStrategy.expression is true
 4512		"phase"?: string
 4513
 4514		// v3.6 and after: Succeeded counts how many times child workflows
 4515		// succeeded
 4516		"succeeded"?: int
 4517	}
 4518
 4519	#: "io.argoproj.workflow.v1alpha1.CronWorkflowSuspendRequest": {
 4520		"name"?:      string
 4521		"namespace"?: string
 4522	}
 4523
 4524	// DAGTask represents a node in the graph during DAG execution
 4525	// Note: CEL validation cannot check withItems (Schemaless) or
 4526	// inline (PreserveUnknownFields) fields.
 4527	#: "io.argoproj.workflow.v1alpha1.DAGTask": {
 4528		// Arguments are the parameter and artifact arguments to the
 4529		// template
 4530		"arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
 4531
 4532		// ContinueOn makes argo to proceed with the following step even
 4533		// if this step fails. Errors and Failed states can be specified
 4534		"continueOn"?: #."io.argoproj.workflow.v1alpha1.ContinueOn"
 4535
 4536		// Dependencies are name of other targets which this depends on
 4537		"dependencies"?: [...string]
 4538
 4539		// Depends are name of other targets which this depends on
 4540		"depends"?: string
 4541
 4542		// Hooks hold the lifecycle hook which is invoked at lifecycle of
 4543		// task, irrespective of the success, failure, or error status of
 4544		// the primary task
 4545		"hooks"?: {
 4546			[string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook"
 4547		}
 4548
 4549		// Inline is the template. Template must be empty if this is
 4550		// declared (and vice-versa). Note: As mentioned in the
 4551		// corresponding definition in WorkflowStep, this struct is
 4552		// defined recursively, so we need
 4553		// "x-kubernetes-preserve-unknown-fields: true" in the validation
 4554		// schema.
 4555		"inline"?: #."io.argoproj.workflow.v1alpha1.Template"
 4556
 4557		// Name is the name of the target
 4558		"name"!: string
 4559
 4560		// OnExit is a template reference which is invoked at the end of
 4561		// the template, irrespective of the success, failure, or error
 4562		// of the primary template. DEPRECATED: Use Hooks[exit].Template
 4563		// instead.
 4564		"onExit"?: string
 4565
 4566		// Name of template to execute
 4567		"template"?: string
 4568
 4569		// TemplateRef is the reference to the template resource to
 4570		// execute.
 4571		"templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
 4572
 4573		// When is an expression in which the task should conditionally
 4574		// execute
 4575		"when"?: string
 4576
 4577		// WithItems expands a task into multiple parallel tasks from the
 4578		// items in the list Note: The structure of WithItems is
 4579		// free-form, so we need "x-kubernetes-preserve-unknown-fields:
 4580		// true" in the validation schema.
 4581		"withItems"?: [...#."io.argoproj.workflow.v1alpha1.Item"]
 4582
 4583		// WithParam expands a task into multiple parallel tasks from the
 4584		// value in the parameter, which is expected to be a JSON list.
 4585		"withParam"?: string
 4586
 4587		// WithSequence expands a task into a numeric sequence
 4588		"withSequence"?: #."io.argoproj.workflow.v1alpha1.Sequence"
 4589	}
 4590
 4591	// DAGTemplate is a template subtype for directed acyclic graph
 4592	// templates
 4593	#: "io.argoproj.workflow.v1alpha1.DAGTemplate": {
 4594		// This flag is for DAG logic. The DAG logic has a built-in "fail
 4595		// fast" feature to stop scheduling new steps, as soon as it
 4596		// detects that one of the DAG nodes is failed. Then it waits
 4597		// until all DAG nodes are completed before failing the DAG
 4598		// itself. The FailFast flag default is true, if set to false, it
 4599		// will allow a DAG to run all branches of the DAG to completion
 4600		// (either success or failure), regardless of the failed outcomes
 4601		// of branches in the DAG. More info and example about this
 4602		// feature at
 4603		// https://github.com/argoproj/argo-workflows/issues/1442
 4604		"failFast"?: bool
 4605
 4606		// Target are one or more names of targets to execute in a DAG
 4607		"target"?: string
 4608
 4609		// Tasks are a list of DAG tasks MaxItems is an artificial limit
 4610		// to limit CEL validation costs - see note at top of file
 4611		"tasks"!: [...#."io.argoproj.workflow.v1alpha1.DAGTask"]
 4612	}
 4613
 4614	// Data is a data template
 4615	#: "io.argoproj.workflow.v1alpha1.Data": {
 4616		// Source sources external data into a data template
 4617		"source"!: #."io.argoproj.workflow.v1alpha1.DataSource"
 4618
 4619		// Transformation applies a set of transformations
 4620		"transformation"!: [...#."io.argoproj.workflow.v1alpha1.TransformationStep"]
 4621	}
 4622
 4623	// DataSource sources external data into a data template
 4624	#: "io.argoproj.workflow.v1alpha1.DataSource": {
 4625		// ArtifactPaths is a data transformation that collects a list of
 4626		// artifact paths
 4627		"artifactPaths"?: #."io.argoproj.workflow.v1alpha1.ArtifactPaths"
 4628	}
 4629
 4630	#: "io.argoproj.workflow.v1alpha1.Event": {
 4631		// Selector (https://github.com/expr-lang/expr) that we must must
 4632		// match the io.argoproj.workflow.v1alpha1. E.g. `payload.message
 4633		// == "test"`
 4634		"selector"!: string
 4635	}
 4636
 4637	#: "io.argoproj.workflow.v1alpha1.EventResponse": {}
 4638
 4639	// ExecutorConfig holds configurations of an executor container.
 4640	#: "io.argoproj.workflow.v1alpha1.ExecutorConfig": {
 4641		// ServiceAccountName specifies the service account name of the
 4642		// executor container.
 4643		"serviceAccountName"?: string
 4644	}
 4645
 4646	// GCSArtifact is the location of a GCS artifact
 4647	#: "io.argoproj.workflow.v1alpha1.GCSArtifact": {
 4648		// Bucket is the name of the bucket
 4649		"bucket"?: string
 4650
 4651		// Key is the path in the bucket where the artifact resides
 4652		"key"!: string
 4653
 4654		// ServiceAccountKeySecret is the secret selector to the bucket's
 4655		// service account key
 4656		"serviceAccountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 4657	}
 4658
 4659	// GCSArtifactRepository defines the controller configuration for
 4660	// a GCS artifact repository
 4661	#: "io.argoproj.workflow.v1alpha1.GCSArtifactRepository": {
 4662		// Bucket is the name of the bucket
 4663		"bucket"?: string
 4664
 4665		// KeyFormat defines the format of how to store keys and can
 4666		// reference workflow variables.
 4667		"keyFormat"?: string
 4668
 4669		// ServiceAccountKeySecret is the secret selector to the bucket's
 4670		// service account key
 4671		"serviceAccountKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 4672	}
 4673
 4674	// Gauge is a Gauge prometheus metric
 4675	#: "io.argoproj.workflow.v1alpha1.Gauge": {
 4676		// Operation defines the operation to apply with value and the
 4677		// metrics' current value
 4678		"operation"?: string
 4679
 4680		// Realtime emits this metric in real time if applicable
 4681		"realtime"!: bool
 4682
 4683		// Value is the value to be used in the operation with the
 4684		// metric's current value. If no operation is set, value is the
 4685		// value of the metric MaxLength is an artificial limit to limit
 4686		// CEL validation costs - see note at top of file
 4687		"value"!: string
 4688	}
 4689
 4690	#: "io.argoproj.workflow.v1alpha1.GetUserInfoResponse": {
 4691		"email"?:         string
 4692		"emailVerified"?: bool
 4693		"groups"?: [...string]
 4694		"issuer"?:                  string
 4695		"name"?:                    string
 4696		"serviceAccountName"?:      string
 4697		"serviceAccountNamespace"?: string
 4698		"subject"?:                 string
 4699	}
 4700
 4701	// GitArtifact is the location of a git artifact
 4702	#: "io.argoproj.workflow.v1alpha1.GitArtifact": {
 4703		// Branch is the branch to fetch when `SingleBranch` is enabled
 4704		"branch"?: string
 4705
 4706		// Depth specifies clones/fetches should be shallow and include
 4707		// the given number of commits from the branch tip
 4708		"depth"?: int
 4709
 4710		// DisableSubmodules disables submodules during git clone
 4711		"disableSubmodules"?: bool
 4712
 4713		// Fetch specifies a number of refs that should be fetched before
 4714		// checkout
 4715		"fetch"?: [...string]
 4716
 4717		// InsecureIgnoreHostKey disables SSH strict host key checking
 4718		// during git clone
 4719		"insecureIgnoreHostKey"?: bool
 4720
 4721		// InsecureSkipTLS disables server certificate verification
 4722		// resulting in insecure HTTPS connections
 4723		"insecureSkipTLS"?: bool
 4724
 4725		// PasswordSecret is the secret selector to the repository
 4726		// password
 4727		"passwordSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 4728
 4729		// Repo is the git repository
 4730		"repo"!: string
 4731
 4732		// Revision is the git commit, tag, branch to checkout
 4733		"revision"?: string
 4734
 4735		// SingleBranch enables single branch clone, using the `branch`
 4736		// parameter
 4737		"singleBranch"?: bool
 4738
 4739		// SSHPrivateKeySecret is the secret selector to the repository
 4740		// ssh private key
 4741		"sshPrivateKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 4742
 4743		// UsernameSecret is the secret selector to the repository
 4744		// username
 4745		"usernameSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 4746	}
 4747
 4748	// HDFSArtifact is the location of an HDFS artifact
 4749	#: "io.argoproj.workflow.v1alpha1.HDFSArtifact": {
 4750		// Addresses is accessible addresses of HDFS name nodes
 4751		"addresses"?: [...string]
 4752
 4753		// DataTransferProtection is the protection level for HDFS data
 4754		// transfer. It corresponds to the dfs.data.transfer.protection
 4755		// configuration in HDFS.
 4756		"dataTransferProtection"?: string
 4757
 4758		// Force copies a file forcibly even if it exists
 4759		"force"?: bool
 4760
 4761		// HDFSUser is the user to access HDFS file system. It is ignored
 4762		// if either ccache or keytab is used.
 4763		"hdfsUser"?: string
 4764
 4765		// KrbCCacheSecret is the secret selector for Kerberos ccache
 4766		// Either ccache or keytab can be set to use Kerberos.
 4767		"krbCCacheSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 4768
 4769		// KrbConfig is the configmap selector for Kerberos config as
 4770		// string It must be set if either ccache or keytab is used.
 4771		"krbConfigConfigMap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
 4772
 4773		// KrbKeytabSecret is the secret selector for Kerberos keytab
 4774		// Either ccache or keytab can be set to use Kerberos.
 4775		"krbKeytabSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 4776
 4777		// KrbRealm is the Kerberos realm used with Kerberos keytab It
 4778		// must be set if keytab is used.
 4779		"krbRealm"?: string
 4780
 4781		// KrbServicePrincipalName is the principal name of Kerberos
 4782		// service It must be set if either ccache or keytab is used.
 4783		"krbServicePrincipalName"?: string
 4784
 4785		// KrbUsername is the Kerberos username used with Kerberos keytab
 4786		// It must be set if keytab is used.
 4787		"krbUsername"?: string
 4788
 4789		// Path is a file path in HDFS
 4790		"path"!: string
 4791	}
 4792
 4793	// HDFSArtifactRepository defines the controller configuration for
 4794	// an HDFS artifact repository
 4795	#: "io.argoproj.workflow.v1alpha1.HDFSArtifactRepository": {
 4796		// Addresses is accessible addresses of HDFS name nodes
 4797		"addresses"?: [...string]
 4798
 4799		// DataTransferProtection is the protection level for HDFS data
 4800		// transfer. It corresponds to the dfs.data.transfer.protection
 4801		// configuration in HDFS.
 4802		"dataTransferProtection"?: string
 4803
 4804		// Force copies a file forcibly even if it exists
 4805		"force"?: bool
 4806
 4807		// HDFSUser is the user to access HDFS file system. It is ignored
 4808		// if either ccache or keytab is used.
 4809		"hdfsUser"?: string
 4810
 4811		// KrbCCacheSecret is the secret selector for Kerberos ccache
 4812		// Either ccache or keytab can be set to use Kerberos.
 4813		"krbCCacheSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 4814
 4815		// KrbConfig is the configmap selector for Kerberos config as
 4816		// string It must be set if either ccache or keytab is used.
 4817		"krbConfigConfigMap"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
 4818
 4819		// KrbKeytabSecret is the secret selector for Kerberos keytab
 4820		// Either ccache or keytab can be set to use Kerberos.
 4821		"krbKeytabSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 4822
 4823		// KrbRealm is the Kerberos realm used with Kerberos keytab It
 4824		// must be set if keytab is used.
 4825		"krbRealm"?: string
 4826
 4827		// KrbServicePrincipalName is the principal name of Kerberos
 4828		// service It must be set if either ccache or keytab is used.
 4829		"krbServicePrincipalName"?: string
 4830
 4831		// KrbUsername is the Kerberos username used with Kerberos keytab
 4832		// It must be set if keytab is used.
 4833		"krbUsername"?: string
 4834
 4835		// PathFormat is defines the format of path to store a file. Can
 4836		// reference workflow variables
 4837		"pathFormat"?: string
 4838	}
 4839
 4840	#: "io.argoproj.workflow.v1alpha1.HTTP": {
 4841		// Body is content of the HTTP Request
 4842		"body"?: string
 4843
 4844		// BodyFrom is content of the HTTP Request as Bytes
 4845		"bodyFrom"?: #."io.argoproj.workflow.v1alpha1.HTTPBodySource"
 4846
 4847		// Headers are an optional list of headers to send with HTTP
 4848		// requests
 4849		"headers"?: [...#."io.argoproj.workflow.v1alpha1.HTTPHeader"]
 4850
 4851		// InsecureSkipVerify is a bool when if set to true will skip TLS
 4852		// verification for the HTTP client
 4853		"insecureSkipVerify"?: bool
 4854
 4855		// Method is HTTP methods for HTTP Request
 4856		"method"?: string
 4857
 4858		// SuccessCondition is an expression if evaluated to true is
 4859		// considered successful
 4860		"successCondition"?: string
 4861
 4862		// TimeoutSeconds is request timeout for HTTP Request. Default is
 4863		// 30 seconds
 4864		"timeoutSeconds"?: int
 4865
 4866		// URL of the HTTP Request
 4867		"url"!: string
 4868	}
 4869
 4870	// HTTPArtifact allows a file served on HTTP to be placed as an
 4871	// input artifact in a container
 4872	#: "io.argoproj.workflow.v1alpha1.HTTPArtifact": {
 4873		// Auth contains information for client authentication
 4874		"auth"?: #."io.argoproj.workflow.v1alpha1.HTTPAuth"
 4875
 4876		// Headers are an optional list of headers to send with HTTP
 4877		// requests for artifacts
 4878		"headers"?: [...#."io.argoproj.workflow.v1alpha1.Header"]
 4879
 4880		// URL of the artifact
 4881		"url"!: string
 4882	}
 4883
 4884	#: "io.argoproj.workflow.v1alpha1.HTTPAuth": {
 4885		"basicAuth"?:  #."io.argoproj.workflow.v1alpha1.BasicAuth"
 4886		"clientCert"?: #."io.argoproj.workflow.v1alpha1.ClientCertAuth"
 4887		"oauth2"?:     #."io.argoproj.workflow.v1alpha1.OAuth2Auth"
 4888	}
 4889
 4890	// HTTPBodySource contains the source of the HTTP body.
 4891	#: "io.argoproj.workflow.v1alpha1.HTTPBodySource": "bytes"?: string
 4892
 4893	#: "io.argoproj.workflow.v1alpha1.HTTPHeader": {
 4894		"name"!:      string
 4895		"value"?:     string
 4896		"valueFrom"?: #."io.argoproj.workflow.v1alpha1.HTTPHeaderSource"
 4897	}
 4898
 4899	#: "io.argoproj.workflow.v1alpha1.HTTPHeaderSource": "secretKeyRef"?: #."io.k8s.api.core.v1.SecretKeySelector"
 4900
 4901	// Header indicate a key-value request header to be used when
 4902	// fetching artifacts over HTTP
 4903	#: "io.argoproj.workflow.v1alpha1.Header": {
 4904		// Name is the header name
 4905		"name"!: string
 4906
 4907		// Value is the literal value to use for the header
 4908		"value"!: string
 4909	}
 4910
 4911	// Histogram is a Histogram prometheus metric
 4912	#: "io.argoproj.workflow.v1alpha1.Histogram": {
 4913		// Buckets is a list of bucket divisors for the histogram
 4914		"buckets"!: [...#."io.argoproj.workflow.v1alpha1.Amount"]
 4915
 4916		// Value is the value of the metric
 4917		"value"!: string
 4918	}
 4919
 4920	#: "io.argoproj.workflow.v1alpha1.InfoResponse": {
 4921		"columns"?: [...#."io.argoproj.workflow.v1alpha1.Column"]
 4922		"links"?: [...#."io.argoproj.workflow.v1alpha1.Link"]
 4923		"managedNamespace"?: string
 4924
 4925		// which modals to show
 4926		"modals"?: {
 4927			[string]: bool
 4928		}
 4929		"navColor"?: string
 4930	}
 4931
 4932	// Inputs are the mechanism for passing parameters, artifacts,
 4933	// volumes from one template to another
 4934	#: "io.argoproj.workflow.v1alpha1.Inputs": {
 4935		// Artifact are a list of artifacts passed as inputs
 4936		"artifacts"?: [...#."io.argoproj.workflow.v1alpha1.Artifact"]
 4937
 4938		// Parameters are a list of parameters passed as inputs MaxItems
 4939		// is an artificial limit to limit CEL validation costs - see
 4940		// note at top of file
 4941		"parameters"?: [...#."io.argoproj.workflow.v1alpha1.Parameter"]
 4942	}
 4943
 4944	// Item expands a single workflow step into multiple parallel
 4945	// steps The value of Item can be a map, string, bool, or number
 4946	#: "io.argoproj.workflow.v1alpha1.Item": _
 4947
 4948	// LabelKeys is list of keys
 4949	#: "io.argoproj.workflow.v1alpha1.LabelKeys": "items"?: [...string]
 4950
 4951	#: "io.argoproj.workflow.v1alpha1.LabelValueFrom": "expression"!: string
 4952
 4953	// Labels is list of workflow labels
 4954	#: "io.argoproj.workflow.v1alpha1.LabelValues": "items"?: [...string]
 4955
 4956	#: "io.argoproj.workflow.v1alpha1.LifecycleHook": {
 4957		// Arguments hold arguments to the template
 4958		"arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
 4959
 4960		// Expression is a condition expression for when a node will be
 4961		// retried. If it evaluates to false, the node will not be
 4962		// retried and the retry strategy will be ignored
 4963		"expression"?: string
 4964
 4965		// Template is the name of the template to execute by the hook
 4966		"template"?: string
 4967
 4968		// TemplateRef is the reference to the template resource to
 4969		// execute by the hook
 4970		"templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
 4971	}
 4972
 4973	// A link to another app.
 4974	#: "io.argoproj.workflow.v1alpha1.Link": {
 4975		// The name of the link, E.g. "Workflow Logs" or "Pod Logs"
 4976		"name"!: string
 4977
 4978		// "workflow", "pod", "pod-logs", "event-source-logs",
 4979		// "sensor-logs", "workflow-list" or "chat"
 4980		"scope"!: string
 4981
 4982		// Target attribute specifies where a linked document will be
 4983		// opened when a user clicks on a link. E.g. "_blank", "_self".
 4984		// If the target is _blank, it will open in a new tab.
 4985		"target"!: string
 4986
 4987		// The URL. Can contain "${metadata.namespace}",
 4988		// "${metadata.name}", "${status.startedAt}",
 4989		// "${status.finishedAt}" or any other element in workflow yaml,
 4990		// e.g.
 4991		// "${io.argoproj.workflow.v1alpha1.metadata.annotations.userDefinedKey}"
 4992		"url"!: string
 4993	}
 4994
 4995	#: "io.argoproj.workflow.v1alpha1.LintCronWorkflowRequest": {
 4996		"cronWorkflow"?: #."io.argoproj.workflow.v1alpha1.CronWorkflow"
 4997		"namespace"?:    string
 4998	}
 4999
 5000	#: "io.argoproj.workflow.v1alpha1.LogEntry": {
 5001		"content"?: string
 5002		"podName"?: string
 5003	}
 5004
 5005	#: "io.argoproj.workflow.v1alpha1.ManifestFrom": {
 5006		// Artifact contains the artifact to use
 5007		"artifact"!: #."io.argoproj.workflow.v1alpha1.Artifact"
 5008	}
 5009
 5010	// MemoizationStatus is the status of this memoized node
 5011	#: "io.argoproj.workflow.v1alpha1.MemoizationStatus": {
 5012		// Cache is the name of the cache that was used
 5013		"cacheName"!: string
 5014
 5015		// Hit indicates whether this node was created from a cache entry
 5016		"hit"!: bool
 5017
 5018		// Key is the name of the key used for this node's cache
 5019		"key"!: string
 5020	}
 5021
 5022	// Memoization enables caching for the Outputs of the template
 5023	#: "io.argoproj.workflow.v1alpha1.Memoize": {
 5024		// Cache sets and configures the kind of cache
 5025		"cache"!: #."io.argoproj.workflow.v1alpha1.Cache"
 5026
 5027		// Key is the key to use as the caching key
 5028		"key"!: string
 5029
 5030		// MaxAge is the maximum age (e.g. "180s", "24h") of an entry that
 5031		// is still considered valid. If an entry is older than the
 5032		// MaxAge, it will be ignored.
 5033		"maxAge"!: string
 5034	}
 5035
 5036	// Pod metadata
 5037	#: "io.argoproj.workflow.v1alpha1.Metadata": {
 5038		"annotations"?: [string]: string
 5039		"labels"?: {
 5040			[string]: string
 5041		}
 5042	}
 5043
 5044	// MetricLabel is a single label for a prometheus metric
 5045	#: "io.argoproj.workflow.v1alpha1.MetricLabel": {
 5046		"key"!:   string
 5047		"value"!: string
 5048	}
 5049
 5050	// Metrics are a list of metrics emitted from a Workflow/Template
 5051	#: "io.argoproj.workflow.v1alpha1.Metrics": {
 5052		// Prometheus is a list of prometheus metrics to be emitted
 5053		// MaxItems is an artificial limit to limit CEL validation costs
 5054		// - see note at top of file
 5055		"prometheus"!: [...#."io.argoproj.workflow.v1alpha1.Prometheus"]
 5056	}
 5057
 5058	// Mutex holds Mutex configuration
 5059	#: "io.argoproj.workflow.v1alpha1.Mutex": {
 5060		// Database specifies this is database controlled if this is set
 5061		// true
 5062		"database"?: bool
 5063
 5064		// name of the mutex
 5065		"name"?: string
 5066
 5067		// Namespace is the namespace of the mutex, default: [namespace of
 5068		// workflow]
 5069		"namespace"?: string
 5070	}
 5071
 5072	// MutexHolding describes the mutex and the object which is
 5073	// holding it.
 5074	#: "io.argoproj.workflow.v1alpha1.MutexHolding": {
 5075		// Holder is a reference to the object which holds the Mutex.
 5076		// Holding Scenario:
 5077		// 1. Current workflow's NodeID which is holding the lock.
 5078		// e.g: ${NodeID}
 5079		// Waiting Scenario:
 5080		// 1. Current workflow or other workflow NodeID which is holding
 5081		// the lock.
 5082		// e.g: ${WorkflowName}/${NodeID}
 5083		"holder"?: string
 5084
 5085		// Reference for the mutex e.g: ${namespace}/mutex/${mutexName}
 5086		"mutex"?: string
 5087	}
 5088
 5089	// MutexStatus contains which objects hold mutex locks, and which
 5090	// objects this workflow is waiting on to release locks.
 5091	#: "io.argoproj.workflow.v1alpha1.MutexStatus": {
 5092		// Holding is a list of mutexes and their respective objects that
 5093		// are held by mutex lock for this io.argoproj.workflow.v1alpha1.
 5094		"holding"?: [...#."io.argoproj.workflow.v1alpha1.MutexHolding"]
 5095
 5096		// Waiting is a list of mutexes and their respective objects this
 5097		// workflow is waiting for.
 5098		"waiting"?: [...#."io.argoproj.workflow.v1alpha1.MutexHolding"]
 5099	}
 5100
 5101	#: "io.argoproj.workflow.v1alpha1.NodeFlag": {
 5102		// Hooked tracks whether or not this node was triggered by hook or
 5103		// onExit
 5104		"hooked"?: bool
 5105
 5106		// Retried tracks whether or not this node was retried by
 5107		// retryStrategy
 5108		"retried"?: bool
 5109	}
 5110
 5111	// NodeStatus contains status information about an individual node
 5112	// in the workflow
 5113	#: "io.argoproj.workflow.v1alpha1.NodeStatus": {
 5114		// BoundaryID indicates the node ID of the associated template
 5115		// root node in which this node belongs to
 5116		"boundaryID"?: string
 5117
 5118		// Children is a list of child node IDs
 5119		"children"?: [...string]
 5120
 5121		// Daemoned tracks whether or not this node was daemoned and need
 5122		// to be terminated
 5123		"daemoned"?: bool
 5124
 5125		// DisplayName is a human readable representation of the node.
 5126		// Unique within a template boundary
 5127		"displayName"?: string
 5128
 5129		// EstimatedDuration in seconds.
 5130		"estimatedDuration"?: int
 5131
 5132		// FailedPodRestarts tracks the number of times the pod for this
 5133		// node was restarted due to infrastructure failures before the
 5134		// main container started.
 5135		"failedPodRestarts"?: int
 5136
 5137		// Time at which this node completed
 5138		"finishedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
 5139
 5140		// HostNodeName name of the Kubernetes node on which the Pod is
 5141		// running, if applicable
 5142		"hostNodeName"?: string
 5143
 5144		// ID is a unique identifier of a node within the worklow It is
 5145		// implemented as a hash of the node name, which makes the ID
 5146		// deterministic
 5147		"id"!: string
 5148
 5149		// Inputs captures input parameter values and artifact locations
 5150		// supplied to this template invocation
 5151		"inputs"?: #."io.argoproj.workflow.v1alpha1.Inputs"
 5152
 5153		// MemoizationStatus holds information about cached nodes
 5154		"memoizationStatus"?: #."io.argoproj.workflow.v1alpha1.MemoizationStatus"
 5155
 5156		// A human readable message indicating details about why the node
 5157		// is in this condition.
 5158		"message"?: string
 5159
 5160		// Name is unique name in the node tree used to generate the node
 5161		// ID
 5162		"name"!: string
 5163
 5164		// NodeFlag tracks some history of node. e.g.) hooked, retried,
 5165		// etc.
 5166		"nodeFlag"?: #."io.argoproj.workflow.v1alpha1.NodeFlag"
 5167
 5168		// OutboundNodes tracks the node IDs which are considered
 5169		// "outbound" nodes to a template invocation. For every
 5170		// invocation of a template, there are nodes which we considered
 5171		// as "outbound". Essentially, these are last nodes in the
 5172		// execution sequence to run, before the template is considered
 5173		// completed. These nodes are then connected as parents to a
 5174		// following step.
 5175		//
 5176		// In the case of single pod steps (i.e. container, script,
 5177		// resource templates), this list will be nil since the pod
 5178		// itself is already considered the "outbound" node. In the case
 5179		// of DAGs, outbound nodes are the "target" tasks (tasks with no
 5180		// children). In the case of steps, outbound nodes are all the
 5181		// containers involved in the last step group. NOTE: since
 5182		// templates are composable, the list of outbound nodes are
 5183		// carried upwards when a DAG/steps template invokes another
 5184		// DAG/steps template. In other words, the outbound nodes of a
 5185		// template, will be a superset of the outbound nodes of its last
 5186		// children.
 5187		"outboundNodes"?: [...string]
 5188
 5189		// Outputs captures output parameter values and artifact locations
 5190		// produced by this template invocation
 5191		"outputs"?: #."io.argoproj.workflow.v1alpha1.Outputs"
 5192
 5193		// Phase a simple, high-level summary of where the node is in its
 5194		// lifecycle. Can be used as a state machine. Will be one of
 5195		// these values "Pending", "Running" before the node is
 5196		// completed, or "Succeeded", "Skipped", "Failed", "Error", or
 5197		// "Omitted" as a final state.
 5198		"phase"?: string
 5199
 5200		// PodIP captures the IP of the pod for daemoned steps
 5201		"podIP"?: string
 5202
 5203		// Progress to completion
 5204		"progress"?: string
 5205
 5206		// ResourcesDuration is indicative, but not accurate, resource
 5207		// duration. This is populated when the nodes completes.
 5208		"resourcesDuration"?: {
 5209			[string]: int
 5210		}
 5211
 5212		// RestartingPodUID tracks the UID of the pod that is currently
 5213		// being restarted. This prevents duplicate restart attempts when
 5214		// the controller processes the same failed pod multiple times.
 5215		// Cleared when the replacement pod starts running.
 5216		"restartingPodUID"?: string
 5217
 5218		// Time at which this node started
 5219		"startedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
 5220
 5221		// SynchronizationStatus is the synchronization status of the node
 5222		"synchronizationStatus"?: #."io.argoproj.workflow.v1alpha1.NodeSynchronizationStatus"
 5223
 5224		// TaskResultSynced is used to determine if the node's output has
 5225		// been received
 5226		"taskResultSynced"?: bool
 5227
 5228		// TemplateName is the template name which this node corresponds
 5229		// to. Not applicable to virtual nodes (e.g. Retry, StepGroup)
 5230		"templateName"?: string
 5231
 5232		// TemplateRef is the reference to the template resource which
 5233		// this node corresponds to. Not applicable to virtual nodes
 5234		// (e.g. Retry, StepGroup)
 5235		"templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
 5236
 5237		// TemplateScope is the template scope in which the template of
 5238		// this node was retrieved.
 5239		"templateScope"?: string
 5240
 5241		// Type indicates type of node
 5242		"type"!: string
 5243	}
 5244
 5245	// NodeSynchronizationStatus stores the status of a node
 5246	#: "io.argoproj.workflow.v1alpha1.NodeSynchronizationStatus": {
 5247		// Waiting is the name of the lock that this node is waiting for
 5248		"waiting"?: string
 5249	}
 5250
 5251	// NoneStrategy indicates to skip tar process and upload the files
 5252	// or directory tree as independent files. Note that if the
 5253	// artifact is a directory, the artifact driver must support the
 5254	// ability to save/load the directory appropriately.
 5255	#: "io.argoproj.workflow.v1alpha1.NoneStrategy": {}
 5256
 5257	// OAuth2Auth holds all information for client authentication via
 5258	// OAuth2 tokens
 5259	#: "io.argoproj.workflow.v1alpha1.OAuth2Auth": {
 5260		"clientIDSecret"?:     #."io.k8s.api.core.v1.SecretKeySelector"
 5261		"clientSecretSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 5262		"endpointParams"?: [...#."io.argoproj.workflow.v1alpha1.OAuth2EndpointParam"]
 5263		"scopes"?: [...string]
 5264		"tokenURLSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 5265	}
 5266
 5267	// EndpointParam is for requesting optional fields that should be
 5268	// sent in the oauth request
 5269	#: "io.argoproj.workflow.v1alpha1.OAuth2EndpointParam": {
 5270		// Name is the header name
 5271		"key"!: string
 5272
 5273		// Value is the literal value to use for the header
 5274		"value"?: string
 5275	}
 5276
 5277	// OSSArtifact is the location of an Alibaba Cloud OSS artifact
 5278	#: "io.argoproj.workflow.v1alpha1.OSSArtifact": {
 5279		// AccessKeySecret is the secret selector to the bucket's access
 5280		// key
 5281		"accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 5282
 5283		// Bucket is the name of the bucket
 5284		"bucket"?: string
 5285
 5286		// CreateBucketIfNotPresent tells the driver to attempt to create
 5287		// the OSS bucket for output artifacts, if it doesn't exist
 5288		"createBucketIfNotPresent"?: bool
 5289
 5290		// Endpoint is the hostname of the bucket endpoint
 5291		"endpoint"?: string
 5292
 5293		// Key is the path in the bucket where the artifact resides
 5294		"key"!: string
 5295
 5296		// LifecycleRule specifies how to manage bucket's lifecycle
 5297		"lifecycleRule"?: #."io.argoproj.workflow.v1alpha1.OSSLifecycleRule"
 5298
 5299		// SecretKeySecret is the secret selector to the bucket's secret
 5300		// key
 5301		"secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 5302
 5303		// SecurityToken is the user's temporary security token. For more
 5304		// details, check out:
 5305		// https://www.alibabacloud.com/help/doc-detail/100624.htm
 5306		"securityToken"?: string
 5307
 5308		// UseSDKCreds tells the driver to figure out credentials based on
 5309		// sdk defaults.
 5310		"useSDKCreds"?: bool
 5311	}
 5312
 5313	// OSSArtifactRepository defines the controller configuration for
 5314	// an OSS artifact repository
 5315	#: "io.argoproj.workflow.v1alpha1.OSSArtifactRepository": {
 5316		// AccessKeySecret is the secret selector to the bucket's access
 5317		// key
 5318		"accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 5319
 5320		// Bucket is the name of the bucket
 5321		"bucket"?: string
 5322
 5323		// CreateBucketIfNotPresent tells the driver to attempt to create
 5324		// the OSS bucket for output artifacts, if it doesn't exist
 5325		"createBucketIfNotPresent"?: bool
 5326
 5327		// Endpoint is the hostname of the bucket endpoint
 5328		"endpoint"?: string
 5329
 5330		// KeyFormat defines the format of how to store keys and can
 5331		// reference workflow variables.
 5332		"keyFormat"?: string
 5333
 5334		// LifecycleRule specifies how to manage bucket's lifecycle
 5335		"lifecycleRule"?: #."io.argoproj.workflow.v1alpha1.OSSLifecycleRule"
 5336
 5337		// SecretKeySecret is the secret selector to the bucket's secret
 5338		// key
 5339		"secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 5340
 5341		// SecurityToken is the user's temporary security token. For more
 5342		// details, check out:
 5343		// https://www.alibabacloud.com/help/doc-detail/100624.htm
 5344		"securityToken"?: string
 5345
 5346		// UseSDKCreds tells the driver to figure out credentials based on
 5347		// sdk defaults.
 5348		"useSDKCreds"?: bool
 5349	}
 5350
 5351	// OSSLifecycleRule specifies how to manage bucket's lifecycle
 5352	#: "io.argoproj.workflow.v1alpha1.OSSLifecycleRule": {
 5353		// MarkDeletionAfterDays is the number of days before we delete
 5354		// objects in the bucket
 5355		"markDeletionAfterDays"?: int
 5356
 5357		// MarkInfrequentAccessAfterDays is the number of days before we
 5358		// convert the objects in the bucket to Infrequent Access (IA)
 5359		// storage type
 5360		"markInfrequentAccessAfterDays"?: int
 5361	}
 5362
 5363	// Outputs hold parameters, artifacts, and results from a step
 5364	#: "io.argoproj.workflow.v1alpha1.Outputs": {
 5365		// Artifacts holds the list of output artifacts produced by a step
 5366		"artifacts"?: [...#."io.argoproj.workflow.v1alpha1.Artifact"]
 5367
 5368		// ExitCode holds the exit code of a script template
 5369		"exitCode"?: string
 5370
 5371		// Parameters holds the list of output parameters produced by a
 5372		// step
 5373		"parameters"?: [...#."io.argoproj.workflow.v1alpha1.Parameter"]
 5374
 5375		// Result holds the result (stdout) of a script or container
 5376		// template, or the response body of an HTTP template
 5377		"result"?: string
 5378	}
 5379
 5380	#: "io.argoproj.workflow.v1alpha1.ParallelSteps": [...#."io.argoproj.workflow.v1alpha1.WorkflowStep"]
 5381
 5382	// Parameter indicate a passed string parameter to a service
 5383	// template with an optional default value
 5384	#: "io.argoproj.workflow.v1alpha1.Parameter": {
 5385		// Default is the default value to use for an input parameter if a
 5386		// value was not supplied
 5387		"default"?: string
 5388
 5389		// Description is the parameter description
 5390		"description"?: string
 5391
 5392		// Enum holds a list of string values to choose from, for the
 5393		// actual value of the parameter
 5394		"enum"?: [...string]
 5395
 5396		// GlobalName exports an output parameter to the global scope,
 5397		// making it available as
 5398		// '{{io.argoproj.workflow.v1alpha1.outputs.parameters.XXXX}} and
 5399		// in workflow.status.outputs.parameters
 5400		"globalName"?: string
 5401
 5402		// Name is the parameter name
 5403		"name"!: string
 5404
 5405		// Value is the literal value to use for the parameter. If
 5406		// specified in the context of an input parameter, any passed
 5407		// values take precedence over the specified value
 5408		"value"?: string
 5409
 5410		// ValueFrom is the source for the output parameter's value
 5411		"valueFrom"?: #."io.argoproj.workflow.v1alpha1.ValueFrom"
 5412	}
 5413
 5414	// Plugin is an Object with exactly one key
 5415	#: "io.argoproj.workflow.v1alpha1.Plugin": {}
 5416
 5417	// PluginArtifact is the location of a plugin artifact
 5418	#: "io.argoproj.workflow.v1alpha1.PluginArtifact": {
 5419		// Configuration is the plugin defined configuration for the
 5420		// artifact driver plugin
 5421		"configuration"?: string
 5422
 5423		// ConnectionTimeoutSeconds is the timeout for the artifact driver
 5424		// connection, overriding the driver's timeout
 5425		"connectionTimeoutSeconds"?: int
 5426
 5427		// Key is the path in the artifact repository where the artifact
 5428		// resides
 5429		"key"!: string
 5430
 5431		// Name is the name of the artifact driver plugin
 5432		"name"?: string
 5433	}
 5434
 5435	// PluginArtifactRepository defines the controller configuration
 5436	// for a plugin artifact repository
 5437	#: "io.argoproj.workflow.v1alpha1.PluginArtifactRepository": {
 5438		"configuration"!: string
 5439		"keyFormat"?:     string
 5440		"name"!:          string
 5441	}
 5442
 5443	// PodGC describes how to delete completed pods as they complete
 5444	#: "io.argoproj.workflow.v1alpha1.PodGC": {
 5445		// DeleteDelayDuration specifies the duration before pods in the
 5446		// GC queue get deleted.
 5447		"deleteDelayDuration"?: string
 5448
 5449		// LabelSelector is the label selector to check if the pods match
 5450		// the labels before being added to the pod GC queue.
 5451		"labelSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
 5452
 5453		// Strategy is the strategy to use. One of "OnPodCompletion",
 5454		// "OnPodSuccess", "OnWorkflowCompletion", "OnWorkflowSuccess".
 5455		// If unset, does not delete Pods
 5456		"strategy"?: string
 5457	}
 5458
 5459	// Prometheus is a prometheus metric to be emitted
 5460	#: "io.argoproj.workflow.v1alpha1.Prometheus": {
 5461		// Counter is a counter metric
 5462		"counter"?: #."io.argoproj.workflow.v1alpha1.Counter"
 5463
 5464		// Gauge is a gauge metric
 5465		"gauge"?: #."io.argoproj.workflow.v1alpha1.Gauge"
 5466
 5467		// Help is a string that describes the metric
 5468		"help"!: string
 5469
 5470		// Histogram is a histogram metric
 5471		"histogram"?: #."io.argoproj.workflow.v1alpha1.Histogram"
 5472
 5473		// Labels is a list of metric labels
 5474		"labels"?: [...#."io.argoproj.workflow.v1alpha1.MetricLabel"]
 5475
 5476		// Name is the name of the metric
 5477		"name"!: string
 5478
 5479		// When is a conditional statement that decides when to emit the
 5480		// metric
 5481		"when"?: string
 5482	}
 5483
 5484	// RawArtifact allows raw string content to be placed as an
 5485	// artifact in a container
 5486	#: "io.argoproj.workflow.v1alpha1.RawArtifact": {
 5487		// Data is the string contents of the artifact
 5488		"data"!: string
 5489	}
 5490
 5491	// ResourceTemplate is a template subtype to manipulate kubernetes
 5492	// resources
 5493	#: "io.argoproj.workflow.v1alpha1.ResourceTemplate": {
 5494		// Action is the action to perform to the resource. Must be one
 5495		// of: get, create, apply, delete, replace, patch
 5496		"action"!: string
 5497
 5498		// FailureCondition is a label selector expression which describes
 5499		// the conditions of the k8s resource in which the step was
 5500		// considered failed
 5501		"failureCondition"?: string
 5502
 5503		// Flags is a set of additional options passed to kubectl before
 5504		// submitting a resource I.e. to disable resource validation:
 5505		// flags: [
 5506		// "--validate=false" # disable resource validation
 5507		// ]
 5508		"flags"?: [...string]
 5509
 5510		// Manifest contains the kubernetes manifest
 5511		"manifest"?: string
 5512
 5513		// ManifestFrom is the source for a single kubernetes manifest
 5514		"manifestFrom"?: #."io.argoproj.workflow.v1alpha1.ManifestFrom"
 5515
 5516		// MergeStrategy is the strategy used to merge a patch. It
 5517		// defaults to "strategic" Must be one of: strategic, merge, json
 5518		"mergeStrategy"?: string
 5519
 5520		// SetOwnerReference sets the reference to the workflow on the
 5521		// OwnerReference of generated resource.
 5522		"setOwnerReference"?: bool
 5523
 5524		// SuccessCondition is a label selector expression which describes
 5525		// the conditions of the k8s resource in which it is acceptable
 5526		// to proceed to the following step
 5527		"successCondition"?: string
 5528	}
 5529
 5530	#: "io.argoproj.workflow.v1alpha1.ResubmitArchivedWorkflowRequest": {
 5531		"memoized"?:  bool
 5532		"name"?:      string
 5533		"namespace"?: string
 5534		"parameters"?: [...string]
 5535		"uid"?: string
 5536	}
 5537
 5538	// RetryAffinity prevents running steps on the same host.
 5539	#: "io.argoproj.workflow.v1alpha1.RetryAffinity": "nodeAntiAffinity"?: #."io.argoproj.workflow.v1alpha1.RetryNodeAntiAffinity"
 5540
 5541	#: "io.argoproj.workflow.v1alpha1.RetryArchivedWorkflowRequest": {
 5542		"name"?:              string
 5543		"namespace"?:         string
 5544		"nodeFieldSelector"?: string
 5545		"parameters"?: [...string]
 5546		"restartSuccessful"?: bool
 5547		"uid"?:               string
 5548	}
 5549
 5550	// RetryNodeAntiAffinity is a placeholder for future expansion,
 5551	// only empty nodeAntiAffinity is allowed. In order to prevent
 5552	// running steps on the same host, it uses
 5553	// "kubernetes.io/hostname".
 5554	#: "io.argoproj.workflow.v1alpha1.RetryNodeAntiAffinity": {}
 5555
 5556	// RetryStrategy provides controls on how to retry a workflow step
 5557	#: "io.argoproj.workflow.v1alpha1.RetryStrategy": {
 5558		// Affinity prevents running workflow's step on the same host
 5559		"affinity"?: #."io.argoproj.workflow.v1alpha1.RetryAffinity"
 5560
 5561		// Backoff is a backoff strategy
 5562		"backoff"?: #."io.argoproj.workflow.v1alpha1.Backoff"
 5563
 5564		// Expression is a condition expression for when a node will be
 5565		// retried. If it evaluates to false, the node will not be
 5566		// retried and the retry strategy will be ignored
 5567		"expression"?: string
 5568
 5569		// Limit is the maximum number of retry attempts when retrying a
 5570		// container. It does not include the original container; the
 5571		// maximum number of total attempts will be `limit + 1`.
 5572		"limit"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
 5573
 5574		// RetryPolicy is a policy of NodePhase statuses that will be
 5575		// retried
 5576		"retryPolicy"?: string
 5577	}
 5578
 5579	// S3Artifact is the location of an S3 artifact
 5580	#: "io.argoproj.workflow.v1alpha1.S3Artifact": {
 5581		// AccessKeySecret is the secret selector to the bucket's access
 5582		// key
 5583		"accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 5584
 5585		// Bucket is the name of the bucket
 5586		"bucket"?: string
 5587
 5588		// CASecret specifies the secret that contains the CA, used to
 5589		// verify the TLS connection
 5590		"caSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 5591
 5592		// CreateBucketIfNotPresent tells the driver to attempt to create
 5593		// the S3 bucket for output artifacts, if it doesn't exist.
 5594		// Setting Enabled Encryption will apply either SSE-S3 to the
 5595		// bucket if KmsKeyId is not set or SSE-KMS if it is.
 5596		"createBucketIfNotPresent"?: #."io.argoproj.workflow.v1alpha1.CreateS3BucketOptions"
 5597		"encryptionOptions"?:        #."io.argoproj.workflow.v1alpha1.S3EncryptionOptions"
 5598
 5599		// Endpoint is the hostname of the bucket endpoint
 5600		"endpoint"?: string
 5601
 5602		// Insecure will connect to the service with TLS
 5603		"insecure"?: bool
 5604
 5605		// Key is the key in the bucket where the artifact resides
 5606		"key"?: string
 5607
 5608		// Region contains the optional bucket region
 5609		"region"?: string
 5610
 5611		// RoleARN is the Amazon Resource Name (ARN) of the role to
 5612		// assume.
 5613		"roleARN"?: string
 5614
 5615		// SecretKeySecret is the secret selector to the bucket's secret
 5616		// key
 5617		"secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 5618
 5619		// SessionTokenSecret is used for ephemeral credentials like an
 5620		// IAM assume role or S3 access grant
 5621		"sessionTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 5622
 5623		// UseSDKCreds tells the driver to figure out credentials based on
 5624		// sdk defaults.
 5625		"useSDKCreds"?: bool
 5626	}
 5627
 5628	// S3ArtifactRepository defines the controller configuration for
 5629	// an S3 artifact repository
 5630	#: "io.argoproj.workflow.v1alpha1.S3ArtifactRepository": {
 5631		// AccessKeySecret is the secret selector to the bucket's access
 5632		// key
 5633		"accessKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 5634
 5635		// Bucket is the name of the bucket
 5636		"bucket"?: string
 5637
 5638		// CASecret specifies the secret that contains the CA, used to
 5639		// verify the TLS connection
 5640		"caSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 5641
 5642		// CreateBucketIfNotPresent tells the driver to attempt to create
 5643		// the S3 bucket for output artifacts, if it doesn't exist.
 5644		// Setting Enabled Encryption will apply either SSE-S3 to the
 5645		// bucket if KmsKeyId is not set or SSE-KMS if it is.
 5646		"createBucketIfNotPresent"?: #."io.argoproj.workflow.v1alpha1.CreateS3BucketOptions"
 5647		"encryptionOptions"?:        #."io.argoproj.workflow.v1alpha1.S3EncryptionOptions"
 5648
 5649		// Endpoint is the hostname of the bucket endpoint
 5650		"endpoint"?: string
 5651
 5652		// Insecure will connect to the service with TLS
 5653		"insecure"?: bool
 5654
 5655		// KeyFormat defines the format of how to store keys and can
 5656		// reference workflow variables.
 5657		"keyFormat"?: string
 5658
 5659		// KeyPrefix is prefix used as part of the bucket key in which the
 5660		// controller will store artifacts. DEPRECATED. Use KeyFormat
 5661		// instead
 5662		"keyPrefix"?: string
 5663
 5664		// Region contains the optional bucket region
 5665		"region"?: string
 5666
 5667		// RoleARN is the Amazon Resource Name (ARN) of the role to
 5668		// assume.
 5669		"roleARN"?: string
 5670
 5671		// SecretKeySecret is the secret selector to the bucket's secret
 5672		// key
 5673		"secretKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 5674
 5675		// SessionTokenSecret is used for ephemeral credentials like an
 5676		// IAM assume role or S3 access grant
 5677		"sessionTokenSecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 5678
 5679		// UseSDKCreds tells the driver to figure out credentials based on
 5680		// sdk defaults.
 5681		"useSDKCreds"?: bool
 5682	}
 5683
 5684	// S3EncryptionOptions used to determine encryption options during
 5685	// s3 operations
 5686	#: "io.argoproj.workflow.v1alpha1.S3EncryptionOptions": {
 5687		// EnableEncryption tells the driver to encrypt objects if set to
 5688		// true. If kmsKeyId and serverSideCustomerKeySecret are not set,
 5689		// SSE-S3 will be used
 5690		"enableEncryption"?: bool
 5691
 5692		// KmsEncryptionContext is a json blob that contains an encryption
 5693		// context. See
 5694		// https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context
 5695		// for more information
 5696		"kmsEncryptionContext"?: string
 5697
 5698		// KMSKeyId tells the driver to encrypt the object using the
 5699		// specified KMS Key.
 5700		"kmsKeyId"?: string
 5701
 5702		// ServerSideCustomerKeySecret tells the driver to encrypt the
 5703		// output artifacts using SSE-C with the specified secret.
 5704		"serverSideCustomerKeySecret"?: #."io.k8s.api.core.v1.SecretKeySelector"
 5705	}
 5706
 5707	// ScriptTemplate is a template subtype to enable scripting
 5708	// through code steps
 5709	#: "io.argoproj.workflow.v1alpha1.ScriptTemplate": {
 5710		// Arguments to the entrypoint. The container image's CMD is used
 5711		// if this is not provided. Variable references $(VAR_NAME) are
 5712		// expanded using the container's environment. If a variable
 5713		// cannot be resolved, the reference in the input string will be
 5714		// unchanged. Double $$ are reduced to a single $, which allows
 5715		// for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
 5716		// produce the string literal "$(VAR_NAME)". Escaped references
 5717		// will never be expanded, regardless of whether the variable
 5718		// exists or not. Cannot be updated. More info:
 5719		// https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
 5720		"args"?: [...string]
 5721
 5722		// Entrypoint array. Not executed within a shell. The container
 5723		// image's ENTRYPOINT is used if this is not provided. Variable
 5724		// references $(VAR_NAME) are expanded using the container's
 5725		// environment. If a variable cannot be resolved, the reference
 5726		// in the input string will be unchanged. Double $$ are reduced
 5727		// to a single $, which allows for escaping the $(VAR_NAME)
 5728		// syntax: i.e. "$$(VAR_NAME)" will produce the string literal
 5729		// "$(VAR_NAME)". Escaped references will never be expanded,
 5730		// regardless of whether the variable exists or not. Cannot be
 5731		// updated. More info:
 5732		// https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
 5733		"command"?: [...string]
 5734
 5735		// List of environment variables to set in the container. Cannot
 5736		// be updated.
 5737		"env"?: [...#."io.k8s.api.core.v1.EnvVar"]
 5738
 5739		// List of sources to populate environment variables in the
 5740		// container. The keys defined within a source must be a
 5741		// C_IDENTIFIER. All invalid keys will be reported as an event
 5742		// when the container is starting. When a key exists in multiple
 5743		// sources, the value associated with the last source will take
 5744		// precedence. Values defined by an Env with a duplicate key will
 5745		// take precedence. Cannot be updated.
 5746		"envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
 5747
 5748		// Container image name. More info:
 5749		// https://kubernetes.io/docs/concepts/containers/images This
 5750		// field is optional to allow higher level config management to
 5751		// default or override container images in workload controllers
 5752		// like Deployments and StatefulSets.
 5753		"image"!: string
 5754
 5755		// Image pull policy. One of Always, Never, IfNotPresent. Defaults
 5756		// to Always if :latest tag is specified, or IfNotPresent
 5757		// otherwise. Cannot be updated. More info:
 5758		// https://kubernetes.io/docs/concepts/containers/images#updating-images
 5759		"imagePullPolicy"?: string
 5760
 5761		// Actions that the management system should take in response to
 5762		// container lifecycle events. Cannot be updated.
 5763		"lifecycle"?: #."io.k8s.api.core.v1.Lifecycle"
 5764
 5765		// Periodic probe of container liveness. Container will be
 5766		// restarted if the probe fails. Cannot be updated. More info:
 5767		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
 5768		"livenessProbe"?: #."io.k8s.api.core.v1.Probe"
 5769
 5770		// Name of the container specified as a DNS_LABEL. Each container
 5771		// in a pod must have a unique name (DNS_LABEL). Cannot be
 5772		// updated.
 5773		"name"?: string
 5774
 5775		// List of ports to expose from the container. Not specifying a
 5776		// port here DOES NOT prevent that port from being exposed. Any
 5777		// port which is listening on the default "0.0.0.0" address
 5778		// inside a container will be accessible from the network.
 5779		// Modifying this array with strategic merge patch may corrupt
 5780		// the data. For more information See
 5781		// https://github.com/kubernetes/kubernetes/issues/108255. Cannot
 5782		// be updated.
 5783		"ports"?: [...#."io.k8s.api.core.v1.ContainerPort"]
 5784
 5785		// Periodic probe of container service readiness. Container will
 5786		// be removed from service endpoints if the probe fails. Cannot
 5787		// be updated. More info:
 5788		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
 5789		"readinessProbe"?: #."io.k8s.api.core.v1.Probe"
 5790
 5791		// Resources resize policy for the container.
 5792		"resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
 5793
 5794		// Compute Resources required by this container. Cannot be
 5795		// updated. More info:
 5796		// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
 5797		"resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
 5798
 5799		// RestartPolicy defines the restart behavior of individual
 5800		// containers in a pod. This field may only be set for init
 5801		// containers, and the only allowed value is "Always". For
 5802		// non-init containers or when this field is not specified, the
 5803		// restart behavior is defined by the Pod's restart policy and
 5804		// the container type. Setting the RestartPolicy as "Always" for
 5805		// the init container will have the following effect: this init
 5806		// container will be continually restarted on exit until all
 5807		// regular containers have terminated. Once all regular
 5808		// containers have completed, all init containers with
 5809		// restartPolicy "Always" will be shut down. This lifecycle
 5810		// differs from normal init containers and is often referred to
 5811		// as a "sidecar" container. Although this init container still
 5812		// starts in the init container sequence, it does not wait for
 5813		// the container to complete before proceeding to the next init
 5814		// container. Instead, the next init container starts immediately
 5815		// after this init container is started, or after any
 5816		// startupProbe has successfully completed.
 5817		"restartPolicy"?: string
 5818
 5819		// SecurityContext defines the security options the container
 5820		// should be run with. If set, the fields of SecurityContext
 5821		// override the equivalent fields of PodSecurityContext. More
 5822		// info:
 5823		// https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
 5824		"securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
 5825
 5826		// Source contains the source code of the script to execute
 5827		"source"!: string
 5828
 5829		// StartupProbe indicates that the Pod has successfully
 5830		// initialized. If specified, no other probes are executed until
 5831		// this completes successfully. If this probe fails, the Pod will
 5832		// be restarted, just as if the livenessProbe failed. This can be
 5833		// used to provide different probe parameters at the beginning of
 5834		// a Pod's lifecycle, when it might take a long time to load data
 5835		// or warm a cache, than during steady-state operation. This
 5836		// cannot be updated. More info:
 5837		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
 5838		"startupProbe"?: #."io.k8s.api.core.v1.Probe"
 5839
 5840		// Whether this container should allocate a buffer for stdin in
 5841		// the container runtime. If this is not set, reads from stdin in
 5842		// the container will always result in EOF. Default is false.
 5843		"stdin"?: bool
 5844
 5845		// Whether the container runtime should close the stdin channel
 5846		// after it has been opened by a single attach. When stdin is
 5847		// true the stdin stream will remain open across multiple attach
 5848		// sessions. If stdinOnce is set to true, stdin is opened on
 5849		// container start, is empty until the first client attaches to
 5850		// stdin, and then remains open and accepts data until the client
 5851		// disconnects, at which time stdin is closed and remains closed
 5852		// until the container is restarted. If this flag is false, a
 5853		// container processes that reads from stdin will never receive
 5854		// an EOF. Default is false
 5855		"stdinOnce"?: bool
 5856
 5857		// Optional: Path at which the file to which the container's
 5858		// termination message will be written is mounted into the
 5859		// container's filesystem. Message written is intended to be
 5860		// brief final status, such as an assertion failure message. Will
 5861		// be truncated by the node if greater than 4096 bytes. The total
 5862		// message length across all containers will be limited to 12kb.
 5863		// Defaults to /dev/termination-log. Cannot be updated.
 5864		"terminationMessagePath"?: string
 5865
 5866		// Indicate how the termination message should be populated. File
 5867		// will use the contents of terminationMessagePath to populate
 5868		// the container status message on both success and failure.
 5869		// FallbackToLogsOnError will use the last chunk of container log
 5870		// output if the termination message file is empty and the
 5871		// container exited with an error. The log output is limited to
 5872		// 2048 bytes or 80 lines, whichever is smaller. Defaults to
 5873		// File. Cannot be updated.
 5874		"terminationMessagePolicy"?: string
 5875
 5876		// Whether this container should allocate a TTY for itself, also
 5877		// requires 'stdin' to be true. Default is false.
 5878		"tty"?: bool
 5879
 5880		// volumeDevices is the list of block devices to be used by the
 5881		// container.
 5882		"volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"]
 5883
 5884		// Pod volumes to mount into the container's filesystem. Cannot be
 5885		// updated.
 5886		"volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
 5887
 5888		// Container's working directory. If not specified, the container
 5889		// runtime's default will be used, which might be configured in
 5890		// the container image. Cannot be updated.
 5891		"workingDir"?: string
 5892	}
 5893
 5894	#: "io.argoproj.workflow.v1alpha1.SemaphoreHolding": {
 5895		// Holders stores the list of current holder names in the
 5896		// io.argoproj.workflow.v1alpha1.
 5897		"holders"?: [...string]
 5898
 5899		// Semaphore stores the semaphore name.
 5900		"semaphore"?: string
 5901	}
 5902
 5903	// SemaphoreRef is a reference of Semaphore
 5904	#: "io.argoproj.workflow.v1alpha1.SemaphoreRef": {
 5905		// ConfigMapKeyRef is a configmap selector for Semaphore
 5906		// configuration
 5907		"configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
 5908
 5909		// SyncDatabaseRef is a database reference for Semaphore
 5910		// configuration
 5911		"database"?: #."io.argoproj.workflow.v1alpha1.SyncDatabaseRef"
 5912
 5913		// Namespace is the namespace of the configmap, default:
 5914		// [namespace of workflow]
 5915		"namespace"?: string
 5916	}
 5917
 5918	#: "io.argoproj.workflow.v1alpha1.SemaphoreStatus": {
 5919		// Holding stores the list of resource acquired synchronization
 5920		// lock for workflows.
 5921		"holding"?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreHolding"]
 5922
 5923		// Waiting indicates the list of current synchronization lock
 5924		// holders.
 5925		"waiting"?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreHolding"]
 5926	}
 5927
 5928	// Sequence expands a workflow step into numeric range
 5929	#: "io.argoproj.workflow.v1alpha1.Sequence": {
 5930		// Count is number of elements in the sequence (default: 0). Not
 5931		// to be used with end
 5932		"count"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
 5933
 5934		// Number at which to end the sequence (default: 0). Not to be
 5935		// used with Count
 5936		"end"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
 5937
 5938		// Format is a printf format string to format the value in the
 5939		// sequence
 5940		"format"?: string
 5941
 5942		// Number at which to start the sequence (default: 0)
 5943		"start"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
 5944	}
 5945
 5946	// StopStrategy defines if the CronWorkflow should stop scheduling
 5947	// based on an expression. v3.6 and after
 5948	#: "io.argoproj.workflow.v1alpha1.StopStrategy": {
 5949		// v3.6 and after: Expression is an expression that stops
 5950		// scheduling workflows when true. Use the variables
 5951		// `cronworkflow`.`failed` or `cronworkflow`.`succeeded` to
 5952		// access the number of failed or successful child workflows.
 5953		"expression"!: string
 5954	}
 5955
 5956	#: "io.argoproj.workflow.v1alpha1.Submit": {
 5957		// Arguments extracted from the event and then set as arguments to
 5958		// the workflow created.
 5959		"arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
 5960
 5961		// Metadata optional means to customize select fields of the
 5962		// workflow metadata
 5963		"metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
 5964
 5965		// WorkflowTemplateRef the workflow template to submit
 5966		"workflowTemplateRef"!: #."io.argoproj.workflow.v1alpha1.WorkflowTemplateRef"
 5967	}
 5968
 5969	// SubmitOpts are workflow submission options
 5970	#: "io.argoproj.workflow.v1alpha1.SubmitOpts": {
 5971		// Annotations adds to metadata.labels
 5972		"annotations"?: string
 5973
 5974		// DryRun validates the workflow on the client-side without
 5975		// creating it. This option is not supported in API
 5976		"dryRun"?: bool
 5977
 5978		// Entrypoint overrides spec.entrypoint
 5979		"entryPoint"?: string
 5980
 5981		// GenerateName overrides metadata.generateName
 5982		"generateName"?: string
 5983
 5984		// Labels adds to metadata.labels
 5985		"labels"?: string
 5986
 5987		// Name overrides metadata.name
 5988		"name"?: string
 5989
 5990		// OwnerReference creates a metadata.ownerReference
 5991		"ownerReference"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference"
 5992
 5993		// Parameters passes input parameters to workflow
 5994		"parameters"?: [...string]
 5995
 5996		// Set the podPriorityClassName of the workflow
 5997		"podPriorityClassName"?: string
 5998
 5999		// Priority is used if controller is configured to process limited
 6000		// number of workflows in parallel, higher priority workflows are
 6001		// processed first.
 6002		"priority"?: int
 6003
 6004		// ServerDryRun validates the workflow on the server-side without
 6005		// creating it
 6006		"serverDryRun"?: bool
 6007
 6008		// ServiceAccount runs all pods in the workflow using specified
 6009		// ServiceAccount.
 6010		"serviceAccount"?: string
 6011	}
 6012
 6013	// SuppliedValueFrom is a placeholder for a value to be filled in
 6014	// directly, either through the CLI, API, etc.
 6015	#: "io.argoproj.workflow.v1alpha1.SuppliedValueFrom": {}
 6016
 6017	// SuspendTemplate is a template subtype to suspend a workflow at
 6018	// a predetermined point in time
 6019	#: "io.argoproj.workflow.v1alpha1.SuspendTemplate": {
 6020		// Duration is the seconds to wait before automatically resuming a
 6021		// template. Must be a string. Default unit is seconds. Could
 6022		// also be a Duration, e.g.: "2m", "6h"
 6023		"duration"?: string
 6024	}
 6025
 6026	#: "io.argoproj.workflow.v1alpha1.SyncDatabaseRef": "key"!: string
 6027
 6028	// Synchronization holds synchronization lock configuration
 6029	#: "io.argoproj.workflow.v1alpha1.Synchronization": {
 6030		// v3.6 and after: Mutexes holds the list of Mutex lock details
 6031		"mutexes"?: [...#."io.argoproj.workflow.v1alpha1.Mutex"]
 6032
 6033		// v3.6 and after: Semaphores holds the list of Semaphores
 6034		// configuration
 6035		"semaphores"?: [...#."io.argoproj.workflow.v1alpha1.SemaphoreRef"]
 6036	}
 6037
 6038	// SynchronizationStatus stores the status of semaphore and mutex.
 6039	#: "io.argoproj.workflow.v1alpha1.SynchronizationStatus": {
 6040		// Mutex stores this workflow's mutex holder details
 6041		"mutex"?: #."io.argoproj.workflow.v1alpha1.MutexStatus"
 6042
 6043		// Semaphore stores this workflow's Semaphore holder details
 6044		"semaphore"?: #."io.argoproj.workflow.v1alpha1.SemaphoreStatus"
 6045	}
 6046
 6047	// TTLStrategy is the strategy for the time to live depending on
 6048	// if the workflow succeeded or failed
 6049	#: "io.argoproj.workflow.v1alpha1.TTLStrategy": {
 6050		// SecondsAfterCompletion is the number of seconds to live after
 6051		// completion
 6052		"secondsAfterCompletion"?: int
 6053
 6054		// SecondsAfterFailure is the number of seconds to live after
 6055		// failure
 6056		"secondsAfterFailure"?: int
 6057
 6058		// SecondsAfterSuccess is the number of seconds to live after
 6059		// success
 6060		"secondsAfterSuccess"?: int
 6061	}
 6062
 6063	// TarStrategy will tar and gzip the file or directory when saving
 6064	#: "io.argoproj.workflow.v1alpha1.TarStrategy": {
 6065		// CompressionLevel specifies the gzip compression level to use
 6066		// for the artifact. Defaults to gzip.DefaultCompression.
 6067		"compressionLevel"?: int
 6068	}
 6069
 6070	// Template is a reusable and composable unit of execution in a
 6071	// workflow
 6072	#: "io.argoproj.workflow.v1alpha1.Template": {
 6073		// Optional duration in seconds relative to the StartTime that the
 6074		// pod may be active on a node before the system actively tries
 6075		// to terminate the pod; value must be positive integer This
 6076		// field is only applicable to container and script templates.
 6077		"activeDeadlineSeconds"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
 6078
 6079		// Affinity sets the pod's scheduling constraints Overrides the
 6080		// affinity set at the workflow level (if any)
 6081		"affinity"?: #."io.k8s.api.core.v1.Affinity"
 6082
 6083		// Annotations is a list of annotations to add to the template at
 6084		// runtime
 6085		"annotations"?: {
 6086			[string]: string
 6087		}
 6088
 6089		// Location in which all files related to the step will be stored
 6090		// (logs, artifacts, etc...). Can be overridden by individual
 6091		// items in Outputs. If omitted, will use the default artifact
 6092		// repository location configured in the controller, appended
 6093		// with the <workflowname>/<nodename> in the key.
 6094		"archiveLocation"?: #."io.argoproj.workflow.v1alpha1.ArtifactLocation"
 6095
 6096		// AutomountServiceAccountToken indicates whether a service
 6097		// account token should be automatically mounted in pods.
 6098		// ServiceAccountName of ExecutorConfig must be specified if this
 6099		// value is false.
 6100		"automountServiceAccountToken"?: bool
 6101
 6102		// Container is the main container image to run in the pod
 6103		"container"?: #."io.k8s.api.core.v1.Container"
 6104
 6105		// ContainerSet groups multiple containers within a single pod.
 6106		"containerSet"?: #."io.argoproj.workflow.v1alpha1.ContainerSetTemplate"
 6107
 6108		// Daemon will allow a workflow to proceed to the next step so
 6109		// long as the container reaches readiness
 6110		"daemon"?: bool
 6111
 6112		// DAG template subtype which runs a DAG
 6113		"dag"?: #."io.argoproj.workflow.v1alpha1.DAGTemplate"
 6114
 6115		// Data is a data template
 6116		"data"?: #."io.argoproj.workflow.v1alpha1.Data"
 6117
 6118		// Executor holds configurations of the executor container.
 6119		"executor"?: #."io.argoproj.workflow.v1alpha1.ExecutorConfig"
 6120
 6121		// FailFast, if specified, will fail this template if any of its
 6122		// child pods has failed. This is useful for when this template
 6123		// is expanded with `withItems`, etc.
 6124		"failFast"?: bool
 6125
 6126		// HostAliases is an optional list of hosts and IPs that will be
 6127		// injected into the pod spec
 6128		"hostAliases"?: [...#."io.k8s.api.core.v1.HostAlias"]
 6129
 6130		// HTTP makes a HTTP request
 6131		"http"?: #."io.argoproj.workflow.v1alpha1.HTTP"
 6132
 6133		// InitContainers is a list of containers which run before the
 6134		// main container.
 6135		"initContainers"?: [...#."io.argoproj.workflow.v1alpha1.UserContainer"]
 6136
 6137		// Inputs describe what inputs parameters and artifacts are
 6138		// supplied to this template
 6139		"inputs"?: #."io.argoproj.workflow.v1alpha1.Inputs"
 6140
 6141		// Memoize allows templates to use outputs generated from already
 6142		// executed templates
 6143		"memoize"?: #."io.argoproj.workflow.v1alpha1.Memoize"
 6144
 6145		// Metadata sets the pods's metadata, i.e. annotations and labels
 6146		"metadata"?: #."io.argoproj.workflow.v1alpha1.Metadata"
 6147
 6148		// Metrics are a list of metrics emitted from this template
 6149		"metrics"?: #."io.argoproj.workflow.v1alpha1.Metrics"
 6150
 6151		// Name is the name of the template
 6152		"name"?: string
 6153
 6154		// NodeSelector is a selector to schedule this step of the
 6155		// workflow to be run on the selected node(s). Overrides the
 6156		// selector set at the workflow level.
 6157		"nodeSelector"?: {
 6158			[string]: string
 6159		}
 6160
 6161		// Outputs describe the parameters and artifacts that this
 6162		// template produces
 6163		"outputs"?: #."io.argoproj.workflow.v1alpha1.Outputs"
 6164
 6165		// Parallelism limits the max total parallel pods that can execute
 6166		// at the same time within the boundaries of this template
 6167		// invocation. If additional steps/dag templates are invoked, the
 6168		// pods created by those templates will not be counted towards
 6169		// this total.
 6170		"parallelism"?: int
 6171
 6172		// Plugin is a plugin template Note: the structure of a plugin
 6173		// template is free-form, so we need to have
 6174		// "x-kubernetes-preserve-unknown-fields: true" in the validation
 6175		// schema.
 6176		"plugin"?: #."io.argoproj.workflow.v1alpha1.Plugin"
 6177
 6178		// PodSpecPatch holds strategic merge patch to apply against the
 6179		// pod spec. Allows parameterization of container fields which
 6180		// are not strings (e.g. resource limits).
 6181		"podSpecPatch"?: string
 6182
 6183		// PriorityClassName to apply to workflow pods.
 6184		"priorityClassName"?: string
 6185
 6186		// Resource template subtype which can run k8s resources
 6187		"resource"?: #."io.argoproj.workflow.v1alpha1.ResourceTemplate"
 6188
 6189		// RetryStrategy describes how to retry a template when it fails
 6190		"retryStrategy"?: #."io.argoproj.workflow.v1alpha1.RetryStrategy"
 6191
 6192		// If specified, the pod will be dispatched by specified
 6193		// scheduler. Or it will be dispatched by workflow scope
 6194		// scheduler if specified. If neither specified, the pod will be
 6195		// dispatched by default scheduler.
 6196		"schedulerName"?: string
 6197
 6198		// Script runs a portion of code against an interpreter
 6199		"script"?: #."io.argoproj.workflow.v1alpha1.ScriptTemplate"
 6200
 6201		// SecurityContext holds pod-level security attributes and common
 6202		// container settings. Optional: Defaults to empty. See type
 6203		// description for default values of each field.
 6204		"securityContext"?: #."io.k8s.api.core.v1.PodSecurityContext"
 6205
 6206		// ServiceAccountName to apply to workflow pods
 6207		"serviceAccountName"?: string
 6208
 6209		// Sidecars is a list of containers which run alongside the main
 6210		// container Sidecars are automatically killed when the main
 6211		// container completes
 6212		"sidecars"?: [...#."io.argoproj.workflow.v1alpha1.UserContainer"]
 6213
 6214		// Steps define a series of sequential/parallel workflow steps
 6215		"steps"?: [...#."io.argoproj.workflow.v1alpha1.ParallelSteps"]
 6216
 6217		// Suspend template subtype which can suspend a workflow when
 6218		// reaching the step
 6219		"suspend"?: #."io.argoproj.workflow.v1alpha1.SuspendTemplate"
 6220
 6221		// Synchronization holds synchronization lock configuration for
 6222		// this template
 6223		"synchronization"?: #."io.argoproj.workflow.v1alpha1.Synchronization"
 6224
 6225		// Timeout allows to set the total node execution timeout duration
 6226		// counting from the node's start time. This duration also
 6227		// includes time in which the node spends in Pending state. This
 6228		// duration may not be applied to Step or DAG templates.
 6229		"timeout"?: string
 6230
 6231		// Tolerations to apply to workflow pods.
 6232		"tolerations"?: [...#."io.k8s.api.core.v1.Toleration"]
 6233
 6234		// Volumes is a list of volumes that can be mounted by containers
 6235		// in a template.
 6236		"volumes"?: [...#."io.k8s.api.core.v1.Volume"]
 6237	}
 6238
 6239	// TemplateRef is a reference of template resource.
 6240	#: "io.argoproj.workflow.v1alpha1.TemplateRef": {
 6241		// ClusterScope indicates the referred template is cluster scoped
 6242		// (i.e. a ClusterWorkflowTemplate).
 6243		"clusterScope"?: bool
 6244
 6245		// Name is the resource name of the template.
 6246		"name"?: string
 6247
 6248		// Template is the name of referred template in the resource.
 6249		"template"?: string
 6250	}
 6251
 6252	#: "io.argoproj.workflow.v1alpha1.TransformationStep": {
 6253		// Expression defines an expr expression to apply
 6254		"expression"!: string
 6255	}
 6256
 6257	#: "io.argoproj.workflow.v1alpha1.UpdateCronWorkflowRequest": {
 6258		"cronWorkflow"?: #."io.argoproj.workflow.v1alpha1.CronWorkflow"
 6259
 6260		// DEPRECATED: This field is ignored.
 6261		"name"?:      string
 6262		"namespace"?: string
 6263	}
 6264
 6265	// UserContainer is a container specified by a user.
 6266	#: "io.argoproj.workflow.v1alpha1.UserContainer": {
 6267		// Arguments to the entrypoint. The container image's CMD is used
 6268		// if this is not provided. Variable references $(VAR_NAME) are
 6269		// expanded using the container's environment. If a variable
 6270		// cannot be resolved, the reference in the input string will be
 6271		// unchanged. Double $$ are reduced to a single $, which allows
 6272		// for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
 6273		// produce the string literal "$(VAR_NAME)". Escaped references
 6274		// will never be expanded, regardless of whether the variable
 6275		// exists or not. Cannot be updated. More info:
 6276		// https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
 6277		"args"?: [...string]
 6278
 6279		// Entrypoint array. Not executed within a shell. The container
 6280		// image's ENTRYPOINT is used if this is not provided. Variable
 6281		// references $(VAR_NAME) are expanded using the container's
 6282		// environment. If a variable cannot be resolved, the reference
 6283		// in the input string will be unchanged. Double $$ are reduced
 6284		// to a single $, which allows for escaping the $(VAR_NAME)
 6285		// syntax: i.e. "$$(VAR_NAME)" will produce the string literal
 6286		// "$(VAR_NAME)". Escaped references will never be expanded,
 6287		// regardless of whether the variable exists or not. Cannot be
 6288		// updated. More info:
 6289		// https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
 6290		"command"?: [...string]
 6291
 6292		// List of environment variables to set in the container. Cannot
 6293		// be updated.
 6294		"env"?: [...#."io.k8s.api.core.v1.EnvVar"]
 6295
 6296		// List of sources to populate environment variables in the
 6297		// container. The keys defined within a source must be a
 6298		// C_IDENTIFIER. All invalid keys will be reported as an event
 6299		// when the container is starting. When a key exists in multiple
 6300		// sources, the value associated with the last source will take
 6301		// precedence. Values defined by an Env with a duplicate key will
 6302		// take precedence. Cannot be updated.
 6303		"envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
 6304
 6305		// Container image name. More info:
 6306		// https://kubernetes.io/docs/concepts/containers/images This
 6307		// field is optional to allow higher level config management to
 6308		// default or override container images in workload controllers
 6309		// like Deployments and StatefulSets.
 6310		"image"?: string
 6311
 6312		// Image pull policy. One of Always, Never, IfNotPresent. Defaults
 6313		// to Always if :latest tag is specified, or IfNotPresent
 6314		// otherwise. Cannot be updated. More info:
 6315		// https://kubernetes.io/docs/concepts/containers/images#updating-images
 6316		"imagePullPolicy"?: string
 6317
 6318		// Actions that the management system should take in response to
 6319		// container lifecycle events. Cannot be updated.
 6320		"lifecycle"?: #."io.k8s.api.core.v1.Lifecycle"
 6321
 6322		// Periodic probe of container liveness. Container will be
 6323		// restarted if the probe fails. Cannot be updated. More info:
 6324		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
 6325		"livenessProbe"?: #."io.k8s.api.core.v1.Probe"
 6326
 6327		// MirrorVolumeMounts will mount the same volumes specified in the
 6328		// main container to the container (including artifacts), at the
 6329		// same mountPaths. This enables dind daemon to partially see the
 6330		// same filesystem as the main container in order to use features
 6331		// such as docker volume binding
 6332		"mirrorVolumeMounts"?: bool
 6333
 6334		// Name of the container specified as a DNS_LABEL. Each container
 6335		// in a pod must have a unique name (DNS_LABEL). Cannot be
 6336		// updated.
 6337		"name"!: string
 6338
 6339		// List of ports to expose from the container. Not specifying a
 6340		// port here DOES NOT prevent that port from being exposed. Any
 6341		// port which is listening on the default "0.0.0.0" address
 6342		// inside a container will be accessible from the network.
 6343		// Modifying this array with strategic merge patch may corrupt
 6344		// the data. For more information See
 6345		// https://github.com/kubernetes/kubernetes/issues/108255. Cannot
 6346		// be updated.
 6347		"ports"?: [...#."io.k8s.api.core.v1.ContainerPort"]
 6348
 6349		// Periodic probe of container service readiness. Container will
 6350		// be removed from service endpoints if the probe fails. Cannot
 6351		// be updated. More info:
 6352		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
 6353		"readinessProbe"?: #."io.k8s.api.core.v1.Probe"
 6354
 6355		// Resources resize policy for the container.
 6356		"resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
 6357
 6358		// Compute Resources required by this container. Cannot be
 6359		// updated. More info:
 6360		// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
 6361		"resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
 6362
 6363		// RestartPolicy defines the restart behavior of individual
 6364		// containers in a pod. This field may only be set for init
 6365		// containers, and the only allowed value is "Always". For
 6366		// non-init containers or when this field is not specified, the
 6367		// restart behavior is defined by the Pod's restart policy and
 6368		// the container type. Setting the RestartPolicy as "Always" for
 6369		// the init container will have the following effect: this init
 6370		// container will be continually restarted on exit until all
 6371		// regular containers have terminated. Once all regular
 6372		// containers have completed, all init containers with
 6373		// restartPolicy "Always" will be shut down. This lifecycle
 6374		// differs from normal init containers and is often referred to
 6375		// as a "sidecar" container. Although this init container still
 6376		// starts in the init container sequence, it does not wait for
 6377		// the container to complete before proceeding to the next init
 6378		// container. Instead, the next init container starts immediately
 6379		// after this init container is started, or after any
 6380		// startupProbe has successfully completed.
 6381		"restartPolicy"?: string
 6382
 6383		// SecurityContext defines the security options the container
 6384		// should be run with. If set, the fields of SecurityContext
 6385		// override the equivalent fields of PodSecurityContext. More
 6386		// info:
 6387		// https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
 6388		"securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
 6389
 6390		// StartupProbe indicates that the Pod has successfully
 6391		// initialized. If specified, no other probes are executed until
 6392		// this completes successfully. If this probe fails, the Pod will
 6393		// be restarted, just as if the livenessProbe failed. This can be
 6394		// used to provide different probe parameters at the beginning of
 6395		// a Pod's lifecycle, when it might take a long time to load data
 6396		// or warm a cache, than during steady-state operation. This
 6397		// cannot be updated. More info:
 6398		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
 6399		"startupProbe"?: #."io.k8s.api.core.v1.Probe"
 6400
 6401		// Whether this container should allocate a buffer for stdin in
 6402		// the container runtime. If this is not set, reads from stdin in
 6403		// the container will always result in EOF. Default is false.
 6404		"stdin"?: bool
 6405
 6406		// Whether the container runtime should close the stdin channel
 6407		// after it has been opened by a single attach. When stdin is
 6408		// true the stdin stream will remain open across multiple attach
 6409		// sessions. If stdinOnce is set to true, stdin is opened on
 6410		// container start, is empty until the first client attaches to
 6411		// stdin, and then remains open and accepts data until the client
 6412		// disconnects, at which time stdin is closed and remains closed
 6413		// until the container is restarted. If this flag is false, a
 6414		// container processes that reads from stdin will never receive
 6415		// an EOF. Default is false
 6416		"stdinOnce"?: bool
 6417
 6418		// Optional: Path at which the file to which the container's
 6419		// termination message will be written is mounted into the
 6420		// container's filesystem. Message written is intended to be
 6421		// brief final status, such as an assertion failure message. Will
 6422		// be truncated by the node if greater than 4096 bytes. The total
 6423		// message length across all containers will be limited to 12kb.
 6424		// Defaults to /dev/termination-log. Cannot be updated.
 6425		"terminationMessagePath"?: string
 6426
 6427		// Indicate how the termination message should be populated. File
 6428		// will use the contents of terminationMessagePath to populate
 6429		// the container status message on both success and failure.
 6430		// FallbackToLogsOnError will use the last chunk of container log
 6431		// output if the termination message file is empty and the
 6432		// container exited with an error. The log output is limited to
 6433		// 2048 bytes or 80 lines, whichever is smaller. Defaults to
 6434		// File. Cannot be updated.
 6435		"terminationMessagePolicy"?: string
 6436
 6437		// Whether this container should allocate a TTY for itself, also
 6438		// requires 'stdin' to be true. Default is false.
 6439		"tty"?: bool
 6440
 6441		// volumeDevices is the list of block devices to be used by the
 6442		// container.
 6443		"volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"]
 6444
 6445		// Pod volumes to mount into the container's filesystem. Cannot be
 6446		// updated.
 6447		"volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
 6448
 6449		// Container's working directory. If not specified, the container
 6450		// runtime's default will be used, which might be configured in
 6451		// the container image. Cannot be updated.
 6452		"workingDir"?: string
 6453	}
 6454
 6455	// ValueFrom describes a location in which to obtain the value to
 6456	// a parameter
 6457	#: "io.argoproj.workflow.v1alpha1.ValueFrom": {
 6458		// ConfigMapKeyRef is configmap selector for input parameter
 6459		// configuration
 6460		"configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
 6461
 6462		// Default specifies a value to be used if retrieving the value
 6463		// from the specified source fails
 6464		"default"?: string
 6465
 6466		// Selector (https://github.com/expr-lang/expr) that is evaluated
 6467		// against the event to get the value of the parameter. E.g.
 6468		// `payload.message`
 6469		"event"?: string
 6470
 6471		// Expression, if defined, is evaluated to specify the value for
 6472		// the parameter
 6473		"expression"?: string
 6474
 6475		// JQFilter expression against the resource object in resource
 6476		// templates
 6477		"jqFilter"?: string
 6478
 6479		// JSONPath of a resource to retrieve an output parameter value
 6480		// from in resource templates
 6481		"jsonPath"?: string
 6482
 6483		// Parameter reference to a step or dag task in which to retrieve
 6484		// an output parameter value from (e.g.
 6485		// '{{steps.mystep.outputs.myparam}}')
 6486		"parameter"?: string
 6487
 6488		// Path in the container to retrieve an output parameter value
 6489		// from in container templates
 6490		"path"?: string
 6491
 6492		// Supplied value to be filled in directly, either through the
 6493		// CLI, API, etc.
 6494		"supplied"?: #."io.argoproj.workflow.v1alpha1.SuppliedValueFrom"
 6495	}
 6496
 6497	#: "io.argoproj.workflow.v1alpha1.Version": {
 6498		"buildDate"!:    string
 6499		"compiler"!:     string
 6500		"gitCommit"!:    string
 6501		"gitTag"!:       string
 6502		"gitTreeState"!: string
 6503		"goVersion"!:    string
 6504		"platform"!:     string
 6505		"version"!:      string
 6506	}
 6507
 6508	// VolumeClaimGC describes how to delete volumes from completed
 6509	// Workflows
 6510	#: "io.argoproj.workflow.v1alpha1.VolumeClaimGC": {
 6511		// Strategy is the strategy to use. One of "OnWorkflowCompletion",
 6512		// "OnWorkflowSuccess". Defaults to "OnWorkflowSuccess"
 6513		"strategy"?: string
 6514	}
 6515
 6516	// Workflow is the definition of a workflow resource
 6517	#: "io.argoproj.workflow.v1alpha1.Workflow": {
 6518		// APIVersion defines the versioned schema of this representation
 6519		// of an object. Servers should convert recognized schemas to the
 6520		// latest internal value, and may reject unrecognized values.
 6521		// More info:
 6522		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
 6523		"apiVersion"?: "argoproj.io/v1alpha1"
 6524
 6525		// Kind is a string value representing the REST resource this
 6526		// object represents. Servers may infer this from the endpoint
 6527		// the client submits requests to. Cannot be updated. In
 6528		// CamelCase. More info:
 6529		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 6530		"kind"?:     "Workflow"
 6531		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
 6532		"spec"!:     #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
 6533		"status"?:   #."io.argoproj.workflow.v1alpha1.WorkflowStatus"
 6534	}
 6535
 6536	#: "io.argoproj.workflow.v1alpha1.WorkflowCreateRequest": {
 6537		"createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
 6538
 6539		// This field is no longer used.
 6540		"instanceID"?:   string
 6541		"namespace"?:    string
 6542		"serverDryRun"?: bool
 6543		"workflow"?:     #."io.argoproj.workflow.v1alpha1.Workflow"
 6544	}
 6545
 6546	#: "io.argoproj.workflow.v1alpha1.WorkflowDeleteResponse": {}
 6547
 6548	// WorkflowEventBinding is the definition of an event resource
 6549	#: "io.argoproj.workflow.v1alpha1.WorkflowEventBinding": {
 6550		// APIVersion defines the versioned schema of this representation
 6551		// of an object. Servers should convert recognized schemas to the
 6552		// latest internal value, and may reject unrecognized values.
 6553		// More info:
 6554		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
 6555		"apiVersion"?: "argoproj.io/v1alpha1"
 6556
 6557		// Kind is a string value representing the REST resource this
 6558		// object represents. Servers may infer this from the endpoint
 6559		// the client submits requests to. Cannot be updated. In
 6560		// CamelCase. More info:
 6561		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 6562		"kind"?:     "WorkflowEventBinding"
 6563		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
 6564		"spec"!:     #."io.argoproj.workflow.v1alpha1.WorkflowEventBindingSpec"
 6565	}
 6566
 6567	// WorkflowEventBindingList is list of event resources
 6568	#: "io.argoproj.workflow.v1alpha1.WorkflowEventBindingList": {
 6569		// APIVersion defines the versioned schema of this representation
 6570		// of an object. Servers should convert recognized schemas to the
 6571		// latest internal value, and may reject unrecognized values.
 6572		// More info:
 6573		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
 6574		"apiVersion"?: string
 6575		"items"!: [...#."io.argoproj.workflow.v1alpha1.WorkflowEventBinding"]
 6576
 6577		// Kind is a string value representing the REST resource this
 6578		// object represents. Servers may infer this from the endpoint
 6579		// the client submits requests to. Cannot be updated. In
 6580		// CamelCase. More info:
 6581		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 6582		"kind"?:     string
 6583		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
 6584	}
 6585
 6586	#: "io.argoproj.workflow.v1alpha1.WorkflowEventBindingSpec": {
 6587		// Event is the event to bind to
 6588		"event"!: #."io.argoproj.workflow.v1alpha1.Event"
 6589
 6590		// Submit is the workflow template to submit
 6591		"submit"?: #."io.argoproj.workflow.v1alpha1.Submit"
 6592	}
 6593
 6594	// WorkflowLevelArtifactGC describes how to delete artifacts from
 6595	// completed Workflows - this spec is used on the Workflow level
 6596	#: "io.argoproj.workflow.v1alpha1.WorkflowLevelArtifactGC": {
 6597		// ForceFinalizerRemoval: if set to true, the finalizer will be
 6598		// removed in the case that Artifact GC fails
 6599		"forceFinalizerRemoval"?: bool
 6600
 6601		// PodMetadata is an optional field for specifying the Labels and
 6602		// Annotations that should be assigned to the Pod doing the
 6603		// deletion
 6604		"podMetadata"?: #."io.argoproj.workflow.v1alpha1.Metadata"
 6605
 6606		// PodSpecPatch holds strategic merge patch to apply against the
 6607		// artgc pod spec.
 6608		"podSpecPatch"?: string
 6609
 6610		// ServiceAccountName is an optional field for specifying the
 6611		// Service Account that should be assigned to the Pod doing the
 6612		// deletion
 6613		"serviceAccountName"?: string
 6614
 6615		// Strategy is the strategy to use.
 6616		"strategy"?: string
 6617	}
 6618
 6619	#: "io.argoproj.workflow.v1alpha1.WorkflowLintRequest": {
 6620		"namespace"?: string
 6621		"workflow"?:  #."io.argoproj.workflow.v1alpha1.Workflow"
 6622	}
 6623
 6624	// WorkflowList is list of Workflow resources
 6625	#: "io.argoproj.workflow.v1alpha1.WorkflowList": {
 6626		// APIVersion defines the versioned schema of this representation
 6627		// of an object. Servers should convert recognized schemas to the
 6628		// latest internal value, and may reject unrecognized values.
 6629		// More info:
 6630		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
 6631		"apiVersion"?: string
 6632		"items"!: [...#."io.argoproj.workflow.v1alpha1.Workflow"]
 6633
 6634		// Kind is a string value representing the REST resource this
 6635		// object represents. Servers may infer this from the endpoint
 6636		// the client submits requests to. Cannot be updated. In
 6637		// CamelCase. More info:
 6638		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 6639		"kind"?:     string
 6640		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
 6641	}
 6642
 6643	#: "io.argoproj.workflow.v1alpha1.WorkflowMetadata": {
 6644		"annotations"?: [string]: string
 6645		"labels"?: {
 6646			[string]: string
 6647		}
 6648		"labelsFrom"?: {
 6649			[string]: #."io.argoproj.workflow.v1alpha1.LabelValueFrom"
 6650		}
 6651	}
 6652
 6653	#: "io.argoproj.workflow.v1alpha1.WorkflowResubmitRequest": {
 6654		"memoized"?:  bool
 6655		"name"?:      string
 6656		"namespace"?: string
 6657		"parameters"?: [...string]
 6658	}
 6659
 6660	#: "io.argoproj.workflow.v1alpha1.WorkflowResumeRequest": {
 6661		"name"?:              string
 6662		"namespace"?:         string
 6663		"nodeFieldSelector"?: string
 6664	}
 6665
 6666	#: "io.argoproj.workflow.v1alpha1.WorkflowRetryRequest": {
 6667		"name"?:              string
 6668		"namespace"?:         string
 6669		"nodeFieldSelector"?: string
 6670		"parameters"?: [...string]
 6671		"restartSuccessful"?: bool
 6672	}
 6673
 6674	#: "io.argoproj.workflow.v1alpha1.WorkflowSetRequest": {
 6675		"message"?:           string
 6676		"name"?:              string
 6677		"namespace"?:         string
 6678		"nodeFieldSelector"?: string
 6679		"outputParameters"?:  string
 6680		"phase"?:             string
 6681	}
 6682
 6683	// WorkflowSpec is the specification of a Workflow.
 6684	#: "io.argoproj.workflow.v1alpha1.WorkflowSpec": {
 6685		// Optional duration in seconds relative to the workflow start
 6686		// time which the workflow is allowed to run before the
 6687		// controller terminates the io.argoproj.workflow.v1alpha1. A
 6688		// value of zero is used to terminate a Running workflow
 6689		"activeDeadlineSeconds"?: int
 6690
 6691		// Affinity sets the scheduling constraints for all pods in the
 6692		// io.argoproj.workflow.v1alpha1. Can be overridden by an
 6693		// affinity specified in the template
 6694		"affinity"?: #."io.k8s.api.core.v1.Affinity"
 6695
 6696		// ArchiveLogs indicates if the container logs should be archived
 6697		"archiveLogs"?: bool
 6698
 6699		// Arguments contain the parameters and artifacts sent to the
 6700		// workflow entrypoint Parameters are referencable globally using
 6701		// the 'workflow' variable prefix. e.g.
 6702		// {{io.argoproj.workflow.v1alpha1.parameters.myparam}}
 6703		"arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
 6704
 6705		// ArtifactGC describes the strategy to use when deleting
 6706		// artifacts from completed or deleted workflows (applies to all
 6707		// output Artifacts unless Artifact.ArtifactGC is specified,
 6708		// which overrides this)
 6709		"artifactGC"?: #."io.argoproj.workflow.v1alpha1.WorkflowLevelArtifactGC"
 6710
 6711		// ArtifactRepositoryRef specifies the configMap name and key
 6712		// containing the artifact repository config.
 6713		"artifactRepositoryRef"?: #."io.argoproj.workflow.v1alpha1.ArtifactRepositoryRef"
 6714
 6715		// AutomountServiceAccountToken indicates whether a service
 6716		// account token should be automatically mounted in pods.
 6717		// ServiceAccountName of ExecutorConfig must be specified if this
 6718		// value is false.
 6719		"automountServiceAccountToken"?: bool
 6720
 6721		// PodDNSConfig defines the DNS parameters of a pod in addition to
 6722		// those generated from DNSPolicy.
 6723		"dnsConfig"?: #."io.k8s.api.core.v1.PodDNSConfig"
 6724
 6725		// Set DNS policy for workflow pods. Defaults to "ClusterFirst".
 6726		// Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst',
 6727		// 'Default' or 'None'. DNS parameters given in DNSConfig will be
 6728		// merged with the policy selected with DNSPolicy. To have DNS
 6729		// options set along with hostNetwork, you have to specify DNS
 6730		// policy explicitly to 'ClusterFirstWithHostNet'.
 6731		"dnsPolicy"?: string
 6732
 6733		// Entrypoint is a template reference to the starting point of the
 6734		// io.argoproj.workflow.v1alpha1.
 6735		"entrypoint"?: string
 6736
 6737		// Executor holds configurations of executor containers of the
 6738		// io.argoproj.workflow.v1alpha1.
 6739		"executor"?: #."io.argoproj.workflow.v1alpha1.ExecutorConfig"
 6740
 6741		// Hooks holds the lifecycle hook which is invoked at lifecycle of
 6742		// step, irrespective of the success, failure, or error status of
 6743		// the primary step
 6744		"hooks"?: {
 6745			[string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook"
 6746		}
 6747		"hostAliases"?: [...#."io.k8s.api.core.v1.HostAlias"]
 6748
 6749		// Host networking requested for this workflow pod. Default to
 6750		// false.
 6751		"hostNetwork"?: bool
 6752
 6753		// ImagePullSecrets is a list of references to secrets in the same
 6754		// namespace to use for pulling any images in pods that reference
 6755		// this ServiceAccount. ImagePullSecrets are distinct from
 6756		// Secrets because Secrets can be mounted in the pod, but
 6757		// ImagePullSecrets are only accessed by the kubelet. More info:
 6758		// https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
 6759		"imagePullSecrets"?: [...#."io.k8s.api.core.v1.LocalObjectReference"]
 6760
 6761		// Metrics are a list of metrics emitted from this Workflow
 6762		"metrics"?: #."io.argoproj.workflow.v1alpha1.Metrics"
 6763
 6764		// NodeSelector is a selector which will result in all pods of the
 6765		// workflow to be scheduled on the selected node(s). This is able
 6766		// to be overridden by a nodeSelector specified in the template.
 6767		"nodeSelector"?: {
 6768			[string]: string
 6769		}
 6770
 6771		// OnExit is a template reference which is invoked at the end of
 6772		// the workflow, irrespective of the success, failure, or error
 6773		// of the primary io.argoproj.workflow.v1alpha1.
 6774		"onExit"?: string
 6775
 6776		// Parallelism limits the max total parallel pods that can execute
 6777		// at the same time in a workflow
 6778		"parallelism"?: int
 6779
 6780		// PodDisruptionBudget holds the number of concurrent disruptions
 6781		// that you allow for Workflow's Pods. Controller will
 6782		// automatically add the selector with workflow name, if selector
 6783		// is empty. Optional: Defaults to empty.
 6784		"podDisruptionBudget"?: #."io.k8s.api.policy.v1.PodDisruptionBudgetSpec"
 6785
 6786		// PodGC describes the strategy to use when deleting completed
 6787		// pods
 6788		"podGC"?: #."io.argoproj.workflow.v1alpha1.PodGC"
 6789
 6790		// PodMetadata defines additional metadata that should be applied
 6791		// to workflow pods
 6792		"podMetadata"?: #."io.argoproj.workflow.v1alpha1.Metadata"
 6793
 6794		// PriorityClassName to apply to workflow pods.
 6795		"podPriorityClassName"?: string
 6796
 6797		// PodSpecPatch holds strategic merge patch to apply against the
 6798		// pod spec. Allows parameterization of container fields which
 6799		// are not strings (e.g. resource limits).
 6800		"podSpecPatch"?: string
 6801
 6802		// Priority is used if controller is configured to process limited
 6803		// number of workflows in parallel. Workflows with higher
 6804		// priority are processed first.
 6805		"priority"?: int
 6806
 6807		// RetryStrategy for all templates in the
 6808		// io.argoproj.workflow.v1alpha1.
 6809		"retryStrategy"?: #."io.argoproj.workflow.v1alpha1.RetryStrategy"
 6810
 6811		// Set scheduler name for all pods. Will be overridden if
 6812		// container/script template's scheduler name is set. Default
 6813		// scheduler will be used if neither specified.
 6814		"schedulerName"?: string
 6815
 6816		// SecurityContext holds pod-level security attributes and common
 6817		// container settings. Optional: Defaults to empty. See type
 6818		// description for default values of each field.
 6819		"securityContext"?: #."io.k8s.api.core.v1.PodSecurityContext"
 6820
 6821		// ServiceAccountName is the name of the ServiceAccount to run all
 6822		// pods of the workflow as.
 6823		"serviceAccountName"?: string
 6824
 6825		// Shutdown will shutdown the workflow according to its
 6826		// ShutdownStrategy
 6827		"shutdown"?: string
 6828
 6829		// Suspend will suspend the workflow and prevent execution of any
 6830		// future steps in the workflow
 6831		"suspend"?: bool
 6832
 6833		// Synchronization holds synchronization lock configuration for
 6834		// this Workflow
 6835		"synchronization"?: #."io.argoproj.workflow.v1alpha1.Synchronization"
 6836
 6837		// TemplateDefaults holds default template values that will apply
 6838		// to all templates in the Workflow, unless overridden on the
 6839		// template-level
 6840		"templateDefaults"?: #."io.argoproj.workflow.v1alpha1.Template"
 6841
 6842		// Templates is a list of workflow templates used in a workflow
 6843		// MaxItems is an artificial limit to limit CEL validation costs
 6844		// - see note at top of file
 6845		"templates"?: [...#."io.argoproj.workflow.v1alpha1.Template"]
 6846
 6847		// Tolerations to apply to workflow pods.
 6848		"tolerations"?: [...#."io.k8s.api.core.v1.Toleration"]
 6849
 6850		// TTLStrategy limits the lifetime of a Workflow that has finished
 6851		// execution depending on if it Succeeded or Failed. If this
 6852		// struct is set, once the Workflow finishes, it will be deleted
 6853		// after the time to live expires. If this field is unset, the
 6854		// controller config map will hold the default values.
 6855		"ttlStrategy"?: #."io.argoproj.workflow.v1alpha1.TTLStrategy"
 6856
 6857		// VolumeClaimGC describes the strategy to use when deleting
 6858		// volumes from completed workflows
 6859		"volumeClaimGC"?: #."io.argoproj.workflow.v1alpha1.VolumeClaimGC"
 6860
 6861		// VolumeClaimTemplates is a list of claims that containers are
 6862		// allowed to reference. The Workflow controller will create the
 6863		// claims at the beginning of the workflow and delete the claims
 6864		// upon completion of the workflow
 6865		"volumeClaimTemplates"?: [...#."io.k8s.api.core.v1.PersistentVolumeClaim"]
 6866
 6867		// Volumes is a list of volumes that can be mounted by containers
 6868		// in a io.argoproj.workflow.v1alpha1.
 6869		"volumes"?: [...#."io.k8s.api.core.v1.Volume"]
 6870
 6871		// WorkflowMetadata contains some metadata of the workflow to
 6872		// refer to
 6873		"workflowMetadata"?: #."io.argoproj.workflow.v1alpha1.WorkflowMetadata"
 6874
 6875		// WorkflowTemplateRef holds a reference to a WorkflowTemplate for
 6876		// execution
 6877		"workflowTemplateRef"?: #."io.argoproj.workflow.v1alpha1.WorkflowTemplateRef"
 6878	}
 6879
 6880	// WorkflowStatus contains overall status information about a
 6881	// workflow
 6882	#: "io.argoproj.workflow.v1alpha1.WorkflowStatus": {
 6883		// ArtifactGCStatus maintains the status of Artifact Garbage
 6884		// Collection
 6885		"artifactGCStatus"?: #."io.argoproj.workflow.v1alpha1.ArtGCStatus"
 6886
 6887		// ArtifactRepositoryRef is used to cache the repository to use so
 6888		// we do not need to determine it everytime we reconcile.
 6889		"artifactRepositoryRef"?: #."io.argoproj.workflow.v1alpha1.ArtifactRepositoryRefStatus"
 6890
 6891		// Compressed and base64 decoded Nodes map
 6892		"compressedNodes"?: string
 6893
 6894		// Conditions is a list of conditions the Workflow may have
 6895		"conditions"?: [...#."io.argoproj.workflow.v1alpha1.Condition"]
 6896
 6897		// EstimatedDuration in seconds.
 6898		"estimatedDuration"?: int
 6899
 6900		// Time at which this workflow completed
 6901		"finishedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
 6902
 6903		// A human readable message indicating details about why the
 6904		// workflow is in this condition.
 6905		"message"?: string
 6906
 6907		// Nodes is a mapping between a node ID and the node's status.
 6908		"nodes"?: {
 6909			[string]: #."io.argoproj.workflow.v1alpha1.NodeStatus"
 6910		}
 6911
 6912		// Whether on not node status has been offloaded to a database. If
 6913		// exists, then Nodes and CompressedNodes will be empty. This
 6914		// will actually be populated with a hash of the offloaded data.
 6915		"offloadNodeStatusVersion"?: string
 6916
 6917		// Outputs captures output values and artifact locations produced
 6918		// by the workflow via global outputs
 6919		"outputs"?: #."io.argoproj.workflow.v1alpha1.Outputs"
 6920
 6921		// PersistentVolumeClaims tracks all PVCs that were created as
 6922		// part of the io.argoproj.workflow.v1alpha1. The contents of
 6923		// this list are drained at the end of the workflow.
 6924		"persistentVolumeClaims"?: [...#."io.k8s.api.core.v1.Volume"]
 6925
 6926		// Phase a simple, high-level summary of where the workflow is in
 6927		// its lifecycle. Will be "" (Unknown), "Pending", or "Running"
 6928		// before the workflow is completed, and "Succeeded", "Failed" or
 6929		// "Error" once the workflow has completed.
 6930		"phase"?: string
 6931
 6932		// Progress to completion
 6933		"progress"?: string
 6934
 6935		// ResourcesDuration is the total for the workflow
 6936		"resourcesDuration"?: {
 6937			[string]: int
 6938		}
 6939
 6940		// Time at which this workflow started
 6941		"startedAt"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
 6942
 6943		// StoredTemplates is a mapping between a template ref and the
 6944		// node's status.
 6945		"storedTemplates"?: {
 6946			[string]: #."io.argoproj.workflow.v1alpha1.Template"
 6947		}
 6948
 6949		// StoredWorkflowSpec stores the WorkflowTemplate spec for future
 6950		// execution.
 6951		"storedWorkflowTemplateSpec"?: #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
 6952
 6953		// Synchronization stores the status of synchronization locks
 6954		"synchronization"?: #."io.argoproj.workflow.v1alpha1.SynchronizationStatus"
 6955
 6956		// TaskResultsCompletionStatus tracks task result completion
 6957		// status (mapped by node ID). Used to prevent premature
 6958		// archiving and garbage collection.
 6959		"taskResultsCompletionStatus"?: {
 6960			[string]: bool
 6961		}
 6962	}
 6963
 6964	// WorkflowStep is a reference to a template to execute in a
 6965	// series of step Note: CEL validation cannot check withItems
 6966	// (Schemaless) or inline (PreserveUnknownFields) fields.
 6967	#: "io.argoproj.workflow.v1alpha1.WorkflowStep": {
 6968		// Arguments hold arguments to the template
 6969		"arguments"?: #."io.argoproj.workflow.v1alpha1.Arguments"
 6970
 6971		// ContinueOn makes argo to proceed with the following step even
 6972		// if this step fails. Errors and Failed states can be specified
 6973		"continueOn"?: #."io.argoproj.workflow.v1alpha1.ContinueOn"
 6974
 6975		// Hooks holds the lifecycle hook which is invoked at lifecycle of
 6976		// step, irrespective of the success, failure, or error status of
 6977		// the primary step
 6978		"hooks"?: {
 6979			[string]: #."io.argoproj.workflow.v1alpha1.LifecycleHook"
 6980		}
 6981
 6982		// Inline is the template. Template must be empty if this is
 6983		// declared (and vice-versa). Note: This struct is defined
 6984		// recursively, since the inline template can potentially contain
 6985		// steps/DAGs that also has an "inline" field. Kubernetes doesn't
 6986		// allow recursive types, so we need
 6987		// "x-kubernetes-preserve-unknown-fields: true" in the validation
 6988		// schema.
 6989		"inline"?: #."io.argoproj.workflow.v1alpha1.Template"
 6990
 6991		// Name of the step
 6992		"name"?: string
 6993
 6994		// OnExit is a template reference which is invoked at the end of
 6995		// the template, irrespective of the success, failure, or error
 6996		// of the primary template. DEPRECATED: Use Hooks[exit].Template
 6997		// instead.
 6998		"onExit"?: string
 6999
 7000		// Template is the name of the template to execute as the step
 7001		"template"?: string
 7002
 7003		// TemplateRef is the reference to the template resource to
 7004		// execute as the step.
 7005		"templateRef"?: #."io.argoproj.workflow.v1alpha1.TemplateRef"
 7006
 7007		// When is an expression in which the step should conditionally
 7008		// execute
 7009		"when"?: string
 7010
 7011		// WithItems expands a step into multiple parallel steps from the
 7012		// items in the list Note: The structure of WithItems is
 7013		// free-form, so we need "x-kubernetes-preserve-unknown-fields:
 7014		// true" in the validation schema.
 7015		"withItems"?: [...#."io.argoproj.workflow.v1alpha1.Item"]
 7016
 7017		// WithParam expands a step into multiple parallel steps from the
 7018		// value in the parameter, which is expected to be a JSON list.
 7019		"withParam"?: string
 7020
 7021		// WithSequence expands a step into a numeric sequence
 7022		"withSequence"?: #."io.argoproj.workflow.v1alpha1.Sequence"
 7023	}
 7024
 7025	#: "io.argoproj.workflow.v1alpha1.WorkflowStopRequest": {
 7026		"message"?:           string
 7027		"name"?:              string
 7028		"namespace"?:         string
 7029		"nodeFieldSelector"?: string
 7030	}
 7031
 7032	#: "io.argoproj.workflow.v1alpha1.WorkflowSubmitRequest": {
 7033		"namespace"?:     string
 7034		"resourceKind"?:  string
 7035		"resourceName"?:  string
 7036		"submitOptions"?: #."io.argoproj.workflow.v1alpha1.SubmitOpts"
 7037	}
 7038
 7039	#: "io.argoproj.workflow.v1alpha1.WorkflowSuspendRequest": {
 7040		"name"?:      string
 7041		"namespace"?: string
 7042	}
 7043
 7044	// WorkflowTemplate is the definition of a workflow template
 7045	// resource
 7046	#: "io.argoproj.workflow.v1alpha1.WorkflowTemplate": {
 7047		// APIVersion defines the versioned schema of this representation
 7048		// of an object. Servers should convert recognized schemas to the
 7049		// latest internal value, and may reject unrecognized values.
 7050		// More info:
 7051		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
 7052		"apiVersion"?: "argoproj.io/v1alpha1"
 7053
 7054		// Kind is a string value representing the REST resource this
 7055		// object represents. Servers may infer this from the endpoint
 7056		// the client submits requests to. Cannot be updated. In
 7057		// CamelCase. More info:
 7058		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 7059		"kind"?:     "WorkflowTemplate"
 7060		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
 7061		"spec"!:     #."io.argoproj.workflow.v1alpha1.WorkflowSpec"
 7062	}
 7063
 7064	#: "io.argoproj.workflow.v1alpha1.WorkflowTemplateCreateRequest": {
 7065		"createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
 7066		"namespace"?:     string
 7067		"template"?:      #."io.argoproj.workflow.v1alpha1.WorkflowTemplate"
 7068	}
 7069
 7070	#: "io.argoproj.workflow.v1alpha1.WorkflowTemplateDeleteResponse": {}
 7071
 7072	#: "io.argoproj.workflow.v1alpha1.WorkflowTemplateLintRequest": {
 7073		"createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
 7074		"namespace"?:     string
 7075		"template"?:      #."io.argoproj.workflow.v1alpha1.WorkflowTemplate"
 7076	}
 7077
 7078	// WorkflowTemplateList is list of WorkflowTemplate resources
 7079	#: "io.argoproj.workflow.v1alpha1.WorkflowTemplateList": {
 7080		// APIVersion defines the versioned schema of this representation
 7081		// of an object. Servers should convert recognized schemas to the
 7082		// latest internal value, and may reject unrecognized values.
 7083		// More info:
 7084		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#resources
 7085		"apiVersion"?: string
 7086		"items"!: [...#."io.argoproj.workflow.v1alpha1.WorkflowTemplate"]
 7087
 7088		// Kind is a string value representing the REST resource this
 7089		// object represents. Servers may infer this from the endpoint
 7090		// the client submits requests to. Cannot be updated. In
 7091		// CamelCase. More info:
 7092		// https://git.io.k8s.community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 7093		"kind"?:     string
 7094		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
 7095	}
 7096
 7097	// WorkflowTemplateRef is a reference to a WorkflowTemplate
 7098	// resource.
 7099	#: "io.argoproj.workflow.v1alpha1.WorkflowTemplateRef": {
 7100		// ClusterScope indicates the referred template is cluster scoped
 7101		// (i.e. a ClusterWorkflowTemplate).
 7102		"clusterScope"?: bool
 7103
 7104		// Name is the resource name of the workflow template.
 7105		"name"?: string
 7106	}
 7107
 7108	#: "io.argoproj.workflow.v1alpha1.WorkflowTemplateUpdateRequest": {
 7109		// DEPRECATED: This field is ignored.
 7110		"name"?:      string
 7111		"namespace"?: string
 7112		"template"?:  #."io.argoproj.workflow.v1alpha1.WorkflowTemplate"
 7113	}
 7114
 7115	#: "io.argoproj.workflow.v1alpha1.WorkflowTerminateRequest": {
 7116		"name"?:      string
 7117		"namespace"?: string
 7118	}
 7119
 7120	#: "io.argoproj.workflow.v1alpha1.WorkflowWatchEvent": {
 7121		// the workflow
 7122		"object"?: #."io.argoproj.workflow.v1alpha1.Workflow"
 7123
 7124		// the type of change
 7125		"type"?: string
 7126	}
 7127
 7128	// ZipStrategy will unzip zipped input artifacts
 7129	#: "io.argoproj.workflow.v1alpha1.ZipStrategy": {}
 7130
 7131	// Represents a Persistent Disk resource in AWS.
 7132	//
 7133	// An AWS EBS disk must exist before mounting to a container. The
 7134	// disk must also be in the same AWS zone as the kubelet. An AWS
 7135	// EBS disk can only be mounted as read/write once. AWS EBS
 7136	// volumes support ownership management and SELinux relabeling.
 7137	#: "io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource": {
 7138		// fsType is the filesystem type of the volume that you want to
 7139		// mount. Tip: Ensure that the filesystem type is supported by
 7140		// the host operating system. Examples: "ext4", "xfs", "ntfs".
 7141		// Implicitly inferred to be "ext4" if unspecified. More info:
 7142		// https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
 7143		"fsType"?: string
 7144
 7145		// partition is the partition in the volume that you want to
 7146		// mount. If omitted, the default is to mount by volume name.
 7147		// Examples: For volume /dev/sda1, you specify the partition as
 7148		// "1". Similarly, the volume partition for /dev/sda is "0" (or
 7149		// you can leave the property empty).
 7150		"partition"?: int
 7151
 7152		// readOnly value true will force the readOnly setting in
 7153		// VolumeMounts. More info:
 7154		// https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
 7155		"readOnly"?: bool
 7156
 7157		// volumeID is unique ID of the persistent disk resource in AWS
 7158		// (Amazon EBS volume). More info:
 7159		// https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
 7160		"volumeID"!: string
 7161	}
 7162
 7163	// Affinity is a group of affinity scheduling rules.
 7164	#: "io.k8s.api.core.v1.Affinity": {
 7165		// Describes node affinity scheduling rules for the pod.
 7166		"nodeAffinity"?: #."io.k8s.api.core.v1.NodeAffinity"
 7167
 7168		// Describes pod affinity scheduling rules (e.g. co-locate this
 7169		// pod in the same node, zone, etc. as some other pod(s)).
 7170		"podAffinity"?: #."io.k8s.api.core.v1.PodAffinity"
 7171
 7172		// Describes pod anti-affinity scheduling rules (e.g. avoid
 7173		// putting this pod in the same node, zone, etc. as some other
 7174		// pod(s)).
 7175		"podAntiAffinity"?: #."io.k8s.api.core.v1.PodAntiAffinity"
 7176	}
 7177
 7178	// AppArmorProfile defines a pod or container's AppArmor settings.
 7179	#: "io.k8s.api.core.v1.AppArmorProfile": {
 7180		// localhostProfile indicates a profile loaded on the node that
 7181		// should be used. The profile must be preconfigured on the node
 7182		// to work. Must match the loaded name of the profile. Must be
 7183		// set if and only if type is "Localhost".
 7184		"localhostProfile"?: string
 7185
 7186		// type indicates which kind of AppArmor profile will be applied.
 7187		// Valid options are:
 7188		// Localhost - a profile pre-loaded on the node.
 7189		// RuntimeDefault - the container runtime's default profile.
 7190		// Unconfined - no AppArmor enforcement.
 7191		"type"!: string
 7192	}
 7193
 7194	// AzureDisk represents an Azure Data Disk mount on the host and
 7195	// bind mount to the pod.
 7196	#: "io.k8s.api.core.v1.AzureDiskVolumeSource": {
 7197		// cachingMode is the Host Caching mode: None, Read Only, Read
 7198		// Write.
 7199		"cachingMode"?: string
 7200
 7201		// diskName is the Name of the data disk in the blob storage
 7202		"diskName"!: string
 7203
 7204		// diskURI is the URI of data disk in the blob storage
 7205		"diskURI"!: string
 7206
 7207		// fsType is Filesystem type to mount. Must be a filesystem type
 7208		// supported by the host operating system. Ex. "ext4", "xfs",
 7209		// "ntfs". Implicitly inferred to be "ext4" if unspecified.
 7210		"fsType"?: string
 7211
 7212		// kind expected values are Shared: multiple blob disks per
 7213		// storage account Dedicated: single blob disk per storage
 7214		// account Managed: azure managed data disk (only in managed
 7215		// availability set). defaults to shared
 7216		"kind"?: string
 7217
 7218		// readOnly Defaults to false (read/write). ReadOnly here will
 7219		// force the ReadOnly setting in VolumeMounts.
 7220		"readOnly"?: bool
 7221	}
 7222
 7223	// AzureFile represents an Azure File Service mount on the host
 7224	// and bind mount to the pod.
 7225	#: "io.k8s.api.core.v1.AzureFileVolumeSource": {
 7226		// readOnly defaults to false (read/write). ReadOnly here will
 7227		// force the ReadOnly setting in VolumeMounts.
 7228		"readOnly"?: bool
 7229
 7230		// secretName is the name of secret that contains Azure Storage
 7231		// Account Name and Key
 7232		"secretName"!: string
 7233
 7234		// shareName is the azure share Name
 7235		"shareName"!: string
 7236	}
 7237
 7238	// Represents a source location of a volume to mount, managed by
 7239	// an external CSI driver
 7240	#: "io.k8s.api.core.v1.CSIVolumeSource": {
 7241		// driver is the name of the CSI driver that handles this volume.
 7242		// Consult with your admin for the correct name as registered in
 7243		// the cluster.
 7244		"driver"!: string
 7245
 7246		// fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided,
 7247		// the empty value is passed to the associated CSI driver which
 7248		// will determine the default filesystem to apply.
 7249		"fsType"?: string
 7250
 7251		// nodePublishSecretRef is a reference to the secret object
 7252		// containing sensitive information to pass to the CSI driver to
 7253		// complete the CSI NodePublishVolume and NodeUnpublishVolume
 7254		// calls. This field is optional, and may be empty if no secret
 7255		// is required. If the secret object contains more than one
 7256		// secret, all secret references are passed.
 7257		"nodePublishSecretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
 7258
 7259		// readOnly specifies a read-only configuration for the volume.
 7260		// Defaults to false (read/write).
 7261		"readOnly"?: bool
 7262
 7263		// volumeAttributes stores driver-specific properties that are
 7264		// passed to the CSI driver. Consult your driver's documentation
 7265		// for supported values.
 7266		"volumeAttributes"?: {
 7267			[string]: string
 7268		}
 7269	}
 7270
 7271	// Adds and removes POSIX capabilities from running containers.
 7272	#: "io.k8s.api.core.v1.Capabilities": {
 7273		// Added capabilities
 7274		"add"?: [...string]
 7275
 7276		// Removed capabilities
 7277		"drop"?: [...string]
 7278	}
 7279
 7280	// Represents a Ceph Filesystem mount that lasts the lifetime of a
 7281	// pod Cephfs volumes do not support ownership management or
 7282	// SELinux relabeling.
 7283	#: "io.k8s.api.core.v1.CephFSVolumeSource": {
 7284		// monitors is Required: Monitors is a collection of Ceph monitors
 7285		// More info:
 7286		// https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
 7287		"monitors"!: [...string]
 7288
 7289		// path is Optional: Used as the mounted root, rather than the
 7290		// full Ceph tree, default is /
 7291		"path"?: string
 7292
 7293		// readOnly is Optional: Defaults to false (read/write). ReadOnly
 7294		// here will force the ReadOnly setting in VolumeMounts. More
 7295		// info:
 7296		// https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
 7297		"readOnly"?: bool
 7298
 7299		// secretFile is Optional: SecretFile is the path to key ring for
 7300		// User, default is /etc/ceph/user.secret More info:
 7301		// https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
 7302		"secretFile"?: string
 7303
 7304		// secretRef is Optional: SecretRef is reference to the
 7305		// authentication secret for User, default is empty. More info:
 7306		// https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
 7307		"secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
 7308
 7309		// user is optional: User is the rados user name, default is admin
 7310		// More info:
 7311		// https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
 7312		"user"?: string
 7313	}
 7314
 7315	// Represents a cinder volume resource in Openstack. A Cinder
 7316	// volume must exist before mounting to a container. The volume
 7317	// must also be in the same region as the kubelet. Cinder volumes
 7318	// support ownership management and SELinux relabeling.
 7319	#: "io.k8s.api.core.v1.CinderVolumeSource": {
 7320		// fsType is the filesystem type to mount. Must be a filesystem
 7321		// type supported by the host operating system. Examples: "ext4",
 7322		// "xfs", "ntfs". Implicitly inferred to be "ext4" if
 7323		// unspecified. More info:
 7324		// https://examples.k8s.io/mysql-cinder-pd/README.md
 7325		"fsType"?: string
 7326
 7327		// readOnly defaults to false (read/write). ReadOnly here will
 7328		// force the ReadOnly setting in VolumeMounts. More info:
 7329		// https://examples.k8s.io/mysql-cinder-pd/README.md
 7330		"readOnly"?: bool
 7331
 7332		// secretRef is optional: points to a secret object containing
 7333		// parameters used to connect to OpenStack.
 7334		"secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
 7335
 7336		// volumeID used to identify the volume in cinder. More info:
 7337		// https://examples.k8s.io/mysql-cinder-pd/README.md
 7338		"volumeID"!: string
 7339	}
 7340
 7341	// ClusterTrustBundleProjection describes how to select a set of
 7342	// ClusterTrustBundle objects and project their contents into the
 7343	// pod filesystem.
 7344	#: "io.k8s.api.core.v1.ClusterTrustBundleProjection": {
 7345		// Select all ClusterTrustBundles that match this label selector.
 7346		// Only has effect if signerName is set. Mutually-exclusive with
 7347		// name. If unset, interpreted as "match nothing". If set but
 7348		// empty, interpreted as "match everything".
 7349		"labelSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
 7350
 7351		// Select a single ClusterTrustBundle by object name.
 7352		// Mutually-exclusive with signerName and labelSelector.
 7353		"name"?: string
 7354
 7355		// If true, don't block pod startup if the referenced
 7356		// ClusterTrustBundle(s) aren't available. If using name, then
 7357		// the named ClusterTrustBundle is allowed not to exist. If using
 7358		// signerName, then the combination of signerName and
 7359		// labelSelector is allowed to match zero ClusterTrustBundles.
 7360		"optional"?: bool
 7361
 7362		// Relative path from the volume root to write the bundle.
 7363		"path"!: string
 7364
 7365		// Select all ClusterTrustBundles that match this signer name.
 7366		// Mutually-exclusive with name. The contents of all selected
 7367		// ClusterTrustBundles will be unified and deduplicated.
 7368		"signerName"?: string
 7369	}
 7370
 7371	// ConfigMapEnvSource selects a ConfigMap to populate the
 7372	// environment variables with.
 7373	//
 7374	// The contents of the target ConfigMap's Data field will
 7375	// represent the key-value pairs as environment variables.
 7376	#: "io.k8s.api.core.v1.ConfigMapEnvSource": {
 7377		// Name of the referent. This field is effectively required, but
 7378		// due to backwards compatibility is allowed to be empty.
 7379		// Instances of this type with an empty value here are almost
 7380		// certainly wrong. More info:
 7381		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
 7382		"name"?: string
 7383
 7384		// Specify whether the ConfigMap must be defined
 7385		"optional"?: bool
 7386	}
 7387
 7388	// Selects a key from a ConfigMap.
 7389	#: "io.k8s.api.core.v1.ConfigMapKeySelector": {
 7390		// The key to select.
 7391		"key"!: string
 7392
 7393		// Name of the referent. This field is effectively required, but
 7394		// due to backwards compatibility is allowed to be empty.
 7395		// Instances of this type with an empty value here are almost
 7396		// certainly wrong. More info:
 7397		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
 7398		"name"?: string
 7399
 7400		// Specify whether the ConfigMap or its key must be defined
 7401		"optional"?: bool
 7402	}
 7403
 7404	// Adapts a ConfigMap into a projected volume.
 7405	//
 7406	// The contents of the target ConfigMap's Data field will be
 7407	// presented in a projected volume as files using the keys in the
 7408	// Data field as the file names, unless the items element is
 7409	// populated with specific mappings of keys to paths. Note that
 7410	// this is identical to a configmap volume source without the
 7411	// default mode.
 7412	#: "io.k8s.api.core.v1.ConfigMapProjection": {
 7413		// items if unspecified, each key-value pair in the Data field of
 7414		// the referenced ConfigMap will be projected into the volume as
 7415		// a file whose name is the key and content is the value. If
 7416		// specified, the listed keys will be projected into the
 7417		// specified paths, and unlisted keys will not be present. If a
 7418		// key is specified which is not present in the ConfigMap, the
 7419		// volume setup will error unless it is marked optional. Paths
 7420		// must be relative and may not contain the '..' path or start
 7421		// with '..'.
 7422		"items"?: [...#."io.k8s.api.core.v1.KeyToPath"]
 7423
 7424		// Name of the referent. This field is effectively required, but
 7425		// due to backwards compatibility is allowed to be empty.
 7426		// Instances of this type with an empty value here are almost
 7427		// certainly wrong. More info:
 7428		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
 7429		"name"?: string
 7430
 7431		// optional specify whether the ConfigMap or its keys must be
 7432		// defined
 7433		"optional"?: bool
 7434	}
 7435
 7436	// Adapts a ConfigMap into a volume.
 7437	//
 7438	// The contents of the target ConfigMap's Data field will be
 7439	// presented in a volume as files using the keys in the Data
 7440	// field as the file names, unless the items element is populated
 7441	// with specific mappings of keys to paths. ConfigMap volumes
 7442	// support ownership management and SELinux relabeling.
 7443	#: "io.k8s.api.core.v1.ConfigMapVolumeSource": {
 7444		// defaultMode is optional: mode bits used to set permissions on
 7445		// created files by default. Must be an octal value between 0000
 7446		// and 0777 or a decimal value between 0 and 511. YAML accepts
 7447		// both octal and decimal values, JSON requires decimal values
 7448		// for mode bits. Defaults to 0644. Directories within the path
 7449		// are not affected by this setting. This might be in conflict
 7450		// with other options that affect the file mode, like fsGroup,
 7451		// and the result can be other mode bits set.
 7452		"defaultMode"?: int
 7453
 7454		// items if unspecified, each key-value pair in the Data field of
 7455		// the referenced ConfigMap will be projected into the volume as
 7456		// a file whose name is the key and content is the value. If
 7457		// specified, the listed keys will be projected into the
 7458		// specified paths, and unlisted keys will not be present. If a
 7459		// key is specified which is not present in the ConfigMap, the
 7460		// volume setup will error unless it is marked optional. Paths
 7461		// must be relative and may not contain the '..' path or start
 7462		// with '..'.
 7463		"items"?: [...#."io.k8s.api.core.v1.KeyToPath"]
 7464
 7465		// Name of the referent. This field is effectively required, but
 7466		// due to backwards compatibility is allowed to be empty.
 7467		// Instances of this type with an empty value here are almost
 7468		// certainly wrong. More info:
 7469		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
 7470		"name"?: string
 7471
 7472		// optional specify whether the ConfigMap or its keys must be
 7473		// defined
 7474		"optional"?: bool
 7475	}
 7476
 7477	// A single application container that you want to run within a
 7478	// pod.
 7479	#: "io.k8s.api.core.v1.Container": {
 7480		// Arguments to the entrypoint. The container image's CMD is used
 7481		// if this is not provided. Variable references $(VAR_NAME) are
 7482		// expanded using the container's environment. If a variable
 7483		// cannot be resolved, the reference in the input string will be
 7484		// unchanged. Double $$ are reduced to a single $, which allows
 7485		// for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
 7486		// produce the string literal "$(VAR_NAME)". Escaped references
 7487		// will never be expanded, regardless of whether the variable
 7488		// exists or not. Cannot be updated. More info:
 7489		// https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
 7490		"args"?: [...string]
 7491
 7492		// Entrypoint array. Not executed within a shell. The container
 7493		// image's ENTRYPOINT is used if this is not provided. Variable
 7494		// references $(VAR_NAME) are expanded using the container's
 7495		// environment. If a variable cannot be resolved, the reference
 7496		// in the input string will be unchanged. Double $$ are reduced
 7497		// to a single $, which allows for escaping the $(VAR_NAME)
 7498		// syntax: i.e. "$$(VAR_NAME)" will produce the string literal
 7499		// "$(VAR_NAME)". Escaped references will never be expanded,
 7500		// regardless of whether the variable exists or not. Cannot be
 7501		// updated. More info:
 7502		// https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
 7503		"command"?: [...string]
 7504
 7505		// List of environment variables to set in the container. Cannot
 7506		// be updated.
 7507		"env"?: [...#."io.k8s.api.core.v1.EnvVar"]
 7508
 7509		// List of sources to populate environment variables in the
 7510		// container. The keys defined within a source must be a
 7511		// C_IDENTIFIER. All invalid keys will be reported as an event
 7512		// when the container is starting. When a key exists in multiple
 7513		// sources, the value associated with the last source will take
 7514		// precedence. Values defined by an Env with a duplicate key will
 7515		// take precedence. Cannot be updated.
 7516		"envFrom"?: [...#."io.k8s.api.core.v1.EnvFromSource"]
 7517
 7518		// Container image name. More info:
 7519		// https://kubernetes.io/docs/concepts/containers/images This
 7520		// field is optional to allow higher level config management to
 7521		// default or override container images in workload controllers
 7522		// like Deployments and StatefulSets.
 7523		"image"!: string
 7524
 7525		// Image pull policy. One of Always, Never, IfNotPresent. Defaults
 7526		// to Always if :latest tag is specified, or IfNotPresent
 7527		// otherwise. Cannot be updated. More info:
 7528		// https://kubernetes.io/docs/concepts/containers/images#updating-images
 7529		"imagePullPolicy"?: string
 7530
 7531		// Actions that the management system should take in response to
 7532		// container lifecycle events. Cannot be updated.
 7533		"lifecycle"?: #."io.k8s.api.core.v1.Lifecycle"
 7534
 7535		// Periodic probe of container liveness. Container will be
 7536		// restarted if the probe fails. Cannot be updated. More info:
 7537		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
 7538		"livenessProbe"?: #."io.k8s.api.core.v1.Probe"
 7539
 7540		// Name of the container specified as a DNS_LABEL. Each container
 7541		// in a pod must have a unique name (DNS_LABEL). Cannot be
 7542		// updated.
 7543		"name"?: string
 7544
 7545		// List of ports to expose from the container. Not specifying a
 7546		// port here DOES NOT prevent that port from being exposed. Any
 7547		// port which is listening on the default "0.0.0.0" address
 7548		// inside a container will be accessible from the network.
 7549		// Modifying this array with strategic merge patch may corrupt
 7550		// the data. For more information See
 7551		// https://github.com/kubernetes/kubernetes/issues/108255. Cannot
 7552		// be updated.
 7553		"ports"?: [...#."io.k8s.api.core.v1.ContainerPort"]
 7554
 7555		// Periodic probe of container service readiness. Container will
 7556		// be removed from service endpoints if the probe fails. Cannot
 7557		// be updated. More info:
 7558		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
 7559		"readinessProbe"?: #."io.k8s.api.core.v1.Probe"
 7560
 7561		// Resources resize policy for the container.
 7562		"resizePolicy"?: [...#."io.k8s.api.core.v1.ContainerResizePolicy"]
 7563
 7564		// Compute Resources required by this container. Cannot be
 7565		// updated. More info:
 7566		// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
 7567		"resources"?: #."io.k8s.api.core.v1.ResourceRequirements"
 7568
 7569		// RestartPolicy defines the restart behavior of individual
 7570		// containers in a pod. This field may only be set for init
 7571		// containers, and the only allowed value is "Always". For
 7572		// non-init containers or when this field is not specified, the
 7573		// restart behavior is defined by the Pod's restart policy and
 7574		// the container type. Setting the RestartPolicy as "Always" for
 7575		// the init container will have the following effect: this init
 7576		// container will be continually restarted on exit until all
 7577		// regular containers have terminated. Once all regular
 7578		// containers have completed, all init containers with
 7579		// restartPolicy "Always" will be shut down. This lifecycle
 7580		// differs from normal init containers and is often referred to
 7581		// as a "sidecar" container. Although this init container still
 7582		// starts in the init container sequence, it does not wait for
 7583		// the container to complete before proceeding to the next init
 7584		// container. Instead, the next init container starts immediately
 7585		// after this init container is started, or after any
 7586		// startupProbe has successfully completed.
 7587		"restartPolicy"?: string
 7588
 7589		// SecurityContext defines the security options the container
 7590		// should be run with. If set, the fields of SecurityContext
 7591		// override the equivalent fields of PodSecurityContext. More
 7592		// info:
 7593		// https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
 7594		"securityContext"?: #."io.k8s.api.core.v1.SecurityContext"
 7595
 7596		// StartupProbe indicates that the Pod has successfully
 7597		// initialized. If specified, no other probes are executed until
 7598		// this completes successfully. If this probe fails, the Pod will
 7599		// be restarted, just as if the livenessProbe failed. This can be
 7600		// used to provide different probe parameters at the beginning of
 7601		// a Pod's lifecycle, when it might take a long time to load data
 7602		// or warm a cache, than during steady-state operation. This
 7603		// cannot be updated. More info:
 7604		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
 7605		"startupProbe"?: #."io.k8s.api.core.v1.Probe"
 7606
 7607		// Whether this container should allocate a buffer for stdin in
 7608		// the container runtime. If this is not set, reads from stdin in
 7609		// the container will always result in EOF. Default is false.
 7610		"stdin"?: bool
 7611
 7612		// Whether the container runtime should close the stdin channel
 7613		// after it has been opened by a single attach. When stdin is
 7614		// true the stdin stream will remain open across multiple attach
 7615		// sessions. If stdinOnce is set to true, stdin is opened on
 7616		// container start, is empty until the first client attaches to
 7617		// stdin, and then remains open and accepts data until the client
 7618		// disconnects, at which time stdin is closed and remains closed
 7619		// until the container is restarted. If this flag is false, a
 7620		// container processes that reads from stdin will never receive
 7621		// an EOF. Default is false
 7622		"stdinOnce"?: bool
 7623
 7624		// Optional: Path at which the file to which the container's
 7625		// termination message will be written is mounted into the
 7626		// container's filesystem. Message written is intended to be
 7627		// brief final status, such as an assertion failure message. Will
 7628		// be truncated by the node if greater than 4096 bytes. The total
 7629		// message length across all containers will be limited to 12kb.
 7630		// Defaults to /dev/termination-log. Cannot be updated.
 7631		"terminationMessagePath"?: string
 7632
 7633		// Indicate how the termination message should be populated. File
 7634		// will use the contents of terminationMessagePath to populate
 7635		// the container status message on both success and failure.
 7636		// FallbackToLogsOnError will use the last chunk of container log
 7637		// output if the termination message file is empty and the
 7638		// container exited with an error. The log output is limited to
 7639		// 2048 bytes or 80 lines, whichever is smaller. Defaults to
 7640		// File. Cannot be updated.
 7641		"terminationMessagePolicy"?: string
 7642
 7643		// Whether this container should allocate a TTY for itself, also
 7644		// requires 'stdin' to be true. Default is false.
 7645		"tty"?: bool
 7646
 7647		// volumeDevices is the list of block devices to be used by the
 7648		// container.
 7649		"volumeDevices"?: [...#."io.k8s.api.core.v1.VolumeDevice"]
 7650
 7651		// Pod volumes to mount into the container's filesystem. Cannot be
 7652		// updated.
 7653		"volumeMounts"?: [...#."io.k8s.api.core.v1.VolumeMount"]
 7654
 7655		// Container's working directory. If not specified, the container
 7656		// runtime's default will be used, which might be configured in
 7657		// the container image. Cannot be updated.
 7658		"workingDir"?: string
 7659	}
 7660
 7661	// ContainerPort represents a network port in a single container.
 7662	#: "io.k8s.api.core.v1.ContainerPort": {
 7663		// Number of port to expose on the pod's IP address. This must be
 7664		// a valid port number, 0 < x < 65536.
 7665		"containerPort"!: int
 7666
 7667		// What host IP to bind the external port to.
 7668		"hostIP"?: string
 7669
 7670		// Number of port to expose on the host. If specified, this must
 7671		// be a valid port number, 0 < x < 65536. If HostNetwork is
 7672		// specified, this must match ContainerPort. Most containers do
 7673		// not need this.
 7674		"hostPort"?: int
 7675
 7676		// If specified, this must be an IANA_SVC_NAME and unique within
 7677		// the pod. Each named port in a pod must have a unique name.
 7678		// Name for the port that can be referred to by services.
 7679		"name"?: string
 7680
 7681		// Protocol for port. Must be UDP, TCP, or SCTP. Defaults to
 7682		// "TCP".
 7683		"protocol"?: string
 7684	}
 7685
 7686	// ContainerResizePolicy represents resource resize policy for the
 7687	// container.
 7688	#: "io.k8s.api.core.v1.ContainerResizePolicy": {
 7689		// Name of the resource to which this resource resize policy
 7690		// applies. Supported values: cpu, memory.
 7691		"resourceName"!: string
 7692
 7693		// Restart policy to apply when specified resource is resized. If
 7694		// not specified, it defaults to NotRequired.
 7695		"restartPolicy"!: string
 7696	}
 7697
 7698	// Represents downward API info for projecting into a projected
 7699	// volume. Note that this is identical to a downwardAPI volume
 7700	// source without the default mode.
 7701	#: "io.k8s.api.core.v1.DownwardAPIProjection": {
 7702		// Items is a list of DownwardAPIVolume file
 7703		"items"?: [...#."io.k8s.api.core.v1.DownwardAPIVolumeFile"]
 7704	}
 7705
 7706	// DownwardAPIVolumeFile represents information to create the file
 7707	// containing the pod field
 7708	#: "io.k8s.api.core.v1.DownwardAPIVolumeFile": {
 7709		// Required: Selects a field of the pod: only annotations, labels,
 7710		// name, namespace and uid are supported.
 7711		"fieldRef"?: #."io.k8s.api.core.v1.ObjectFieldSelector"
 7712
 7713		// Optional: mode bits used to set permissions on this file, must
 7714		// be an octal value between 0000 and 0777 or a decimal value
 7715		// between 0 and 511. YAML accepts both octal and decimal values,
 7716		// JSON requires decimal values for mode bits. If not specified,
 7717		// the volume defaultMode will be used. This might be in conflict
 7718		// with other options that affect the file mode, like fsGroup,
 7719		// and the result can be other mode bits set.
 7720		"mode"?: int
 7721
 7722		// Required: Path is the relative path name of the file to be
 7723		// created. Must not be absolute or contain the '..' path. Must
 7724		// be utf-8 encoded. The first item of the relative path must not
 7725		// start with '..'
 7726		"path"!: string
 7727
 7728		// Selects a resource of the container: only resources limits and
 7729		// requests (limits.cpu, limits.memory, requests.cpu and
 7730		// requests.memory) are currently supported.
 7731		"resourceFieldRef"?: #."io.k8s.api.core.v1.ResourceFieldSelector"
 7732	}
 7733
 7734	// DownwardAPIVolumeSource represents a volume containing downward
 7735	// API info. Downward API volumes support ownership management
 7736	// and SELinux relabeling.
 7737	#: "io.k8s.api.core.v1.DownwardAPIVolumeSource": {
 7738		// Optional: mode bits to use on created files by default. Must be
 7739		// a Optional: mode bits used to set permissions on created files
 7740		// by default. Must be an octal value between 0000 and 0777 or a
 7741		// decimal value between 0 and 511. YAML accepts both octal and
 7742		// decimal values, JSON requires decimal values for mode bits.
 7743		// Defaults to 0644. Directories within the path are not affected
 7744		// by this setting. This might be in conflict with other options
 7745		// that affect the file mode, like fsGroup, and the result can be
 7746		// other mode bits set.
 7747		"defaultMode"?: int
 7748
 7749		// Items is a list of downward API volume file
 7750		"items"?: [...#."io.k8s.api.core.v1.DownwardAPIVolumeFile"]
 7751	}
 7752
 7753	// Represents an empty directory for a pod. Empty directory
 7754	// volumes support ownership management and SELinux relabeling.
 7755	#: "io.k8s.api.core.v1.EmptyDirVolumeSource": {
 7756		// medium represents what type of storage medium should back this
 7757		// directory. The default is "" which means to use the node's
 7758		// default medium. Must be an empty string (default) or Memory.
 7759		// More info:
 7760		// https://kubernetes.io/docs/concepts/storage/volumes#emptydir
 7761		"medium"?: string
 7762
 7763		// sizeLimit is the total amount of local storage required for
 7764		// this EmptyDir volume. The size limit is also applicable for
 7765		// memory medium. The maximum usage on memory medium EmptyDir
 7766		// would be the minimum value between the SizeLimit specified
 7767		// here and the sum of memory limits of all containers in a pod.
 7768		// The default is nil which means that the limit is undefined.
 7769		// More info:
 7770		// https://kubernetes.io/docs/concepts/storage/volumes#emptydir
 7771		"sizeLimit"?: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
 7772	}
 7773
 7774	// EnvFromSource represents the source of a set of ConfigMaps or
 7775	// Secrets
 7776	#: "io.k8s.api.core.v1.EnvFromSource": {
 7777		// The ConfigMap to select from
 7778		"configMapRef"?: #."io.k8s.api.core.v1.ConfigMapEnvSource"
 7779
 7780		// Optional text to prepend to the name of each environment
 7781		// variable. Must be a C_IDENTIFIER.
 7782		"prefix"?: string
 7783
 7784		// The Secret to select from
 7785		"secretRef"?: #."io.k8s.api.core.v1.SecretEnvSource"
 7786	}
 7787
 7788	// EnvVar represents an environment variable present in a
 7789	// Container.
 7790	#: "io.k8s.api.core.v1.EnvVar": {
 7791		// Name of the environment variable. Must be a C_IDENTIFIER.
 7792		"name"!: string
 7793
 7794		// Variable references $(VAR_NAME) are expanded using the
 7795		// previously defined environment variables in the container and
 7796		// any service environment variables. If a variable cannot be
 7797		// resolved, the reference in the input string will be unchanged.
 7798		// Double $$ are reduced to a single $, which allows for escaping
 7799		// the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
 7800		// string literal "$(VAR_NAME)". Escaped references will never be
 7801		// expanded, regardless of whether the variable exists or not.
 7802		// Defaults to "".
 7803		"value"?: string
 7804
 7805		// Source for the environment variable's value. Cannot be used if
 7806		// value is not empty.
 7807		"valueFrom"?: #."io.k8s.api.core.v1.EnvVarSource"
 7808	}
 7809
 7810	// EnvVarSource represents a source for the value of an EnvVar.
 7811	#: "io.k8s.api.core.v1.EnvVarSource": {
 7812		// Selects a key of a ConfigMap.
 7813		"configMapKeyRef"?: #."io.k8s.api.core.v1.ConfigMapKeySelector"
 7814
 7815		// Selects a field of the pod: supports metadata.name,
 7816		// metadata.namespace, `metadata.labels['<KEY>']`,
 7817		// `metadata.annotations['<KEY>']`, spec.nodeName,
 7818		// spec.serviceAccountName, status.hostIP, status.podIP,
 7819		// status.podIPs.
 7820		"fieldRef"?: #."io.k8s.api.core.v1.ObjectFieldSelector"
 7821
 7822		// Selects a resource of the container: only resources limits and
 7823		// requests (limits.cpu, limits.memory, limits.ephemeral-storage,
 7824		// requests.cpu, requests.memory and requests.ephemeral-storage)
 7825		// are currently supported.
 7826		"resourceFieldRef"?: #."io.k8s.api.core.v1.ResourceFieldSelector"
 7827
 7828		// Selects a key of a secret in the pod's namespace
 7829		"secretKeyRef"?: #."io.k8s.api.core.v1.SecretKeySelector"
 7830	}
 7831
 7832	// Represents an ephemeral volume that is handled by a normal
 7833	// storage driver.
 7834	#: "io.k8s.api.core.v1.EphemeralVolumeSource": {
 7835		// Will be used to create a stand-alone PVC to provision the
 7836		// volume. The pod in which this EphemeralVolumeSource is
 7837		// embedded will be the owner of the PVC, i.e. the PVC will be
 7838		// deleted together with the pod. The name of the PVC will be
 7839		// `<pod name>-<volume name>` where `<volume name>` is the name
 7840		// from the `PodSpec.Volumes` array entry. Pod validation will
 7841		// reject the pod if the concatenated name is not valid for a PVC
 7842		// (for example, too long).
 7843		//
 7844		// An existing PVC with that name that is not owned by the pod
 7845		// will *not* be used for the pod to avoid using an unrelated
 7846		// volume by mistake. Starting the pod is then blocked until the
 7847		// unrelated PVC is removed. If such a pre-created PVC is meant
 7848		// to be used by the pod, the PVC has to updated with an owner
 7849		// reference to the pod once the pod exists. Normally this should
 7850		// not be necessary, but it may be useful when manually
 7851		// reconstructing a broken cluster.
 7852		//
 7853		// This field is read-only and no changes will be made by
 7854		// Kubernetes to the PVC after it has been created.
 7855		//
 7856		// Required, must not be nil.
 7857		"volumeClaimTemplate"?: #."io.k8s.api.core.v1.PersistentVolumeClaimTemplate"
 7858	}
 7859
 7860	// Event is a report of an event somewhere in the cluster. Events
 7861	// have a limited retention time and triggers and messages may
 7862	// evolve with time. Event consumers should not rely on the
 7863	// timing of an event with a given Reason reflecting a consistent
 7864	// underlying trigger, or the continued existence of events with
 7865	// that Reason. Events should be treated as informative,
 7866	// best-effort, supplemental data.
 7867	#: "io.k8s.api.core.v1.Event": {
 7868		// What action was taken/failed regarding to the Regarding object.
 7869		"action"?: string
 7870
 7871		// APIVersion defines the versioned schema of this representation
 7872		// of an object. Servers should convert recognized schemas to the
 7873		// latest internal value, and may reject unrecognized values.
 7874		// More info:
 7875		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
 7876		"apiVersion"?: string
 7877
 7878		// The number of times this event has occurred.
 7879		"count"?: int
 7880
 7881		// Time when this Event was first observed.
 7882		"eventTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime"
 7883
 7884		// The time at which the event was first recorded. (Time of server
 7885		// receipt is in TypeMeta.)
 7886		"firstTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
 7887
 7888		// The object that this event is about.
 7889		"involvedObject"!: #."io.k8s.api.core.v1.ObjectReference"
 7890
 7891		// Kind is a string value representing the REST resource this
 7892		// object represents. Servers may infer this from the endpoint
 7893		// the client submits requests to. Cannot be updated. In
 7894		// CamelCase. More info:
 7895		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 7896		"kind"?: string
 7897
 7898		// The time at which the most recent occurrence of this event was
 7899		// recorded.
 7900		"lastTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
 7901
 7902		// A human-readable description of the status of this operation.
 7903		"message"?: string
 7904
 7905		// Standard object's metadata. More info:
 7906		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 7907		"metadata"!: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
 7908
 7909		// This should be a short, machine understandable string that
 7910		// gives the reason for the transition into the object's current
 7911		// status.
 7912		"reason"?: string
 7913
 7914		// Optional secondary object for more complex actions.
 7915		"related"?: #."io.k8s.api.core.v1.ObjectReference"
 7916
 7917		// Name of the controller that emitted this Event, e.g.
 7918		// `kubernetes.io/kubelet`.
 7919		"reportingComponent"?: string
 7920
 7921		// ID of the controller instance, e.g. `kubelet-xyzf`.
 7922		"reportingInstance"?: string
 7923
 7924		// Data about the Event series this event represents or nil if
 7925		// it's a singleton Event.
 7926		"series"?: #."io.k8s.api.core.v1.EventSeries"
 7927
 7928		// The component reporting this event. Should be a short machine
 7929		// understandable string.
 7930		"source"?: #."io.k8s.api.core.v1.EventSource"
 7931
 7932		// Type of this event (Normal, Warning), new types could be added
 7933		// in the future
 7934		"type"?: string
 7935	}
 7936
 7937	// EventSeries contain information on series of events, i.e. thing
 7938	// that was/is happening continuously for some time.
 7939	#: "io.k8s.api.core.v1.EventSeries": {
 7940		// Number of occurrences in this series up to the last heartbeat
 7941		// time
 7942		"count"?: int
 7943
 7944		// Time of the last occurrence observed
 7945		"lastObservedTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime"
 7946	}
 7947
 7948	// EventSource contains information for an event.
 7949	#: "io.k8s.api.core.v1.EventSource": {
 7950		// Component from which the event is generated.
 7951		"component"?: string
 7952
 7953		// Node name on which the event is generated.
 7954		"host"?: string
 7955	}
 7956
 7957	// ExecAction describes a "run in container" action.
 7958	#: "io.k8s.api.core.v1.ExecAction": {
 7959		// Command is the command line to execute inside the container,
 7960		// the working directory for the command is root ('/') in the
 7961		// container's filesystem. The command is simply exec'd, it is
 7962		// not run inside a shell, so traditional shell instructions
 7963		// ('|', etc) won't work. To use a shell, you need to explicitly
 7964		// call out to that shell. Exit status of 0 is treated as
 7965		// live/healthy and non-zero is unhealthy.
 7966		"command"?: [...string]
 7967	}
 7968
 7969	// Represents a Fibre Channel volume. Fibre Channel volumes can
 7970	// only be mounted as read/write once. Fibre Channel volumes
 7971	// support ownership management and SELinux relabeling.
 7972	#: "io.k8s.api.core.v1.FCVolumeSource": {
 7973		// fsType is the filesystem type to mount. Must be a filesystem
 7974		// type supported by the host operating system. Ex. "ext4",
 7975		// "xfs", "ntfs". Implicitly inferred to be "ext4" if
 7976		// unspecified.
 7977		"fsType"?: string
 7978
 7979		// lun is Optional: FC target lun number
 7980		"lun"?: int
 7981
 7982		// readOnly is Optional: Defaults to false (read/write). ReadOnly
 7983		// here will force the ReadOnly setting in VolumeMounts.
 7984		"readOnly"?: bool
 7985
 7986		// targetWWNs is Optional: FC target worldwide names (WWNs)
 7987		"targetWWNs"?: [...string]
 7988
 7989		// wwids Optional: FC volume world wide identifiers (wwids) Either
 7990		// wwids or combination of targetWWNs and lun must be set, but
 7991		// not both simultaneously.
 7992		"wwids"?: [...string]
 7993	}
 7994
 7995	// FlexVolume represents a generic volume resource that is
 7996	// provisioned/attached using an exec based plugin.
 7997	#: "io.k8s.api.core.v1.FlexVolumeSource": {
 7998		// driver is the name of the driver to use for this volume.
 7999		"driver"!: string
 8000
 8001		// fsType is the filesystem type to mount. Must be a filesystem
 8002		// type supported by the host operating system. Ex. "ext4",
 8003		// "xfs", "ntfs". The default filesystem depends on FlexVolume
 8004		// script.
 8005		"fsType"?: string
 8006
 8007		// options is Optional: this field holds extra command options if
 8008		// any.
 8009		"options"?: {
 8010			[string]: string
 8011		}
 8012
 8013		// readOnly is Optional: defaults to false (read/write). ReadOnly
 8014		// here will force the ReadOnly setting in VolumeMounts.
 8015		"readOnly"?: bool
 8016
 8017		// secretRef is Optional: secretRef is reference to the secret
 8018		// object containing sensitive information to pass to the plugin
 8019		// scripts. This may be empty if no secret object is specified.
 8020		// If the secret object contains more than one secret, all
 8021		// secrets are passed to the plugin scripts.
 8022		"secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
 8023	}
 8024
 8025	// Represents a Flocker volume mounted by the Flocker agent. One
 8026	// and only one of datasetName and datasetUUID should be set.
 8027	// Flocker volumes do not support ownership management or SELinux
 8028	// relabeling.
 8029	#: "io.k8s.api.core.v1.FlockerVolumeSource": {
 8030		// datasetName is Name of the dataset stored as metadata -> name
 8031		// on the dataset for Flocker should be considered as deprecated
 8032		"datasetName"?: string
 8033
 8034		// datasetUUID is the UUID of the dataset. This is unique
 8035		// identifier of a Flocker dataset
 8036		"datasetUUID"?: string
 8037	}
 8038
 8039	// Represents a Persistent Disk resource in Google Compute Engine.
 8040	//
 8041	// A GCE PD must exist before mounting to a container. The disk
 8042	// must also be in the same GCE project and zone as the kubelet.
 8043	// A GCE PD can only be mounted as read/write once or read-only
 8044	// many times. GCE PDs support ownership management and SELinux
 8045	// relabeling.
 8046	#: "io.k8s.api.core.v1.GCEPersistentDiskVolumeSource": {
 8047		// fsType is filesystem type of the volume that you want to mount.
 8048		// Tip: Ensure that the filesystem type is supported by the host
 8049		// operating system. Examples: "ext4", "xfs", "ntfs". Implicitly
 8050		// inferred to be "ext4" if unspecified. More info:
 8051		// https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
 8052		"fsType"?: string
 8053
 8054		// partition is the partition in the volume that you want to
 8055		// mount. If omitted, the default is to mount by volume name.
 8056		// Examples: For volume /dev/sda1, you specify the partition as
 8057		// "1". Similarly, the volume partition for /dev/sda is "0" (or
 8058		// you can leave the property empty). More info:
 8059		// https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
 8060		"partition"?: int
 8061
 8062		// pdName is unique name of the PD resource in GCE. Used to
 8063		// identify the disk in GCE. More info:
 8064		// https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
 8065		"pdName"!: string
 8066
 8067		// readOnly here will force the ReadOnly setting in VolumeMounts.
 8068		// Defaults to false. More info:
 8069		// https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
 8070		"readOnly"?: bool
 8071	}
 8072
 8073	// GRPCAction specifies an action involving a GRPC service.
 8074	#: "io.k8s.api.core.v1.GRPCAction": {
 8075		// Port number of the gRPC service. Number must be in the range 1
 8076		// to 65535.
 8077		"port"!: int
 8078
 8079		// Service is the name of the service to place in the gRPC
 8080		// HealthCheckRequest (see
 8081		// https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
 8082		//
 8083		// If this is not specified, the default behavior is defined by
 8084		// gRPC.
 8085		"service"?: string
 8086	}
 8087
 8088	// Represents a volume that is populated with the contents of a
 8089	// git repository. Git repo volumes do not support ownership
 8090	// management. Git repo volumes support SELinux relabeling.
 8091	//
 8092	// DEPRECATED: GitRepo is deprecated. To provision a container
 8093	// with a git repo, mount an EmptyDir into an InitContainer that
 8094	// clones the repo using git, then mount the EmptyDir into the
 8095	// Pod's container.
 8096	#: "io.k8s.api.core.v1.GitRepoVolumeSource": {
 8097		// directory is the target directory name. Must not contain or
 8098		// start with '..'. If '.' is supplied, the volume directory will
 8099		// be the git repository. Otherwise, if specified, the volume
 8100		// will contain the git repository in the subdirectory with the
 8101		// given name.
 8102		"directory"?: string
 8103
 8104		// repository is the URL
 8105		"repository"!: string
 8106
 8107		// revision is the commit hash for the specified revision.
 8108		"revision"?: string
 8109	}
 8110
 8111	// Represents a Glusterfs mount that lasts the lifetime of a pod.
 8112	// Glusterfs volumes do not support ownership management or
 8113	// SELinux relabeling.
 8114	#: "io.k8s.api.core.v1.GlusterfsVolumeSource": {
 8115		// endpoints is the endpoint name that details Glusterfs topology.
 8116		// More info:
 8117		// https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
 8118		"endpoints"!: string
 8119
 8120		// path is the Glusterfs volume path. More info:
 8121		// https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
 8122		"path"!: string
 8123
 8124		// readOnly here will force the Glusterfs volume to be mounted
 8125		// with read-only permissions. Defaults to false. More info:
 8126		// https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
 8127		"readOnly"?: bool
 8128	}
 8129
 8130	// HTTPGetAction describes an action based on HTTP Get requests.
 8131	#: "io.k8s.api.core.v1.HTTPGetAction": {
 8132		// Host name to connect to, defaults to the pod IP. You probably
 8133		// want to set "Host" in httpHeaders instead.
 8134		"host"?: string
 8135
 8136		// Custom headers to set in the request. HTTP allows repeated
 8137		// headers.
 8138		"httpHeaders"?: [...#."io.k8s.api.core.v1.HTTPHeader"]
 8139
 8140		// Path to access on the HTTP server.
 8141		"path"?: string
 8142
 8143		// Name or number of the port to access on the container. Number
 8144		// must be in the range 1 to 65535. Name must be an
 8145		// IANA_SVC_NAME.
 8146		"port"!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
 8147
 8148		// Scheme to use for connecting to the host. Defaults to HTTP.
 8149		"scheme"?: string
 8150	}
 8151
 8152	// HTTPHeader describes a custom header to be used in HTTP probes
 8153	#: "io.k8s.api.core.v1.HTTPHeader": {
 8154		// The header field name. This will be canonicalized upon output,
 8155		// so case-variant names will be understood as the same header.
 8156		"name"!: string
 8157
 8158		// The header field value
 8159		"value"!: string
 8160	}
 8161
 8162	// HostAlias holds the mapping between IP and hostnames that will
 8163	// be injected as an entry in the pod's hosts file.
 8164	#: "io.k8s.api.core.v1.HostAlias": {
 8165		// Hostnames for the above IP address.
 8166		"hostnames"?: [...string]
 8167
 8168		// IP address of the host file entry.
 8169		"ip"!: string
 8170	}
 8171
 8172	// Represents a host path mapped into a pod. Host path volumes do
 8173	// not support ownership management or SELinux relabeling.
 8174	#: "io.k8s.api.core.v1.HostPathVolumeSource": {
 8175		// path of the directory on the host. If the path is a symlink, it
 8176		// will follow the link to the real path. More info:
 8177		// https://kubernetes.io/docs/concepts/storage/volumes#hostpath
 8178		"path"!: string
 8179
 8180		// type for HostPath Volume Defaults to "" More info:
 8181		// https://kubernetes.io/docs/concepts/storage/volumes#hostpath
 8182		"type"?: string
 8183	}
 8184
 8185	// Represents an ISCSI disk. ISCSI volumes can only be mounted as
 8186	// read/write once. ISCSI volumes support ownership management
 8187	// and SELinux relabeling.
 8188	#: "io.k8s.api.core.v1.ISCSIVolumeSource": {
 8189		// chapAuthDiscovery defines whether support iSCSI Discovery CHAP
 8190		// authentication
 8191		"chapAuthDiscovery"?: bool
 8192
 8193		// chapAuthSession defines whether support iSCSI Session CHAP
 8194		// authentication
 8195		"chapAuthSession"?: bool
 8196
 8197		// fsType is the filesystem type of the volume that you want to
 8198		// mount. Tip: Ensure that the filesystem type is supported by
 8199		// the host operating system. Examples: "ext4", "xfs", "ntfs".
 8200		// Implicitly inferred to be "ext4" if unspecified. More info:
 8201		// https://kubernetes.io/docs/concepts/storage/volumes#iscsi
 8202		"fsType"?: string
 8203
 8204		// initiatorName is the custom iSCSI Initiator Name. If
 8205		// initiatorName is specified with iscsiInterface simultaneously,
 8206		// new iSCSI interface <target portal>:<volume name> will be
 8207		// created for the connection.
 8208		"initiatorName"?: string
 8209
 8210		// iqn is the target iSCSI Qualified Name.
 8211		"iqn"!: string
 8212
 8213		// iscsiInterface is the interface Name that uses an iSCSI
 8214		// transport. Defaults to 'default' (tcp).
 8215		"iscsiInterface"?: string
 8216
 8217		// lun represents iSCSI Target Lun number.
 8218		"lun"!: int
 8219
 8220		// portals is the iSCSI Target Portal List. The portal is either
 8221		// an IP or ip_addr:port if the port is other than default
 8222		// (typically TCP ports 860 and 3260).
 8223		"portals"?: [...string]
 8224
 8225		// readOnly here will force the ReadOnly setting in VolumeMounts.
 8226		// Defaults to false.
 8227		"readOnly"?: bool
 8228
 8229		// secretRef is the CHAP Secret for iSCSI target and initiator
 8230		// authentication
 8231		"secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
 8232
 8233		// targetPortal is iSCSI Target Portal. The Portal is either an IP
 8234		// or ip_addr:port if the port is other than default (typically
 8235		// TCP ports 860 and 3260).
 8236		"targetPortal"!: string
 8237	}
 8238
 8239	// ImageVolumeSource represents a image volume resource.
 8240	#: "io.k8s.api.core.v1.ImageVolumeSource": {
 8241		// Policy for pulling OCI objects. Possible values are: Always:
 8242		// the kubelet always attempts to pull the reference. Container
 8243		// creation will fail If the pull fails. Never: the kubelet never
 8244		// pulls the reference and only uses a local image or artifact.
 8245		// Container creation will fail if the reference isn't present.
 8246		// IfNotPresent: the kubelet pulls if the reference isn't already
 8247		// present on disk. Container creation will fail if the reference
 8248		// isn't present and the pull fails. Defaults to Always if
 8249		// :latest tag is specified, or IfNotPresent otherwise.
 8250		"pullPolicy"?: string
 8251
 8252		// Required: Image or artifact reference to be used. Behaves in
 8253		// the same way as pod.spec.containers[*].image. Pull secrets
 8254		// will be assembled in the same way as for the container image
 8255		// by looking up node credentials, SA image pull secrets, and pod
 8256		// spec image pull secrets. More info:
 8257		// https://kubernetes.io/docs/concepts/containers/images This
 8258		// field is optional to allow higher level config management to
 8259		// default or override container images in workload controllers
 8260		// like Deployments and StatefulSets.
 8261		"reference"?: string
 8262	}
 8263
 8264	// Maps a string key to a path within a volume.
 8265	#: "io.k8s.api.core.v1.KeyToPath": {
 8266		// key is the key to project.
 8267		"key"!: string
 8268
 8269		// mode is Optional: mode bits used to set permissions on this
 8270		// file. Must be an octal value between 0000 and 0777 or a
 8271		// decimal value between 0 and 511. YAML accepts both octal and
 8272		// decimal values, JSON requires decimal values for mode bits. If
 8273		// not specified, the volume defaultMode will be used. This might
 8274		// be in conflict with other options that affect the file mode,
 8275		// like fsGroup, and the result can be other mode bits set.
 8276		"mode"?: int
 8277
 8278		// path is the relative path of the file to map the key to. May
 8279		// not be an absolute path. May not contain the path element
 8280		// '..'. May not start with the string '..'.
 8281		"path"!: string
 8282	}
 8283
 8284	// Lifecycle describes actions that the management system should
 8285	// take in response to container lifecycle events. For the
 8286	// PostStart and PreStop lifecycle handlers, management of the
 8287	// container blocks until the action is complete, unless the
 8288	// container process fails, in which case the handler is aborted.
 8289	#: "io.k8s.api.core.v1.Lifecycle": {
 8290		// PostStart is called immediately after a container is created.
 8291		// If the handler fails, the container is terminated and
 8292		// restarted according to its restart policy. Other management of
 8293		// the container blocks until the hook completes. More info:
 8294		// https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
 8295		"postStart"?: #."io.k8s.api.core.v1.LifecycleHandler"
 8296
 8297		// PreStop is called immediately before a container is terminated
 8298		// due to an API request or management event such as
 8299		// liveness/startup probe failure, preemption, resource
 8300		// contention, etc. The handler is not called if the container
 8301		// crashes or exits. The Pod's termination grace period countdown
 8302		// begins before the PreStop hook is executed. Regardless of the
 8303		// outcome of the handler, the container will eventually
 8304		// terminate within the Pod's termination grace period (unless
 8305		// delayed by finalizers). Other management of the container
 8306		// blocks until the hook completes or until the termination grace
 8307		// period is reached. More info:
 8308		// https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
 8309		"preStop"?: #."io.k8s.api.core.v1.LifecycleHandler"
 8310
 8311		// StopSignal defines which signal will be sent to a container
 8312		// when it is being stopped. If not specified, the default is
 8313		// defined by the container runtime in use. StopSignal can only
 8314		// be set for Pods with a non-empty .spec.os.name
 8315		"stopSignal"?: string
 8316	}
 8317
 8318	// LifecycleHandler defines a specific action that should be taken
 8319	// in a lifecycle hook. One and only one of the fields, except
 8320	// TCPSocket must be specified.
 8321	#: "io.k8s.api.core.v1.LifecycleHandler": {
 8322		// Exec specifies a command to execute in the container.
 8323		"exec"?: #."io.k8s.api.core.v1.ExecAction"
 8324
 8325		// HTTPGet specifies an HTTP GET request to perform.
 8326		"httpGet"?: #."io.k8s.api.core.v1.HTTPGetAction"
 8327
 8328		// Sleep represents a duration that the container should sleep.
 8329		"sleep"?: #."io.k8s.api.core.v1.SleepAction"
 8330
 8331		// Deprecated. TCPSocket is NOT supported as a LifecycleHandler
 8332		// and kept for backward compatibility. There is no validation of
 8333		// this field and lifecycle hooks will fail at runtime when it is
 8334		// specified.
 8335		"tcpSocket"?: #."io.k8s.api.core.v1.TCPSocketAction"
 8336	}
 8337
 8338	// LocalObjectReference contains enough information to let you
 8339	// locate the referenced object inside the same namespace.
 8340	#: "io.k8s.api.core.v1.LocalObjectReference": {
 8341		// Name of the referent. This field is effectively required, but
 8342		// due to backwards compatibility is allowed to be empty.
 8343		// Instances of this type with an empty value here are almost
 8344		// certainly wrong. More info:
 8345		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
 8346		"name"?: string
 8347	}
 8348
 8349	// ModifyVolumeStatus represents the status object of
 8350	// ControllerModifyVolume operation
 8351	#: "io.k8s.api.core.v1.ModifyVolumeStatus": {
 8352		// status is the status of the ControllerModifyVolume operation.
 8353		// It can be in any of following states:
 8354		// - Pending
 8355		// Pending indicates that the PersistentVolumeClaim cannot be
 8356		// modified due to unmet requirements, such as
 8357		// the specified VolumeAttributesClass not existing.
 8358		// - InProgress
 8359		// InProgress indicates that the volume is being modified.
 8360		// - Infeasible
 8361		// Infeasible indicates that the request has been rejected as
 8362		// invalid by the CSI driver. To
 8363		// resolve the error, a valid VolumeAttributesClass needs to be
 8364		// specified.
 8365		// Note: New statuses can be added in the future. Consumers should
 8366		// check for unknown statuses and fail appropriately.
 8367		"status"!: string
 8368
 8369		// targetVolumeAttributesClassName is the name of the
 8370		// VolumeAttributesClass the PVC currently being reconciled
 8371		"targetVolumeAttributesClassName"?: string
 8372	}
 8373
 8374	// Represents an NFS mount that lasts the lifetime of a pod. NFS
 8375	// volumes do not support ownership management or SELinux
 8376	// relabeling.
 8377	#: "io.k8s.api.core.v1.NFSVolumeSource": {
 8378		// path that is exported by the NFS server. More info:
 8379		// https://kubernetes.io/docs/concepts/storage/volumes#nfs
 8380		"path"!: string
 8381
 8382		// readOnly here will force the NFS export to be mounted with
 8383		// read-only permissions. Defaults to false. More info:
 8384		// https://kubernetes.io/docs/concepts/storage/volumes#nfs
 8385		"readOnly"?: bool
 8386
 8387		// server is the hostname or IP address of the NFS server. More
 8388		// info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
 8389		"server"!: string
 8390	}
 8391
 8392	// Node affinity is a group of node affinity scheduling rules.
 8393	#: "io.k8s.api.core.v1.NodeAffinity": {
 8394		// The scheduler will prefer to schedule pods to nodes that
 8395		// satisfy the affinity expressions specified by this field, but
 8396		// it may choose a node that violates one or more of the
 8397		// expressions. The node that is most preferred is the one with
 8398		// the greatest sum of weights, i.e. for each node that meets all
 8399		// of the scheduling requirements (resource request,
 8400		// requiredDuringScheduling affinity expressions, etc.), compute
 8401		// a sum by iterating through the elements of this field and
 8402		// adding "weight" to the sum if the node matches the
 8403		// corresponding matchExpressions; the node(s) with the highest
 8404		// sum are the most preferred.
 8405		"preferredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.PreferredSchedulingTerm"]
 8406
 8407		// If the affinity requirements specified by this field are not
 8408		// met at scheduling time, the pod will not be scheduled onto the
 8409		// node. If the affinity requirements specified by this field
 8410		// cease to be met at some point during pod execution (e.g. due
 8411		// to an update), the system may or may not try to eventually
 8412		// evict the pod from its node.
 8413		"requiredDuringSchedulingIgnoredDuringExecution"?: #."io.k8s.api.core.v1.NodeSelector"
 8414	}
 8415
 8416	// A node selector represents the union of the results of one or
 8417	// more label queries over a set of nodes; that is, it represents
 8418	// the OR of the selectors represented by the node selector
 8419	// terms.
 8420	#: "io.k8s.api.core.v1.NodeSelector": {
 8421		// Required. A list of node selector terms. The terms are ORed.
 8422		"nodeSelectorTerms"!: [...#."io.k8s.api.core.v1.NodeSelectorTerm"]
 8423	}
 8424
 8425	// A node selector requirement is a selector that contains values,
 8426	// a key, and an operator that relates the key and values.
 8427	#: "io.k8s.api.core.v1.NodeSelectorRequirement": {
 8428		// The label key that the selector applies to.
 8429		"key"!: string
 8430
 8431		// Represents a key's relationship to a set of values. Valid
 8432		// operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
 8433		"operator"!: string
 8434
 8435		// An array of string values. If the operator is In or NotIn, the
 8436		// values array must be non-empty. If the operator is Exists or
 8437		// DoesNotExist, the values array must be empty. If the operator
 8438		// is Gt or Lt, the values array must have a single element,
 8439		// which will be interpreted as an integer. This array is
 8440		// replaced during a strategic merge patch.
 8441		"values"?: [...string]
 8442	}
 8443
 8444	// A null or empty node selector term matches no objects. The
 8445	// requirements of them are ANDed. The TopologySelectorTerm type
 8446	// implements a subset of the NodeSelectorTerm.
 8447	#: "io.k8s.api.core.v1.NodeSelectorTerm": {
 8448		// A list of node selector requirements by node's labels.
 8449		"matchExpressions"?: [...#."io.k8s.api.core.v1.NodeSelectorRequirement"]
 8450
 8451		// A list of node selector requirements by node's fields.
 8452		"matchFields"?: [...#."io.k8s.api.core.v1.NodeSelectorRequirement"]
 8453	}
 8454
 8455	// ObjectFieldSelector selects an APIVersioned field of an object.
 8456	#: "io.k8s.api.core.v1.ObjectFieldSelector": {
 8457		// Version of the schema the FieldPath is written in terms of,
 8458		// defaults to "v1".
 8459		"apiVersion"?: string
 8460
 8461		// Path of the field to select in the specified API version.
 8462		"fieldPath"!: string
 8463	}
 8464
 8465	// ObjectReference contains enough information to let you inspect
 8466	// or modify the referred object.
 8467	#: "io.k8s.api.core.v1.ObjectReference": {
 8468		// API version of the referent.
 8469		"apiVersion"?: string
 8470
 8471		// If referring to a piece of an object instead of an entire
 8472		// object, this string should contain a valid JSON/Go field
 8473		// access statement, such as desiredState.manifest.containers[2].
 8474		// For example, if the object reference is to a container within
 8475		// a pod, this would take on a value like:
 8476		// "spec.containers{name}" (where "name" refers to the name of
 8477		// the container that triggered the event) or if no container
 8478		// name is specified "spec.containers[2]" (container with index 2
 8479		// in this pod). This syntax is chosen only to have some
 8480		// well-defined way of referencing a part of an object.
 8481		"fieldPath"?: string
 8482
 8483		// Kind of the referent. More info:
 8484		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 8485		"kind"?: string
 8486
 8487		// Name of the referent. More info:
 8488		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
 8489		"name"?: string
 8490
 8491		// Namespace of the referent. More info:
 8492		// https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
 8493		"namespace"?: string
 8494
 8495		// Specific resourceVersion to which this reference is made, if
 8496		// any. More info:
 8497		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
 8498		"resourceVersion"?: string
 8499
 8500		// UID of the referent. More info:
 8501		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
 8502		"uid"?: string
 8503	}
 8504
 8505	// PersistentVolumeClaim is a user's request for and claim to a
 8506	// persistent volume
 8507	#: "io.k8s.api.core.v1.PersistentVolumeClaim": {
 8508		// APIVersion defines the versioned schema of this representation
 8509		// of an object. Servers should convert recognized schemas to the
 8510		// latest internal value, and may reject unrecognized values.
 8511		// More info:
 8512		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
 8513		"apiVersion"?: string
 8514
 8515		// Kind is a string value representing the REST resource this
 8516		// object represents. Servers may infer this from the endpoint
 8517		// the client submits requests to. Cannot be updated. In
 8518		// CamelCase. More info:
 8519		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 8520		"kind"?: string
 8521
 8522		// Standard object's metadata. More info:
 8523		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 8524		"metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
 8525
 8526		// spec defines the desired characteristics of a volume requested
 8527		// by a pod author. More info:
 8528		// https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
 8529		"spec"?: #."io.k8s.api.core.v1.PersistentVolumeClaimSpec"
 8530
 8531		// status represents the current information/status of a
 8532		// persistent volume claim. Read-only. More info:
 8533		// https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
 8534		"status"?: #."io.k8s.api.core.v1.PersistentVolumeClaimStatus"
 8535	}
 8536
 8537	// PersistentVolumeClaimCondition contains details about state of
 8538	// pvc
 8539	#: "io.k8s.api.core.v1.PersistentVolumeClaimCondition": {
 8540		// lastProbeTime is the time we probed the condition.
 8541		"lastProbeTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
 8542
 8543		// lastTransitionTime is the time the condition transitioned from
 8544		// one status to another.
 8545		"lastTransitionTime"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
 8546
 8547		// message is the human-readable message indicating details about
 8548		// last transition.
 8549		"message"?: string
 8550
 8551		// reason is a unique, this should be a short, machine
 8552		// understandable string that gives the reason for condition's
 8553		// last transition. If it reports "Resizing" that means the
 8554		// underlying persistent volume is being resized.
 8555		"reason"?: string
 8556
 8557		// Status is the status of the condition. Can be True, False,
 8558		// Unknown. More info:
 8559		// https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required
 8560		"status"!: string
 8561
 8562		// Type is the type of the condition. More info:
 8563		// https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about
 8564		"type"!: string
 8565	}
 8566
 8567	// PersistentVolumeClaimSpec describes the common attributes of
 8568	// storage devices and allows a Source for provider-specific
 8569	// attributes
 8570	#: "io.k8s.api.core.v1.PersistentVolumeClaimSpec": {
 8571		// accessModes contains the desired access modes the volume should
 8572		// have. More info:
 8573		// https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
 8574		"accessModes"?: [...string]
 8575
 8576		// dataSource field can be used to specify either: * An existing
 8577		// VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
 8578		// * An existing PVC (PersistentVolumeClaim) If the provisioner
 8579		// or an external controller can support the specified data
 8580		// source, it will create a new volume based on the contents of
 8581		// the specified data source. When the AnyVolumeDataSource
 8582		// feature gate is enabled, dataSource contents will be copied to
 8583		// dataSourceRef, and dataSourceRef contents will be copied to
 8584		// dataSource when dataSourceRef.namespace is not specified. If
 8585		// the namespace is specified, then dataSourceRef will not be
 8586		// copied to dataSource.
 8587		"dataSource"?: #."io.k8s.api.core.v1.TypedLocalObjectReference"
 8588
 8589		// dataSourceRef specifies the object from which to populate the
 8590		// volume with data, if a non-empty volume is desired. This may
 8591		// be any object from a non-empty API group (non core object) or
 8592		// a PersistentVolumeClaim object. When this field is specified,
 8593		// volume binding will only succeed if the type of the specified
 8594		// object matches some installed volume populator or dynamic
 8595		// provisioner. This field will replace the functionality of the
 8596		// dataSource field and as such if both fields are non-empty,
 8597		// they must have the same value. For backwards compatibility,
 8598		// when namespace isn't specified in dataSourceRef, both fields
 8599		// (dataSource and dataSourceRef) will be set to the same value
 8600		// automatically if one of them is empty and the other is
 8601		// non-empty. When namespace is specified in dataSourceRef,
 8602		// dataSource isn't set to the same value and must be empty.
 8603		// There are three important differences between dataSource and
 8604		// dataSourceRef: * While dataSource only allows two specific
 8605		// types of objects, dataSourceRef
 8606		// allows any non-core object, as well as PersistentVolumeClaim
 8607		// objects.
 8608		// * While dataSource ignores disallowed values (dropping them),
 8609		// dataSourceRef
 8610		// preserves all values, and generates an error if a disallowed
 8611		// value is
 8612		// specified.
 8613		// * While dataSource only allows local objects, dataSourceRef
 8614		// allows objects
 8615		// in any namespaces.
 8616		// (Beta) Using this field requires the AnyVolumeDataSource
 8617		// feature gate to be enabled. (Alpha) Using the namespace field
 8618		// of dataSourceRef requires the CrossNamespaceVolumeDataSource
 8619		// feature gate to be enabled.
 8620		"dataSourceRef"?: #."io.k8s.api.core.v1.TypedObjectReference"
 8621
 8622		// resources represents the minimum resources the volume should
 8623		// have. If RecoverVolumeExpansionFailure feature is enabled
 8624		// users are allowed to specify resource requirements that are
 8625		// lower than previous value but must still be higher than
 8626		// capacity recorded in the status field of the claim. More info:
 8627		// https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
 8628		"resources"?: #."io.k8s.api.core.v1.VolumeResourceRequirements"
 8629
 8630		// selector is a label query over volumes to consider for binding.
 8631		"selector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
 8632
 8633		// storageClassName is the name of the StorageClass required by
 8634		// the claim. More info:
 8635		// https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
 8636		"storageClassName"?: string
 8637
 8638		// volumeAttributesClassName may be used to set the
 8639		// VolumeAttributesClass used by this claim. If specified, the
 8640		// CSI driver will create or update the volume with the
 8641		// attributes defined in the corresponding VolumeAttributesClass.
 8642		// This has a different purpose than storageClassName, it can be
 8643		// changed after the claim is created. An empty string value
 8644		// means that no VolumeAttributesClass will be applied to the
 8645		// claim but it's not allowed to reset this field to empty string
 8646		// once it is set. If unspecified and the PersistentVolumeClaim
 8647		// is unbound, the default VolumeAttributesClass will be set by
 8648		// the persistentvolume controller if it exists. If the resource
 8649		// referred to by volumeAttributesClass does not exist, this
 8650		// PersistentVolumeClaim will be set to a Pending state, as
 8651		// reflected by the modifyVolumeStatus field, until such as a
 8652		// resource exists. More info:
 8653		// https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
 8654		// (Beta) Using this field requires the VolumeAttributesClass
 8655		// feature gate to be enabled (off by default).
 8656		"volumeAttributesClassName"?: string
 8657
 8658		// volumeMode defines what type of volume is required by the
 8659		// claim. Value of Filesystem is implied when not included in
 8660		// claim spec.
 8661		"volumeMode"?: string
 8662
 8663		// volumeName is the binding reference to the PersistentVolume
 8664		// backing this claim.
 8665		"volumeName"?: string
 8666	}
 8667
 8668	// PersistentVolumeClaimStatus is the current status of a
 8669	// persistent volume claim.
 8670	#: "io.k8s.api.core.v1.PersistentVolumeClaimStatus": {
 8671		// accessModes contains the actual access modes the volume backing
 8672		// the PVC has. More info:
 8673		// https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
 8674		"accessModes"?: [...string]
 8675
 8676		// allocatedResourceStatuses stores status of resource being
 8677		// resized for the given PVC. Key names follow standard
 8678		// Kubernetes label syntax. Valid values are either:
 8679		// * Un-prefixed keys:
 8680		// - storage - the capacity of the volume.
 8681		// * Custom resources must use implementation-defined prefixed
 8682		// names such as "example.com/my-custom-resource"
 8683		// Apart from above values - keys that are unprefixed or have
 8684		// kubernetes.io prefix are considered reserved and hence may not
 8685		// be used.
 8686		//
 8687		// ClaimResourceStatus can be in any of following states:
 8688		// - ControllerResizeInProgress:
 8689		// State set when resize controller starts resizing the volume in
 8690		// control-plane.
 8691		// - ControllerResizeFailed:
 8692		// State set when resize has failed in resize controller with a
 8693		// terminal error.
 8694		// - NodeResizePending:
 8695		// State set when resize controller has finished resizing the
 8696		// volume but further resizing of
 8697		// volume is needed on the node.
 8698		// - NodeResizeInProgress:
 8699		// State set when kubelet starts resizing the volume.
 8700		// - NodeResizeFailed:
 8701		// State set when resizing has failed in kubelet with a terminal
 8702		// error. Transient errors don't set
 8703		// NodeResizeFailed.
 8704		// For example: if expanding a PVC for more capacity - this field
 8705		// can be one of the following states:
 8706		// - pvc.status.allocatedResourceStatus['storage'] =
 8707		// "ControllerResizeInProgress"
 8708		// - pvc.status.allocatedResourceStatus['storage'] =
 8709		// "ControllerResizeFailed"
 8710		// - pvc.status.allocatedResourceStatus['storage'] =
 8711		// "NodeResizePending"
 8712		// - pvc.status.allocatedResourceStatus['storage'] =
 8713		// "NodeResizeInProgress"
 8714		// - pvc.status.allocatedResourceStatus['storage'] =
 8715		// "NodeResizeFailed"
 8716		// When this field is not set, it means that no resize operation
 8717		// is in progress for the given PVC.
 8718		//
 8719		// A controller that receives PVC update with previously unknown
 8720		// resourceName or ClaimResourceStatus should ignore the update
 8721		// for the purpose it was designed. For example - a controller
 8722		// that only is responsible for resizing capacity of the volume,
 8723		// should ignore PVC updates that change other valid resources
 8724		// associated with PVC.
 8725		//
 8726		// This is an alpha field and requires enabling
 8727		// RecoverVolumeExpansionFailure feature.
 8728		"allocatedResourceStatuses"?: {
 8729			[string]: string
 8730		}
 8731
 8732		// allocatedResources tracks the resources allocated to a PVC
 8733		// including its capacity. Key names follow standard Kubernetes
 8734		// label syntax. Valid values are either:
 8735		// * Un-prefixed keys:
 8736		// - storage - the capacity of the volume.
 8737		// * Custom resources must use implementation-defined prefixed
 8738		// names such as "example.com/my-custom-resource"
 8739		// Apart from above values - keys that are unprefixed or have
 8740		// kubernetes.io prefix are considered reserved and hence may not
 8741		// be used.
 8742		//
 8743		// Capacity reported here may be larger than the actual capacity
 8744		// when a volume expansion operation is requested. For storage
 8745		// quota, the larger value from allocatedResources and
 8746		// PVC.spec.resources is used. If allocatedResources is not set,
 8747		// PVC.spec.resources alone is used for quota calculation. If a
 8748		// volume expansion capacity request is lowered,
 8749		// allocatedResources is only lowered if there are no expansion
 8750		// operations in progress and if the actual volume capacity is
 8751		// equal or lower than the requested capacity.
 8752		//
 8753		// A controller that receives PVC update with previously unknown
 8754		// resourceName should ignore the update for the purpose it was
 8755		// designed. For example - a controller that only is responsible
 8756		// for resizing capacity of the volume, should ignore PVC updates
 8757		// that change other valid resources associated with PVC.
 8758		//
 8759		// This is an alpha field and requires enabling
 8760		// RecoverVolumeExpansionFailure feature.
 8761		"allocatedResources"?: {
 8762			[string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
 8763		}
 8764
 8765		// capacity represents the actual resources of the underlying
 8766		// volume.
 8767		"capacity"?: {
 8768			[string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
 8769		}
 8770
 8771		// conditions is the current Condition of persistent volume claim.
 8772		// If underlying persistent volume is being resized then the
 8773		// Condition will be set to 'Resizing'.
 8774		"conditions"?: [...#."io.k8s.api.core.v1.PersistentVolumeClaimCondition"]
 8775
 8776		// currentVolumeAttributesClassName is the current name of the
 8777		// VolumeAttributesClass the PVC is using. When unset, there is
 8778		// no VolumeAttributeClass applied to this PersistentVolumeClaim
 8779		// This is a beta field and requires enabling
 8780		// VolumeAttributesClass feature (off by default).
 8781		"currentVolumeAttributesClassName"?: string
 8782
 8783		// ModifyVolumeStatus represents the status object of
 8784		// ControllerModifyVolume operation. When this is unset, there is
 8785		// no ModifyVolume operation being attempted. This is a beta
 8786		// field and requires enabling VolumeAttributesClass feature (off
 8787		// by default).
 8788		"modifyVolumeStatus"?: #."io.k8s.api.core.v1.ModifyVolumeStatus"
 8789
 8790		// phase represents the current phase of PersistentVolumeClaim.
 8791		"phase"?: string
 8792	}
 8793
 8794	// PersistentVolumeClaimTemplate is used to produce
 8795	// PersistentVolumeClaim objects as part of an
 8796	// EphemeralVolumeSource.
 8797	#: "io.k8s.api.core.v1.PersistentVolumeClaimTemplate": {
 8798		// May contain labels and annotations that will be copied into the
 8799		// PVC when creating it. No other fields are allowed and will be
 8800		// rejected during validation.
 8801		"metadata"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
 8802
 8803		// The specification for the PersistentVolumeClaim. The entire
 8804		// content is copied unchanged into the PVC that gets created
 8805		// from this template. The same fields as in a
 8806		// PersistentVolumeClaim are also valid here.
 8807		"spec"!: #."io.k8s.api.core.v1.PersistentVolumeClaimSpec"
 8808	}
 8809
 8810	// PersistentVolumeClaimVolumeSource references the user's PVC in
 8811	// the same namespace. This volume finds the bound PV and mounts
 8812	// that volume for the pod. A PersistentVolumeClaimVolumeSource
 8813	// is, essentially, a wrapper around another type of volume that
 8814	// is owned by someone else (the system).
 8815	#: "io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource": {
 8816		// claimName is the name of a PersistentVolumeClaim in the same
 8817		// namespace as the pod using this volume. More info:
 8818		// https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
 8819		"claimName"!: string
 8820
 8821		// readOnly Will force the ReadOnly setting in VolumeMounts.
 8822		// Default false.
 8823		"readOnly"?: bool
 8824	}
 8825
 8826	// Represents a Photon Controller persistent disk resource.
 8827	#: "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": {
 8828		// fsType is the filesystem type to mount. Must be a filesystem
 8829		// type supported by the host operating system. Ex. "ext4",
 8830		// "xfs", "ntfs". Implicitly inferred to be "ext4" if
 8831		// unspecified.
 8832		"fsType"?: string
 8833
 8834		// pdID is the ID that identifies Photon Controller persistent
 8835		// disk
 8836		"pdID"!: string
 8837	}
 8838
 8839	// Pod affinity is a group of inter pod affinity scheduling rules.
 8840	#: "io.k8s.api.core.v1.PodAffinity": {
 8841		// The scheduler will prefer to schedule pods to nodes that
 8842		// satisfy the affinity expressions specified by this field, but
 8843		// it may choose a node that violates one or more of the
 8844		// expressions. The node that is most preferred is the one with
 8845		// the greatest sum of weights, i.e. for each node that meets all
 8846		// of the scheduling requirements (resource request,
 8847		// requiredDuringScheduling affinity expressions, etc.), compute
 8848		// a sum by iterating through the elements of this field and
 8849		// adding "weight" to the sum if the node has pods which matches
 8850		// the corresponding podAffinityTerm; the node(s) with the
 8851		// highest sum are the most preferred.
 8852		"preferredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.WeightedPodAffinityTerm"]
 8853
 8854		// If the affinity requirements specified by this field are not
 8855		// met at scheduling time, the pod will not be scheduled onto the
 8856		// node. If the affinity requirements specified by this field
 8857		// cease to be met at some point during pod execution (e.g. due
 8858		// to a pod label update), the system may or may not try to
 8859		// eventually evict the pod from its node. When there are
 8860		// multiple elements, the lists of nodes corresponding to each
 8861		// podAffinityTerm are intersected, i.e. all terms must be
 8862		// satisfied.
 8863		"requiredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.PodAffinityTerm"]
 8864	}
 8865
 8866	// Defines a set of pods (namely those matching the labelSelector
 8867	// relative to the given namespace(s)) that this pod should be
 8868	// co-located (affinity) or not co-located (anti-affinity) with,
 8869	// where co-located is defined as running on a node whose value
 8870	// of the label with key <topologyKey> matches that of any node
 8871	// on which a pod of the set of pods is running
 8872	#: "io.k8s.api.core.v1.PodAffinityTerm": {
 8873		// A label query over a set of resources, in this case pods. If
 8874		// it's null, this PodAffinityTerm matches with no Pods.
 8875		"labelSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
 8876
 8877		// MatchLabelKeys is a set of pod label keys to select which pods
 8878		// will be taken into consideration. The keys are used to lookup
 8879		// values from the incoming pod labels, those key-value labels
 8880		// are merged with `labelSelector` as `key in (value)` to select
 8881		// the group of existing pods which pods will be taken into
 8882		// consideration for the incoming pod's pod (anti) affinity. Keys
 8883		// that don't exist in the incoming pod labels will be ignored.
 8884		// The default value is empty. The same key is forbidden to exist
 8885		// in both matchLabelKeys and labelSelector. Also, matchLabelKeys
 8886		// cannot be set when labelSelector isn't set.
 8887		"matchLabelKeys"?: [...string]
 8888
 8889		// MismatchLabelKeys is a set of pod label keys to select which
 8890		// pods will be taken into consideration. The keys are used to
 8891		// lookup values from the incoming pod labels, those key-value
 8892		// labels are merged with `labelSelector` as `key notin (value)`
 8893		// to select the group of existing pods which pods will be taken
 8894		// into consideration for the incoming pod's pod (anti) affinity.
 8895		// Keys that don't exist in the incoming pod labels will be
 8896		// ignored. The default value is empty. The same key is forbidden
 8897		// to exist in both mismatchLabelKeys and labelSelector. Also,
 8898		// mismatchLabelKeys cannot be set when labelSelector isn't set.
 8899		"mismatchLabelKeys"?: [...string]
 8900
 8901		// A label query over the set of namespaces that the term applies
 8902		// to. The term is applied to the union of the namespaces
 8903		// selected by this field and the ones listed in the namespaces
 8904		// field. null selector and null or empty namespaces list means
 8905		// "this pod's namespace". An empty selector ({}) matches all
 8906		// namespaces.
 8907		"namespaceSelector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
 8908
 8909		// namespaces specifies a static list of namespace names that the
 8910		// term applies to. The term is applied to the union of the
 8911		// namespaces listed in this field and the ones selected by
 8912		// namespaceSelector. null or empty namespaces list and null
 8913		// namespaceSelector means "this pod's namespace".
 8914		"namespaces"?: [...string]
 8915
 8916		// This pod should be co-located (affinity) or not co-located
 8917		// (anti-affinity) with the pods matching the labelSelector in
 8918		// the specified namespaces, where co-located is defined as
 8919		// running on a node whose value of the label with key
 8920		// topologyKey matches that of any node on which any of the
 8921		// selected pods is running. Empty topologyKey is not allowed.
 8922		"topologyKey"!: string
 8923	}
 8924
 8925	// Pod anti affinity is a group of inter pod anti affinity
 8926	// scheduling rules.
 8927	#: "io.k8s.api.core.v1.PodAntiAffinity": {
 8928		// The scheduler will prefer to schedule pods to nodes that
 8929		// satisfy the anti-affinity expressions specified by this field,
 8930		// but it may choose a node that violates one or more of the
 8931		// expressions. The node that is most preferred is the one with
 8932		// the greatest sum of weights, i.e. for each node that meets all
 8933		// of the scheduling requirements (resource request,
 8934		// requiredDuringScheduling anti-affinity expressions, etc.),
 8935		// compute a sum by iterating through the elements of this field
 8936		// and adding "weight" to the sum if the node has pods which
 8937		// matches the corresponding podAffinityTerm; the node(s) with
 8938		// the highest sum are the most preferred.
 8939		"preferredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.WeightedPodAffinityTerm"]
 8940
 8941		// If the anti-affinity requirements specified by this field are
 8942		// not met at scheduling time, the pod will not be scheduled onto
 8943		// the node. If the anti-affinity requirements specified by this
 8944		// field cease to be met at some point during pod execution (e.g.
 8945		// due to a pod label update), the system may or may not try to
 8946		// eventually evict the pod from its node. When there are
 8947		// multiple elements, the lists of nodes corresponding to each
 8948		// podAffinityTerm are intersected, i.e. all terms must be
 8949		// satisfied.
 8950		"requiredDuringSchedulingIgnoredDuringExecution"?: [...#."io.k8s.api.core.v1.PodAffinityTerm"]
 8951	}
 8952
 8953	// PodDNSConfig defines the DNS parameters of a pod in addition to
 8954	// those generated from DNSPolicy.
 8955	#: "io.k8s.api.core.v1.PodDNSConfig": {
 8956		// A list of DNS name server IP addresses. This will be appended
 8957		// to the base nameservers generated from DNSPolicy. Duplicated
 8958		// nameservers will be removed.
 8959		"nameservers"?: [...string]
 8960
 8961		// A list of DNS resolver options. This will be merged with the
 8962		// base options generated from DNSPolicy. Duplicated entries will
 8963		// be removed. Resolution options given in Options will override
 8964		// those that appear in the base DNSPolicy.
 8965		"options"?: [...#."io.k8s.api.core.v1.PodDNSConfigOption"]
 8966
 8967		// A list of DNS search domains for host-name lookup. This will be
 8968		// appended to the base search paths generated from DNSPolicy.
 8969		// Duplicated search paths will be removed.
 8970		"searches"?: [...string]
 8971	}
 8972
 8973	// PodDNSConfigOption defines DNS resolver options of a pod.
 8974	#: "io.k8s.api.core.v1.PodDNSConfigOption": {
 8975		// Name is this DNS resolver option's name. Required.
 8976		"name"?: string
 8977
 8978		// Value is this DNS resolver option's value.
 8979		"value"?: string
 8980	}
 8981
 8982	// PodSecurityContext holds pod-level security attributes and
 8983	// common container settings. Some fields are also present in
 8984	// container.securityContext. Field values of
 8985	// container.securityContext take precedence over field values of
 8986	// PodSecurityContext.
 8987	#: "io.k8s.api.core.v1.PodSecurityContext": {
 8988		// appArmorProfile is the AppArmor options to use by the
 8989		// containers in this pod. Note that this field cannot be set
 8990		// when spec.os.name is windows.
 8991		"appArmorProfile"?: #."io.k8s.api.core.v1.AppArmorProfile"
 8992
 8993		// A special supplemental group that applies to all containers in
 8994		// a pod. Some volume types allow the Kubelet to change the
 8995		// ownership of that volume to be owned by the pod:
 8996		//
 8997		// 1. The owning GID will be the FSGroup 2. The setgid bit is set
 8998		// (new files created in the volume will be owned by FSGroup) 3.
 8999		// The permission bits are OR'd with rw-rw----
 9000		//
 9001		// If unset, the Kubelet will not modify the ownership and
 9002		// permissions of any volume. Note that this field cannot be set
 9003		// when spec.os.name is windows.
 9004		"fsGroup"?: int
 9005
 9006		// fsGroupChangePolicy defines behavior of changing ownership and
 9007		// permission of the volume before being exposed inside Pod. This
 9008		// field will only apply to volume types which support fsGroup
 9009		// based ownership(and permissions). It will have no effect on
 9010		// ephemeral volume types such as: secret, configmaps and
 9011		// emptydir. Valid values are "OnRootMismatch" and "Always". If
 9012		// not specified, "Always" is used. Note that this field cannot
 9013		// be set when spec.os.name is windows.
 9014		"fsGroupChangePolicy"?: string
 9015
 9016		// The GID to run the entrypoint of the container process. Uses
 9017		// runtime default if unset. May also be set in SecurityContext.
 9018		// If set in both SecurityContext and PodSecurityContext, the
 9019		// value specified in SecurityContext takes precedence for that
 9020		// container. Note that this field cannot be set when
 9021		// spec.os.name is windows.
 9022		"runAsGroup"?: int
 9023
 9024		// Indicates that the container must run as a non-root user. If
 9025		// true, the Kubelet will validate the image at runtime to ensure
 9026		// that it does not run as UID 0 (root) and fail to start the
 9027		// container if it does. If unset or false, no such validation
 9028		// will be performed. May also be set in SecurityContext. If set
 9029		// in both SecurityContext and PodSecurityContext, the value
 9030		// specified in SecurityContext takes precedence.
 9031		"runAsNonRoot"?: bool
 9032
 9033		// The UID to run the entrypoint of the container process.
 9034		// Defaults to user specified in image metadata if unspecified.
 9035		// May also be set in SecurityContext. If set in both
 9036		// SecurityContext and PodSecurityContext, the value specified in
 9037		// SecurityContext takes precedence for that container. Note that
 9038		// this field cannot be set when spec.os.name is windows.
 9039		"runAsUser"?: int
 9040
 9041		// seLinuxChangePolicy defines how the container's SELinux label
 9042		// is applied to all volumes used by the Pod. It has no effect on
 9043		// nodes that do not support SELinux or to volumes does not
 9044		// support SELinux. Valid values are "MountOption" and
 9045		// "Recursive".
 9046		//
 9047		// "Recursive" means relabeling of all files on all Pod volumes by
 9048		// the container runtime. This may be slow for large volumes, but
 9049		// allows mixing privileged and unprivileged Pods sharing the
 9050		// same volume on the same node.
 9051		//
 9052		// "MountOption" mounts all eligible Pod volumes with `-o context`
 9053		// mount option. This requires all Pods that share the same
 9054		// volume to use the same SELinux label. It is not possible to
 9055		// share the same volume among privileged and unprivileged Pods.
 9056		// Eligible volumes are in-tree FibreChannel and iSCSI volumes,
 9057		// and all CSI volumes whose CSI driver announces SELinux support
 9058		// by setting spec.seLinuxMount: true in their CSIDriver
 9059		// instance. Other volumes are always re-labelled recursively.
 9060		// "MountOption" value is allowed only when SELinuxMount feature
 9061		// gate is enabled.
 9062		//
 9063		// If not specified and SELinuxMount feature gate is enabled,
 9064		// "MountOption" is used. If not specified and SELinuxMount
 9065		// feature gate is disabled, "MountOption" is used for
 9066		// ReadWriteOncePod volumes and "Recursive" for all other
 9067		// volumes.
 9068		//
 9069		// This field affects only Pods that have SELinux label set,
 9070		// either in PodSecurityContext or in SecurityContext of all
 9071		// containers.
 9072		//
 9073		// All Pods that use the same volume should use the same
 9074		// seLinuxChangePolicy, otherwise some pods can get stuck in
 9075		// ContainerCreating state. Note that this field cannot be set
 9076		// when spec.os.name is windows.
 9077		"seLinuxChangePolicy"?: string
 9078
 9079		// The SELinux context to be applied to all containers. If
 9080		// unspecified, the container runtime will allocate a random
 9081		// SELinux context for each container. May also be set in
 9082		// SecurityContext. If set in both SecurityContext and
 9083		// PodSecurityContext, the value specified in SecurityContext
 9084		// takes precedence for that container. Note that this field
 9085		// cannot be set when spec.os.name is windows.
 9086		"seLinuxOptions"?: #."io.k8s.api.core.v1.SELinuxOptions"
 9087
 9088		// The seccomp options to use by the containers in this pod. Note
 9089		// that this field cannot be set when spec.os.name is windows.
 9090		"seccompProfile"?: #."io.k8s.api.core.v1.SeccompProfile"
 9091
 9092		// A list of groups applied to the first process run in each
 9093		// container, in addition to the container's primary GID and
 9094		// fsGroup (if specified). If the SupplementalGroupsPolicy
 9095		// feature is enabled, the supplementalGroupsPolicy field
 9096		// determines whether these are in addition to or instead of any
 9097		// group memberships defined in the container image. If
 9098		// unspecified, no additional groups are added, though group
 9099		// memberships defined in the container image may still be used,
 9100		// depending on the supplementalGroupsPolicy field. Note that
 9101		// this field cannot be set when spec.os.name is windows.
 9102		"supplementalGroups"?: [...int]
 9103
 9104		// Defines how supplemental groups of the first container
 9105		// processes are calculated. Valid values are "Merge" and
 9106		// "Strict". If not specified, "Merge" is used. (Alpha) Using the
 9107		// field requires the SupplementalGroupsPolicy feature gate to be
 9108		// enabled and the container runtime must implement support for
 9109		// this feature. Note that this field cannot be set when
 9110		// spec.os.name is windows.
 9111		"supplementalGroupsPolicy"?: string
 9112
 9113		// Sysctls hold a list of namespaced sysctls used for the pod.
 9114		// Pods with unsupported sysctls (by the container runtime) might
 9115		// fail to launch. Note that this field cannot be set when
 9116		// spec.os.name is windows.
 9117		"sysctls"?: [...#."io.k8s.api.core.v1.Sysctl"]
 9118
 9119		// The Windows specific settings applied to all containers. If
 9120		// unspecified, the options within a container's SecurityContext
 9121		// will be used. If set in both SecurityContext and
 9122		// PodSecurityContext, the value specified in SecurityContext
 9123		// takes precedence. Note that this field cannot be set when
 9124		// spec.os.name is linux.
 9125		"windowsOptions"?: #."io.k8s.api.core.v1.WindowsSecurityContextOptions"
 9126	}
 9127
 9128	// PortworxVolumeSource represents a Portworx volume resource.
 9129	#: "io.k8s.api.core.v1.PortworxVolumeSource": {
 9130		// fSType represents the filesystem type to mount Must be a
 9131		// filesystem type supported by the host operating system. Ex.
 9132		// "ext4", "xfs". Implicitly inferred to be "ext4" if
 9133		// unspecified.
 9134		"fsType"?: string
 9135
 9136		// readOnly defaults to false (read/write). ReadOnly here will
 9137		// force the ReadOnly setting in VolumeMounts.
 9138		"readOnly"?: bool
 9139
 9140		// volumeID uniquely identifies a Portworx volume
 9141		"volumeID"!: string
 9142	}
 9143
 9144	// An empty preferred scheduling term matches all objects with
 9145	// implicit weight 0 (i.e. it's a no-op). A null preferred
 9146	// scheduling term matches no objects (i.e. is also a no-op).
 9147	#: "io.k8s.api.core.v1.PreferredSchedulingTerm": {
 9148		// A node selector term, associated with the corresponding weight.
 9149		"preference"!: #."io.k8s.api.core.v1.NodeSelectorTerm"
 9150
 9151		// Weight associated with matching the corresponding
 9152		// nodeSelectorTerm, in the range 1-100.
 9153		"weight"!: int
 9154	}
 9155
 9156	// Probe describes a health check to be performed against a
 9157	// container to determine whether it is alive or ready to receive
 9158	// traffic.
 9159	#: "io.k8s.api.core.v1.Probe": {
 9160		// Exec specifies a command to execute in the container.
 9161		"exec"?: #."io.k8s.api.core.v1.ExecAction"
 9162
 9163		// Minimum consecutive failures for the probe to be considered
 9164		// failed after having succeeded. Defaults to 3. Minimum value is
 9165		// 1.
 9166		"failureThreshold"?: int
 9167
 9168		// GRPC specifies a GRPC HealthCheckRequest.
 9169		"grpc"?: #."io.k8s.api.core.v1.GRPCAction"
 9170
 9171		// HTTPGet specifies an HTTP GET request to perform.
 9172		"httpGet"?: #."io.k8s.api.core.v1.HTTPGetAction"
 9173
 9174		// Number of seconds after the container has started before
 9175		// liveness probes are initiated. More info:
 9176		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
 9177		"initialDelaySeconds"?: int
 9178
 9179		// How often (in seconds) to perform the probe. Default to 10
 9180		// seconds. Minimum value is 1.
 9181		"periodSeconds"?: int
 9182
 9183		// Minimum consecutive successes for the probe to be considered
 9184		// successful after having failed. Defaults to 1. Must be 1 for
 9185		// liveness and startup. Minimum value is 1.
 9186		"successThreshold"?: int
 9187
 9188		// TCPSocket specifies a connection to a TCP port.
 9189		"tcpSocket"?: #."io.k8s.api.core.v1.TCPSocketAction"
 9190
 9191		// Optional duration in seconds the pod needs to terminate
 9192		// gracefully upon probe failure. The grace period is the
 9193		// duration in seconds after the processes running in the pod are
 9194		// sent a termination signal and the time when the processes are
 9195		// forcibly halted with a kill signal. Set this value longer than
 9196		// the expected cleanup time for your process. If this value is
 9197		// nil, the pod's terminationGracePeriodSeconds will be used.
 9198		// Otherwise, this value overrides the value provided by the pod
 9199		// spec. Value must be non-negative integer. The value zero
 9200		// indicates stop immediately via the kill signal (no opportunity
 9201		// to shut down). This is a beta field and requires enabling
 9202		// ProbeTerminationGracePeriod feature gate. Minimum value is 1.
 9203		// spec.terminationGracePeriodSeconds is used if unset.
 9204		"terminationGracePeriodSeconds"?: int
 9205
 9206		// Number of seconds after which the probe times out. Defaults to
 9207		// 1 second. Minimum value is 1. More info:
 9208		// https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
 9209		"timeoutSeconds"?: int
 9210	}
 9211
 9212	// Represents a projected volume source
 9213	#: "io.k8s.api.core.v1.ProjectedVolumeSource": {
 9214		// defaultMode are the mode bits used to set permissions on
 9215		// created files by default. Must be an octal value between 0000
 9216		// and 0777 or a decimal value between 0 and 511. YAML accepts
 9217		// both octal and decimal values, JSON requires decimal values
 9218		// for mode bits. Directories within the path are not affected by
 9219		// this setting. This might be in conflict with other options
 9220		// that affect the file mode, like fsGroup, and the result can be
 9221		// other mode bits set.
 9222		"defaultMode"?: int
 9223
 9224		// sources is the list of volume projections. Each entry in this
 9225		// list handles one source.
 9226		"sources"?: [...#."io.k8s.api.core.v1.VolumeProjection"]
 9227	}
 9228
 9229	// Represents a Quobyte mount that lasts the lifetime of a pod.
 9230	// Quobyte volumes do not support ownership management or SELinux
 9231	// relabeling.
 9232	#: "io.k8s.api.core.v1.QuobyteVolumeSource": {
 9233		// group to map volume access to Default is no group
 9234		"group"?: string
 9235
 9236		// readOnly here will force the Quobyte volume to be mounted with
 9237		// read-only permissions. Defaults to false.
 9238		"readOnly"?: bool
 9239
 9240		// registry represents a single or multiple Quobyte Registry
 9241		// services specified as a string as host:port pair (multiple
 9242		// entries are separated with commas) which acts as the central
 9243		// registry for volumes
 9244		"registry"!: string
 9245
 9246		// tenant owning the given Quobyte volume in the Backend Used with
 9247		// dynamically provisioned Quobyte volumes, value is set by the
 9248		// plugin
 9249		"tenant"?: string
 9250
 9251		// user to map volume access to Defaults to serivceaccount user
 9252		"user"?: string
 9253
 9254		// volume is a string that references an already created Quobyte
 9255		// volume by name.
 9256		"volume"!: string
 9257	}
 9258
 9259	// Represents a Rados Block Device mount that lasts the lifetime
 9260	// of a pod. RBD volumes support ownership management and SELinux
 9261	// relabeling.
 9262	#: "io.k8s.api.core.v1.RBDVolumeSource": {
 9263		// fsType is the filesystem type of the volume that you want to
 9264		// mount. Tip: Ensure that the filesystem type is supported by
 9265		// the host operating system. Examples: "ext4", "xfs", "ntfs".
 9266		// Implicitly inferred to be "ext4" if unspecified. More info:
 9267		// https://kubernetes.io/docs/concepts/storage/volumes#rbd
 9268		"fsType"?: string
 9269
 9270		// image is the rados image name. More info:
 9271		// https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
 9272		"image"!: string
 9273
 9274		// keyring is the path to key ring for RBDUser. Default is
 9275		// /etc/ceph/keyring. More info:
 9276		// https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
 9277		"keyring"?: string
 9278
 9279		// monitors is a collection of Ceph monitors. More info:
 9280		// https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
 9281		"monitors"!: [...string]
 9282
 9283		// pool is the rados pool name. Default is rbd. More info:
 9284		// https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
 9285		"pool"?: string
 9286
 9287		// readOnly here will force the ReadOnly setting in VolumeMounts.
 9288		// Defaults to false. More info:
 9289		// https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
 9290		"readOnly"?: bool
 9291
 9292		// secretRef is name of the authentication secret for RBDUser. If
 9293		// provided overrides keyring. Default is nil. More info:
 9294		// https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
 9295		"secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
 9296
 9297		// user is the rados user name. Default is admin. More info:
 9298		// https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
 9299		"user"?: string
 9300	}
 9301
 9302	// ResourceClaim references one entry in PodSpec.ResourceClaims.
 9303	#: "io.k8s.api.core.v1.ResourceClaim": {
 9304		// Name must match the name of one entry in
 9305		// pod.spec.resourceClaims of the Pod where this field is used.
 9306		// It makes that resource available inside a container.
 9307		"name"!: string
 9308
 9309		// Request is the name chosen for a request in the referenced
 9310		// claim. If empty, everything from the claim is made available,
 9311		// otherwise only the result of this request.
 9312		"request"?: string
 9313	}
 9314
 9315	// ResourceFieldSelector represents container resources (cpu,
 9316	// memory) and their output format
 9317	#: "io.k8s.api.core.v1.ResourceFieldSelector": {
 9318		// Container name: required for volumes, optional for env vars
 9319		"containerName"?: string
 9320
 9321		// Specifies the output format of the exposed resources, defaults
 9322		// to "1"
 9323		"divisor"?: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
 9324
 9325		// Required: resource to select
 9326		"resource"!: string
 9327	}
 9328
 9329	// ResourceRequirements describes the compute resource
 9330	// requirements.
 9331	#: "io.k8s.api.core.v1.ResourceRequirements": {
 9332		// Claims lists the names of resources, defined in
 9333		// spec.resourceClaims, that are used by this container.
 9334		//
 9335		// This is an alpha field and requires enabling the
 9336		// DynamicResourceAllocation feature gate.
 9337		//
 9338		// This field is immutable. It can only be set for containers.
 9339		"claims"?: [...#."io.k8s.api.core.v1.ResourceClaim"]
 9340
 9341		// Limits describes the maximum amount of compute resources
 9342		// allowed. More info:
 9343		// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
 9344		"limits"?: {
 9345			[string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
 9346		}
 9347
 9348		// Requests describes the minimum amount of compute resources
 9349		// required. If Requests is omitted for a container, it defaults
 9350		// to Limits if that is explicitly specified, otherwise to an
 9351		// implementation-defined value. Requests cannot exceed Limits.
 9352		// More info:
 9353		// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
 9354		"requests"?: {
 9355			[string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
 9356		}
 9357	}
 9358
 9359	// SELinuxOptions are the labels to be applied to the container
 9360	#: "io.k8s.api.core.v1.SELinuxOptions": {
 9361		// Level is SELinux level label that applies to the container.
 9362		"level"?: string
 9363
 9364		// Role is a SELinux role label that applies to the container.
 9365		"role"?: string
 9366
 9367		// Type is a SELinux type label that applies to the container.
 9368		"type"?: string
 9369
 9370		// User is a SELinux user label that applies to the container.
 9371		"user"?: string
 9372	}
 9373
 9374	// ScaleIOVolumeSource represents a persistent ScaleIO volume
 9375	#: "io.k8s.api.core.v1.ScaleIOVolumeSource": {
 9376		// fsType is the filesystem type to mount. Must be a filesystem
 9377		// type supported by the host operating system. Ex. "ext4",
 9378		// "xfs", "ntfs". Default is "xfs".
 9379		"fsType"?: string
 9380
 9381		// gateway is the host address of the ScaleIO API Gateway.
 9382		"gateway"!: string
 9383
 9384		// protectionDomain is the name of the ScaleIO Protection Domain
 9385		// for the configured storage.
 9386		"protectionDomain"?: string
 9387
 9388		// readOnly Defaults to false (read/write). ReadOnly here will
 9389		// force the ReadOnly setting in VolumeMounts.
 9390		"readOnly"?: bool
 9391
 9392		// secretRef references to the secret for ScaleIO user and other
 9393		// sensitive information. If this is not provided, Login
 9394		// operation will fail.
 9395		"secretRef"!: #."io.k8s.api.core.v1.LocalObjectReference"
 9396
 9397		// sslEnabled Flag enable/disable SSL communication with Gateway,
 9398		// default false
 9399		"sslEnabled"?: bool
 9400
 9401		// storageMode indicates whether the storage for a volume should
 9402		// be ThickProvisioned or ThinProvisioned. Default is
 9403		// ThinProvisioned.
 9404		"storageMode"?: string
 9405
 9406		// storagePool is the ScaleIO Storage Pool associated with the
 9407		// protection domain.
 9408		"storagePool"?: string
 9409
 9410		// system is the name of the storage system as configured in
 9411		// ScaleIO.
 9412		"system"!: string
 9413
 9414		// volumeName is the name of a volume already created in the
 9415		// ScaleIO system that is associated with this volume source.
 9416		"volumeName"?: string
 9417	}
 9418
 9419	// SeccompProfile defines a pod/container's seccomp profile
 9420	// settings. Only one profile source may be set.
 9421	#: "io.k8s.api.core.v1.SeccompProfile": {
 9422		// localhostProfile indicates a profile defined in a file on the
 9423		// node should be used. The profile must be preconfigured on the
 9424		// node to work. Must be a descending path, relative to the
 9425		// kubelet's configured seccomp profile location. Must be set if
 9426		// type is "Localhost". Must NOT be set for any other type.
 9427		"localhostProfile"?: string
 9428
 9429		// type indicates which kind of seccomp profile will be applied.
 9430		// Valid options are:
 9431		//
 9432		// Localhost - a profile defined in a file on the node should be
 9433		// used. RuntimeDefault - the container runtime default profile
 9434		// should be used. Unconfined - no profile should be applied.
 9435		"type"!: string
 9436	}
 9437
 9438	// SecretEnvSource selects a Secret to populate the environment
 9439	// variables with.
 9440	//
 9441	// The contents of the target Secret's Data field will represent
 9442	// the key-value pairs as environment variables.
 9443	#: "io.k8s.api.core.v1.SecretEnvSource": {
 9444		// Name of the referent. This field is effectively required, but
 9445		// due to backwards compatibility is allowed to be empty.
 9446		// Instances of this type with an empty value here are almost
 9447		// certainly wrong. More info:
 9448		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
 9449		"name"?: string
 9450
 9451		// Specify whether the Secret must be defined
 9452		"optional"?: bool
 9453	}
 9454
 9455	// SecretKeySelector selects a key of a Secret.
 9456	#: "io.k8s.api.core.v1.SecretKeySelector": {
 9457		// The key of the secret to select from. Must be a valid secret
 9458		// key.
 9459		"key"!: string
 9460
 9461		// Name of the referent. This field is effectively required, but
 9462		// due to backwards compatibility is allowed to be empty.
 9463		// Instances of this type with an empty value here are almost
 9464		// certainly wrong. More info:
 9465		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
 9466		"name"?: string
 9467
 9468		// Specify whether the Secret or its key must be defined
 9469		"optional"?: bool
 9470	}
 9471
 9472	// Adapts a secret into a projected volume.
 9473	//
 9474	// The contents of the target Secret's Data field will be
 9475	// presented in a projected volume as files using the keys in the
 9476	// Data field as the file names. Note that this is identical to a
 9477	// secret volume source without the default mode.
 9478	#: "io.k8s.api.core.v1.SecretProjection": {
 9479		// items if unspecified, each key-value pair in the Data field of
 9480		// the referenced Secret will be projected into the volume as a
 9481		// file whose name is the key and content is the value. If
 9482		// specified, the listed keys will be projected into the
 9483		// specified paths, and unlisted keys will not be present. If a
 9484		// key is specified which is not present in the Secret, the
 9485		// volume setup will error unless it is marked optional. Paths
 9486		// must be relative and may not contain the '..' path or start
 9487		// with '..'.
 9488		"items"?: [...#."io.k8s.api.core.v1.KeyToPath"]
 9489
 9490		// Name of the referent. This field is effectively required, but
 9491		// due to backwards compatibility is allowed to be empty.
 9492		// Instances of this type with an empty value here are almost
 9493		// certainly wrong. More info:
 9494		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
 9495		"name"?: string
 9496
 9497		// optional field specify whether the Secret or its key must be
 9498		// defined
 9499		"optional"?: bool
 9500	}
 9501
 9502	// Adapts a Secret into a volume.
 9503	//
 9504	// The contents of the target Secret's Data field will be
 9505	// presented in a volume as files using the keys in the Data
 9506	// field as the file names. Secret volumes support ownership
 9507	// management and SELinux relabeling.
 9508	#: "io.k8s.api.core.v1.SecretVolumeSource": {
 9509		// defaultMode is Optional: mode bits used to set permissions on
 9510		// created files by default. Must be an octal value between 0000
 9511		// and 0777 or a decimal value between 0 and 511. YAML accepts
 9512		// both octal and decimal values, JSON requires decimal values
 9513		// for mode bits. Defaults to 0644. Directories within the path
 9514		// are not affected by this setting. This might be in conflict
 9515		// with other options that affect the file mode, like fsGroup,
 9516		// and the result can be other mode bits set.
 9517		"defaultMode"?: int
 9518
 9519		// items If unspecified, each key-value pair in the Data field of
 9520		// the referenced Secret will be projected into the volume as a
 9521		// file whose name is the key and content is the value. If
 9522		// specified, the listed keys will be projected into the
 9523		// specified paths, and unlisted keys will not be present. If a
 9524		// key is specified which is not present in the Secret, the
 9525		// volume setup will error unless it is marked optional. Paths
 9526		// must be relative and may not contain the '..' path or start
 9527		// with '..'.
 9528		"items"?: [...#."io.k8s.api.core.v1.KeyToPath"]
 9529
 9530		// optional field specify whether the Secret or its keys must be
 9531		// defined
 9532		"optional"?: bool
 9533
 9534		// secretName is the name of the secret in the pod's namespace to
 9535		// use. More info:
 9536		// https://kubernetes.io/docs/concepts/storage/volumes#secret
 9537		"secretName"?: string
 9538	}
 9539
 9540	// SecurityContext holds security configuration that will be
 9541	// applied to a container. Some fields are present in both
 9542	// SecurityContext and PodSecurityContext. When both are set, the
 9543	// values in SecurityContext take precedence.
 9544	#: "io.k8s.api.core.v1.SecurityContext": {
 9545		// AllowPrivilegeEscalation controls whether a process can gain
 9546		// more privileges than its parent process. This bool directly
 9547		// controls if the no_new_privs flag will be set on the container
 9548		// process. AllowPrivilegeEscalation is true always when the
 9549		// container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note
 9550		// that this field cannot be set when spec.os.name is windows.
 9551		"allowPrivilegeEscalation"?: bool
 9552
 9553		// appArmorProfile is the AppArmor options to use by this
 9554		// container. If set, this profile overrides the pod's
 9555		// appArmorProfile. Note that this field cannot be set when
 9556		// spec.os.name is windows.
 9557		"appArmorProfile"?: #."io.k8s.api.core.v1.AppArmorProfile"
 9558
 9559		// The capabilities to add/drop when running containers. Defaults
 9560		// to the default set of capabilities granted by the container
 9561		// runtime. Note that this field cannot be set when spec.os.name
 9562		// is windows.
 9563		"capabilities"?: #."io.k8s.api.core.v1.Capabilities"
 9564
 9565		// Run container in privileged mode. Processes in privileged
 9566		// containers are essentially equivalent to root on the host.
 9567		// Defaults to false. Note that this field cannot be set when
 9568		// spec.os.name is windows.
 9569		"privileged"?: bool
 9570
 9571		// procMount denotes the type of proc mount to use for the
 9572		// containers. The default value is Default which uses the
 9573		// container runtime defaults for readonly paths and masked
 9574		// paths. This requires the ProcMountType feature flag to be
 9575		// enabled. Note that this field cannot be set when spec.os.name
 9576		// is windows.
 9577		"procMount"?: string
 9578
 9579		// Whether this container has a read-only root filesystem. Default
 9580		// is false. Note that this field cannot be set when spec.os.name
 9581		// is windows.
 9582		"readOnlyRootFilesystem"?: bool
 9583
 9584		// The GID to run the entrypoint of the container process. Uses
 9585		// runtime default if unset. May also be set in
 9586		// PodSecurityContext. If set in both SecurityContext and
 9587		// PodSecurityContext, the value specified in SecurityContext
 9588		// takes precedence. Note that this field cannot be set when
 9589		// spec.os.name is windows.
 9590		"runAsGroup"?: int
 9591
 9592		// Indicates that the container must run as a non-root user. If
 9593		// true, the Kubelet will validate the image at runtime to ensure
 9594		// that it does not run as UID 0 (root) and fail to start the
 9595		// container if it does. If unset or false, no such validation
 9596		// will be performed. May also be set in PodSecurityContext. If
 9597		// set in both SecurityContext and PodSecurityContext, the value
 9598		// specified in SecurityContext takes precedence.
 9599		"runAsNonRoot"?: bool
 9600
 9601		// The UID to run the entrypoint of the container process.
 9602		// Defaults to user specified in image metadata if unspecified.
 9603		// May also be set in PodSecurityContext. If set in both
 9604		// SecurityContext and PodSecurityContext, the value specified in
 9605		// SecurityContext takes precedence. Note that this field cannot
 9606		// be set when spec.os.name is windows.
 9607		"runAsUser"?: int
 9608
 9609		// The SELinux context to be applied to the container. If
 9610		// unspecified, the container runtime will allocate a random
 9611		// SELinux context for each container. May also be set in
 9612		// PodSecurityContext. If set in both SecurityContext and
 9613		// PodSecurityContext, the value specified in SecurityContext
 9614		// takes precedence. Note that this field cannot be set when
 9615		// spec.os.name is windows.
 9616		"seLinuxOptions"?: #."io.k8s.api.core.v1.SELinuxOptions"
 9617
 9618		// The seccomp options to use by this container. If seccomp
 9619		// options are provided at both the pod & container level, the
 9620		// container options override the pod options. Note that this
 9621		// field cannot be set when spec.os.name is windows.
 9622		"seccompProfile"?: #."io.k8s.api.core.v1.SeccompProfile"
 9623
 9624		// The Windows specific settings applied to all containers. If
 9625		// unspecified, the options from the PodSecurityContext will be
 9626		// used. If set in both SecurityContext and PodSecurityContext,
 9627		// the value specified in SecurityContext takes precedence. Note
 9628		// that this field cannot be set when spec.os.name is linux.
 9629		"windowsOptions"?: #."io.k8s.api.core.v1.WindowsSecurityContextOptions"
 9630	}
 9631
 9632	// ServiceAccountTokenProjection represents a projected service
 9633	// account token volume. This projection can be used to insert a
 9634	// service account token into the pods runtime filesystem for use
 9635	// against APIs (Kubernetes API Server or otherwise).
 9636	#: "io.k8s.api.core.v1.ServiceAccountTokenProjection": {
 9637		// audience is the intended audience of the token. A recipient of
 9638		// a token must identify itself with an identifier specified in
 9639		// the audience of the token, and otherwise should reject the
 9640		// token. The audience defaults to the identifier of the
 9641		// apiserver.
 9642		"audience"?: string
 9643
 9644		// expirationSeconds is the requested duration of validity of the
 9645		// service account token. As the token approaches expiration, the
 9646		// kubelet volume plugin will proactively rotate the service
 9647		// account token. The kubelet will start trying to rotate the
 9648		// token if the token is older than 80 percent of its time to
 9649		// live or if the token is older than 24 hours.Defaults to 1 hour
 9650		// and must be at least 10 minutes.
 9651		"expirationSeconds"?: int
 9652
 9653		// path is the path relative to the mount point of the file to
 9654		// project the token into.
 9655		"path"!: string
 9656	}
 9657
 9658	// ServicePort contains information on service's port.
 9659	#: "io.k8s.api.core.v1.ServicePort": {
 9660		// The application protocol for this port. This is used as a hint
 9661		// for implementations to offer richer behavior for protocols
 9662		// that they understand. This field follows standard Kubernetes
 9663		// label syntax. Valid values are either:
 9664		//
 9665		// * Un-prefixed protocol names - reserved for IANA standard
 9666		// service names (as per RFC-6335 and
 9667		// https://www.iana.org/assignments/service-names).
 9668		//
 9669		// * Kubernetes-defined prefixed names:
 9670		// * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext
 9671		// as described in
 9672		// https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-
 9673		// * 'kubernetes.io/ws' - WebSocket over cleartext as described in
 9674		// https://www.rfc-editor.org/rfc/rfc6455
 9675		// * 'kubernetes.io/wss' - WebSocket over TLS as described in
 9676		// https://www.rfc-editor.org/rfc/rfc6455
 9677		//
 9678		// * Other protocols should use implementation-defined prefixed
 9679		// names such as mycompany.com/my-custom-protocol.
 9680		"appProtocol"?: string
 9681
 9682		// The name of this port within the service. This must be a
 9683		// DNS_LABEL. All ports within a ServiceSpec must have unique
 9684		// names. When considering the endpoints for a Service, this must
 9685		// match the 'name' field in the EndpointPort. Optional if only
 9686		// one ServicePort is defined on this service.
 9687		"name"?: string
 9688
 9689		// The port on each node on which this service is exposed when
 9690		// type is NodePort or LoadBalancer. Usually assigned by the
 9691		// system. If a value is specified, in-range, and not in use it
 9692		// will be used, otherwise the operation will fail. If not
 9693		// specified, a port will be allocated if this Service requires
 9694		// one. If this field is specified when creating a Service which
 9695		// does not need it, creation will fail. This field will be wiped
 9696		// when updating a Service to no longer need it (e.g. changing
 9697		// type from NodePort to ClusterIP). More info:
 9698		// https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
 9699		"nodePort"?: int
 9700
 9701		// The port that will be exposed by this service.
 9702		"port"!: int
 9703
 9704		// The IP protocol for this port. Supports "TCP", "UDP", and
 9705		// "SCTP". Default is TCP.
 9706		"protocol"?: string
 9707
 9708		// Number or name of the port to access on the pods targeted by
 9709		// the service. Number must be in the range 1 to 65535. Name must
 9710		// be an IANA_SVC_NAME. If this is a string, it will be looked up
 9711		// as a named port in the target Pod's container ports. If this
 9712		// is not specified, the value of the 'port' field is used (an
 9713		// identity map). This field is ignored for services with
 9714		// clusterIP=None, and should be omitted or set equal to the
 9715		// 'port' field. More info:
 9716		// https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
 9717		"targetPort"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
 9718	}
 9719
 9720	// SleepAction describes a "sleep" action.
 9721	#: "io.k8s.api.core.v1.SleepAction": {
 9722		// Seconds is the number of seconds to sleep.
 9723		"seconds"!: int
 9724	}
 9725
 9726	// Represents a StorageOS persistent volume resource.
 9727	#: "io.k8s.api.core.v1.StorageOSVolumeSource": {
 9728		// fsType is the filesystem type to mount. Must be a filesystem
 9729		// type supported by the host operating system. Ex. "ext4",
 9730		// "xfs", "ntfs". Implicitly inferred to be "ext4" if
 9731		// unspecified.
 9732		"fsType"?: string
 9733
 9734		// readOnly defaults to false (read/write). ReadOnly here will
 9735		// force the ReadOnly setting in VolumeMounts.
 9736		"readOnly"?: bool
 9737
 9738		// secretRef specifies the secret to use for obtaining the
 9739		// StorageOS API credentials. If not specified, default values
 9740		// will be attempted.
 9741		"secretRef"?: #."io.k8s.api.core.v1.LocalObjectReference"
 9742
 9743		// volumeName is the human-readable name of the StorageOS volume.
 9744		// Volume names are only unique within a namespace.
 9745		"volumeName"?: string
 9746
 9747		// volumeNamespace specifies the scope of the volume within
 9748		// StorageOS. If no namespace is specified then the Pod's
 9749		// namespace will be used. This allows the Kubernetes name
 9750		// scoping to be mirrored within StorageOS for tighter
 9751		// integration. Set VolumeName to any name to override the
 9752		// default behaviour. Set to "default" if you are not using
 9753		// namespaces within StorageOS. Namespaces that do not pre-exist
 9754		// within StorageOS will be created.
 9755		"volumeNamespace"?: string
 9756	}
 9757
 9758	// Sysctl defines a kernel parameter to be set
 9759	#: "io.k8s.api.core.v1.Sysctl": {
 9760		// Name of a property to set
 9761		"name"!: string
 9762
 9763		// Value of a property to set
 9764		"value"!: string
 9765	}
 9766
 9767	// TCPSocketAction describes an action based on opening a socket
 9768	#: "io.k8s.api.core.v1.TCPSocketAction": {
 9769		// Optional: Host name to connect to, defaults to the pod IP.
 9770		"host"?: string
 9771
 9772		// Number or name of the port to access on the container. Number
 9773		// must be in the range 1 to 65535. Name must be an
 9774		// IANA_SVC_NAME.
 9775		"port"!: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
 9776	}
 9777
 9778	// The pod this Toleration is attached to tolerates any taint that
 9779	// matches the triple <key,value,effect> using the matching
 9780	// operator <operator>.
 9781	#: "io.k8s.api.core.v1.Toleration": {
 9782		// Effect indicates the taint effect to match. Empty means match
 9783		// all taint effects. When specified, allowed values are
 9784		// NoSchedule, PreferNoSchedule and NoExecute.
 9785		"effect"?: string
 9786
 9787		// Key is the taint key that the toleration applies to. Empty
 9788		// means match all taint keys. If the key is empty, operator must
 9789		// be Exists; this combination means to match all values and all
 9790		// keys.
 9791		"key"?: string
 9792
 9793		// Operator represents a key's relationship to the value. Valid
 9794		// operators are Exists and Equal. Defaults to Equal. Exists is
 9795		// equivalent to wildcard for value, so that a pod can tolerate
 9796		// all taints of a particular category.
 9797		"operator"?: string
 9798
 9799		// TolerationSeconds represents the period of time the toleration
 9800		// (which must be of effect NoExecute, otherwise this field is
 9801		// ignored) tolerates the taint. By default, it is not set, which
 9802		// means tolerate the taint forever (do not evict). Zero and
 9803		// negative values will be treated as 0 (evict immediately) by
 9804		// the system.
 9805		"tolerationSeconds"?: int
 9806
 9807		// Value is the taint value the toleration matches to. If the
 9808		// operator is Exists, the value should be empty, otherwise just
 9809		// a regular string.
 9810		"value"?: string
 9811	}
 9812
 9813	// TypedLocalObjectReference contains enough information to let
 9814	// you locate the typed referenced object inside the same
 9815	// namespace.
 9816	#: "io.k8s.api.core.v1.TypedLocalObjectReference": {
 9817		// APIGroup is the group for the resource being referenced. If
 9818		// APIGroup is not specified, the specified Kind must be in the
 9819		// core API group. For any other third-party types, APIGroup is
 9820		// required.
 9821		"apiGroup"?: string
 9822
 9823		// Kind is the type of resource being referenced
 9824		"kind"!: string
 9825
 9826		// Name is the name of resource being referenced
 9827		"name"!: string
 9828	}
 9829
 9830	// TypedObjectReference contains enough information to let you
 9831	// locate the typed referenced object
 9832	#: "io.k8s.api.core.v1.TypedObjectReference": {
 9833		// APIGroup is the group for the resource being referenced. If
 9834		// APIGroup is not specified, the specified Kind must be in the
 9835		// core API group. For any other third-party types, APIGroup is
 9836		// required.
 9837		"apiGroup"?: string
 9838
 9839		// Kind is the type of resource being referenced
 9840		"kind"!: string
 9841
 9842		// Name is the name of resource being referenced
 9843		"name"!: string
 9844
 9845		// Namespace is the namespace of resource being referenced Note
 9846		// that when a namespace is specified, a
 9847		// gateway.networking.k8s.io/ReferenceGrant object is required in
 9848		// the referent namespace to allow that namespace's owner to
 9849		// accept the reference. See the ReferenceGrant documentation for
 9850		// details. (Alpha) This field requires the
 9851		// CrossNamespaceVolumeDataSource feature gate to be enabled.
 9852		"namespace"?: string
 9853	}
 9854
 9855	// Volume represents a named volume in a pod that may be accessed
 9856	// by any container in the pod.
 9857	#: "io.k8s.api.core.v1.Volume": {
 9858		// awsElasticBlockStore represents an AWS Disk resource that is
 9859		// attached to a kubelet's host machine and then exposed to the
 9860		// pod. Deprecated: AWSElasticBlockStore is deprecated. All
 9861		// operations for the in-tree awsElasticBlockStore type are
 9862		// redirected to the ebs.csi.aws.com CSI driver. More info:
 9863		// https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
 9864		"awsElasticBlockStore"?: #."io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource"
 9865
 9866		// azureDisk represents an Azure Data Disk mount on the host and
 9867		// bind mount to the pod. Deprecated: AzureDisk is deprecated.
 9868		// All operations for the in-tree azureDisk type are redirected
 9869		// to the disk.csi.azure.com CSI driver.
 9870		"azureDisk"?: #."io.k8s.api.core.v1.AzureDiskVolumeSource"
 9871
 9872		// azureFile represents an Azure File Service mount on the host
 9873		// and bind mount to the pod. Deprecated: AzureFile is
 9874		// deprecated. All operations for the in-tree azureFile type are
 9875		// redirected to the file.csi.azure.com CSI driver.
 9876		"azureFile"?: #."io.k8s.api.core.v1.AzureFileVolumeSource"
 9877
 9878		// cephFS represents a Ceph FS mount on the host that shares a
 9879		// pod's lifetime. Deprecated: CephFS is deprecated and the
 9880		// in-tree cephfs type is no longer supported.
 9881		"cephfs"?: #."io.k8s.api.core.v1.CephFSVolumeSource"
 9882
 9883		// cinder represents a cinder volume attached and mounted on
 9884		// kubelets host machine. Deprecated: Cinder is deprecated. All
 9885		// operations for the in-tree cinder type are redirected to the
 9886		// cinder.csi.openstack.org CSI driver. More info:
 9887		// https://examples.k8s.io/mysql-cinder-pd/README.md
 9888		"cinder"?: #."io.k8s.api.core.v1.CinderVolumeSource"
 9889
 9890		// configMap represents a configMap that should populate this
 9891		// volume
 9892		"configMap"?: #."io.k8s.api.core.v1.ConfigMapVolumeSource"
 9893
 9894		// csi (Container Storage Interface) represents ephemeral storage
 9895		// that is handled by certain external CSI drivers.
 9896		"csi"?: #."io.k8s.api.core.v1.CSIVolumeSource"
 9897
 9898		// downwardAPI represents downward API about the pod that should
 9899		// populate this volume
 9900		"downwardAPI"?: #."io.k8s.api.core.v1.DownwardAPIVolumeSource"
 9901
 9902		// emptyDir represents a temporary directory that shares a pod's
 9903		// lifetime. More info:
 9904		// https://kubernetes.io/docs/concepts/storage/volumes#emptydir
 9905		"emptyDir"?: #."io.k8s.api.core.v1.EmptyDirVolumeSource"
 9906
 9907		// ephemeral represents a volume that is handled by a cluster
 9908		// storage driver. The volume's lifecycle is tied to the pod that
 9909		// defines it - it will be created before the pod starts, and
 9910		// deleted when the pod is removed.
 9911		//
 9912		// Use this if: a) the volume is only needed while the pod runs,
 9913		// b) features of normal volumes like restoring from snapshot or
 9914		// capacity
 9915		// tracking are needed,
 9916		// c) the storage driver is specified through a storage class, and
 9917		// d) the storage driver supports dynamic volume provisioning
 9918		// through
 9919		// a PersistentVolumeClaim (see EphemeralVolumeSource for more
 9920		// information on the connection between this volume type
 9921		// and PersistentVolumeClaim).
 9922		//
 9923		// Use PersistentVolumeClaim or one of the vendor-specific APIs
 9924		// for volumes that persist for longer than the lifecycle of an
 9925		// individual pod.
 9926		//
 9927		// Use CSI for light-weight local ephemeral volumes if the CSI
 9928		// driver is meant to be used that way - see the documentation of
 9929		// the driver for more information.
 9930		//
 9931		// A pod can use both types of ephemeral volumes and persistent
 9932		// volumes at the same time.
 9933		"ephemeral"?: #."io.k8s.api.core.v1.EphemeralVolumeSource"
 9934
 9935		// fc represents a Fibre Channel resource that is attached to a
 9936		// kubelet's host machine and then exposed to the pod.
 9937		"fc"?: #."io.k8s.api.core.v1.FCVolumeSource"
 9938
 9939		// flexVolume represents a generic volume resource that is
 9940		// provisioned/attached using an exec based plugin. Deprecated:
 9941		// FlexVolume is deprecated. Consider using a CSIDriver instead.
 9942		"flexVolume"?: #."io.k8s.api.core.v1.FlexVolumeSource"
 9943
 9944		// flocker represents a Flocker volume attached to a kubelet's
 9945		// host machine. This depends on the Flocker control service
 9946		// being running. Deprecated: Flocker is deprecated and the
 9947		// in-tree flocker type is no longer supported.
 9948		"flocker"?: #."io.k8s.api.core.v1.FlockerVolumeSource"
 9949
 9950		// gcePersistentDisk represents a GCE Disk resource that is
 9951		// attached to a kubelet's host machine and then exposed to the
 9952		// pod. Deprecated: GCEPersistentDisk is deprecated. All
 9953		// operations for the in-tree gcePersistentDisk type are
 9954		// redirected to the pd.csi.storage.gke.io CSI driver. More info:
 9955		// https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
 9956		"gcePersistentDisk"?: #."io.k8s.api.core.v1.GCEPersistentDiskVolumeSource"
 9957
 9958		// gitRepo represents a git repository at a particular revision.
 9959		// Deprecated: GitRepo is deprecated. To provision a container
 9960		// with a git repo, mount an EmptyDir into an InitContainer that
 9961		// clones the repo using git, then mount the EmptyDir into the
 9962		// Pod's container.
 9963		"gitRepo"?: #."io.k8s.api.core.v1.GitRepoVolumeSource"
 9964
 9965		// glusterfs represents a Glusterfs mount on the host that shares
 9966		// a pod's lifetime. Deprecated: Glusterfs is deprecated and the
 9967		// in-tree glusterfs type is no longer supported. More info:
 9968		// https://examples.k8s.io/volumes/glusterfs/README.md
 9969		"glusterfs"?: #."io.k8s.api.core.v1.GlusterfsVolumeSource"
 9970
 9971		// hostPath represents a pre-existing file or directory on the
 9972		// host machine that is directly exposed to the container. This
 9973		// is generally used for system agents or other privileged things
 9974		// that are allowed to see the host machine. Most containers will
 9975		// NOT need this. More info:
 9976		// https://kubernetes.io/docs/concepts/storage/volumes#hostpath
 9977		"hostPath"?: #."io.k8s.api.core.v1.HostPathVolumeSource"
 9978
 9979		// image represents an OCI object (a container image or artifact)
 9980		// pulled and mounted on the kubelet's host machine. The volume
 9981		// is resolved at pod startup depending on which PullPolicy value
 9982		// is provided:
 9983		//
 9984		// - Always: the kubelet always attempts to pull the reference.
 9985		// Container creation will fail If the pull fails. - Never: the
 9986		// kubelet never pulls the reference and only uses a local image
 9987		// or artifact. Container creation will fail if the reference
 9988		// isn't present. - IfNotPresent: the kubelet pulls if the
 9989		// reference isn't already present on disk. Container creation
 9990		// will fail if the reference isn't present and the pull fails.
 9991		//
 9992		// The volume gets re-resolved if the pod gets deleted and
 9993		// recreated, which means that new remote content will become
 9994		// available on pod recreation. A failure to resolve or pull the
 9995		// image during pod startup will block containers from starting
 9996		// and may add significant latency. Failures will be retried
 9997		// using normal volume backoff and will be reported on the pod
 9998		// reason and message. The types of objects that may be mounted
 9999		// by this volume are defined by the container runtime
10000		// implementation on a host machine and at minimum must include
10001		// all valid types supported by the container image field. The
10002		// OCI object gets mounted in a single directory
10003		// (spec.containers[*].volumeMounts.mountPath) by merging the
10004		// manifest layers in the same way as for container images. The
10005		// volume will be mounted read-only (ro) and non-executable files
10006		// (noexec). Sub path mounts for containers are not supported
10007		// (spec.containers[*].volumeMounts.subpath) before 1.33. The
10008		// field spec.securityContext.fsGroupChangePolicy has no effect
10009		// on this volume type.
10010		"image"?: #."io.k8s.api.core.v1.ImageVolumeSource"
10011
10012		// iscsi represents an ISCSI Disk resource that is attached to a
10013		// kubelet's host machine and then exposed to the pod. More info:
10014		// https://examples.k8s.io/volumes/iscsi/README.md
10015		"iscsi"?: #."io.k8s.api.core.v1.ISCSIVolumeSource"
10016
10017		// name of the volume. Must be a DNS_LABEL and unique within the
10018		// pod. More info:
10019		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
10020		"name"!: string
10021
10022		// nfs represents an NFS mount on the host that shares a pod's
10023		// lifetime More info:
10024		// https://kubernetes.io/docs/concepts/storage/volumes#nfs
10025		"nfs"?: #."io.k8s.api.core.v1.NFSVolumeSource"
10026
10027		// persistentVolumeClaimVolumeSource represents a reference to a
10028		// PersistentVolumeClaim in the same namespace. More info:
10029		// https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
10030		"persistentVolumeClaim"?: #."io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource"
10031
10032		// photonPersistentDisk represents a PhotonController persistent
10033		// disk attached and mounted on kubelets host machine.
10034		// Deprecated: PhotonPersistentDisk is deprecated and the in-tree
10035		// photonPersistentDisk type is no longer supported.
10036		"photonPersistentDisk"?: #."io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource"
10037
10038		// portworxVolume represents a portworx volume attached and
10039		// mounted on kubelets host machine. Deprecated: PortworxVolume
10040		// is deprecated. All operations for the in-tree portworxVolume
10041		// type are redirected to the pxd.portworx.com CSI driver when
10042		// the CSIMigrationPortworx feature-gate is on.
10043		"portworxVolume"?: #."io.k8s.api.core.v1.PortworxVolumeSource"
10044
10045		// projected items for all in one resources secrets, configmaps,
10046		// and downward API
10047		"projected"?: #."io.k8s.api.core.v1.ProjectedVolumeSource"
10048
10049		// quobyte represents a Quobyte mount on the host that shares a
10050		// pod's lifetime. Deprecated: Quobyte is deprecated and the
10051		// in-tree quobyte type is no longer supported.
10052		"quobyte"?: #."io.k8s.api.core.v1.QuobyteVolumeSource"
10053
10054		// rbd represents a Rados Block Device mount on the host that
10055		// shares a pod's lifetime. Deprecated: RBD is deprecated and the
10056		// in-tree rbd type is no longer supported. More info:
10057		// https://examples.k8s.io/volumes/rbd/README.md
10058		"rbd"?: #."io.k8s.api.core.v1.RBDVolumeSource"
10059
10060		// scaleIO represents a ScaleIO persistent volume attached and
10061		// mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated
10062		// and the in-tree scaleIO type is no longer supported.
10063		"scaleIO"?: #."io.k8s.api.core.v1.ScaleIOVolumeSource"
10064
10065		// secret represents a secret that should populate this volume.
10066		// More info:
10067		// https://kubernetes.io/docs/concepts/storage/volumes#secret
10068		"secret"?: #."io.k8s.api.core.v1.SecretVolumeSource"
10069
10070		// storageOS represents a StorageOS volume attached and mounted on
10071		// Kubernetes nodes. Deprecated: StorageOS is deprecated and the
10072		// in-tree storageos type is no longer supported.
10073		"storageos"?: #."io.k8s.api.core.v1.StorageOSVolumeSource"
10074
10075		// vsphereVolume represents a vSphere volume attached and mounted
10076		// on kubelets host machine. Deprecated: VsphereVolume is
10077		// deprecated. All operations for the in-tree vsphereVolume type
10078		// are redirected to the csi.vsphere.vmware.com CSI driver.
10079		"vsphereVolume"?: #."io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource"
10080	}
10081
10082	// volumeDevice describes a mapping of a raw block device within a
10083	// container.
10084	#: "io.k8s.api.core.v1.VolumeDevice": {
10085		// devicePath is the path inside of the container that the device
10086		// will be mapped to.
10087		"devicePath"!: string
10088
10089		// name must match the name of a persistentVolumeClaim in the pod
10090		"name"!: string
10091	}
10092
10093	// VolumeMount describes a mounting of a Volume within a
10094	// container.
10095	#: "io.k8s.api.core.v1.VolumeMount": {
10096		// Path within the container at which the volume should be
10097		// mounted. Must not contain ':'.
10098		"mountPath"!: string
10099
10100		// mountPropagation determines how mounts are propagated from the
10101		// host to container and the other way around. When not set,
10102		// MountPropagationNone is used. This field is beta in 1.10. When
10103		// RecursiveReadOnly is set to IfPossible or to Enabled,
10104		// MountPropagation must be None or unspecified (which defaults
10105		// to None).
10106		"mountPropagation"?: string
10107
10108		// This must match the Name of a Volume.
10109		"name"!: string
10110
10111		// Mounted read-only if true, read-write otherwise (false or
10112		// unspecified). Defaults to false.
10113		"readOnly"?: bool
10114
10115		// RecursiveReadOnly specifies whether read-only mounts should be
10116		// handled recursively.
10117		//
10118		// If ReadOnly is false, this field has no meaning and must be
10119		// unspecified.
10120		//
10121		// If ReadOnly is true, and this field is set to Disabled, the
10122		// mount is not made recursively read-only. If this field is set
10123		// to IfPossible, the mount is made recursively read-only, if it
10124		// is supported by the container runtime. If this field is set to
10125		// Enabled, the mount is made recursively read-only if it is
10126		// supported by the container runtime, otherwise the pod will not
10127		// be started and an error will be generated to indicate the
10128		// reason.
10129		//
10130		// If this field is set to IfPossible or Enabled, MountPropagation
10131		// must be set to None (or be unspecified, which defaults to
10132		// None).
10133		//
10134		// If this field is not specified, it is treated as an equivalent
10135		// of Disabled.
10136		"recursiveReadOnly"?: string
10137
10138		// Path within the volume from which the container's volume should
10139		// be mounted. Defaults to "" (volume's root).
10140		"subPath"?: string
10141
10142		// Expanded path within the volume from which the container's
10143		// volume should be mounted. Behaves similarly to SubPath but
10144		// environment variable references $(VAR_NAME) are expanded using
10145		// the container's environment. Defaults to "" (volume's root).
10146		// SubPathExpr and SubPath are mutually exclusive.
10147		"subPathExpr"?: string
10148	}
10149
10150	// Projection that may be projected along with other supported
10151	// volume types. Exactly one of these fields must be set.
10152	#: "io.k8s.api.core.v1.VolumeProjection": {
10153		// ClusterTrustBundle allows a pod to access the
10154		// `.spec.trustBundle` field of ClusterTrustBundle objects in an
10155		// auto-updating file.
10156		//
10157		// Alpha, gated by the ClusterTrustBundleProjection feature gate.
10158		//
10159		// ClusterTrustBundle objects can either be selected by name, or
10160		// by the combination of signer name and a label selector.
10161		//
10162		// Kubelet performs aggressive normalization of the PEM contents
10163		// written into the pod filesystem. Esoteric PEM features such as
10164		// inter-block comments and block headers are stripped.
10165		// Certificates are deduplicated. The ordering of certificates
10166		// within the file is arbitrary, and Kubelet may change the order
10167		// over time.
10168		"clusterTrustBundle"?: #."io.k8s.api.core.v1.ClusterTrustBundleProjection"
10169
10170		// configMap information about the configMap data to project
10171		"configMap"?: #."io.k8s.api.core.v1.ConfigMapProjection"
10172
10173		// downwardAPI information about the downwardAPI data to project
10174		"downwardAPI"?: #."io.k8s.api.core.v1.DownwardAPIProjection"
10175
10176		// secret information about the secret data to project
10177		"secret"?: #."io.k8s.api.core.v1.SecretProjection"
10178
10179		// serviceAccountToken is information about the
10180		// serviceAccountToken data to project
10181		"serviceAccountToken"?: #."io.k8s.api.core.v1.ServiceAccountTokenProjection"
10182	}
10183
10184	// VolumeResourceRequirements describes the storage resource
10185	// requirements for a volume.
10186	#: "io.k8s.api.core.v1.VolumeResourceRequirements": {
10187		// Limits describes the maximum amount of compute resources
10188		// allowed. More info:
10189		// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
10190		"limits"?: [string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
10191
10192		// Requests describes the minimum amount of compute resources
10193		// required. If Requests is omitted for a container, it defaults
10194		// to Limits if that is explicitly specified, otherwise to an
10195		// implementation-defined value. Requests cannot exceed Limits.
10196		// More info:
10197		// https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
10198		"requests"?: {
10199			[string]: #."io.k8s.apimachinery.pkg.api.resource.Quantity"
10200		}
10201	}
10202
10203	// Represents a vSphere volume resource.
10204	#: "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": {
10205		// fsType is filesystem type to mount. Must be a filesystem type
10206		// supported by the host operating system. Ex. "ext4", "xfs",
10207		// "ntfs". Implicitly inferred to be "ext4" if unspecified.
10208		"fsType"?: string
10209
10210		// storagePolicyID is the storage Policy Based Management (SPBM)
10211		// profile ID associated with the StoragePolicyName.
10212		"storagePolicyID"?: string
10213
10214		// storagePolicyName is the storage Policy Based Management (SPBM)
10215		// profile name.
10216		"storagePolicyName"?: string
10217
10218		// volumePath is the path that identifies vSphere volume vmdk
10219		"volumePath"!: string
10220	}
10221
10222	// The weights of all of the matched WeightedPodAffinityTerm
10223	// fields are added per-node to find the most preferred node(s)
10224	#: "io.k8s.api.core.v1.WeightedPodAffinityTerm": {
10225		// Required. A pod affinity term, associated with the
10226		// corresponding weight.
10227		"podAffinityTerm"!: #."io.k8s.api.core.v1.PodAffinityTerm"
10228
10229		// weight associated with matching the corresponding
10230		// podAffinityTerm, in the range 1-100.
10231		"weight"!: int
10232	}
10233
10234	// WindowsSecurityContextOptions contain Windows-specific options
10235	// and credentials.
10236	#: "io.k8s.api.core.v1.WindowsSecurityContextOptions": {
10237		// GMSACredentialSpec is where the GMSA admission webhook
10238		// (https://github.com/kubernetes-sigs/windows-gmsa) inlines the
10239		// contents of the GMSA credential spec named by the
10240		// GMSACredentialSpecName field.
10241		"gmsaCredentialSpec"?: string
10242
10243		// GMSACredentialSpecName is the name of the GMSA credential spec
10244		// to use.
10245		"gmsaCredentialSpecName"?: string
10246
10247		// HostProcess determines if a container should be run as a 'Host
10248		// Process' container. All of a Pod's containers must have the
10249		// same effective HostProcess value (it is not allowed to have a
10250		// mix of HostProcess containers and non-HostProcess containers).
10251		// In addition, if HostProcess is true then HostNetwork must also
10252		// be set to true.
10253		"hostProcess"?: bool
10254
10255		// The UserName in Windows to run the entrypoint of the container
10256		// process. Defaults to the user specified in image metadata if
10257		// unspecified. May also be set in PodSecurityContext. If set in
10258		// both SecurityContext and PodSecurityContext, the value
10259		// specified in SecurityContext takes precedence.
10260		"runAsUserName"?: string
10261	}
10262
10263	// PodDisruptionBudgetSpec is a description of a
10264	// PodDisruptionBudget.
10265	#: "io.k8s.api.policy.v1.PodDisruptionBudgetSpec": {
10266		// An eviction is allowed if at most "maxUnavailable" pods
10267		// selected by "selector" are unavailable after the eviction,
10268		// i.e. even in absence of the evicted pod. For example, one can
10269		// prevent all voluntary evictions by specifying 0. This is a
10270		// mutually exclusive setting with "minAvailable".
10271		"maxUnavailable"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
10272
10273		// An eviction is allowed if at least "minAvailable" pods selected
10274		// by "selector" will still be available after the eviction, i.e.
10275		// even in the absence of the evicted pod. So for example you can
10276		// prevent all voluntary evictions by specifying "100%".
10277		"minAvailable"?: #."io.k8s.apimachinery.pkg.util.intstr.IntOrString"
10278
10279		// Label query over pods whose evictions are managed by the
10280		// disruption budget. A null selector will match no pods, while
10281		// an empty ({}) selector will select all pods within the
10282		// namespace.
10283		"selector"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"
10284
10285		// UnhealthyPodEvictionPolicy defines the criteria for when
10286		// unhealthy pods should be considered for eviction. Current
10287		// implementation considers healthy pods, as pods that have
10288		// status.conditions item with type="Ready",status="True".
10289		//
10290		// Valid policies are IfHealthyBudget and AlwaysAllow. If no
10291		// policy is specified, the default behavior will be used, which
10292		// corresponds to the IfHealthyBudget policy.
10293		//
10294		// IfHealthyBudget policy means that running pods
10295		// (status.phase="Running"), but not yet healthy can be evicted
10296		// only if the guarded application is not disrupted
10297		// (status.currentHealthy is at least equal to
10298		// status.desiredHealthy). Healthy pods will be subject to the
10299		// PDB for eviction.
10300		//
10301		// AlwaysAllow policy means that all running pods
10302		// (status.phase="Running"), but not yet healthy are considered
10303		// disrupted and can be evicted regardless of whether the
10304		// criteria in a PDB is met. This means perspective running pods
10305		// of a disrupted application might not get a chance to become
10306		// healthy. Healthy pods will be subject to the PDB for eviction.
10307		//
10308		// Additional policies may be added in the future. Clients making
10309		// eviction decisions should disallow eviction of unhealthy pods
10310		// if they encounter an unrecognized policy in this field.
10311		"unhealthyPodEvictionPolicy"?: string
10312	}
10313
10314	// Quantity is a fixed-point representation of a number. It
10315	// provides convenient marshaling/unmarshaling in JSON and YAML,
10316	// in addition to String() and AsInt64() accessors.
10317	//
10318	// The serialization format is:
10319	//
10320	// ``` <quantity> ::= <signedNumber><suffix>
10321	//
10322	// (Note that <suffix> may be empty, from the "" case in
10323	// <decimalSI>.)
10324	//
10325	// <digit> ::= 0 | 1 | ... | 9 <digits> ::= <digit> |
10326	// <digit><digits> <number> ::= <digits> | <digits>.<digits> |
10327	// <digits>. | .<digits> <sign> ::= "+" | "-" <signedNumber> ::=
10328	// <number> | <sign><number> <suffix> ::= <binarySI> |
10329	// <decimalExponent> | <decimalSI> <binarySI> ::= Ki | Mi | Gi |
10330	// Ti | Pi | Ei
10331	//
10332	// (International System of units; See:
10333	// http://physics.nist.gov/cuu/Units/binary.html)
10334	//
10335	// <decimalSI> ::= m | "" | k | M | G | T | P | E
10336	//
10337	// (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the
10338	// capitalization.)
10339	//
10340	// <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber>
10341	// ```
10342	//
10343	// No matter which of the three exponent forms is used, no
10344	// quantity may represent a number greater than 2^63-1 in
10345	// magnitude, nor may it have more than 3 decimal places. Numbers
10346	// larger or more precise will be capped or rounded up. (E.g.:
10347	// 0.1m will rounded up to 1m.) This may be extended in the
10348	// future if we require larger or smaller quantities.
10349	//
10350	// When a Quantity is parsed from a string, it will remember the
10351	// type of suffix it had, and will use the same type again when
10352	// it is serialized.
10353	//
10354	// Before serializing, Quantity will be put in "canonical form".
10355	// This means that Exponent/suffix will be adjusted up or down
10356	// (with a corresponding increase or decrease in Mantissa) such
10357	// that:
10358	//
10359	// - No precision is lost - No fractional digits will be emitted -
10360	// The exponent (or suffix) is as large as possible.
10361	//
10362	// The sign will be omitted unless the number is negative.
10363	//
10364	// Examples:
10365	//
10366	// - 1.5 will be serialized as "1500m" - 1.5Gi will be serialized
10367	// as "1536Mi"
10368	//
10369	// Note that the quantity will NEVER be internally represented by
10370	// a floating point number. That is the whole point of this
10371	// exercise.
10372	//
10373	// Non-canonical values will still parse as long as they are well
10374	// formed, but will be re-emitted in their canonical form. (So
10375	// always use canonical form, or don't diff.)
10376	//
10377	// This format is intended to make it difficult to use these
10378	// numbers without writing some sort of special handling code in
10379	// the hopes that that will cause implementors to also use a
10380	// fixed point implementation.
10381	#: "io.k8s.apimachinery.pkg.api.resource.Quantity": string
10382
10383	// CreateOptions may be provided when creating an API object.
10384	#: "io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions": {
10385		// When present, indicates that modifications should not be
10386		// persisted. An invalid or unrecognized dryRun directive will
10387		// result in an error response and no further processing of the
10388		// request. Valid values are:
10389		// - All: all dry run stages will be processed
10390		// +optional
10391		// +listType=atomic
10392		"dryRun"?: [...string]
10393
10394		// fieldManager is a name associated with the actor or entity
10395		// that is making these changes. The value must be less than or
10396		// 128 characters long, and only contain printable characters,
10397		// as defined by https://golang.org/pkg/unicode/#IsPrint.
10398		// +optional
10399		"fieldManager"?: string
10400
10401		// fieldValidation instructs the server on how to handle
10402		// objects in the request (POST/PUT/PATCH) containing unknown
10403		// or duplicate fields. Valid values are:
10404		// - Ignore: This will ignore any unknown fields that are silently
10405		// dropped from the object, and will ignore all but the last
10406		// duplicate
10407		// field that the decoder encounters. This is the default behavior
10408		// prior to v1.23.
10409		// - Warn: This will send a warning via the standard warning
10410		// response
10411		// header for each unknown field that is dropped from the object,
10412		// and
10413		// for each duplicate field that is encountered. The request will
10414		// still succeed if there are no other errors, and will only
10415		// persist
10416		// the last of any duplicate fields. This is the default in v1.23+
10417		// - Strict: This will fail the request with a BadRequest error if
10418		// any unknown fields would be dropped from the object, or if any
10419		// duplicate fields are present. The error returned from the
10420		// server
10421		// will contain all unknown and duplicate fields encountered.
10422		// +optional
10423		"fieldValidation"?: string
10424	}
10425
10426	// FieldsV1 stores a set of fields in a data structure like a
10427	// Trie, in JSON format.
10428	//
10429	// Each key is either a '.' representing the field itself, and
10430	// will always map to an empty set, or a string representing a
10431	// sub-field or item. The string will follow one of these four
10432	// formats: 'f:<name>', where <name> is the name of a field in a
10433	// struct, or key in a map 'v:<value>', where <value> is the
10434	// exact json formatted value of a list item 'i:<index>', where
10435	// <index> is position of a item in a list 'k:<keys>', where
10436	// <keys> is a map of a list item's key fields to their unique
10437	// values If a key maps to an empty Fields value, the field that
10438	// key represents is part of the set.
10439	//
10440	// The exact format is defined in
10441	// sigs.k8s.io/structured-merge-diff
10442	#: "io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1": {}
10443
10444	// GroupVersionResource unambiguously identifies a resource. It
10445	// doesn't anonymously include GroupVersion
10446	// to avoid automatic coercion. It doesn't use a GroupVersion to
10447	// avoid custom marshalling
10448	//
10449	// +protobuf.options.(gogoproto.goproto_stringer)=false
10450	#: "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource": {
10451		"group"?:    string
10452		"resource"?: string
10453		"version"?:  string
10454	}
10455
10456	// A label selector is a label query over a set of resources. The
10457	// result of matchLabels and matchExpressions are ANDed. An empty
10458	// label selector matches all objects. A null label selector
10459	// matches no objects.
10460	#: "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector": {
10461		// matchExpressions is a list of label selector requirements. The
10462		// requirements are ANDed.
10463		"matchExpressions"?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement"]
10464
10465		// matchLabels is a map of {key,value} pairs. A single {key,value}
10466		// in the matchLabels map is equivalent to an element of
10467		// matchExpressions, whose key field is "key", the operator is
10468		// "In", and the values array contains only "value". The
10469		// requirements are ANDed.
10470		"matchLabels"?: {
10471			[string]: string
10472		}
10473	}
10474
10475	// A label selector requirement is a selector that contains
10476	// values, a key, and an operator that relates the key and
10477	// values.
10478	#: "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": {
10479		// key is the label key that the selector applies to.
10480		"key"!: string
10481
10482		// operator represents a key's relationship to a set of values.
10483		// Valid operators are In, NotIn, Exists and DoesNotExist.
10484		"operator"!: string
10485
10486		// values is an array of string values. If the operator is In or
10487		// NotIn, the values array must be non-empty. If the operator is
10488		// Exists or DoesNotExist, the values array must be empty. This
10489		// array is replaced during a strategic merge patch.
10490		"values"?: [...string]
10491	}
10492
10493	// ListMeta describes metadata that synthetic resources must have,
10494	// including lists and various status objects. A resource may
10495	// have only one of {ObjectMeta, ListMeta}.
10496	#: "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta": {
10497		// continue may be set if the user set a limit on the number of
10498		// items returned, and indicates that the server has more data
10499		// available. The value is opaque and may be used to issue
10500		// another request to the endpoint that served this list to
10501		// retrieve the next set of available objects. Continuing a
10502		// consistent list may not be possible if the server
10503		// configuration has changed or more than a few minutes have
10504		// passed. The resourceVersion field returned when using this
10505		// continue value will be identical to the value in the first
10506		// response, unless you have received this token from an error
10507		// message.
10508		"continue"?: string
10509
10510		// remainingItemCount is the number of subsequent items in the
10511		// list which are not included in this list response. If the list
10512		// request contained label or field selectors, then the number of
10513		// remaining items is unknown and the field will be left unset
10514		// and omitted during serialization. If the list is complete
10515		// (either because it is not chunking or because this is the last
10516		// chunk), then there are no more remaining items and this field
10517		// will be left unset and omitted during serialization. Servers
10518		// older than v1.15 do not set this field. The intended use of
10519		// the remainingItemCount is *estimating* the size of a
10520		// collection. Clients should not rely on the remainingItemCount
10521		// to be set or to be exact.
10522		"remainingItemCount"?: int
10523
10524		// String that identifies the server's internal version of this
10525		// object that can be used by clients to determine when objects
10526		// have changed. Value must be treated as opaque by clients and
10527		// passed unmodified back to the server. Populated by the system.
10528		// Read-only. More info:
10529		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
10530		"resourceVersion"?: string
10531
10532		// Deprecated: selfLink is a legacy read-only field that is no
10533		// longer populated by the system.
10534		"selfLink"?: string
10535	}
10536
10537	// ManagedFieldsEntry is a workflow-id, a FieldSet and the group
10538	// version of the resource that the fieldset applies to.
10539	#: "io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry": {
10540		// APIVersion defines the version of this resource that this field
10541		// set applies to. The format is "group/version" just like the
10542		// top-level APIVersion field. It is necessary to track the
10543		// version of a field set because it cannot be automatically
10544		// converted.
10545		"apiVersion"?: string
10546
10547		// FieldsType is the discriminator for the different fields format
10548		// and version. There is currently only one possible value:
10549		// "FieldsV1"
10550		"fieldsType"?: string
10551
10552		// FieldsV1 holds the first JSON version format as described in
10553		// the "FieldsV1" type.
10554		"fieldsV1"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1"
10555
10556		// Manager is an identifier of the workflow managing these fields.
10557		"manager"?: string
10558
10559		// Operation is the type of operation which lead to this
10560		// ManagedFieldsEntry being created. The only valid values for
10561		// this field are 'Apply' and 'Update'.
10562		"operation"?: string
10563
10564		// Subresource is the name of the subresource used to update that
10565		// object, or empty string if the object was updated through the
10566		// main resource. The value of this field is used to distinguish
10567		// between managers, even if they share the same name. For
10568		// example, a status update will be distinct from a regular
10569		// update using the same manager name. Note that the APIVersion
10570		// field is not related to the Subresource field and it always
10571		// corresponds to the version of the main resource.
10572		"subresource"?: string
10573
10574		// Time is the timestamp of when the ManagedFields entry was
10575		// added. The timestamp will also be updated if a field is added,
10576		// the manager changes any of the owned fields value or removes a
10577		// field. The timestamp does not update when a field is removed
10578		// from the entry because another manager took it over.
10579		"time"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
10580	}
10581
10582	// MicroTime is version of Time with microsecond level precision.
10583	#: "io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime": time.Time
10584
10585	// ObjectMeta is metadata that all persisted resources must have,
10586	// which includes all objects users must create.
10587	#: "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": {
10588		// Annotations is an unstructured key value map stored with a
10589		// resource that may be set by external tools to store and
10590		// retrieve arbitrary metadata. They are not queryable and should
10591		// be preserved when modifying objects. More info:
10592		// https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations
10593		"annotations"?: [string]: string
10594
10595		// CreationTimestamp is a timestamp representing the server time
10596		// when this object was created. It is not guaranteed to be set
10597		// in happens-before order across separate operations. Clients
10598		// may not set this value. It is represented in RFC3339 form and
10599		// is in UTC.
10600		//
10601		// Populated by the system. Read-only. Null for lists. More info:
10602		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
10603		"creationTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
10604
10605		// Number of seconds allowed for this object to gracefully
10606		// terminate before it will be removed from the system. Only set
10607		// when deletionTimestamp is also set. May only be shortened.
10608		// Read-only.
10609		"deletionGracePeriodSeconds"?: int
10610
10611		// DeletionTimestamp is RFC 3339 date and time at which this
10612		// resource will be deleted. This field is set by the server when
10613		// a graceful deletion is requested by the user, and is not
10614		// directly settable by a client. The resource is expected to be
10615		// deleted (no longer visible from resource lists, and not
10616		// reachable by name) after the time in this field, once the
10617		// finalizers list is empty. As long as the finalizers list
10618		// contains items, deletion is blocked. Once the
10619		// deletionTimestamp is set, this value may not be unset or be
10620		// set further into the future, although it may be shortened or
10621		// the resource may be deleted prior to this time. For example, a
10622		// user may request that a pod is deleted in 30 seconds. The
10623		// Kubelet will react by sending a graceful termination signal to
10624		// the containers in the pod. After that 30 seconds, the Kubelet
10625		// will send a hard termination signal (SIGKILL) to the container
10626		// and after cleanup, remove the pod from the API. In the
10627		// presence of network partitions, this object may still exist
10628		// after this timestamp, until an administrator or automated
10629		// process can determine the resource is fully terminated. If not
10630		// set, graceful deletion of the object has not been requested.
10631		//
10632		// Populated by the system when a graceful deletion is requested.
10633		// Read-only. More info:
10634		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
10635		"deletionTimestamp"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
10636
10637		// Must be empty before the object is deleted from the registry.
10638		// Each entry is an identifier for the responsible component that
10639		// will remove the entry from the list. If the deletionTimestamp
10640		// of the object is non-nil, entries in this list can only be
10641		// removed. Finalizers may be processed and removed in any order.
10642		// Order is NOT enforced because it introduces significant risk
10643		// of stuck finalizers. finalizers is a shared field, any actor
10644		// with permission can reorder it. If the finalizer list is
10645		// processed in order, then this can lead to a situation in which
10646		// the component responsible for the first finalizer in the list
10647		// is waiting for a signal (field value, external system, or
10648		// other) produced by a component responsible for a finalizer
10649		// later in the list, resulting in a deadlock. Without enforced
10650		// ordering finalizers are free to order amongst themselves and
10651		// are not vulnerable to ordering changes in the list.
10652		"finalizers"?: [...string]
10653
10654		// GenerateName is an optional prefix, used by the server, to
10655		// generate a unique name ONLY IF the Name field has not been
10656		// provided. If this field is used, the name returned to the
10657		// client will be different than the name passed. This value will
10658		// also be combined with a unique suffix. The provided value has
10659		// the same validation rules as the Name field, and may be
10660		// truncated by the length of the suffix required to make the
10661		// value unique on the server.
10662		//
10663		// If this field is specified and the generated name exists, the
10664		// server will return a 409.
10665		//
10666		// Applied only if Name is not specified. More info:
10667		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency
10668		"generateName"?: string
10669
10670		// A sequence number representing a specific generation of the
10671		// desired state. Populated by the system. Read-only.
10672		"generation"?: int
10673
10674		// Map of string keys and values that can be used to organize and
10675		// categorize (scope and select) objects. May match selectors of
10676		// replication controllers and services. More info:
10677		// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels
10678		"labels"?: {
10679			[string]: string
10680		}
10681
10682		// ManagedFields maps workflow-id and version to the set of fields
10683		// that are managed by that workflow. This is mostly for internal
10684		// housekeeping, and users typically shouldn't need to set or
10685		// understand this field. A workflow can be the user's name, a
10686		// controller's name, or the name of a specific apply path like
10687		// "ci-cd". The set of fields is always in the version that the
10688		// workflow used when modifying the object.
10689		"managedFields"?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry"]
10690
10691		// Name must be unique within a namespace. Is required when
10692		// creating resources, although some resources may allow a client
10693		// to request the generation of an appropriate name
10694		// automatically. Name is primarily intended for creation
10695		// idempotence and configuration definition. Cannot be updated.
10696		// More info:
10697		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names
10698		"name"?: string
10699
10700		// Namespace defines the space within which each name must be
10701		// unique. An empty namespace is equivalent to the "default"
10702		// namespace, but "default" is the canonical representation. Not
10703		// all objects are required to be scoped to a namespace - the
10704		// value of this field for those objects will be empty.
10705		//
10706		// Must be a DNS_LABEL. Cannot be updated. More info:
10707		// https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces
10708		"namespace"?: string
10709
10710		// List of objects depended by this object. If ALL objects in the
10711		// list have been deleted, this object will be garbage collected.
10712		// If this object is managed by a controller, then an entry in
10713		// this list will point to this controller, with the controller
10714		// field set to true. There cannot be more than one managing
10715		// controller.
10716		"ownerReferences"?: [...#."io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference"]
10717
10718		// An opaque value that represents the internal version of this
10719		// object that can be used by clients to determine when objects
10720		// have changed. May be used for optimistic concurrency, change
10721		// detection, and the watch operation on a resource or set of
10722		// resources. Clients must treat these values as opaque and
10723		// passed unmodified back to the server. They may only be valid
10724		// for a particular resource or set of resources.
10725		//
10726		// Populated by the system. Read-only. Value must be treated as
10727		// opaque by clients and . More info:
10728		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
10729		"resourceVersion"?: string
10730
10731		// Deprecated: selfLink is a legacy read-only field that is no
10732		// longer populated by the system.
10733		"selfLink"?: string
10734
10735		// UID is the unique in time and space value for this object. It
10736		// is typically generated by the server on successful creation of
10737		// a resource and is not allowed to change on PUT operations.
10738		//
10739		// Populated by the system. Read-only. More info:
10740		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids
10741		"uid"?: string
10742	}
10743
10744	// OwnerReference contains enough information to let you identify
10745	// an owning object. An owning object must be in the same
10746	// namespace as the dependent, or be cluster-scoped, so there is
10747	// no namespace field.
10748	#: "io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference": {
10749		// API version of the referent.
10750		"apiVersion"!: string
10751
10752		// If true, AND if the owner has the "foregroundDeletion"
10753		// finalizer, then the owner cannot be deleted from the key-value
10754		// store until this reference is removed. See
10755		// https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion
10756		// for how the garbage collector interacts with this field and
10757		// enforces the foreground deletion. Defaults to false. To set
10758		// this field, a user needs "delete" permission of the owner,
10759		// otherwise 422 (Unprocessable Entity) will be returned.
10760		"blockOwnerDeletion"?: bool
10761
10762		// If true, this reference points to the managing controller.
10763		"controller"?: bool
10764
10765		// Kind of the referent. More info:
10766		// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
10767		"kind"!: string
10768
10769		// Name of the referent. More info:
10770		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names
10771		"name"!: string
10772
10773		// UID of the referent. More info:
10774		// https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids
10775		"uid"!: string
10776	}
10777
10778	// Time is a wrapper around time.Time which supports correct
10779	// marshaling to YAML and JSON. Wrappers are provided for many of
10780	// the factory methods that the time package offers.
10781	#: "io.k8s.apimachinery.pkg.apis.meta.v1.Time": time.Time
10782
10783	#: "io.k8s.apimachinery.pkg.util.intstr.IntOrString": string
10784
10785	#: "sensor.CreateSensorRequest": {
10786		"createOptions"?: #."io.k8s.apimachinery.pkg.apis.meta.v1.CreateOptions"
10787		"namespace"?:     string
10788		"sensor"?:        #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"
10789	}
10790
10791	#: "sensor.DeleteSensorResponse": {}
10792
10793	// structured log entry
10794	#: "sensor.LogEntry": {
10795		// optional - trigger dependency name
10796		"dependencyName"?: string
10797
10798		// optional - Cloud Event context
10799		"eventContext"?: string
10800		"level"?:        string
10801		"msg"?:          string
10802		"namespace"?:    string
10803		"sensorName"?:   string
10804		"time"?:         #."io.k8s.apimachinery.pkg.apis.meta.v1.Time"
10805
10806		// optional - any trigger name
10807		"triggerName"?: string
10808	}
10809
10810	#: "sensor.SensorWatchEvent": {
10811		"object"?: #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"
10812		"type"?:   string
10813	}
10814
10815	#: "sensor.UpdateSensorRequest": {
10816		"name"?:      string
10817		"namespace"?: string
10818		"sensor"?:    #."github.com.argoproj.argo_events.pkg.apis.events.v1alpha1.Sensor"
10819	}
10820
10821	#: "sync.CreateSyncLimitRequest": {
10822		"cmName"?:    string
10823		"key"?:       string
10824		"limit"?:     int
10825		"namespace"?: string
10826		"type"?:      #."sync.SyncConfigType"
10827	}
10828
10829	#: "sync.DeleteSyncLimitResponse": {}
10830
10831	#: "sync.SyncConfigType": "CONFIGMAP" | "DATABASE"
10832
10833	#: "sync.SyncLimitResponse": {
10834		"cmName"?:    string
10835		"key"?:       string
10836		"limit"?:     int
10837		"namespace"?: string
10838		"type"?:      #."sync.SyncConfigType"
10839	}
10840
10841	#: "sync.UpdateSyncLimitRequest": {
10842		"cmName"?:    string
10843		"key"?:       string
10844		"limit"?:     int
10845		"namespace"?: string
10846		"type"?:      #."sync.SyncConfigType"
10847	}
10848}